簡體   English   中英

BLE 4.0/4.1 支持 Android 64 字節數據傳輸

[英]BLE 4.0/4.1 supporting data transfer of 64 bytes in Android

我們有一些具有 BT 堆棧 4.0 和 4.1 的 android 設備。 按照理論,4.0 和 4.1 僅支持 23 (20 +3) 個字節的數據傳輸。 而 BT 棧 4.2 和 5.0 支持高達 251 字節 MTU 的數據傳輸。

但是在我們的應用程序中,我們要求 64 字節的 MTU 大小並且它工作正常。 我們能夠發送和接收這種大小的數據。 我們能夠連續發送 500-700 個 64 字節的數據包。

有沒有人知道為什么它的工作方式不同? 還是只是一些以這種方式工作的安卓設備?

我們希望消除不支持我們的應用程序的設備。

您對這里的術語感到困惑。 根據規范,自藍牙 4.0 以來的所有 BLE 版本的最大可能 MTU 為 64 KB,即使 Android 將 GATT 限制為 517。

BLE 4.2 中添加的新功能是“LE 數據包長度擴展”,它是對鏈路層的增強,將空中最大包長度從 27 字節增加到 251 字節,並且不會影響主機層。道路。 如果主機發送的數據包大於鏈路層可以處理的數據包,它會被發送方堆棧自動分段並在接收方重新組裝。

因此,無論鏈路層功能如何,您的 Android 應用程序都將正常工作。 您唯一應該關心的是遠程應用程序是否支持您想要的 64 MTU。

更新

藍牙核心 v4.0 規范第 6 部分 B 部分第 2.4 節:

LLID 字段對於開始和延續片段有兩個不同的值。

10b = LL Data PDU: Start of an L2CAP message or a complete L2CAP message with no fragmentation.
01b = LL Data PDU: Continuation fragment of an L2CAP message, or an Empty PDU.

當主機數據包大於鏈路層可以處理的(通常為 27 或 251 字節,帶有 LE 數據長度擴展)時,繼續較早數據包的特性很重要。 當無線數據包的長度永遠不會超過 27 字節時,這就是您如何獲得例如 517 的 MTU。

有關 L2CAP 分片和重組的更多信息,請參閱藍牙核心規范第 3 卷 A 部分第 7.2 節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM