1. 程式人生 > >BLE4.2 簡介

BLE4.2 簡介

提到家庭和工業自動化、物聯網(IoT)、可穿戴裝置、人機介面裝置(HID)眾多應用的無線連線協議時,藍芽一定是首選。為滿足各種應用的需求,藍芽技術聯盟(SIG)對藍芽規格進行了持續改進。釋出4.1版大約一年後, SIG在2014年12月藍芽釋出了藍芽規範4.2版。新的4.2主要包括三項更新 - 低功耗(LE)資料長度擴充套件(DLE)、鏈路層(LL)隱私保護以及安全性加強。這些功能提高了BLE資料頻寬、隱私保護和安全性,同時還有助於降低功耗。本系列文章將詳細討論這些功能以及它們如何影響系統性能。

本文引用地址:http://www.eepw.com.cn/article/201611/339774.htm

  藍芽低功耗(BLE)協議棧可以分成三個部分:

  控制器:協議棧控制器對資料包進行了加密,轉換為無線訊號傳送。在接收時,控制器將對無線訊號解碼,並重構資料包。

  主機:主機由管理兩個或多個裝置相互通訊的各種協議和配置檔案(安全管理器、屬性協議等)組成。

  應用:可使主機和控制器實現一個特定功能的用例。

20161024041534389.png 
 

鏈路層(LL)

  藍芽4.2的大部分新功能都集中在鏈路層周圍。鏈路層在建立可靠物理鏈路和功能中扮演著非常重要的角色,有助於提高BLE協議穩健性和能效。鏈路層功能包括廣播、掃描、建立和維護連線以建立物理鏈路。在鏈路層上定義了兩個角色:主裝置和從裝置。

  資料長度擴充套件(DLE)

  資料長度擴充套件能夠使兩個BLE裝置之間的資料傳輸更快。為了瞭解DLE功能,請先讓我們來看看鏈路層上的BLE資料包。下圖所示為藍芽4.0/4.1的鏈路層資料包結構。

20161024041554147.png 

如果我們仔細觀察各資料包的開銷,將發現存在1個位元組的前導、4個位元組的訪問地址、2個位元組的資料頭、3個位元組的迴圈冗餘檢查(CRC)和一個可選的4個位元組的訊息完整性檢查(MIC)。當使用加密時,訊息完整性檢查(MIC)將與有效負載一起傳送。因此,每個包含27個位元組資料的加密鏈路層資料均含有14個位元組的開銷。現在,讓我們來看看藍芽4.2定義的鏈路層資料包結構。

2.png 
 

相較於舊版本藍芽規範的27位元組,藍芽4.2中的有效負載量可達到251個位元組。每個資料包開銷仍然保持不變,即14個位元組。然而,該開銷現已與多達251個位元組相關聯,而不是27個位元組。這種最小有效負載的變化提高了吞吐量並減少了處理時間。

  圖4所示為當資料需要通過藍芽4.1和藍芽4.2從一個裝置傳輸至另一個裝置時的吞吐量

3.png 
 

