2017-10-18 278 views
0

我有一个带蓝牙LE版本4.2的硬件设备,它可以发送有效负载为251字节的数据包。但我将通过移动应用程序(Android & IOS)接收数据,手机将拥有不同的蓝牙LE版本,如v4.0,v4.1或v4.2。从BLE v4.2到4.0的负载大小的向后兼容性

假设我的硬件设备作为主站和移动充当从设备。这里主人不知道奴隶的蓝牙版本。

如果主机发送具有251个字节的有效载荷中的数据包,从设备(V4.0 - 有效载荷:33个字节)如何处理它。

问题1:在BLE GATT服务器可以是能够通过保持251个的数据包的缓冲器和发送的数据包33一个其他后处理这种情况下的后向兼容性的?

问题2:通过保持主版本为v4.2并仍然回答所有BLE版本的从器件,什么可能是最好的方法来获得高通量?

问候, 湿婆。

回答

1

如果你读了蓝牙核心规范,你会发现,在链路层链路层数据包的大小可以从两侧(从机或主机无所谓)进行协商。如果其他设备不支持,则会使用默认长度。否则会使用更大的长度。所以它完全向后兼容。

另外GATT层根本不需要改变以支持LE数据长度扩展,因为分段和重组是由L2CAP层处理的。

不过请注意,你需要为了使用该功能来换取GATT大MTU。优选地,4 + MTU应该是链路层分组最大长度的倍数。