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.

[参考译文] CC2652R:关于客户端连接间隔

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1003224/cc2652r-regarding-client-side-connection-interval

器件型号:CC2652R

您好!

是否需要使客户端连接间隔保持等于或大于32.5ms 才能成功连接4个设备。

如下所示

当至少已建立一个连接时、为了留出足够的处理时间来扫描新连接、可以使用的最小可能连接间隔(以毫秒为单位)为:

12.5 + 5*n

其中 n 是电流连接的数量。

例如、如果当前有四个连接、则所有四个连接都必须使用的最小连接间隔为、 12*5 + 5*4 = 32.5 ms 以便允许进行扫描以建立新连接。

我想在客户端以10ms 的连接间隔连接4个设备、但无法成功连接4个设备、

在这方面需要帮助让我知道如何做?

借助 TI 硬件或 BLE 堆栈 ,是否可以使用简单的中央(Rx)连接4个器件,并在每个连接事件中每10ms 从每个外设接收1个数据包?  即、所有4个外设应每10ms 发送1个数据包、客户端必须每10ms 接收4个数据包。

此致、

维迪特

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

    嗨、vidit、

    [引用 userid="457498" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1003224/cc2652r-regarding-client-side-connection-interval "]对于 TI 硬件或 BLE 堆栈 ,是否可以使用简单的中央(Rx)连接4个器件,并在每个连接事件中每10ms 从每个外设接收1个数据包?  即、所有4个外设应每10ms 发送1个数据包、客户端必须每10ms 接收4个数据包。

    正如我们在 您的原始帖子中所讨论的、实现这一点是不可能的。 simple_central 为每个连接随机安排锚点。 由于这里的间隔是随机的、在这种情况下、您无法保证10ms 的时序。 simple_central 还具有启用"扩展保护时间"的选项、允许将每个连接锚点彼此间隔为5ms。 这意味着中央设备没有足够的时间接收4个数据包(如果它们的间隔为5ms、至少4x5ms = 20ms)。 这甚至不会考虑错过的连接事件、因此在保持连接的同时、您将难以实现此用例。 这样做根本没有足够的带宽。 我们在 v5.10 SDK 中有一个新功能、可帮助改善这种称为连接公平性的功能。 请 在此处阅读我们的用户指南、了解有关该技术的更多信息。 话虽如此,我仍然认为这是不可能的。

    您必须与设备保持连接是否有原因? 您可以在广告中发送此数据吗? 您应该能够通过在 simple_observer /广播设备配置中使用广播来实现这一点。

    [引用 userid="457498" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1003224/cc2652r-regarding-client-side-connection-interval "]是否需要使客户端连接间隔保持等于或大于32.5ms 才能成功连接4个设备。

    这是我们的建议,没有必要保留这一建议。

    [报价 userid="457498" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1003224/cc2652r-regarding-client-side-connection-interval "]我想在客户端连接间隔为10ms 的4台设备,但我无法成功连接4台设备,[/quot]

    您之所以看到这种情况、是因为没有足够的时间允许进行足够长的扫描以发现/连接新设备。

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

    尊敬的 Ammar:

    感谢您的回复。

    是的、您在之前的帖子中已经提到了锚点、我问您如何编辑预留时间、您告诉我们 在不修改源库的情况下无法执行这些更改。

    看到结果后、我认为为了实现我们的用例、我们必须修改库。

    如我所想、按照我的用例、选中"将锚点减少到小于5ms 或增加到10ms "。

    (因为我们的期望是每10ms 从所有四个传感器获得一次数据、所以、我想如果我们能够修改锚点、那么我们会检查结果)。

    2.我还想检查将连接间隔缩短到7.5ms 以下、即3ms 或2ms 或5ms  

    (因为、缩短连接间隔将为所有4个连接提供足够的间隔来保持连接并传输 数据、同时、如果我们可以将锚点进一步减少到低于5ms、使其达到大约2.5或2ms、而不是我们可以检查是否能达到预期结果)。

    因此、所有这些更改都需要更改库级别或堆栈级别。

    因此、我想知道如何在 TI 平台上编辑库或堆栈级别更改。

    此外、我想告诉大家、我们正处于使用 TI 平台的产品制造阶段。

    在了解如何开始在 TI 平台上编写驱动程序级代码方面需要 TI 帮助?

    因此、需要 TI 支持来解决此问题。

    此致、

    维迪特  

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

    嗨、vidit、

    [引用 userid="457498" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1003224/cc2652r-regarding-client-side-connection-interval/3707615 #3707615]1. 就像我要根据我的用例检查将锚点减少到小于5ms 或增加到10ms 一样。[/引述]

    遗憾的是、由于源代码不可公开使用、因此这是不可能实现的。 此外、保护时间特意设置为5ms、以允许堆栈有时间处理连接事件。 即使您能够修改源代码、我们也不建议降低此值、因为 您可能会遇到其他问题。

    [引用 userid="457498" URL"~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1003224/cc2652r-regarding-client-side-connection-interval/3707615 #3707615"]2. 我还想检查将连接间隔减少到7.5ms 以下、即3ms 或2ms 或5ms [/引用]

    这也是不可能的、因为它符合蓝牙规范(7.5ms 是定义的最小连接间隔)。

    您的最终应用是什么? 我无法理解对该要求的需求。 如果您可以通过广播负载发送此数据、这也是一个有效的选择。 不幸的是、如果没有更多的背景信息、我不能再向您提出进一步的建议。

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

    尊敬的 Ammar:

    我只是对防护时间有一个小问题。
    TI 添加了使用的此保护时间参数、或者它是 BLE 规范的一部分。

    因为当我了解 BLE 规范时、我遇到了一个安全计时  

    蓝牙系统规范、v5.1 (vtsociety.org)

    这种保护时间与给定的高级 BLE 堆栈的保护时间相同、因为它的范围非常小、在 BLE 堆栈中、我们可以将保护时间作为固定值、即5ms。

    谢谢你

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

    嗨、vidit、

    该保护时间与不受支持的 EDR 数据包有效载荷相关、因为它是指经典蓝牙而不是低功耗蓝牙。

    TI 添加了 SDK 中的保护时间设置、以允许中央器件管理多个连接、并允许无线电/MCU 有时间 处理它需要为特定连接执行的任何 TX 事件。

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

    尊敬的 Ammar:

    此防护时间(5ms)参数是否随制造而变化?

    还是在 BLE 规格中给出了保持5ms 防护时间的方法? (如果存在、您可以共享提供的文档、因为我找不到该文档)。

    谢谢你

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

    Vedit、

    在这种情况下、保护时间由 TI 指定、以便为我们的器件提供传输数据的时间、并在连接到多个器件时为下一个连接做好准备。 所有 BLE 通信、无论供应商如何、传输都需要相同的时间、并且可以在连接上发送每个连接间隔的多个数据包、因此选择了保护时间以确保我们的器件有足够的时间准备就绪、 还可以实际允许器件发送和接收数据。  此外、请注意、基本上当您连接了2个甚至3个器件时、扫描时间将为零、并且您可能会看到实际连接到所有4个器件的时间非常非常长。  您可以选择设置防护时间关闭(我相信在最新 SDK 中默认情况下它是关闭的)、然后中央器件会及时随机安排锚点、但您仍将有几乎零的扫描时间。 您可以在此处找到有关保护时间的更多信息:dev.ti.com/.../link-layer-cc13x2_26x2.html

    您正在构建的哪些应用程序要求您在10ms 内拥有如此多的连接?  

    我认为、如果您能为我们提供您的应用背景、以便考虑其他想法、那将会有所帮助。  

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

    您好、Vidit、

    我看到了您的电子邮件。 我认为、您实现这一目标的最佳方法是、不要使用预留时间选项、而是将其设置为中心会随机安排固定点的时间。 我确实认为您必须对您认为这是否足以满足您的应用进行一些测试、因为您可能会遇到在 BLE 连接中无法获取所有器件数据的情况。 如前所述、最小连接间隔为7.5ms、器件将始终需要一些时间来准备下一个连接、包括无线电重新同步到新通道等 所有这些都可能会导致某些情况、其中由于连接事件与其他连接密切重叠、可能无法处理连接事件。 此外、这会为您留下很少的扫描时间、但您也可以考虑使用 SDK 5.10中引入的扫描优先级功能。 您可以在链接层下的文档中找到更多信息。 我不能肯定您的应用可以正常工作、但除了我在上面的建议外、我建议您考虑使用专有射频技术。  

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

    您好 Evan、

    我对 LE 安全连接有疑问。

    我们的发送器数据大小为10字节。

    1.是否可以使用小于69即27的 PDU 大小,并且仍然具有 LE 安全连接(如中所述,如果我们使用的是 LE 安全连接,则 PDU 大小为最小值69)。

    您能解释一下,如果我使用的 PDU 大小为27,那么我的传输是否仍然与 高于或等于69的 PDU 时类似?

    2.在 BLE 堆栈 PDU 中、不允许小于27的大小、我们知道在一个 PDU 中最多可以发送20个字节的通知数据

    然后,如果我的数据是10个字节,那么10个字节仍然是空的,那么为什么不能将 PDU 的大小减少到17个字节?

    通用属性配置文件(GATT)—SimpleLink CC13x2/CC26x2 SDK BLE5-Stack 用户指南2.01.02.00文档

    谢谢你。

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

    您好、Vidit、

    请发布新主题帖、以解决与之前主题帖无关的问题。 与原始主题相关的此主题被视为已解决。