低功耗藍牙
低功耗藍牙(Bluetooth Low Energy)是一項相當成功的無線技術(shù)。如今已經(jīng)很難找到不支持低功耗藍牙的智能手機或平板電腦了??梢哉f它是可穿戴技術(shù)興起的關(guān)鍵因素。在醫(yī)療設(shè)備、智能家居設(shè)備、傳感器等很多設(shè)備中,低功耗藍牙的身影隨處可見。
目前有數(shù)十億支持低功耗藍牙的設(shè)備已投入使用。那么,這些設(shè)備都能成為藍牙m(xù)esh網(wǎng)絡(luò)的一員嗎?這也是本文將會回答的問題。知道你已經(jīng)迫不及待,早想對著電腦屏幕、平板電腦或手機大喊“天吶,快告訴我吧!”, 我就不賣關(guān)子啦:
答案就是YES。
低功耗藍牙設(shè)備只要具有正確的低功耗藍牙功能和一些附加軟件,就能加入藍牙m(xù)esh網(wǎng)絡(luò)中。以智能手機為例,可能只需要一個可以與藍牙m(xù)esh網(wǎng)絡(luò)對話的普通應(yīng)用程序(App)就足夠了。換句話說,這是任何開發(fā)者都能編寫的應(yīng)用程序。
未來充滿無限可能性,現(xiàn)在就讓我們一探究竟吧!
承載層(bearer layer)
要了解非mesh低功耗藍牙設(shè)備如何成為藍牙m(xù)esh網(wǎng)絡(luò)的一員,我們需要回顧一下藍牙m(xù)esh協(xié)議棧(見 )。
藍牙m(xù)esh網(wǎng)絡(luò)采用低功耗藍牙作為其射頻通信協(xié)議棧。而具體如何使用,則是藍牙m(xù)esh網(wǎng)絡(luò)協(xié)議棧最底層的承載層需要負責的工作。
目前定義了兩個承載層:廣播承載層 (advertising bearer)和GATT承載層 (GATT bearer)。藍牙m(xù)esh網(wǎng)絡(luò)設(shè)備默認使用的是廣播承載層,它負責在低功耗藍牙廣播數(shù)據(jù)包內(nèi)收發(fā)藍牙m(xù)esh數(shù)據(jù)包。
具有低功耗藍牙協(xié)議棧、能夠進行廣播和掃描的設(shè)備具有基本的、必備的低功耗特性,因此能夠支持廣播承載層、乃至完整的藍牙m(xù)esh網(wǎng)絡(luò)協(xié)議棧。
既不支持也無法升級使用廣播承載層的設(shè)備,則必須使用GATT承載層。使用GATT承載層時需要將藍牙m(xù)esh協(xié)議數(shù)據(jù)單元(PDU)封裝在代理協(xié)議(Proxy Protocol)中,我們將在下文中對此進行詳細介紹。
節(jié)點與特性
成為藍牙m(xù)esh網(wǎng)絡(luò)中一員的設(shè)備被稱為節(jié)點(Node)。很多種產(chǎn)品類型都能夠成為節(jié)點:照明燈、燈具開關(guān)、溫控器、窗鎖、占用傳感器等。然而,無論產(chǎn)品類型如何,節(jié)點都可能提供某些超出其產(chǎn)品本身功能的特定藍牙m(xù)esh網(wǎng)絡(luò)服務(wù)。
藍牙m(xù)esh規(guī)格定義了節(jié)點可能擁有的特性。具有這些特性中的一個或多個,即表示節(jié)點可以在網(wǎng)絡(luò)中扮演相應(yīng)的特殊角色。定義的特性包括:
代理節(jié)點(Proxy Node)
非mesh低功耗藍牙設(shè)備成為藍牙m(xù)esh網(wǎng)絡(luò)成員的過程中,代理節(jié)點是關(guān)鍵。代理節(jié)點的根本目的是執(zhí)行承載層轉(zhuǎn)換。它能夠?qū)崿F(xiàn)從廣播承載層到GATT承載層的轉(zhuǎn)換,反之亦然。因此,不支持廣播承載層的設(shè)備可通過GATT連接來收發(fā)各類藍牙m(xù)esh消息。
節(jié)點可通過在特性字段中設(shè)置代理特性位(proxy feature bit),來表示自身可用作代理節(jié)點。特性字段是所有節(jié)點都具有的成分數(shù)據(jù)狀態(tài)的一部分。
藍牙m(xù)esh代理服務(wù)
代理節(jié)點(Proxy Node)可實施稱為mesh代理服務(wù)的GATT服務(wù),即本文中的“代理服務(wù)器(Proxy Server)”。mesh代理服務(wù)包含兩個GATT特性:mesh代理數(shù)據(jù)輸入和mesh代理數(shù)據(jù)輸出。代理客戶端(Proxy Client) 使用“GATT Write Without Response”子程序,將代理協(xié)議(見下圖)PDU寫入mesh代理數(shù)據(jù)輸入特性,并從GATT通知中的mesh代理數(shù)據(jù)輸出特性接收代理協(xié)議PDU。這就是互聯(lián)GATT設(shè)備通過代理節(jié)點在藍牙m(xù)esh網(wǎng)絡(luò)中進行數(shù)據(jù)交換的機制。
發(fā)現(xiàn)代理節(jié)點
低功耗藍牙設(shè)備使用GAP廣播來幫助其他設(shè)備發(fā)現(xiàn)自己。藍牙m(xù)esh代理節(jié)點使用完全相同的技術(shù),即通過“GAP可連接型廣播(connectable advertising)數(shù)據(jù)包”,對自身的可用性、可作為代理節(jié)點的角色、及其身份進行廣播。
GAP廣播數(shù)據(jù)包中包含各類字段,稱為廣播類型(AD Type)。核心規(guī)格附錄中對廣播類型進行了定義。代理節(jié)點會在廣播數(shù)據(jù)包中包含以下字段:
服務(wù)數(shù)據(jù)廣播類型的內(nèi)容還需經(jīng)過進一步檢查。
網(wǎng)絡(luò)ID是從網(wǎng)絡(luò)密鑰(NetKey – 參照《解密藍牙m(xù)esh系列 | 第六篇》)派生而來的唯一公共標識符。節(jié)點標識由代理服務(wù)器節(jié)點的單播地址和網(wǎng)絡(luò)標識符的組合派生而來,例如啟用該標識的子網(wǎng)的網(wǎng)絡(luò)ID。
如果代理服務(wù)器是多個子網(wǎng)的成員,則它將對包含每個子網(wǎng)的網(wǎng)絡(luò)ID廣播數(shù)據(jù)包進行交替操作,每次處理一個廣播數(shù)據(jù)包。
節(jié)點標識廣播的主要用途是將啟動配置設(shè)備(Provisioner)快速連接至剛剛完成啟動配置的節(jié)點,從而完成新節(jié)點的配置。
代理協(xié)議
代理客戶端和代理服務(wù)器使用代理協(xié)議進行通信,并向?qū)Ψ桨l(fā)送代理PDU。這些PDU就像是存放各類藍牙m(xù)esh PDU的容器。
藍牙m(xù)esh接入消息使用核心藍牙m(xù)esh協(xié)議棧,因此消息包含在網(wǎng)絡(luò)PDU內(nèi)。網(wǎng)絡(luò)PDU可被封裝在代理PDU中。
藍牙m(xù)esh配置文件規(guī)格中定義了各種Beacon,包括未經(jīng)啟動配置的設(shè)備Beacon、以及安全網(wǎng)絡(luò)Beacon??赏ㄟ^代理協(xié)議將藍牙m(xù)esh Beacon納入網(wǎng)絡(luò)。
啟動配置過程涉及其自身協(xié)議,且啟動配置PDU也可在代理PDU內(nèi)進行交換。
最后,代理客戶端和代理服務(wù)器可以交換特殊的代理配置消息,這些消息也可被封裝于代理PDU中。
大多數(shù)類型的mesh數(shù)據(jù)可使用代理協(xié)議進行交換,因此可通過連接至代理節(jié)點的GATT客戶端進行收發(fā)。
不同設(shè)備代理PDU的大小各異,PDU的大小是根據(jù)低功耗藍牙屬性協(xié)議(ATT)的最大傳輸單元(MTU)進行動態(tài)設(shè)置的,這是通過GATT連接來傳輸代理PDU的基礎(chǔ)。此外,代理協(xié)議可以將完整的藍牙m(xù)esh消息封裝在代理PDU或多段消息的各個段中,借此來容納較長的藍牙m(xù)esh消息。
需要注意的一點是,任何藍牙m(xù)esh節(jié)點(而非只有代理節(jié)點)都可以實施代理協(xié)議,從而支持基于GATT連接的直接交互。這在啟動配置(provisioning)場景中非常有用。
關(guān)于代理協(xié)議的更多信息,包括代理PDU的格式,可參考藍牙m(xù)esh配置文件規(guī)格: 。
代理過濾器和代理配置
代理客戶端可通過對代理服務(wù)器所應(yīng)用的過濾器進行配置,對接收到的網(wǎng)絡(luò)流量進行精確的控制。過濾器采用白名單和黑名單的形式,同時這些名單會指定各自的目標地址列表。列表中的地址可能是其所支持的地址類型的任意組合,即單播、群組或虛擬地址。如果消息的目標地址未包含在白名單過濾器中,則消息會被代理服務(wù)器的代理過濾器(Proxy Filter)濾掉。同樣,如果消息的目的地包含在黑名單過濾器中,也會被濾過。
代理配置(Proxy Configuration)消息在代理客戶端和代理服務(wù)器之間進行交換,并實現(xiàn)代理過濾器的配置。
使用低功耗藍牙智能手機或平板電腦啟動配置
通常使用智能手機或平板電腦執(zhí)行啟動配置流程,以將新設(shè)備添加至藍牙m(xù)esh網(wǎng)絡(luò)。大多數(shù)此類設(shè)備不會實施完整的藍牙m(xù)esh網(wǎng)絡(luò)協(xié)議棧,而且與藍牙m(xù)esh網(wǎng)絡(luò)進行的所有交互(包括啟動配置)都很可能會使用代理協(xié)議。如前所述,啟動配置PDU可被封裝于代理PDU中,因此可通過代理服務(wù)器節(jié)點、利用GATT連接進行交換。藍牙m(xù)esh配置文件規(guī)格中將采用代理協(xié)議的啟動配置協(xié)議稱為PB-GATT。
在上期中介紹了啟動配置流程,本系列后續(xù)文章中將進一步深挖有關(guān)啟動配置安全性的細節(jié)問題。
借助代理節(jié)點使用代理協(xié)議時需要注意什么?
智能手機等設(shè)備要想通過代理節(jié)點、借助代理協(xié)議與藍牙m(xù)esh網(wǎng)絡(luò)通信,則必須掃描并連接至代理節(jié)點。換句話說,它必須支持GAP中央設(shè)備的角色。
此外,必須首先對智能手機進行啟動配置。如果未經(jīng)啟動配置,任何設(shè)備都無法與藍牙m(xù)esh網(wǎng)絡(luò)中的節(jié)點進行交互。
結(jié)論
通過GATT、代理協(xié)議和藍牙m(xù)esh代理節(jié)點對當前市場上的低功耗藍牙設(shè)備提供支持,這絕對值得上新聞頭條了!它為人們手中已有的海量設(shè)備打開了通往藍牙m(xù)esh網(wǎng)絡(luò)世界的大門,光是想想就覺得令人興奮了呢!你也有同感嗎?留言告訴我吧~
-
無線技術(shù)
+關(guān)注
關(guān)注
13文章
894瀏覽量
55063 -
低功耗藍牙
+關(guān)注
關(guān)注
1文章
227瀏覽量
21459 -
藍牙m(xù)esh
+關(guān)注
關(guān)注
10文章
62瀏覽量
15616
發(fā)布評論請先 登錄
相關(guān)推薦
評論