社区导航

 

搜索
查看: 759|回复: 0

[分享] 低功耗蓝牙数据传输率

[复制链接]

4186

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-6-26 21:17 | 显示全部楼层 |阅读模式
BLE Data Rate


在项目中遇到一个需求是通过BLE传输几十kB到一百多kB的数据。实际测试的时候发现BLE Data Rate平均在2kB/s左右,所以一次数据传输最多需要一分多钟。这个时间对消费者来讲是比较长的,用户体验不好,所以希望能提高BLE Data Rate,减少数据传输时间。故而对BLE Data Rate做了专题研究。


在研究过程发现了一些比较好的英文和繁体中文研究成果,因此就不打算自己写一篇深入全面的研究结果了,只在这里简要概述一下BLE Data Rate的相关要点并给出一些深入研究成果的链接。
1. BLE Data Rate受到多种复杂因素的影响,通过修改一些BLE连接参数是有可能提高BLE Data Rate的。
2. 影响BLE Data Rate的因素主要有
* 对方BLE设备的Data Rate限制,最终能达到的最大Data Rate取决于两个设备中最慢的那个设备。
* BLE连接参数,包括connection interval, slave latency, connection supervision timeout, packets per connection interval,通过修改这些参数可以提高Data Rate。
* MTU(Maximum Transfer Unit)的大小,增加MTU可以减少包头对data rate的开销,但是有些设备的蓝牙协议栈不支持修改MTU。
* BLE芯片方案的速度限制,MCU的运算能力会影响数据吞吐量。
* 某些手机操作系统的限制,比如iOS对BLE的连接参数有限制,在iOS上达不到spec规定的最大理论data rate;各家Android手机厂商对BLE的连接参数也有修改,不同Android手机的最大BLE Data Rate有不一样。
* 其他无线信号的干扰,比如WiFi和Bluetooth工作在同频段,会对Bluetooth造成干扰,增大误码率,提升重传次数,降低Data Rate。
3. BLE Data Rate的提升会带来功耗的增加,因此在不进行大块数据传输时,应该将BLE连接参数恢复到平衡模式或者节能模式。
4. 从Android 5.0开始增加了两个API来调整BLE连接参数和MTU: BluetoothGatt::requestConnectionPriority(int connectionPriority)和BluetoothGatt::requestMtu(int mtu)。需要注意的是BluetoothGattServer是不支持这两个API,原因是core spece有规定,只能有Gatt Client发起request。
5. 最新的Bluetooth 5.0将BLE data rate提升了一倍(double),但是支持Bluetooth 5.0的设备最快要2017年才有。

此帖出自RF/无线论坛


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-27 04:35 , Processed in 0.090549 second(s), 21 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表