ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
在接收器运行期间,无线电 CPU 会监测一些信号以用于空闲通道评估。该监测由 ccaOpt 控制。CCA 有三种来源:RSSI 高于阈值状态 (ccaEnergy)、基于相关值的载波侦听 (ccaCorr) 和基于同步检测的载波侦听 (ccaSync)。每种来源都可能具有 BUSY、IDLE 或 INVALID 三种状态。
RSSI 高于阈值状态通过监测 RSSI 来维护。如果 RSSI 大于或等于 ccaRssiThr,则 ccaEnergy 为 BUSY。如果 RSSI 小于 ccaRssiThr,则 ccaEnergy 为 IDLE。当由于接收器已启动而导致 RSSI 计算尚未完成时,ccaEnergy 为 INVALID。
基于相关值的载波侦听利用接收器中为 SFD 搜索算法所定义的相关峰值来进行监测。如果在最后 8 个符号周期 (32µs) 中观察到的相关峰值数量大于 ccaOpt.corrThr,则 ccaCorr 为 BUSY;否则 ccaCorr 为 IDLE。ccaOpt.corrThr 的取值范围为 0 到 3。当接收器正在接收帧时,无论观察到的相关峰值如何,ccaCorr 都为 BUSY。如果从接收器启动至今不足 8 个符号周期,且自接收器启动以来观察到的相关峰值数量小于或等于 ccaOpt.corrThr,则 ccaCorr 为 INVALID。
基于同步检测的载波侦听由无线电 CPU 维护,如下所示。如果接收器获得同步,无线电 CPU 会检查 PHY 标头以确定帧长度。无线电 CPU 在此帧的持续时间内认为通道处于 BUSY 状态。即使由于帧过滤导致该帧的接收停止并重新开始同步搜索,此检查也会执行。如果在通道被视为 BUSY 期间再次检测到同步,则通道将被视为 BUSY,直到这两个帧根据各自观察到的帧长度都结束为止。ccaSync 不使用 INVALID 状态。
如果无线电正在发送 ACK 或因执行 TX 操作而被挂起,则 ccaEnergy、ccaCorr 和 ccaSync 全为 BUSY。
整体 CCA 状态 ccaState 取决于 ccaOpt 的 ccaEnEnergy、ccaEnCorr 和 ccaEnSync 位,以及 ccaCorrOp 和 ccaSyncOp 位。确定 ccaState 的规则如下(描述中 ccaTmp 为一个帮助程序状态):
根据 IEEE 802.15.4 标准,要使整体 CCA 状态为 IDLE,ccaSync 的 CCA 状态必须为 IDLE。因此,为了符合标准,ccaEnSync 设为 1,cceSyncOp 设为 0。
IEEE 802.15.4 标准中定义的 CCA 模式 1 通过设置 ccaEnEnergy = 1 和 ccaEnCorr = 0 来实现。CCA 模式 2 通过设置 ccaEnEnergy = 0 和 ccaEnCorr = 1 来实现。CCA 模式 3 通过设置 ccaEnEnergy = 1 和 ccaEnCorr = 1 来实现。在 CCA 模式 3 下,ccaCorrOp 可以为 0 或 1;这区分了逻辑运算符 AND (1) 和 OR (0),如 IEEE 802.15.4 标准所述。
系统 CPU 可以通过发出即时命令 CMD_IEEE_CCA_REQ 来读取 CCA 状态和当前 RSSI。如果 CMD_IEEE_CSMA 操作正在前台运行,无线电 CPU 也会自主监测 CCA。