ble优化
来源:互联网 发布:js闭包实例 编辑:程序博客网 时间:2024/06/07 10:11
1. 信道
2. 帧结构
preamble(1 Byte)+ AccessAddress(4 Bytes)+ PDU + CRC(3 Bytes)
1)preamble = 10101010 or 01010101
2)Access Address = 0x8e89bedd6
3)连接以后的数据传输的PDU是:Header(2 Bytes)+ Payload (27 Bytes max)+MIC(4bytes),所以传输一个包的 最大长度是1+4+33+3=41字节,有效数据最大是27字节。
但是这个27字节指的是BLE底层的协议包格式。对于profile层的characteristic,其最大的长度是20字节,也即是每个包最大的长度是20字节.
3. 协议栈
协议可以参考https://wenku.baidu.com/view/3aaa6b4cde80d4d8d05a4f4c.html
关键参数:
Connection Interval通信间隙
通信间隙—蓝牙通信是间断的、跳频的,每次连接都可能选择不同的子频带。跳频的好处是避免频道拥塞,间断连接的好处是节省功耗,通信间隙就是指两次连接之间的时间间隔。这个间隔以1.25ms为基本单位,最小5单位最大3200单位,间隙越小通信越及时,间隙越大功耗越低
multiple of 1.25ms in range of 7.5ms and 4.0s 最小是5个1.25ms=7.5ms
Supervision Timeout最大耐心等待时间
为了创建一个连接,主机允许的最大等候时间,在这个时间内,不停的尝试连接。范围是10个~3200个通信间隙基本单位(1.25ms)
multiple of 10ms in the range of100ms and 32.0s. Must be larger than:(1 + slaveLatency) * (ConnInterval)
Slave Latency 从设备可以忽略的时间
外设与主机建立连接以后,主机总会定期发送问候信息到外设,外设可以忽略的连接事件个数从0到499个,最多不超过32秒。
有效连接间隙= 连接间隙x (1+ 忽略各数)
any value between 0 and 499, though it cannot exceed:
((supervisionTimeout / connInterval) – 1)
参数修改:
IOS:https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf
3.5 Advertising Interval
3.6 Connection Parameters
bluez:
射频PHY传输速率 1Mbps
实际传输速率大约等于: (连接时间间隔设置到7.5ms(协议规定最小值))
一个连接事件传输n个包,则传输速率大约= 1000ms/7.5ms * n*27
4. 参考
https://stackoverflow.com/questions/34617061/android-6-0-marsmallow-ble-connection-parameters
https://wenku.baidu.com/view/3aaa6b4cde80d4d8d05a4f4c.html
阅读全文
0 0
- ble优化
- BLE
- ble
- BLE
- ble
- BLE
- BLE
- [Bluetooth]: android 平台上BLE连接流程之优化方案
- ble兼容Android 4 进行的部分优化
- android BLE
- android BLE
- BLE ConnectionInterval
- BLE开发
- android BLE
- 浅谈BLE
- Android BLE
- ble框架
- BLE 设计
- 空指针
- webstorm下vue.js的开发配置
- 【UVA12124】Assemble
- h5 上下拉刷新插件简总结
- windows 7 安装遇到的问题
- ble优化
- WebStorm安装与破译
- android中设置不显示titlebar
- MySQL 正则表达式(常用模式)
- c# base64图片编码使用
- 如何高效利用github提升自己
- 集合collection
- c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明
- [日推荐]『钢琴优课』你免费的私人随身钢琴老师