ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
CMD_PROP_RX 命令用于接收符合
图 26-9 所示格式的数据包。其参数如表 26-174 中所示。
调制解调器配置接收器并开始侦听同步字。要侦听的同步字在 syncWord 字段中给出,如果使用的位少于 32 位,则位于 LSB 中。该字遵循无线电中编程的位顺序。
如果找到同步字,无线电 CPU 开始接收数据。如果 pktConf.bVarLen 为 1 且 maxPktLen 为非零,则假定下一个字节为长度字节。此长度字节与 maxPktLen 进行比较,如果大于该值,则停止接收并重新开始同步搜索。否则,这表示长度字节之后和 CRC 之前的字节数。如果 pktConf.bVarLen 为 0,则长度是固定的,接收器假定在同步字之后和 CRC 之前有 maxPktLen 个字节。如果 maxPktLen 为零,则长度不受限制,如节 26.10.5.4开头所述。
如果 pktConf.bChkAddress 为 1,则接下来将检查地址字节。该地址字节将与 address0 和 address1 的值进行比较。如果只需要一个地址,则这两个字段必须设置为相同的值。如果 address1 为 0xFF,则还会与值 0x00 进行比较。要在不检查 0x00 的情况下检查 0xFF,address0 必须设置为 0xFF。如果地址字节与配置的地址不匹配,则进一步的处理取决于 pktConf.filterOp。如果该值为 0,则停止接收并重新开始同步搜索。如果该值为 1,则如同地址匹配一样接收该数据包,但会将其标记为“已忽略”。
如果数据包正在接收中,则数据会被放入接收缓冲区。此接收缓冲区可从 pQueue 指向的接收队列中找到。如果 pQueue 为 NULL,则永远不会存储数据包。
如果 pktConf.bUseCrc 为 1,则会在末尾接收并检查 CRC。CRC 的位数、多项式和初始化值取决于无线电中的配置。CRC 的计算覆盖长度字节(如果存在)、可选地址和有效载荷。如果 pktConf.bUseCrc 为 0,则按 CRC 正确的处理方式对待。
如果启用了白化,则可选长度字节、有效载荷(包括可选地址)和接收到的 CRC 都会进行解白化处理。解白化在 CRC 评估之前完成。
如果将状态字节附加到数据包(rxConf.bAppendStatus 为 1),则其格式如下(请参阅表 26-180)。如果 pktConf.addressMode 为非零,则 addressInd 字段值如下:如果地址匹配 address0,则为 0;如果匹配 address1,则为 1;如果匹配 0x00 且启用了此地址,则为 2;如果匹配 0xFF 且启用了此地址,则为 3。否则,addressInd 为 0。对于 CMD_PROP_RX,syncWordId 字段始终为 0。结果字段根据表 26-186 写入。