2016-09-07 108 views
2

我已閱讀技術規範,我正試圖理解爲什麼BLE 4.2比BLE 4.1更快?爲什麼BLE 4.2比BLE更快4.1

我們可以發送比20個字節更大的數據包大小還是連接間隔更快?

我想了解是什麼讓BLE 4.2更快。

回答

7

與之前相比,藍牙4.2中唯一能提供更高性能的是鏈路層的長度擴展。它可以發送長度爲251個字節的數據pdus,而不是之前爲限制的27個字節。以前,如果由於報頭大小以及rx和tx數據包之間所需的時間以及tx到rx之間的時間而發送多個數據包,則意味着開銷較大。數據本身通過空中傳輸1 MBit/s。

請注意,雙方都需要支持此新功能,並且新設備的最大長度必須在設備之間進行協商後方可使用。

這裏我將解釋一個典型的連接事件,而中央寫入多個GATT Write命令包,每個包含20個字節。由於無線傳輸速率爲1 MBit/s,因此傳輸每位需要1μs。鏈路層的頁眉和頁腳總共有80位,由以下內容組成:1字節前導碼+4訪問地址(將數據包標識爲正確目的地的東西)。 1個字節包含流量/確認和數據類型。 1個字節包含數據包的長度。然後是數據,然後是3字節的CRC校驗和。用戶數據包本身被封裝在一個ATT數據包(帶有操作碼和ATT句柄的3字節標題)中,該數據包又被包裝在一個L2CAP數據包(2字節通道ID和2字節長度)中。所以20字節的大數據包現在變成了37個字節,並通過無線傳輸。在空中,主機和從機在發送和接收之間交替。因此,如果主機發送了很多數據包,但從機沒有任何要發送的數據,從機仍然必須用80位標頭的空數據包進行響應。而且,在所有數據包之間,爲了給無線電時間在RX和TX之間切換,必須有150μs的無線電靜默。因此,4個包的連接事件充滿了20個字節的用戶數據中的每個看起來像以下: 1. Master -> Slave: 296 μs 1st packet 2. Silence 150 μs 3. Slave -> Master: 80 μs empty packet 4. Silence 150 μs 5. Master -> Slave: 296 μs 2nd packet 6. Silence 150 μs 7. Slave -> Master: 80 μs empty packet 8. Silence 150 μs 9. Master -> Slave: 296 μs 3rd packet 10. Silence 150 μs 11. Slave -> Master: 80 μs empty packet 12. Silence 150 μs 13. Master -> Slave: 296 μs 4th packet 14. Silence 150 μs 15. Slave -> Master: 80 μs empty packet 所有這些加起來是2554微秒

隨着新的數據包長度延伸,我們可以發送相同的80個字節的一個包(仍然是17字節頭+ CRC的開銷)= 97字節= 776位。

1. Master -> Slave: 776 μs packet 2. Silence 150 μs 3. Slave -> Master: 80 μs empty packet

這加起來只有1006微秒,比快兩倍,以前多!無線電現在可用於從另一個連接提供連接事件。

如您所見,吞吐量會增加。但是,爲了使這個新功能有用,您需要確保填滿包含連接事件。您當然可以在一個連接事件中更快地發送相同數量的數據,但如果您在下一次連接事件之前剩餘時間空閒,則不會更快地發送數據。