網狀網絡是面向智能家居和智能工業應用的低功耗無線技術的一項關鍵要求,因為它克服了范圍限制、簡化了可擴展性并增強了穩健性。不過,設法使用低功耗藍牙技術的設計人員之前一直因缺乏網狀網絡支持而遇到挫折,這種情況直到最近才有所改觀。
由于低功耗藍牙缺乏該項支持,設計人員不得不為智能家居應用選擇 Zigbee 和 Thread 等其他技術,若非如此,低功耗藍牙可能完全適合該項應用,并且受到廣泛支持。(參見 Digi-Key 文章“低功耗無線技術之比較”。)
藍牙 SIG 現在通過引入補充規范藍牙網格網絡 1.0 來彌補此弱點。該規范不需要額外的硬件,可以在所有低功耗藍牙芯片(v4.0、4.1、4.2 和 5)上運行。一些供應商已通過在自己的固件中實施該規范和采用相關開發工具,來支持藍牙網狀網絡 1.0。
不過,在開始采用新規范的網狀網絡設計之前,設計人員應該熟悉藍牙 SIG 的網狀網絡實施與替代技術的不同之處。例如,需要權衡簡易性、功耗和靈活性,因為這些差異會影響設計的選擇和工藝。
本文采用該規范,并為設計人員解釋了藍牙網狀網絡的架構。文中說明了藍牙網狀網絡的操作特性,以及該架構如何支持智能家居和智能照明等應用。最后介紹了一些合適的藍牙網狀網絡設計工具以及輔助的硬件和軟件解決方案。
網狀網絡的優點
低功耗藍牙最初設計為通過將無線技術擴展到具有適中電池容量的外圍設備來補充“傳統”藍牙。外圍設備的示例包括運動傳感器(例如心率帶)和無線控制玩具。每個外圍設備通過獨立通道與中央監控設備(例如智能手機)通信,從而構成星形網絡拓撲。
低功耗藍牙能夠迅速擴展到其他領域,包括照明控制等智能家居應用,部分歸因于它與智能手機的互操作性。在這些類型的應用中,星形網絡的缺點很快暴露無遺。
例如,低功耗藍牙解決方案只能同時處理有限數量的連接(通常為 8 個)。使用單個命令無法控制大于該燈泡數量的照明裝置,因而造成延遲。其次,在大間房屋中,遠距離位置的燈泡可能超出中央控制器的范圍。
在網狀網絡中,消息是通過在連接多個節點的雙向通道中跳躍,從網絡中的一個點中轉到任何其他點,而沒有采用與單獨外圍設備通信的中央設備。通過這種方式,網狀網絡帶來明顯的優勢,因為它允許同時控制數十個連接的設備,克服了范圍限制,并內置了冗余。(圖 1.)
圖 1:網狀網絡拓撲。消息通過在連接多個節點的雙向通道中跳躍,從網絡中的一個點中轉到任何其他點。(圖片來源:Silicon Labs)
藍牙網狀網絡堆棧
自引入低功耗藍牙作為藍牙核心規范 4.0 版的一部分以來,低功耗藍牙已經過 4.1、4.2 和 5 版多次修訂。藍牙 5 引入了范圍、吞吐量、廣播和共存性方面的改善。(參見 Digi-Key 文章“兼容藍牙 4.1、4.2 和 5 的低功耗藍牙 SoC 和工具可應對 IoT 挑戰”。)
作為最新引入的生產版本,我們可能設想藍牙網狀網絡 1.0 僅構成藍牙 5 的升級,但事實并非如此。任何舊式(4.0、4.1、4.5、5)低功耗藍牙芯片都可以通過升級固件進行修改,來運行藍牙網狀網絡,從而讓現場安裝裝置能夠利用新技術。
這種向后兼容性的關鍵在于,藍牙網狀網絡不是低功耗藍牙堆棧的一個組成部分,而是一個包含七層的獨立新實體(圖 2)。
圖 2:藍牙網狀網絡包含補充低功耗藍牙協議的七層堆棧。(圖片來源:藍牙 SIG)
當藍牙網狀網絡節點收到消息時,會通過承載層將消息從底層低功耗藍牙堆棧向上傳遞到網絡層。網絡層應用各種檢查來決定是將消息傳遞到傳輸層還是將其丟棄。
請注意,藍牙網狀網絡規范定義了一個全新的主機層,該主機層與低功耗藍牙主機層共享某些概念但與之不兼容。這與 Zigbee 和 Thread 等競爭技術有些不同,后者從一開始就設計為包括網狀網絡功能(圖 3)。
圖 3:藍牙低功耗協議(深藍色)內的藍牙網狀網絡堆棧(淺藍色)排列。藍牙網狀網絡規范定義了一個全新的主機層,該主機層與低功耗藍牙主機層共享某些概念但與之不兼容。(圖片來源: Nordic Semiconductor)
藍牙網狀網絡節點
藍牙網狀網絡使用四種類型的網絡節點:
中繼節點在網絡中接收和轉發數據包。中繼節點的缺點是它們必須始終保持警醒狀態,這會顯著增加功耗。這對于智能照明等市電供電應用來說不是缺點,但對于融入網絡的開關等非市電供電節點來說則是一個問題。
低功耗節點 (LPN) 具有低功耗藍牙的標準節能特性(即:長時間保持休眠狀態),因此可以通過電池或能量收集長時間運行。每個 LPN 連接到市電供電的 Friend 節點,該節點將保持喚醒狀態并緩存定向至 LPN 的任何消息。當 LPN 進入接收模式(根據預定時間表)時,它會接受緩存的消息,按照指示操作,然后返回節能休眠模式。
代理節點允許不包括藍牙網狀網絡堆棧的設備連接到藍牙網狀網絡。例如,如果消費者希望使用傳統智能手機來控制智能照明網絡,這會非常有用。通過節點和設備的通用屬性配置文件 (GATT) 接口可實現交互(圖 4)。
圖 4:藍牙網狀網絡使用四種節點類型。在此圖像中,除了最左邊的燈泡外,所有燈泡和開關都是市電供電的中繼節點。(圖片來源:Ericsson)
溫度傳感器是電池供電的 LPN,并且周期性地從最左邊燈泡形成的市電供電 Friendship 節點接收消息。智能手機通過使用低功耗藍牙堆棧的 GATT 接口而不是藍牙網狀網絡堆棧形成代理節點。
在新節點參與網狀網絡例程操作之前,必須由調配者進行調配。調配者是一個可訪問網絡中所有節點的受信設備。為新節點分配一個地址,以及網絡和設備密鑰。完成調配后,使用設備密鑰建立安全通道以配置新節點。藍牙網狀網絡可支持多達 32,000 個節點。
藍牙網狀網絡架構
藍牙網狀網絡使用“泛洪”技術在網絡中發送消息。每個數據包都會廣播到網絡中的每個節點,直至到達目標。消息可定向至單個節點、一組節點或所有節點。
使用定義網絡元素(例如,單個房間中的燈)的組地址來定向節點組。此外,該規范還定義了四個固定的組地址:All-proxies、All-friends、All-relay 和 All-nodes,專門用于定向相應的節點類型。(請注意,由于 LPN 依賴于 Friend 節點,因此無法指定專門的地址。)
泛洪式網狀網絡結構和組尋址的選擇,決定了藍牙網狀網絡是否適合智能家居應用。例如,泛洪式網狀網絡允許通過智能燈網絡快速傳播來自開關的“開啟”命令,其中每個節點都會收到該命令并執行相應的操作。目標組中的燈幾乎瞬間亮起。例如,該網絡中的最小延遲遠低于星形網絡的延遲,后者需要中央設備向每個連接的燈發送單獨的命令。
在典型操作中,低功耗藍牙的廣告通道用于通告是否存在藍牙設備,并掃描其他希望通信的設備。一旦設備完成配對,通信就會進入 37 個全帶寬通道之一,從而加快吞吐量。
相比之下,藍牙網狀網絡在節點完成鏈接后不會進入全帶寬通道,而是繼續使用廣告通道來傳輸信息,從而保持了簡單的操作并降低了延遲。
此安排的缺點是降低了網絡帶寬并存在擁堵的風險,因為只有三個吞吐量受限的頻率可以處理所有流量。有兩種機制有助于解決擁堵問題。第一個是“生存時間”(TTL) 計數器,它定義特定數據包可以中繼的次數(典型值為三步)。第二個是數據包緩存,它捕獲已在網狀網絡中完成全流通的數據包,這些數據包在被捕獲時假定無需進一步傳輸。
開發人員還可以使用可選的帶寬保留中繼功能,通過它,節點可以接收但不能傳遞數據包。代價是損失一定的靈活性。
藍牙網狀網絡:模型而不是配置文件
藍牙網狀網絡遵循藍牙技術的架構,使用 GATT 配置文件允許多個用例共享公共信息結構。但在藍牙網狀網絡堆棧中,這些配置文件被稱為模型。
一個模型代表一種特定的行為或服務,并且定義了一組狀態和響應這些狀態的消息。標準模型涵蓋了典型的使用場景,如設備配置、傳感器讀數和燈控制。供應商還可以創建自定義模型。
節點中的模型按元素排列;每個元素充當網狀網絡中具有唯一地址的虛擬實體。每個傳入消息由元素中的一個模型進行處理(圖 5)。
圖 5:每個網絡節點(網狀網絡設備)包含按元素分組的模型。每個元素都有一個唯一地址,元素中的模型用于處理傳入的消息。(圖片來源:Nordic Semiconductor)
模型通過“發布和訂閱”系統相互通信。發布功能會發送消息,節點則配置為訂閱發送到特定地址的消息以進行處理。
在圖 6 中,最左側的燈開關(開關 1)發布消息到廚房組地址。節點燈 1、燈 2 和燈 3 訂閱了此廚房地址,因此接收、處理和響應發布到此地址的消息(例如“開”和“關”命令)。請注意,燈 3 還訂閱了餐廳地址,因此可以從開關 2 和開關 1 進行操作。
圖 6:模型通過發布和訂閱系統相互通信。模型可以訂閱多個發布者。(圖片來源:藍牙 SIG)
(請注意,模型是一個復雜的主題。建議讀者閱讀參考文獻 1,了解本文中概述的詳細信息。)
使用藍牙網狀網絡進行設計
一些低功耗藍牙供應商已經推出了符合標準的藍牙網狀網絡堆棧。由于藍牙網狀網絡是對成熟的低功耗藍牙協議的補充,因此開發人員無需使用新的技術來替換成熟且經過驗證的低功耗藍牙堆棧,便可利用藍牙網狀網格。而且,藍牙網狀網絡固件將該技術的所有功能引入了新設計或現有設計,因而開發人員無需編寫大量新代碼。
例如,Nordic Semiconductor 最近將 nRF5 SDK for Mesh 添加到其開發套件系列中。該軟件開發套件包括精選的驅動程序、庫和范例,設計為在多個集成開發環境 (IDE) 和編譯器(包括 Cmake 和 SEGGER Embedded Studio)上運行。
編譯后的代碼在基于該公司的 nRF52832 芯片的 nRF52 DK 開發套件上運行。
Nordic 的說明文檔詳細介紹了如何開發網狀網絡,其中包含了有關如何編譯藍牙網狀網絡堆棧、如何調配網狀網絡、如何構建網絡以及如何創建新模型的明確說明。
在下面的圖 7 中,使用 nRF5 SDK for Mesh 調配和配置新設備(燈泡)。在此插圖中,燈泡向調配者發出信號,表示正在尋找要加入的網絡。調配者驗證燈泡的信標并邀請它加入網絡。如果驗證成功,則為設備提供必要的密鑰和地址,以便加入網絡并準備配置。下一步,為燈泡提供“家庭自動化”應用密鑰。設置“OnOff 服務器”(用于控制燈泡)的發布狀態,最后添加“燈組”訂閱。
圖 7:使用 Nordic Semiconductor 的 nRF5 SDK for Mesh 調配和配置燈泡。(圖片來源:Nordic Semiconductor)
Silicon Labs 還提供與其 EFR32 Blue Gecko 藍牙入門套件搭配使用的藍牙網狀網絡。該公司建議購買三個或四個套件來構建原型網狀網絡。該套件基于該公司的 EFR32MG1 低功耗藍牙 SoC。除硬件外,開發人員還需要藍牙 SDK 和藍牙網狀網絡 SDK,這些 SDK 均可從公司網站下載。
需要 Simplicity Studio IDE 來建立和運行 Silicon Labs 的藍牙網狀網絡技術。開發工具包括預編譯的演示、應用說明和示例。可使用 Android 應用程序從智能手機應用程序調配、配置和控制藍牙網狀網絡節點。
STMicroelectronics 采用與 Nordic Semiconductor 和 Silicon Labs 類似的方法,使用 SDK 來基于該公司的 BlueNRG-2 低功耗藍牙 SoC 開發網絡設備。
總結
藍牙網狀網絡為低功耗藍牙引入網狀網絡功能,因而無需為智能家居應用使用專有網狀網絡固件。
該技術會犧牲一定的簡易性,略微提高功耗和某些靈活性。其關鍵的優勢在于,該技術與所有低功耗藍牙芯片而不僅是最新的藍牙 5 產品兼容。
低功耗藍牙芯片供應商已開始推出藍牙網狀網絡軟件開發套件,以補充其成熟的硬件和協議固件產品。
本文的第 2 部分將詳細介紹如何使用現成的硬件、固件和開發套件,將藍牙網狀網絡集成到低功耗藍牙中。
參考
“藍牙網狀網絡/開發人員簡介”,藍牙 SIG,2017 年 8 月。
評論
查看更多