当我从我的perifpheral(CC2541)发送数据到我的GalaxyS3(Android 4.3)时,我看到无论我在外设设置的连接间隔(7.5毫秒),我都会以~100毫秒的间隔发送数据包。
这是非常差的数据速率。
有关如何加快速度的任何建议吗?
(我已经关闭了WiFi)
由于
答案 0 :(得分:2)
您可能已经知道,无法从Android BLE API配置连接间隔,因此,唯一的方法是从外围设备设置它。您的外围设备应根据设备蓝牙硬件及其蓝牙堆栈协商最佳连接间隔。
According to Bluetooth Low Energy specs,连接间隔确定称为连接事件的数据包交换序列开始之间的时间,它可以是7.5毫秒到4秒。该值与功耗密切相关,当值较小时消耗量较高。
外围设备应协商连接间隔,为其提供最小值和最大值。如果设备拒绝该连接间隔,则外围设备应尝试其他值,直到达到链路的最佳值。
三星Galaxy S3的情况是需要更高连接间隔的人之一。在我的一个测试中,我实现了在Nexus 5设备中协商~20ms的连接间隔,但是当对S3执行相同的测试时,它拒绝了那些小值并设置了~48ms之一。
例如在iOS中,在Bluetooth design guidelines document中,他们建议使用最小连接间隔值20ms。正如我之前所说,这项工作掌握在外围设备上,试图获得最佳价值。
答案 1 :(得分:0)
据我所知,您必须使用链路层控制数据包LL_CONNECTION_UPDATE_REQ协商连接间隔(connInterval)。 根据规范,连接间隔限制在7.5ms到4000ms之间。