在Bluetooth Low Energy 4.0和4.1中,OTA数据包的最大PDU为39个字节(带前导码,访问地址和CRC的47个字节),并且在版本4.2中增加到257字节。 短包的原因是无线电的稳定性,长包加热硅和额外的电路,以保持频率稳定。因此,在BLE 4.1中,最长的包可能是376微秒,以避免热效应。由于数据速率为1Mhz,因此376微秒为376位= 47字节,因此说明了PDU的大小。但是在4.2版本中,最长的数据包是2120位,所以2.12ms和我在蓝牙经典版本中读取3ms数据包的时间足以导致问题。所以我的问题是:为什么以及SIG如何成功增加版本4.2中的PDU,知道一些半导体公司声明所有版本的硬件都是相同的。什么导致了这个新的PDU长度?Bluetooth Low Energy中的PDU大小说明4.2
2
A
回答
2
在4. [01]中,39字节是广告数据包达到的最大LL PDU大小(标题的2个字节,6个字节的设备地址,31个字节的AD)。 对于数据包,最大PDU大小为33字节(2 Header + 4 L2CAP + 23 ATT + 4 MIC)。
注意数据通道报头计算没有报头的PDU大小,因此这使数据通道有效负载大小上升到31个字节。这是在4.2中放大的数字(如果不支持密码,实际最小值为27字节,因为4字节MIC永远不会出现在数据包中)。
新的数据通道净荷在4.2定义的大小是最大可能值的协议可以支持,所以这是一个芯片可以支持,而不是绝对的分组大小的每芯片必须支持的值。
实际数据信道有效载荷大小是通过LL_LENGTH_REQ和LL_LENGTH_RSP在两个相关无线电之间进行协商的。他们可以协商从27到251字节的任何长度(在有效载荷级别)(见Core_v4.2 6.B.2.4.2.21)。
在BLE规范的第一个版本中,数据包绝对最大大小为27个字节(数据有效负载,没有MIC)。 Spec对LL数据包大小使用5位字段,该首标字节的其他3位是RFU。它最终在4.2中完全向后兼容,扩大到8位,但在头部没有更多的连续位。对我来说,这解释了为什么限制是256字节左右(由于固定的头部大小不是字节计数的一部分而给出或取出):它给出了一个合理的扩展,而不用更改协议。
相关问题
- 1. android bluetooth low energy status = 61
- 2. Bluetooth Low Energy:未检测到RFDuino
- 3. Bluetooth Low Energy是否需要额外的硬件控制器?
- 4. 如何在Android 4.3上列出Bluetooth Low Energy设备?
- 5. 为什么Bluetooth Low Energy无法在某些设备上连接?
- 6. Bluetooth Low Energy:gattCharacteristic.getDescriptor()返回null
- 7. 哪种模式可以实现Bluetooth Low Energy和Android手机之间的稳定连接?
- 8. Yii的 - 小工具 - 说明
- 9. 小Redis的说明片断
- 10. IOS格式说明:如何NSLog的为0x%X在iOS 4.2的
- 11. 修复面板的大小extjs 4.2
- 12. 为什么这两个说明的大小有所不同?
- 13. 如何为Californium服务器设置消息大小(PDU)?
- 14. Solr的最大的说明得分
- 15. FFT中的说明
- 16. iAds iOS 4.2中传递给ADAdSizeForBannerContentSize的内容大小“无效内容大小”
- 17. Screeps Builders Not Gathering Energy
- 18. 错误keyWindow大小基本SDK 4.2
- 19. Low Flash AS3性能
- 20. 大小不明JAVA
- 21. PDF Low-Level:Blur Filter
- 22. Android中SMS PDU的格式
- 23. SceneKit中的convertPosition的说明
- 24. NullPointerException的说明
- 25. 说明的R:
- 26. 的Makefile说明
- 27. 明星大小ItemsControl中的网格列?
- 28. Android 4.2中的动作栏图标大小
- 29. 说明
- 30. 说明
谢谢。我已经将规格阅读为“必须”而不是“可能”。 – JJM
答案只是关于大小增加后的影响的评论,它没有解决原来的问题“短包的原因是无线电的稳定性,长包加热硅和额外的电路来加入以保持频率稳定“,如果确实如此,包尺寸的增加如何不会导致加热效应/不稳定? –
实际的问题是“为什么以及如何** SIG **成功[...]”。答案是**可能/必须**的区别。效果是依赖于芯片的,供应商可以强制实际支持芯片的限制。即使芯片是在4.2之前设计的,即使它们不能达到251字节的限制,它们也可能首先支持更长的数据包。 – Nipo