蓝牙BLE的最大特点就是低功耗,而低速率和简单的交互协议是降低功耗的重要组成部分。因此BLE一般应用于低速率的近场控制和数据交互,如智能家电、运动手环等等,小数量的控制和交互对传输速度没有要求,每秒1K字节就可以了,有时为了功耗可能会更低。但在某些场景下,可能要求BLE尽可能提高传输速率,如无线空中升级OTA、无线对讲语音传输等等。接下来,我们来分析如何提高BLE的速率来满足需求,并探讨BLE连接的稳定性。
一、BLE数据包分析
BLE包的结构是:
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字节。
二、自定义characteristic的最大长度
从上面分析可见,通过WRITE或者NOTIFY characteristic发送一个包的最大长度是27字节。但是这个2