在上圖中,資料包時間的計算方法如下:

  資料包時間= 8 *(前導位元組的數量+訪問地址位元組的數量+頭位元組的數量+有效負載位元組的數量+ MIC位元組的數量+ CRC位元組的數量)/資料速率 秒

  對於接收資料包,不存在有效負載和MIC位元組。因此,接收資料包時間為:

  傳送資料包時間= 8 *(1 + 4 + 2 + 3)/ 106 秒

  =80微秒

  含27個位元組的有效負載的傳送資料包時間為:

  傳送資料包時間= 8 *(1 + 4 + 2 + 27 + 4 + 3)/ 106秒

  =328微秒

  同樣,251個位元組的有效負載的傳送資料包時間為2120微秒。

  另外,如上圖所示,隨著各發送/接收資料包,存在兩個相關的幀間間隔(T_IFS),一個為傳送期間,一個為接收期間。如果某個事務的幀數量增加,則該事務的耗時也將成比例地增加。當資料長度功能被啟用時,相較於藍芽4.1,藍芽4.2在一個幀內打包了更多資料,從而減少了每次事務處理的總時間,並增加了吞吐量(其中,吞吐量 =有效負載尺寸/總時間)。

  如上圖所示,對於藍芽4.1鏈路層,最大有效負載尺寸為27個位元組(216位元)以及該交易的總時間為708微秒,意味著約 298 kbps的理論吞吐量。

  而對於4.2鏈路層,最大有效負載尺寸為251個位元組(2008位元)以及總時間為2500微秒,意味著約 784 kbps的理論吞吐量。因此,相較於藍芽4.1,藍芽4.2提供了大約2.6倍的更高吞吐量。

  BLE 4.2允許主裝置和從裝置之間協商資料長度,還允許不對稱的傳送和接收有效負載量。有效地利用該功能以及選擇合適的接收/傳送資料長度對於實現最大吞吐量具有十分重要的意義。

  讓我們考慮這樣一個應用:BLE從裝置需要將幾千位元組傳輸至主裝置、從主裝置接收空包並且連線間隔為8.75毫秒。假設在以下設定中協商資料長度(從裝置):

  情景1 – 傳送 - 251個位元組,接收 - 251位元組

  情景2 – 傳送 - 251個位元組,接收 - 27位元組

  在情景1中,如圖5所示,在第一次接收/傳送資料包時,接收有效負載尺寸為0位元組以及傳送有效負載尺寸為251個位元組,耗時2.5毫秒(包括幀間間隔)。第二次接收/傳送資料包也是一樣的。這兩個接收/傳送資料包共耗時5毫秒,在此連線間隔內剩下3.85毫秒。在理想情況下,應該在同一連線間隔記憶體在另一個接收/傳送資料包。但是,主裝置的排程器不會在此連線間隔內安排另一個接收/傳送資料包。這是因為排程器會基於協商的資料長度(本案例中傳送/接收的資料長度均為251)來檢查傳送/接收資料包是否具有足夠的時間。如圖所示,含有接收和傳送有效負載量為251位元組的接收和傳送資料包需要4.54毫秒。然而,前兩個資料包之後的可用時間為3.85毫秒,這導致在本連線間隔內僅2個傳送資料包。

4.png 

在情景2中,在該連線間隔內,排程器僅需要2.64毫秒就可排程一個數據包,因此在8.75毫秒的連線間隔內可以容納第三個資料包,如圖6所示。如圖所示,相對於案例1,本案例將提供高於50%的吞吐量

5.png 
 

儘管PDU尺寸的選擇會影響吞吐量,但還存在對其產生影響的其他因素,比如,連線間隔和最大傳輸單元(MTU)。

  資料長度的擴充套件可通過任何連線裝置的控制器來觸發。如果兩個裝置都支援資料長度的擴充套件功能,則該裝置可傳送一個獲取更新資料長度的請求,而其他裝置將通過其自己的引數來做出響應。圖7所示為協商程序。


6.png 
 

如果一臺不支援資料長度擴充套件功能的裝置接收到資料長度的更新請求時,將會返回一個未知的回覆。該回復將通知發起請求的裝置另一臺裝置不支援DLE,該裝置將繼續傳輸符合藍芽4.1 PDU尺寸的資料。也就是說,資料長度擴充套件支援向下相容。

  資料長度擴充套件在提高吞吐量的同時,也通過減少射頻活動時間從而有助於降低功耗。這是因為在藍芽4.2中,如果資料尺寸大於27位元組,所需的接收/傳送資料包更少、射頻活動的時間更短)。比如說,需要傳輸 135個位元組,BLE4.1裝置在連線時需要5個傳送/接收資料包來傳輸資料;然而BLE4.2裝置在傳輸相同數量的資料時只需一個傳送/接收資料包。在無線應用中,射頻通訊消耗了大多數的系統電力。使用DLE,射頻通訊活動時間減少,可以顯著延長電池壽命。


緯圖BLE4.2 抓取到的BLE4.2資料長包:
Notification.png 


緯圖推出市場上價效比最高的BLE4.2 SNIFFER: ViewTool Hollong BLE4.2 SNIFFER
http://www.viewtool.com/index.ph ... ong-4-0-4-1-4-2-ble


English:
http://www.viewtool.com/index.ph ... le-sniffer-analyzer


淘寶店:
https://viewtool.taobao.com/


亞馬遜店:
https://www.amazon.com/s/ref=bl_ ... iewTool&node=541966

關注緯圖公眾號【緯圖物聯】