gpt4 book ai didi

ios - BLE外设吞吐量限制

转载 作者:技术小花猫 更新时间:2023-10-29 11:18:52 25 4
gpt4 key购买 nike

我们正在开发与 iPad 配合使用的 BLE 传感器外围设备,它需要使用 TI CC2541 BLE 模块和自定义配置文件的以下 BLE 通知特性(无确认)数据吞吐量:

每 10 毫秒一个 20 字节(GATT 最大标准数据包),或者由于我们似乎限制每个连接间隔 4 个数据包,这相当于每 40 毫秒一个连接间隔。所需的吞吐量为每秒 2,000 字节,TI 网站建议将 CC2541 BLE 解决方案用于需要此级别数据吞吐量的多种传感器设备。

BLE 模块的配置文件设置了最小和最大连接间隔分别为 20 毫秒和 40 毫秒,这应该足够了。 《Apple Products 的蓝牙配件设计指南》文档建议我们设置的最小和最大连接间隔,如上是正确的。我们在新的 Mac Mini/Mac Book 上使用适用于 iOS 6 的最新 iPad 和 Apple 工具。

在 iPad 上使用一个简单的测试程序,我们可以让链接正常工作,以 20 毫秒的间隔向 BLE 外围设备发送 20 字节的数据包,但是一旦我们根据需要将其降低到 10 毫秒,我们就会开始丢失数据包或收到损坏的数据包,我们关闭了 FIFO 空中断,因此我们可以更快地处理向 BLE 模块 FIFO 的发送,并且我们使用最大波特率 230400 将 20 字节数据包从微 Controller 发送到 BLE TX FIFO。

我们意识到我们处于 BLE 传输限制的顶端,并且是可能的。谁能告诉我是否有解决方案可以使用 TI CC2541 BLE 芯片/模块和最新的 iPad 实现每秒 2000 字节的吞吐量?

最佳答案

我们将 TI 2540(BLE 堆栈版本 1.3.2)成功用于 iPad/iPod/iPhone(iOS 6.x 和 7.x)。我们目前发送 75 个 20 字节/秒的通知 => 1500 字节/秒。但我已尝试发送 125 条通知,效果也不错。

当然,您发送的越多,丢失数据的可能性就越大,例如,重新发送 NACK 消息的时间越短。

我经历过 iOS 的 BLE 堆栈可能会进入一种模式,它开始连续 NACK 消息。如果发生这种情况,您将丢失很多消息。我已经就此向 Apple 报告了一个错误。 (这个问题似乎已经在 iOS 7.1.beta3/4 中修复了。)

我目前有:

// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 10

// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 20

是的,它不符合 Apple 的指导方针。但我相信在我们的案例中他们可以放松。

更新:我也曾尝试使用 iDevice 作为外围设备,即两个 iDevice 之间的 BTLE。在这里,我每秒发送 150 条消息,没有任何问题。

关于ios - BLE外设吞吐量限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com