ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
从无线电操作通过 CMD_BLE_SLAVE 或 CMD_BLE5_SLAVE 命令启动。在命令结构中,它应具有一个在表 26-96 或表 26-103 中定义的类型的 pParams 参数和一个在表 26-109 中定义的类型的 pOutput 参数。操作从接收开始。参数 pParams->timeoutTrigger 和 pParams->timeoutTime 定义在解调器未找到同步的情况下结束操作的时间。startTrigger 和 pParams->timeoutTrigger 共同定义从器件的接收窗口。
应以特殊方式处理从器件上新 LL 连接的第一个接收到的数据包。这由系统 CPU 发出信号,方法是在开始新连接的第一个从操作时将 pParams->seqStat.bFirstPkt 设置为 1。设置此标志时,接收到的数据包不应视为先前发送的数据包的 ACK 或 NACK。传输数据包时,无线电 CPU 应清除 pParams->seqStat.bFirstPkt。
无线电 CPU 应将无线电操作的第一个所接收数据包的时间戳写入 pOutput->timeStamp。系统 CPU 可将采集的时间用作锚点,以计算未来从器件命令的开始。此时间也应定义为事件 1。这可以用于为后续链接的操作计时。如果未找到锚点,则事件 1 将是从器件操作开始的时间。
如果接收到带有 CRC 错误的数据包,则如果同一无线电操作中的前一个数据包也带有 CRC 错误,则无线电 CPU 应结束无线电操作(请参阅表 26-130)。否则,如果接收到数据包、无线电 CPU 应启动发送器并从 TX 队列进行发送,或者如果 TX 队列为空,则发送自动空的数据包。传输可以是重传。除非操作以表 26-130 中列出的标准结束,否则接收器将在传输完成后启动。
从属操作应以表 26-130 中列出的原因之一结束。操作结束后,命令结构的状态字段会指示操作结束的原因。在所有情况下,都会产生 Command_Done 中断。在每种情况下,结果都指示为 TRUE、FALSE 或 ABORT,这将决定下一个操作。
| 条件 | 状态代码 | 结果 |
|---|---|---|
| 成功接收到标头的 MD 位为 0 的数据包后,MD = 0 的已发送数据包 | BLE_DONE_OK | TRUE |
| 在接收到不适合 RX 队列的数据包后,MD = 0 的已发送数据包 | BLE_DONE_OK | TRUE |
| 已完成发送数据包,nPkt 计数为 0 | BLE_DONE_OK | TRUE |
| 由 pParams->timeoutTrigger 指示的触发发生在启动命令后获得解调器同步之前 | BLE_DONE_RXTIMEOUT | FALSE |
| 发送后在接收操作时未获得同步 | BLE_DONE_NOSYNC | TRUE |
| 在相同操作中接收的两个后续数据包存在 CRC 错误 | BLE_DONE_RXERR | TRUE |
| 在内部计数器 nNack 倒计时至 0 后完成数据包发送 | BLE_DONE_MAXNACK | TRUE |
| 在观察到 pParams->endTrigger 指示的触发后完成数据包发送 | BLE_DONE_ENDED | FALSE |
| 在观察到 CMD_STOP 后完成数据包发送 | BLE_DONE_STOPPED | FALSE |
| 收到了 CMD_ABORT | BLE_DONE_ABORT | ABORT |
| 通道值非法 | BLE_ERROR_PAR | ABORT |
| TX 数据条目长度字段具有非法值 | BLE_ERROR_PAR | ABORT |