适用于Android,iOS和Win8的蓝牙低功耗连接参数

bas*_*142 14 android bluetooth bluetooth-lowenergy android-bluetooth ios7

我一直在寻找所有这三个操作平台所需的蓝牙连接参数.我正在使用此项目的HOGP(Bluetooth over HID GATT)配置文件.

我的项目是一个由我自己编写的带有BLE模块的嵌入式系统,我可以控制以下连接参数.

  1. 连接间隔最小值
  2. 连接间隔最大值
  3. 奴隶潜伏期
  4. 监督超时
  5. 广告间隔分钟
  6. 广告间隔最大

我要连接的目标设备将满足Android> = 4.3,iOS7和> = Win 8.1的连接.

Apple非常友好地在下面的链接中提供了第22页上带有相应参数的文档.我无法找到有关Android和Win 8的任何信息.

https://developer.apple.com/hardwaredrivers/bluetoothdesignguidelines.pdf

我目前的iOS7工作设置完全测试与免费软件lightBlue的双向通信如下.我的iOS7嵌入式代码和主机软件可以使用.

  1. 连接间隔最小30ms
  2. 连接间隔最大56.25ms
  3. 奴隶潜伏期3
  4. 监督超时5000ms

我从另一个堆栈溢出页面发现,据称android可以通过以下链接在7.5ms连接间隔上工作.

  1. Android BLE连接时间间隔
  2. http://processors.wiki.ti.com/index.php/Bluetooth_SensorTag?DCMP=lprf-stdroid&HQS=lprf-stdroid-pr-wiki1#Supported_Android_devices

不幸的是苹果iOS规范的第二个要求是"IntervalMin≥20ms".

我不理解这些范围或如何解释它们?如果我将Interval min设置为7.5ms for Android不会使苹果要求无效吗?如果可能,我如何满足两个系统和Win8?

我的理解是从设备在最小值和最大值之间提供建议设置,并且主设备(智能手机)警告用户该范围内的实际选定值.

我对这个问题的任何帮助表示感谢,并希望这篇文章能够让其他人考虑到BLE相当新的和不完整的知识基础.

提前致谢!

小智 13

首先,连接间隔定义了一个时间窗口,在此期间两个设备使用相同的频率来传输数据.总共有37个数据通道,每个连接间隔连接的设备都会跳过它们.

因此,两个设备必须从一开始就这些参数的精确值达成一致,以便同步,即连接.

其次,当建立连接时,主(或中央)发送它支持的连接参数.另一个设备(或外围设备)只是盲目地接受它们.iOS默认情况下将连接间隔设置为30毫秒.建立连接后,外设可以根据Apple提供的指南,通过定义最小值和最大值来请求更新连接参数.接收部分,在这种情况下读取iOS,将在[min; max]之间选择最适合它的任何内容,并将发送回具有它已选择的精确值的响应.如果值不符合指南,它也可以拒绝请求.

最后,7.5ms是蓝牙规范定义的连接间隔的最小长度.最大值为4秒.它越低,带宽越高,但功耗越高.与较高值相反.最佳值取决于具体应用.考虑到您使用HID配置文件,我认为延迟对您很重要.

iOS表示它支持低至20毫秒的连接间隔(虽然我发现很难实现这一点),但在您的情况下(HID配置文件),它们也允许11.25毫秒.

希望有所帮助.

  • 那么如何修改这些参数呢? (11认同)