ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
测试数据包发送器命令可用于发送物理层测试数据包。
CMD_BLE_TX_TEST 或者 CMD_BLE5_TX_TEST 命令会启动测试数据包发送器操作。在命令结构中,它应具有一个在表 26-102 中定义的类型的 pParams 参数和一个在表 26-115 中定义的类型的 pOutput 参数。在测试 TX 操作开始时,无线电 CPU 应等待启动触发。然后,它应根据命令结构的通道参数对频率进行编程。对于 CMD_BLE5_TX_TEST,它还应设置 phyMode.mainMode 中给出的 PHY 模式。无线电 CPU 应设置测试数据包同步字(请参阅相关文档中列出的蓝牙规范文档)并使用 CRC 初始化值 0x55 5555。白化器须按照白化参数的定义进行配置。要生成符合蓝牙系统规范(相关文档中列出的 5.0 版文档)的 PHY 测试数据包,应禁用白化器。
无线电 CPU 应发送 pParams->numPackets 数据包,然后结束操作。如果 pParams->numPackets 为 0,传输应继续,直到操作因另一个原因(超时、停止或中止命令)结束。每个数据包开始之间的时间(无线电计时器节拍数)应由 pParams->period 提供。如果该时间小于数据包的持续时间,则应尽快发送每个数据包。每个数据包应按如下方式由无线电 CPU 汇编。第一个字节为标头字节。它应包含 pParams->packetType 的值,前提是这是表 26-165 中列出的值之一。下一个字节是长度字节,这应为 pParams->payloadLength 的值。此字段后面应有数个有效载荷字节,这些字节应如表 26-165 中所列。有效载荷字节数应等于 pParams->payloadLength。如果 pParams->packetType 为 0,则字节应来自相关文档中列出的蓝牙系统文档的规范中定义的 PRBS9 序列。否则,所有字节都应相同,如表 26-165 中所列。根据相关文档中列出的低功耗蓝牙规范,应附加一个 3 字节 CRC。
| packetType 的值 | 发送的字节 |
|---|---|
| 0 | PRBS9 序列 |
| 1 | 重复 0x0F |
| 2 | 重复 0x55 |
| 3 | PRBS15 序列 |
| 4 | 重复 0xFF |
| 5 | 重复 0x00 |
| 6 | 重复 0xF0 |
| 7 | 重复 0xAA |
在相关文档中列出的蓝牙规范文档中定义的 PRBS15 有效载荷类型,对应于有效载荷类型 3,应使用多项式 x15 + x14 + 1 来实现。对于发送的第一个数据包,应从无线电计时器进行初始化,而不是对于后续数据包重新初始化。
如果 pParams->config.overrideDefault 为 1,则数据包应为非标准数据包。标头应包含 pParams->packetType 中给出的值,传输的每个字节应在 pParams->byteVal 中提供。如果 pParams->config.bUsePrbs9 为 1,则应通过 XOR 运算生成序列,其中用于数据包类型 0 的 PRBS9 序列的每个字节与 pParams->byteVal 进行该运算。如果 pParams->config.bUsePrbs15 为 1,则应通过 XOR 运算生成序列,其中用于数据包类型 3 的 PRBS15 序列的每个字节与 pParams->byteVal 进行该运算。
如果使用任一 PRBS 序列,则无论白化参数中的设置如何,白化都将被禁用。
结束操作的触发器由 pParams->endTrigger 和 pParams->endTime 设置。如果发生此参数定义的触发,无线电操作应尽快结束。如果在等待数据包之间发生这种情况,则应立即结束操作。如果在另一个时间发生,则应继续操作,直到完全传输当前数据包,然后结束。如果无线电 CPU 接收到立即命令 CMD_STOP(请参阅节 26.3.3.2.2),它应与发生的结束触发器具有相同的含义,但结束后的状态代码应为 CMD_DONE_STOPPED。
输出结构 pOutput 仅包含字段 nTx。每次发送数据包时,nTx 字段都应递增。无线电 CPU 不应初始化字段,因此当需要复位计数器时,必须由系统 CPU 执行此操作。每次发送数据包时都应发出 Tx_Done 中断。
PHY 测试 TX 操作将以表 26-166 中列出的状态之一结束。操作结束后,命令结构的状态字段指示操作结束的原因。在所有情况下,都会产生 Command_Done 中断。在每种情况下,都会指示 TRUE、FALSE 或 ABORT 的结果,这些结果将决定下一个操作,如节 26.3.3.2.2中所定义。
| 条件 | 状态代码 | 结果 |
|---|---|---|
| 已发送的 pParams->numPackets 数据包 | BLE_DONE_OK | TRUE |
| 在数据包之间等待时,pParams->endTrigger 指示观察到触发 | BLE_DONE_ENDED | FALSE |
| 观察到的触发由 pParams->endTrigger 指示,然后完成发送数据包 | BLE_DONE_ENDED | FALSE |
| 在数据包之间等待时观察到 CMD_STOP | BLE_DONE_STOPPED | FALSE |
| 观察到 CMD_STOP,然后完成数据包发送 | BLE_DONE_STOPPED | FALSE |
| 收到了 CMD_ABORT | BLE_DONE_ABORT | ABORT |
| 通道值非法 | BLE_ERROR_PAR | ABORT |
| pParams->packetType 的值非法 | BLE_ERROR_PAR | ABORT |