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.

[参考译文] CC2650:多个传感器传输到单个接收器时的数据包丢失

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver

器件型号:CC2650

我正在处理的当前项目具有一个多传感器、可向另一个传感器发送数据(RF、2440MHz)、充当接收器、然后接收器通过 UART 发送数据包以进行处理。 我遇到了数据包丢失问题。  

例如、我当前有4个传感器以100ms 间隔(10/s)进行传输、导致数据包丢失~2-4%。 令人惊讶的是、以10ms 间隔(100 /s)进行传输的单个传感器没有任何数据包丢失。 理想情况下、我们将能够让11个传感器以25ms 的间隔进行传输。

通过进一步的测试、我注意到:

 -数据包丢失随传感器频率和数量的增加而增加

 大多数情况下,大量数据包连续丢失,即连续丢失~20个数据包(有时仍会丢失单个数据包)

 -通常多个传感器会同时丢失数据包

如果能在这一问题上提供任何帮助,将不胜感激。

谢谢、

Olly

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

    您好 Olly、

    [引用 userid="527715" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver "]通常多个传感器会同时丢失数据包

    您使用的是哪种通信模式? 例如、多对一? 多对多?

    [引用 userid="527715" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver "]数据包丢失率随传感器频率和数量的增加而增加[/quot]

    通过"随频率增加"、您意味着提高发送数据包的频率吗?
    如果是,这种观察是有道理的--所有其他东西都是一样的,当你降低 TX 间隔和增加 TX 器件的数量时,它增加了单个 RX 器件必须接收的数据包的数量,这反过来又增加了数据包丢失的可能性。

    您能否分享更多详细信息? 具体而言:

    1. 数据包的大小有多大?
    2. 您使用的数据速率是多少?
    3. 您的项目是否基于 SDK 示例? 如果是、是哪一个? (以及您使用的是哪个 SDK?)

    我认为计算系统中的最大"带宽"可能很有用。
    例如、简化的不等式可以是:

    maxNumTxDevices *(sizeOfPacket / datarate)  <  txInterval

    11 *(sizeOfPacket / datarate)  <  25毫秒

    随着左侧增加并接近右侧、我们可以合理地预期更高的数据包丢失率。

    [引用 userid="527715" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver "],然后通过 UART 发送数据包以进行处理

    上述内容并未考虑其他潜在的器件工作负载周期来源、例如 UART 处理。
    UART 处理是否是实时进行的?
    如果是、您能否尽可能减少这种情况以查看数据包丢失是否减少?

    谢谢、
    Toby

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

    尊敬的 Toby:

    非常感谢您回来。

    [引用 userid="324727" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4188503 #4188503)]您使用的是哪种通信模式? 例如、多对一? 多对多?[/报价]

    我使用的是多对一。 我的意思是、多个传感器同时丢失数据包、这意味着大多数数据包仍会被接收、但多个特定传感器将丢失数据包。  

    [引用 userid="324727" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4188503 #4188503"]通过"随频率增加"、您的意思是增加数据包发送的频率吗?[/quot]

    是的、频率与每秒的数据包数量相同

    [引用 userid="324727" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4188503 #4188503"]数据包的大小是多少?

    13位。 我使用更少的(8和2)进行了测试、看起来没有什么不同

    [引用 userid="324727" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4188503 #4188503"]您使用的数据速率是多少?

    数据速率是多少?我将如何找出?

    [引用 userid="324727" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4188503 #4188503]\n 您的项目是否基于 SDK 示例? 如果是、是哪一个? (以及您使用的是哪个 SDK?)

    是的、它基于 CC2650 LaunchPad 射频数据包 Tx 和 Rx 示例(来自适用于 CC2650的 TI-RTOS (2.21.00.06))。 然后、我用 SensorTag 的头文件替换了头文件、因为这是我要使用的头文件。 我正在使用 CC2650STK。

    [引用 userid="324727" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4188503 #4188503]UART 处理是否实时进行?
    如果是、您是否可以尽可能减少这种情况以查看数据包丢失是否减少?

    虽然目前我只测量数据包丢失、但处理过程在计算机上是实时进行的。 我会先记录原始数据、然后在数据丢失后找到数据包

    Olly

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

    我已经记录了数据、然后发现数据包丢失、事实证明没有变化

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="527715" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4189233 #418933"]数据速率是多少?我将如何找到?

    是否可以附加 SmartRF_settings.c 文件?

    [引用 userid="527715" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4189233 #418933"]13位。 我使用较少的(8和2)进行了测试、似乎没有产生影响[/报价]

    这应该是相对可管理的。 13位将四舍五入为16位(无线电有效载荷长度以字节为单位指定)。

    接下来要检查的是数据包冲突。 每个传感器 TX 是否具有一些随机时间偏移?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="324727" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4191209 #4191209"]您是否可以附加您的 smartrf_settings.c 文件?[/quot]

    e2e.ti.com/.../0383.smartrf_5F00_settings.c

    附件

    [引用 userid="324727" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4191209 #4191209"]
    13位。 我使用更少的(8和2)进行了测试、看起来没有什么不同

    这应该是相对可管理的。 13位将四舍五入为16位(无线电有效载荷长度以字节为单位指定)。

    [/报价]

    很抱歉、我的意思是13位、虽然我尝试了8和2个字节、但它没有产生什么不同

    [引用 userid="324727" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4191209 #4191209"]是否每个传感器 TX 都有随机时间偏移?[/quot]

    是的、当以恒定的间隔打开时、每个传感器都会启动 Tx'ing

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

    您好!

    数据速率看起来是50kbps (//符号速率:50.0000 kBaud)。

    [引用 userid="527715" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1129032/cc2650-packet-loss-with-multiple-sensors-transmitting-to-a-single-receiver/4193621 #4193621"]是的,每个传感器在以恒定间隔打开时启动 TX'ing

    恒定间隔可能会解释为何您缺少来自单个传感器的多个数据包-例如,RX 器件接收来自传感器1的数据,然后传感器2在传感器1数据完全接收之前传输数据,然后传感器2数据丢失。
    在这里、向间隔中添加一些抖动可能会有所帮助(通常情况下、适用 TDMA 之类的内容(时分多址访问)。

    我们可能需要在此计算中添加一些额外裕量: 11 *(sizeOfPacket / datarate)  <  25毫秒

    也许类似于 11 *(sizeOfPacket / datarate)*裕度  <  25毫秒

    numDevices *(sizeOfPacket / datarate)*裕度  <  TX 间隔

    因此、为了在给定的设置下可靠地接收数据、可以尝试一些简单的操作:

    1. 减少数字器件
    2. 减少 sizeOfPacket (可能与现在无关、如您 在"8和2字节"实验中观察到的那样)
    3. 增加数据速率(请参阅 CC2650 TRM 中的"23.7.5.2专有模式设置命令"部分)
    4. 增加 TX 间隔