2017-10-18 279 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應該是鏈路層分組最大長度的倍數。