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