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