This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1312R:TI 15.4 Stack 数据发送–LBT 算法问题

Guru**** 2338160 points
Other Parts Discussed in Thread: SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1509920/cc1312r-ti-15-4-stack-data-send-lbt-algorithm-issue

器件型号:CC1312R
主题:SysConfig 中讨论的其他器件

工具/软件:

您好:

我正在启动一个新主题、涉及与 TI 15.4 Stack 消息传输中的 LBT 算法相关的问题。
我正在根据 TI 15.4 Stack 中提供的收集器和传感器示例开发一个应用。 硬件基于使用 SDK 版本8.30.01.01的 CC1312。

TI 15.4 Stack 配置:
*模式:信标启用
*频段:863–869 MHz
*监管类型: ETSI
* PHY 类型: 200kbps、2-GFSK
* MAC 信标顺序(BO): 10 (~4.9秒)
* MAC 超级帧顺序(SO): 3 (~38ms RX 窗口)

应用程序在信标模式下工作。 测试装置由一个收集器和两个传感器器件组成。 信标有两种类型:
*通用信号灯:不适用于任何特定传感器-传感器在正常条件下不会响应。
*专用信标:针对特定传感器-仅预期传感器响应。

在正常条件下、系统使用这些信标类型按预期工作。 但是、当收集器使用间接(AUTO_REQUEST_ON)数据传输向传感器发送数据包时、会出现问题。 在这种情况下、在每个信标间隔期间:
*接收专用信标的传感器发送响应。
*另一个传感器,其数据挂起,发送数据请求以检索数据。
问题:尽管所有传输理论上都符合超级帧持续时间、但偶尔会发生射频数据包冲突、从而导致消息丢失。

调试设置:
使用射频输出调试信号观察 GPIO 上的 TX/RX 时序(调试射频输出)。 以下是基于监听器日志和示波器布线的测试用例和结果汇总:

测试用例:
案例1–预期行为:
*收集器发送专用于 SENSOR_2的信标(正在等待 SENSOR_1的数据)。
* Sensor_2响应其信标。
*收集器确认响应。
* Sensor_1发送 DATA_RQ ,从收集器接收 ACK 和数据,并发送最终 ACK。

案例2–预期行为:
*收集器发送通用信标(没有来自 SENSOR_2的响应)。
* Sensor_1发送 DATA_RQ ,接收来自收集器的 ACK 和数据,并发送 ACK。

情形3–意外行为:
*收集器发送专用于 SENSOR_2的信标(正在等待 SENSOR_1的数据)。
* Sensor_1首先发送 DATA_RQ:
*收集器发送 ACK、SENSOR_2同时响应信标。
*结果:射频冲突,数据包丢失。

案例4–意外行为:
*收集器发送专用于 SENSOR_2的信标(正在等待 SENSOR_1的数据)。
* Sensor_2响应信标并接收 ACK。
* Sensor_1发送 DATA_RQ、接收 ACK、但数据包不从收集器传输。

摘要:
在情况3和4中、观察到数据包重叠传输或丢失。 这表明多个器件可能同时传输数据。 我们尝试调整 macMinBE、macMaxBE、CONFIG_MAC_MAX_CSMA_BACKOFFS 等参数。 但是、问题仍然存在。

主要问题:
导致这些数据包冲突或丢失的原因可能是什么?LBT 机制在这种启用信标的数据传输场景中到底如何工作?
是否可以避免这些冲突、以及应微调哪些参数以提高可靠性?

非常感谢任何见解、指导或建议。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Simonas:

    感谢您对问题的详细描述。 我将与软件设计人员讨论、明天会回来联系您。

    一个问题:当您说传感器响应信标时、它是用数据包还是 ACK 数据包响应?

    谢谢、

    Marie H

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Marie:

    感谢您的跟进。

    澄清:当我提到传感器"响应信标"时、我的意思是、它通常会传输一个数据包以响应发送给它的专用信标、而收集器用 ACK 确认数据包。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Simonas:

    我与 SW RND 团队交谈。

    如果您的所有设备都具有相同的退避时间设置、它们可能会同时侦听冲突、因此不知道它们将完全同时发送数据包。

    此外、对于 ACK 数据包、器件不会执行 LBT。

    希望这有助于您调整设置以避免这些冲突!

    谢谢、

    Marie H

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Marie:

    感谢您的答复。

    关于 ACK 数据包的要点、我只想确认:在发送 ACK 数据包之前不执行说前先听(LBT)是否正确? 例如、根据情况3中的语句、当一个器件在发送数据包后等待 ACK 时、另一个器件开始自身的传输。 因此、收集器的 ACK 和第二个设备的数据同时传输、导致所有数据包丢失—这是预期的行为吗?

    此外、您能否更详细地解释 LBT 算法、具体来说是如何在算法中使用以下参数:CONFIG_MAC_MAX_CSMA_BACKOFFS、CONFIG_MAX_RETRIES、CONFIG_MIN_BE、CONFIG_MAX_BE。 在上一个线程中、提到 LBT 侦听持续时间至少为5ms。 但是、我在案例3的示波图中没有清楚地观察到这一点。 您能解释一下这种情况下发生的情况吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Simonas:

    是、因此在第3种情况下、我会增加第二个设备的时间间隔、以避免此冲突。

    LBT 算法符合 IEEE 规范。 如果您在论坛上搜索、我们会提供一些其他信息。 但为了获得完整的信息、您需要购买规格。

    谢谢、

    Marie H

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Marie:


    感谢您的澄清。 关于"增加时间间隔"、您指的是哪个特定的堆栈参数? 此外、仍不清楚 CONFIG_MIN_BE 和 CONFIG_MAX_BE 设置在我的例子中是否有任何影响。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Simonas:

    如果要延迟数据包、可以增加 报告间隔(SysConfig -> TI 15.4-Stack ->网络->应用)。  

    CONFIG_MAX_BE 和 CONFIG_MIN_BE 不用于 LBT (仅适用于 CSMA)。 我认为无法在 LBT 中配置侦听周期。

    谢谢、

    Marie H