ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
辅助通道广播器操作由 CMD_BLE5_ADV_AUX 命令启动。在命令结构中,它应包含具有表 26-106 中定义类型的 pParams 参数和具有表 26-110 中定义类型的 pOutput 参数。操作以发送开始。
在 AUX_ADV_IND 数据包传输之后,如果所发送的数据包是可连接或可扫描的,则应启动接收器。如果传输的广播数据包是可扫描的,接收器应查找 AUX_CONNECT_REQ 消息。如果传输的广播数据包是可连接的,接收器应查找 AUX_SCAN_REQ 消息。
AUX_SCAN_REQ 或 AUX_CONNECT_REQ 消息接收到 pParams->pRxQ 给出的 RX 队列中,如节 26.10.4.1 所述。bCrcErr 和 bIgnore 位根据 CRC 结果和收到的消息进行设置。消息中的 AdvA 字段连同收到的标头的 TxAdd 位会分别与 pParams->pDeviceAddress 数组和 pParams->advConfig.deviceAddrType 进行比较,以确定该消息是否发往此广播器。收到的 ScanA 或 InitA 字段连同收到的标头的 RxAdd 位按如下方式进行检查:
根据收到的数据包,应采取的操作如表 26-140 和表 26-141 中所述,其中每个操作的定义(包括将在 bCrcErr 和 bIgnore 上使用的值)在表 26-142 中给出。如果 pParams->advConfig.bStrictLenFilter 为 1,则只有符合蓝牙低耗能规范的长度字段才被视为有效。对于 AUX_SCAN_REQ 数据包,这意味着长度字段为 12;对于 AUX_CONNECT_REQ 数据包,这意味着长度字段为 34。如果 pParams->advConfig.bStrictLenFilter 为 0,则收到的所有长度字段小于或等于广播器数据包最大长度(255,但可覆盖)的数据包均被视为有效。如果长度无效,则应停止接收器。
| PDU 类型 | CRC 结果 | 定向 | 有效长度 | AdvA 匹配 | 过滤策略 | RPA 模式 | 可解析私有地址 | ScanA 或 InitA 匹配 | 操作编号 |
|---|---|---|---|---|---|---|---|---|---|
| AUX_SCAN_REQ | OK | X | 是 | 否 | X | X | X | X | 1 |
| AUX_SCAN_REQ | OK | 否 | 是 | 是 | 2 或 3 | X | X | 否 | 1 |
| AUX_SCAN_REQ | OK | 否 | 是 | 是 | 2 或 3 | X | X | 是 | 2 |
| AUX_SCAN_REQ | OK | 否 | 是 | 是 | 0 或 1 | 0 | X | X | 2 |
| AUX_SCAN_REQ | OK | 否 | 是 | 是 | 0 或 1 | 1 | 否 | X | 2 |
| AUX_SCAN_REQ | OK | 否 | 是 | 是 | 0 或 1 | 1 | 是 | 否 | 1 |
| AUX_SCAN_REQ | OK | 否 | 是 | 是 | 0 或 1 | 1 | 是 | 是 | 2 |
| AUX_SCAN_REQ | OK | 是 | 是 | 是 | X | X | X | 否 | 1 |
| AUX_SCAN_REQ | OK | 是 | 是 | 是 | X | X | X | 是 | 2 |
| AUX_SCAN_REQ | NOK | X | 是 | X | X | X | X | X | 3 |
| AUX_SCAN_REQ | X | X | 否 | X | X | X | X | X | 5 |
| 其他 | X | X | X | 不适用 | X | X | 不适用 | 不适用 | 5 |
| 未收到数据包 | 不适用 | X | 不适用 | 不适用 | X | X | 不适用 | 不适用 | 5 |
| PDU 类型 | CRC 结果 | 定向 | 有效长度 | AdvA 匹配 | 过滤策略 | RPA 模式 | 可解析私有地址 | ScanA 或 InitA 匹配 | 操作编号 |
|---|---|---|---|---|---|---|---|---|---|
| AUX_CONNECT_REQ | OK | X | 是 | 否 | X | X | X | X | 1 |
| AUX_CONNECT_REQ | OK | 否 | 是 | 是 | 2 或 3 | X | X | 否 | 1 |
| AUX_CONNECT_REQ | OK | 否 | 是 | 是 | 2 或 3 | X | X | 是 | 4 |
| AUX_CONNECT_REQ | OK | 否 | 是 | 是 | 0 或 1 | 0 | X | X | 4 |
| AUX_CONNECT_REQ | OK | 否 | 是 | 是 | 0 或 1 | 1 | 否 | X | 4 |
| AUX_CONNECT_REQ | OK | 否 | 是 | 是 | 0 或 1 | 1 | 是 | 否 | 1 |
| AUX_CONNECT_REQ | OK | 否 | 是 | 是 | 0 或 1 | 1 | 是 | 是 | 4 |
| AUX_CONNECT_REQ | OK | 是 | 是 | 是 | X | X | X | 否 | 1 |
| AUX_CONNECT_REQ | OK | 是 | 是 | 是 | X | X | X | 是 | 4 |
| AUX_CONNECT_REQ | NOK | X | 是 | X | X | X | X | X | 3 |
| AUX_CONNECT_REQ | X | X | 否 | X | X | X | X | X | 5 |
| 其他 | X | X | X | 不适用 | X | X | 不适用 | 不适用 | 5 |
| 未收到数据包 | 不适用 | X | 不适用 | 不适用 | X | X | 不适用 | 不适用 | 5 |
| 操作编号 | bCrcErr | bIgnore | 说明 |
|---|---|---|---|
| 1 | 0 | 1 | 以 BLE_DONE_OK 状态结束操作 |
| 2 | 0 | 0 | 传输 AUX_SCAN_RSP 消息 |
| 3 | 1 | 0 | 以 BLE_DONE_RXERR 状态结束操作 |
| 4 | 0 | 0 | 传输 AUX_CONNECT_RSP 消息 |
| 5 | — | — | 立即停止接收器,并以 BLE_DONE_NOSYNC 状态结束操作 |
如果接收到长度为 12(或更短)的 AUX_SCAN_REQ 数据包,应将其视为空数据包。这意味着,如果 pParams->rxConfig.bAutoflushEmpty 为 1,且 bCrcErr 和 bIgnore 均为 0,则该数据包会从 RX 缓冲区中移除。如果数据包具有 bIgnore 或 bCrcErr 标记,也可根据 pParams->rxConfig 中的位将其移除。
如果正在接收的数据包无法放入 RX 队列,则该数据包会被接收到末尾,但收到的字节不会存储。如果根据 pParams->rxConfig 中的位,该数据包通常不会从 RX 队列中丢弃,则命令应结束。
如果根据表 26-142 的规定,下一个操作是传输 AUX_SCAN_RSP 或 AUX_CONNECT_RSP 消息,则无线电 CPU 应启动发送器,从 pParams->pRspPkt 中的描述符发送该数据包,如节 26.8.9.1中所述。
辅助通道广播器操作应以表 26-143 中列出的状态之一结束。操作结束后,命令结构中的状态字段指示操作结束的原因。在所有情况下,都会引发 Command_Done 中断。每种情况都会指示 TRUE、FALSE 或 ABORT 结果,这将决定下一步的操作。
| 条件 | 状态代码 | 结果 |
|---|---|---|
| 运行接收器后执行了操作 1 | BLE_DONE_OK | 真 |
| 执行了操作 2 并传输了 AUX_SCAN_RSP | BLE_DONE_OK | 真 |
| 运行接收器后执行了操作 3 | BLE_DONE_RXERR | 真 |
| 执行了操作 4 并传输了 AUX_CONNECT_RSP | BLE_DONE_CONNECT | 否 |
| 运行接收器后执行了操作 5 | BLE_DONE_NOSYNC | 真 |
| 观察到 pParams->endTrigger 所指示的触发条件,然后执行了操作 1、2、3 或 5 | BLE_DONE_ENDED | 否 |
| 观察到 CMD_STOP,然后执行了操作 1、2、3 或 5 | BLE_DONE_STOPPED | 否 |
| 收到了 CMD_ABORT | BLE_DONE_ABORT | ABORT |
| RX 缓冲区中没有空间来存储收到的数据包 | BLE_ERROR_RXBUF | 否 |
| 非法参数 | BLE_ERROR_PAR | ABORT |
| 辅助指针目标时间产生的辅助偏移量超出了数值所能表示的范围 | BLE_ERROR_AUX | ABORT |