您好!
上下文是实施说前先听式传输算法。
由于我们希望在 TX 尝试失败之间(即检测到载波时)将无线电置于空闲状态、因此我们实施了自己的重试策略、而不是使用 CC1200提供的内置"继续侦听并尝试发送、直到成功"方法。
从根本上而言、我想知道 RSSI0 CARRIER_SENSE_VALID 位是否在 CC1200不处于 RX 模式的任何时候被保证指示"无效"?
示例:
1)。 假设要传输的新数据包被压入某个基于 MCU 的队列中进行 TX 数据包
2)。 我们的 CC1200驱动器会收到队列中待处理的 TX 数据包的通知、并且先前的所有传输都已完成(或这是第一个)、因此 TX FIFO 应为空、等等
3)。 我们的 CC1200驱动器会在 CC1200上选通 RX 模式(如果它尚未处于 RX 模式、并且也未处于某些错误状态、例如 RX_FIFO_ERROR 或 TX_FIFO_ERROR)
4) 4) CC1200现在应该处于 RX 模式或进入 RX 模式(例如通过校准或趋稳?)
5)我们的 CC1200驱动程序将数据包数据排入 TX 队列、并将数据和数据包元数据推送到 TX FIFO
6)我们的 CC1200驱动器设置自己与这个新 TX 相关的状态(监视和控制等)
7) 7)我们的 CC1200驱动程序现在测试 RSSI0载波传感有效位
7.1)如果载波侦听有效"无效"、则我们会暂停执行、以获得可能的最大 CS 有效时间(在我们的配置中为~940us)
7.1.1)我们重置载波侦听有效
7.1.2)如果载波侦听有效仍指示"无效"、则我们中止此 TX 尝试
8)***此时***如果载波侦听有效指示"CS 有效",则我们假定 CC1200仍必须处于 RX 模式(读取 RSSI0寄存器时)
并且我们可以安全地选通 TX、前提是以下步骤9)将按预期运行
9)我们的 CC1200驱动器现在会选通 TX 模式、并让 TX-ON-CCA-FAIL 机制发送或 TX-ON-CCA-FAIL TX、从而让事情照常进行
在上面的示例中、第(8)点的假设是否正确?