ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
当启用帧过滤时,无线电 CPU 会检查数据包的 MAC 标头。首先检查帧控制字段 (FCF)。帧类型子字段是 FCF 中要检查的第一个子字段,它决定了后续处理过程。在进行检查之前,会根据 frameFiltOpt.modifyFtFilter 来处理帧类型的 MSB。此修改的结果仅在检查时使用,而不会在将 FCF 存储到 RX 队列条目时使用。对于帧类型字段的八个可能值(包括四个保留值)中的每一个,都可以设置为接受或拒绝该帧。这由 frameTypes 的各个位控制。如果帧类型为确认帧 (010b) 且前台正在运行 CMD_RX_ACK 操作,则即使 frameTypes.bAcceptFt2Ack 为 0,也会进一步处理该数据包。节 26.5.4.5 详细介绍了这种情况下的处理过程。
对 Frame Version 和 Reserved 子字段执行过滤。如果帧版本大于 frameFiltOpt.maxFrameVersion,则拒绝该帧。
如果 Reserved 子字段与 frameFiltOpt.fcfReservedMask 进行逻辑与运算的结果非零,则拒绝该帧。检查地址字段以确定是否必须接受该帧。此过滤遵循第三级过滤的规则(请参阅 IEEE 802.15.4 标准)。检查本地地址时,使用 localExtAddr 或 localShortAddr 字段;检查本地 PAN ID 时,使用 localPanID 字段。
如果 frameFiltOpt.bStrictLenFilter 为 1 且帧类型指示该帧为确认帧,而且 PHY 有效载荷的长度不是 5(这是格式正确的 ACK 帧的长度),则拒绝该帧。
如果 frameFiltOpt.frameFiltStop 为 1 且帧过滤得出的结论是该帧应被拒绝,则停止接收,无线电返回同步搜索状态。否则,将接收该帧直至结束。
无线电 CPU 检查标头以确定是否需要传输确认帧。这会得出一个初步结果;ACK 实际发送与否取决于帧结束时的状态。发送传输帧的条件在节 26.5.4.1.3中给出。