使用BLE 4.2的系統(tǒng)設(shè)計(jì):更快、更安全、更節(jié)能
提到家庭和工業(yè)自動(dòng)化、物聯(lián)網(wǎng)(IoT)、可穿戴設(shè)備、人機(jī)接口設(shè)備(HID)眾多應(yīng)用的無線連接協(xié)議時(shí),藍(lán)牙一定是首選。為滿足各種應(yīng)用的需求,藍(lán)牙技術(shù)聯(lián)盟(SIG)對(duì)藍(lán)牙規(guī)格進(jìn)行了持續(xù)改進(jìn)。發(fā)布4.1版大約一年后, SIG在2014年12月藍(lán)牙發(fā)布了藍(lán)牙規(guī)范4.2版。新的4.2主要包括三項(xiàng)更新 - 低功耗(LE)數(shù)據(jù)長(zhǎng)度擴(kuò)展(DLE)、鏈路層(LL)隱私保護(hù)以及安全性加強(qiáng)。這些功能提高了BLE數(shù)據(jù)帶寬、隱私保護(hù)和安全性,同時(shí)還有助于降低功耗。本系列文章將詳細(xì)討論這些功能以及它們?nèi)绾斡绊懴到y(tǒng)性能。
本文引用地址:http://m.butianyuan.cn/article/201808/385815.htm藍(lán)牙低功耗(BLE)協(xié)議棧可以分成三個(gè)部分:
控制器:協(xié)議棧控制器對(duì)數(shù)據(jù)包進(jìn)行了加密,轉(zhuǎn)換為無線信號(hào)發(fā)送。在接收時(shí),控制器將對(duì)無線信號(hào)解碼,并重構(gòu)數(shù)據(jù)包。
主機(jī):主機(jī)由管理兩個(gè)或多個(gè)設(shè)備相互通信的各種協(xié)議和配置文件(安全管理器、屬性協(xié)議等)組成。
應(yīng)用:可使主機(jī)和控制器實(shí)現(xiàn)一個(gè)特定功能的用例。
鏈路層(LL)
藍(lán)牙4.2的大部分新功能都集中在鏈路層周圍。鏈路層在建立可靠物理鏈路和功能中扮演著非常重要的角色,有助于提高BLE協(xié)議穩(wěn)健性和能效。鏈路層功能包括廣播、掃描、創(chuàng)建和維護(hù)連接以建立物理鏈路。在鏈路層上定義了兩個(gè)角色:主設(shè)備和從設(shè)備。
數(shù)據(jù)長(zhǎng)度擴(kuò)展(DLE)
數(shù)據(jù)長(zhǎng)度擴(kuò)展能夠使兩個(gè)BLE設(shè)備之間的數(shù)據(jù)傳輸更快。為了了解DLE功能,請(qǐng)先讓我們來看看鏈路層上的BLE數(shù)據(jù)包。下圖所示為藍(lán)牙4.0/4.1的鏈路層數(shù)據(jù)包結(jié)構(gòu)。
如果我們仔細(xì)觀察各數(shù)據(jù)包的開銷,將發(fā)現(xiàn)存在1個(gè)字節(jié)的前導(dǎo)、4個(gè)字節(jié)的訪問地址、2個(gè)字節(jié)的數(shù)據(jù)頭、3個(gè)字節(jié)的循環(huán)冗余檢查(CRC)和一個(gè)可選的4個(gè)字節(jié)的消息完整性檢查(MIC)。當(dāng)使用加密時(shí),消息完整性檢查(MIC)將與有效負(fù)載一起發(fā)送。因此,每個(gè)包含27個(gè)字節(jié)數(shù)據(jù)的加密鏈路層數(shù)據(jù)均含有14個(gè)字節(jié)的開銷?,F(xiàn)在,讓我們來看看藍(lán)牙4.2定義的鏈路層數(shù)據(jù)包結(jié)構(gòu)。
相較于舊版本藍(lán)牙規(guī)范的27字節(jié),藍(lán)牙4.2中的有效負(fù)載量可達(dá)到251個(gè)字節(jié)。每個(gè)數(shù)據(jù)包開銷仍然保持不變,即14個(gè)字節(jié)。然而,該開銷現(xiàn)已與多達(dá)251個(gè)字節(jié)相關(guān)聯(lián),而不是27個(gè)字節(jié)。這種最小有效負(fù)載的變化提高了吞吐量并減少了處理時(shí)間。
圖4所示為當(dāng)數(shù)據(jù)需要通過藍(lán)牙4.1和藍(lán)牙4.2從一個(gè)設(shè)備傳輸至另一個(gè)設(shè)備時(shí)的吞吐量。
在上圖中,數(shù)據(jù)包時(shí)間的計(jì)算方法如下:
數(shù)據(jù)包時(shí)間= 8 *(前導(dǎo)字節(jié)的數(shù)量+訪問地址字節(jié)的數(shù)量+頭字節(jié)的數(shù)量+有效負(fù)載字節(jié)的數(shù)量+ MIC字節(jié)的數(shù)量+ CRC字節(jié)的數(shù)量)/數(shù)據(jù)速率 秒
對(duì)于接收數(shù)據(jù)包,不存在有效負(fù)載和MIC字節(jié)。因此,接收數(shù)據(jù)包時(shí)間為:
發(fā)送數(shù)據(jù)包時(shí)間= 8 *(1 + 4 + 2 + 3)/ 106 秒
=80微秒
含27個(gè)字節(jié)的有效負(fù)載的發(fā)送數(shù)據(jù)包時(shí)間為:
發(fā)送數(shù)據(jù)包時(shí)間= 8 *(1 + 4 + 2 + 27 + 4 + 3)/ 106秒
=328微秒
同樣,251個(gè)字節(jié)的有效負(fù)載的發(fā)送數(shù)據(jù)包時(shí)間為2120微秒。
另外,如上圖所示,隨著各發(fā)送/接收數(shù)據(jù)包,存在兩個(gè)相關(guān)的幀間間隔(T_IFS),一個(gè)為發(fā)送期間,一個(gè)為接收期間。如果某個(gè)事務(wù)的幀數(shù)量增加,則該事務(wù)的耗時(shí)也將成比例地增加。當(dāng)數(shù)據(jù)長(zhǎng)度功能被啟用時(shí),相較于藍(lán)牙4.1,藍(lán)牙4.2在一個(gè)幀內(nèi)打包了更多數(shù)據(jù),從而減少了每次事務(wù)處理的總時(shí)間,并增加了吞吐量(其中,吞吐量 =有效負(fù)載尺寸/總時(shí)間)。
如上圖所示,對(duì)于藍(lán)牙4.1鏈路層,最大有效負(fù)載尺寸為27個(gè)字節(jié)(216比特)以及該交易的總時(shí)間為708微秒,意味著約 298 kbps的理論吞吐量。
而對(duì)于4.2鏈路層,最大有效負(fù)載尺寸為251個(gè)字節(jié)(2008比特)以及總時(shí)間為2500微秒,意味著約 784 kbps的理論吞吐量。因此,相較于藍(lán)牙4.1,藍(lán)牙4.2提供了大約2.6倍的更高吞吐量。
BLE 4.2允許主設(shè)備和從設(shè)備之間協(xié)商數(shù)據(jù)長(zhǎng)度,還允許不對(duì)稱的發(fā)送和接收有效負(fù)載量。有效地利用該功能以及選擇合適的接收/發(fā)送數(shù)據(jù)長(zhǎng)度對(duì)于實(shí)現(xiàn)最大吞吐量具有十分重要的意義。
讓我們考慮這樣一個(gè)應(yīng)用:BLE從設(shè)備需要將幾千字節(jié)傳輸至主設(shè)備、從主設(shè)備接收空包并且連接間隔為8.75毫秒。假設(shè)在以下設(shè)置中協(xié)商數(shù)據(jù)長(zhǎng)度(從設(shè)備):
情景1 – 發(fā)送 - 251個(gè)字節(jié),接收 - 251字節(jié)
情景2 – 發(fā)送 - 251個(gè)字節(jié),接收 - 27字節(jié)
在情景1中,如圖5所示,在第一次接收/發(fā)送數(shù)據(jù)包時(shí),接收有效負(fù)載尺寸為0字節(jié)以及發(fā)送有效負(fù)載尺寸為251個(gè)字節(jié),耗時(shí)2.5毫秒(包括幀間間隔)。第二次接收/發(fā)送數(shù)據(jù)包也是一樣的。這兩個(gè)接收/發(fā)送數(shù)據(jù)包共耗時(shí)5毫秒,在此連接間隔內(nèi)剩下3.85毫秒。在理想情況下,應(yīng)該在同一連接間隔內(nèi)存在另一個(gè)接收/發(fā)送數(shù)據(jù)包。但是,主設(shè)備的調(diào)度器不會(huì)在此連接間隔內(nèi)安排另一個(gè)接收/發(fā)送數(shù)據(jù)包。這是因?yàn)檎{(diào)度器會(huì)基于協(xié)商的數(shù)據(jù)長(zhǎng)度(本案例中發(fā)送/接收的數(shù)據(jù)長(zhǎng)度均為251)來檢查發(fā)送/接收數(shù)據(jù)包是否具有足夠的時(shí)間。如圖所示,含有接收和發(fā)送有效負(fù)載量為251字節(jié)的接收和發(fā)送數(shù)據(jù)包需要4.54毫秒。然而,前兩個(gè)數(shù)據(jù)包之后的可用時(shí)間為3.85毫秒,這導(dǎo)致在本連接間隔內(nèi)僅2個(gè)發(fā)送數(shù)據(jù)包。
在情景2中,在該連接間隔內(nèi),調(diào)度器僅需要2.64毫秒就可調(diào)度一個(gè)數(shù)據(jù)包,因此在8.75毫秒的連接間隔內(nèi)可以容納第三個(gè)數(shù)據(jù)包,如圖6所示。如圖所示,相對(duì)于案例1,本案例將提供高于50%的吞吐量。
盡管PDU尺寸的選擇會(huì)影響吞吐量,但還存在對(duì)其產(chǎn)生影響的其他因素,比如,連接間隔和最大傳輸單元(MTU)。
數(shù)據(jù)長(zhǎng)度的擴(kuò)展可通過任何連接設(shè)備的控制器來觸發(fā)。如果兩個(gè)設(shè)備都支持?jǐn)?shù)據(jù)長(zhǎng)度的擴(kuò)展功能,則該設(shè)備可發(fā)送一個(gè)獲取更新數(shù)據(jù)長(zhǎng)度的請(qǐng)求,而其他設(shè)備將通過其自己的參數(shù)來做出響應(yīng)。圖7所示為協(xié)商進(jìn)程。
評(píng)論