Galaxy S3 Android 4.3 上 BLE 的连接间隔
Posted
技术标签:
【中文标题】Galaxy S3 Android 4.3 上 BLE 的连接间隔【英文标题】:connection interval for BLE on Galaxy S3 Android 4.3 【发布时间】:2014-02-20 18:53:11 【问题描述】:当我从外围设备 (CC2541) 向我的 GalaxyS3 (android 4.3) 发送数据时,我发现无论我在外围设备中设置的连接间隔 (7.5 毫秒) 如何,我都会以大约 100 毫秒的间隔发送数据包。
这真是糟糕的数据速率。
关于如何加快速度的任何建议?
(我已经关闭了WiFi)
谢谢
【问题讨论】:
您使用多种机制中的哪一种来发送数据?我们将需要更多地了解细节以提供帮助。如果您有 CC254x 套件,您可能希望使用其中的数据包扫描器来评估您的外围设备的任何非交互式功能(例如广告),而与 Android 终端无关。 首先,感谢您的及时回答。我们使用 keyfob 项目作为参考,据我了解,我们通过更新其特性(20Bytes~)来使用 GATT Profile API,我们才刚刚开始,我不介意更改任何内容。你能说说我对 Android 4.3 中 S3 BLE 的预期数据速率吗? .我们发送大约 1K 数据,这需要很多时间。当我将 Nexus5 与 Android 4.4 一起使用时,我看到包的发送延迟为 25 毫秒。我怀疑特定的操作系统是一个问题(android 4.3)。抱歉信息不足,我会尽量详细说明。也许你可以指导我最好的方式 【参考方案1】:您可能已经知道,无法从 Android BLE API 配置连接间隔,因此,剩下的唯一方法是从外围设备进行设置。您的外围设备应根据设备蓝牙硬件及其蓝牙堆栈为其协商最佳连接间隔。
According to Bluetooth Low Energy specs,连接间隔决定了数据包交换序列开始之间的时间,称为连接事件,可以是7.5毫秒到4秒。该值与功耗密切相关,值越小功耗越高。
外围设备应协商连接间隔,为其提出最小值和最大值。如果设备拒绝该连接间隔,您的外围设备应尝试另一个值,直到达到链接的最佳值。
三星 Galaxy S3 的案例是需要更高连接间隔的案例之一。在我的一项测试中,我在 Nexus 5 设备中协商了约 20 毫秒的连接间隔,但是当在 S3 中执行相同的测试时,它拒绝了这些小值并设置了约 48 毫秒之一。
例如在 ios 中,他们在 Bluetooth design guidelines document 中建议使用 20 毫秒的最小连接间隔值。因此,正如我之前所说,工作掌握在外围设备手中,力求获得最佳价值。
【讨论】:
【参考方案2】:据我所知,您必须使用链路层控制数据包 LL_CONNECTION_UPDATE_REQ 协商连接间隔(connInterval)。 根据规范,连接间隔限制在 7.5 毫秒到 4000 毫秒之间。
【讨论】:
以上是关于Galaxy S3 Android 4.3 上 BLE 的连接间隔的主要内容,如果未能解决你的问题,请参考以下文章
三星 Galaxy S3 Android 浏览器上的 Web 套接字?
Galaxy Nexus 和我自己的应用程序的 Android 4.3 不兼容问题