ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
发送操作是前台操作,用于发送一个数据包。该操作使用 CMD_IEEE-TX 命令启动,并使用表 26-65 中给出的命令结构。
当无线电 CPU 接收到命令时,它会等待启动触发。在该等待时间内,任何后台级操作都会继续运行。当启动触发时,无线电 CPU 暂停接收器并配置发送器。假设合成器通电并经过校准,因此如果未运行后台级操作,则必须在 TX 操作之前添加校准合成器命令。如果频率合成器未运行,则运行以错误结束。
发送器将在缓冲器指针中找到的有效载荷发送到 pPayload(由 payloadLen 字节组成)。如果 txOpt.payloadLenMsb 为非零值,则将该字段乘以 256 并添加到 payloadLen,以创建不符合 IEEE 802.15.4 标准的长帧(用于测试)。如果 txOpt.bIncludePhyHdr 为 0,则无线电 CPU 会自动插入根据有效载荷长度计算得出的 PHY 标头。否则,无线电 CPU 不会插入 PHY 标头,因此为了符合 IEEE 802.15.4 标准,有效载荷缓冲器中的第一个字节必须是 PHY 标头。
然后,有效载荷按在有效载荷缓冲器中发现的情况传输。如果 txOpt.bIncludeCrc 为 0,则无线电 CPU 会附加两个 CRC 字节(根据 IEEE 802.15.4 标准计算)。否则不会附加 CRC,因此为了符合 IEEE 802.15.4 MAC 标准,有效载荷缓冲器中的最后两个字节必须是 MAC 页脚。发送操作可以由立即命令 CMD_ABORT、CMD_STOP、CMD_IEEE-ABORT_FG 和 CMD_IEEE-STOP_FG 结束。如果接收到 CMD_ABORT 或 CMD_IEEE-ABORT_FG,则传输在数据包中间尽快结束。如果在无线电 CPU 等待启动触发时接收到 CMD_STOP 或 CMD_IEEE-STOP_BG,则操作会在不进行任何传输的情况下结束;否则,传输完成,但结束状态和结果会有所不同,如下所述。
当数据包的传输开始时,用于启动调制解调器的触发器 RAT 时间由无线电 CPU 写入 timeStamp 字段。与 CMD_IEEE-TX 命令的配置启动时间相比,此时间戳因固件定义的参数 startToTXRatOffset 而延迟。如果发送器和接收器已同步 RAT 计时器,则该时间戳与附加到 RX Entry 元素的时间戳相同,如节 26.7.1 所示,尽管接收器侧存在估计不确定性。
当操作结束时,发送帧的结束时间被定义为事件 1,可用于为后续链接操作计时。
表 26-86 列出了发送操作结束的原因。命令结束后命令结构的状态字段指示操作结束的原因。在所有情况下都会产生 FG_COMMAND_DONE 中断。在每种情况下,都会指示结果是 TRUE、FALSE 还是 ABORT。这指示是在 pNextOp 中启动下一个命令(如果有),还是返回到 IDLE 状态。
| 条件 | 状态代码 | 结果 |
|---|---|---|
| 已发送数据包 | IEEE_DONE_OK | TRUE |
| 接收到 CMD_STOP 或 CMD_IEEE-STOP_FG,然后完成发送(如果已启动) | IEEE_DONE_STOPPED | FALSE |
| 收到的 CMD_ABORT 或 CMD_IEEE-ABORT_FG | IEEE_DONE_ABORT | ABORT |
| 观察到的非法参数 | IEEE_ERROR_PAR | ABORT |