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