jdo*_*doe 12 bluetooth-lowenergy
我想知道蓝牙低功耗的最大数据包长度是多少.例如,如果经常说,则为20字节限制
"BLE允许您传输最大值为20个字节."
"你是对的,BLE规范不允许写操作超过20个字节."
但是,阅读蓝牙核心规范,我们可以看到ATT_MTU值写入2个字节,这意味着它可以达到65 535个字节.
这一切背后的真相是什么?
Nip*_*ipo 29
规格总是正确的!
在蓝牙4.0中,引入了BLE,最大有效载荷为33字节(不包括访问地址和CRC字段).协议栈中的每一层都采用了它的方式:
使用ATT写请求(或通知),命令类型和属性ID使用3个字节,属性数据保留20个字节.
在ATT级别,可以通过两种方式扩大此限制:
在L2CAP级别使用碎片:
L2CAP将分割27个字节片段的ATT PDU(第一个片段为23个).
缺点:
使用蓝牙4.2中引入的数据包长度扩展:
无线电级别最多251个字节(MIC为255),因此属性数据可用242个字节.
缺点:
还是新的,需要硬件支持,所以没有在任何地方实现(即使宣布BLE 4.2支持),
具有较长通话时间的分组将具有更多被干扰的机会,因此较长的分组意味着更多的重传.
如果使用这两种方法,L2CAP可能会使用更大的片段.
无论ATT PDU的低级别分裂如何,属性值长度限制为512乘3.F 3.2.9.
| 归档时间: |
|
| 查看次数: |
20735 次 |
| 最近记录: |