ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
在运行本文档中描述的任何无线电操作命令之前,必须使用命令 CMD_RADIO_SETUP 在 IEEE 802.15.4 模式下设置无线电。否则,操作将以错误结束。
在 IEEE 802.15.4 模式下,无线电 CPU 接受两个级别的无线电操作命令。操作可以在后台级别或前台级别运行。每个操作只能以这两个级别之一运行。前台级别的操作通常需要同时运行一个后台级别的操作。
后台级别的操作包括接收操作和能量检测扫描操作。同一时间只能运行其中之一。前台级别的操作包括 CSMA-CA 操作、接收 ACK 操作、发送操作、中止后台级别操作以及修改无线电设置操作。即使有后台级别操作正在运行,这些操作也可以作为一个命令或命令链进入。CSMA-CA 和接收 ACK 操作与后台级别操作同时运行。发送操作会导致后台级别操作被挂起,直到发送完成。表 26-81 显示了后台和前台级别操作的允许组合。违反这些组合会导致前台级别命令即将启动时产生错误,并通过前台级别命令结构的状态字段中的 ERROR_WRONG_BG 状态指示。
| 前台级别操作 | 后台级别操作 | ||
|---|---|---|---|
| 无 | CMD_IEEE_RX | CMD_IEEE_ED_SCAN | |
| 无 | 允许 | 允许 | 允许 |
| CMD_IEEE_TX | Allowed1 | 允许 | 允许 |
| CMD_IEEE_CSMA | 禁止 | 允许 | 允许 |
| CMD_IEEE_RX_ACK | 禁止 | 允许 | 禁止 |
| CMD_IEEE_ABORT_BG | Allowed2 | 允许 | 允许 |
非 15.4 无线电操作不能与 15.4 无线电操作同时运行;如果在任一级别上有 15.4 操作正在运行时进入非 15.4 无线电操作,则会发生调度错误。但是,可以创建 15.4 和非 15.4 操作链。
当前台级别操作完成时,会产生 FG_COMMAND_DONE 中断。如果该命令是链中的最后一个命令,则还会产生 LAST_FG_COMMAND_DONE 中断(请参阅
表 26-80)。后台级别操作使用公共中断 COMMAND_DONE 和 LAST_COMMAND_DONE(请参阅表 26-80)。
命令结构的状态字段在操作期间会更新。提交命令时,系统 CPU 会以 IDLE 状态写入该字段。在操作期间,无线电 CPU 会更新该字段以指示工作模式。当操作完成时,无线电 CPU 会写入一个状态,指示命令已完成。表 26-82 列出了 IEEE 802.15.4 无线电操作的状态代码。
| 编号 | 名称 | 说明 |
|---|---|---|
| 操作未完成 | ||
| 0x0000 | 空闲 | 操作未启动 |
| 0x0001 | PENDING | 等待启动触发器 |
| 0x0002 | 运行 | 正在运行操作 |
| 0x2001 | IEEE_SUSPENDED | 操作已挂起 |
| 正常操作结束 | ||
| 0x2400 | IEEE_DONE_OK | 操作正常结束 |
| 0x2401 | IEEE_DONE_BUSY | CSMA-CA 操作以失败结束 |
| 0x2402 | IEEE_DONE_STOPPED | 操作在停止命令后停止 |
| 0x2403 | IEEE_DONE_ACK | 接收到 ACK 数据包,待处理数据位已清除 |
| 0x2404 | IEEE_DONE_ACKPEND | 接收到 ACK 数据包,待处理数据位已设置 |
| 0x2405 | IEEE_DONE_TIMEOUT | 操作因超时而结束 |
| 0x2406 | IEEE_DONE_BGEND | 前台操作因必要的后台级别操作结束而结束 |
| 0x2407 | IEEE_DONE_ABORT | 操作被命令中止 |
| 操作以错误结束 | ||
| 0x0806 | ERROR_WRONG_BG | 前台级别操作与正在运行的后台级别操作不兼容 |
| 0x2800 | IEEE_ERROR_PAR | 非法参数 |
| 0x2801 | IEEE_ERROR_NO_SETUP | 无线电未设置为 IEEE 802.15.4 模式 |
| 0x2802 | IEEE_ERROR_NO_FS | 运行 RX 或 TX 时合成器未编程 |
| 0x2803 | IEEE_ERROR_SYNTH_PROG | 合成器编程失败 |
| 0x2804 | IEEE_ERROR_RXOVF | 操作期间发生 RX 溢出 |
| 0x2805 | IEEE_ERROR_TXUNF | 操作期间发生 TX 下溢 |
每个操作都会列出给出每种状态的条件。表 26-82 中列出的一些错误原因不会在这些列表中重复出现。在某些情况下,可能发生节 26.3中描述的一般错误原因。在所有这些情况下,节 26.3中定义的操作结果都是 ABORT。