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.

[参考译文] CC2640R2F:为什么在建立多个连接时主限制连接事件发生到单个 M<>S 交换?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/646860/cc2640r2f-why-is-the-master-limiting-connection-events-to-a-single-m-s-exchange-when-more-than-one-connection-is-established

器件型号:CC2640R2F
Thread 中讨论的其他器件: BLE-STACKCC2540T

为了同时满足吞吐量目标(4个外设 x 1kB/s)和(重新)连接时间限制(=> CI = 40ms)、我的中央应用程序需要从最多4个外设中的每个外设接收2 x 20字节的每个连接事件通知。

虽然这不是一种理想的安排、但在使用单个连接的实验中、这证明是可以接受的、因为系统会在偶尔丢失数据包后通过在后续事件中交换2个以上的排队通知(最多4个)来"赶上"。 但是...

连接第二个外设后、无论从机设置 MoreData = true、链路主机会仅在每个事件中启动单次交换。 因此、即使没有丢失的数据包、外设通知队列也会溢出。

这是为什么以及如何解决?

我从 "%20title="multi%20role%20docs">multi%20role%20docs"title="multi-role docs">多角色文档中了解 到,调度程序正在为每个连接事件准备5ms 的预算,而每个事件应该有足够的时间进行多个 M<>S 交换。

CC2640R2F BLE 4.2堆栈 v1.50

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

    这是 BLE-Stack 中的一个限制。 如果要发送的数据多到一个数据包中、则可以使用数据长度扩展来发送更长的数据包。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    >这是 BLE-Stack 中的一个限制。

    哇塞! 要明确此限制的范围,请确认“只要您建立了多个连接,就只能使用 TI BLE-STACK 进行每事件1M 次交换”

    这是在该应用中使用 TI 时的一个示例。 是否有机会/时间范围让这种限制放松/消除?


    >如果要发送的数据多到一个数据包中,则可以使用数据长度扩展来发送更长的数据包。

    你确定吗? TI 用于此应用的 USP 是外设端的 CC2540T
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 John:

    只要建立了多个连接,就可以使用 TI BLE-STACK 进行每次事件的1M 次交换。

    如果另一个设备不支持数据长度扩展、则无法使用它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您确认。