使用藍牙網狀網路設計低功耗藍牙智慧應用 - 第 1 部
資料提供者:DigiKey 北美編輯群
2018-03-21
編者說明:本系列文章分為兩部分,第 1 部詳細說明了藍牙網狀網路 1.0 協定的架構與功能。本協定已被引用作為低功耗藍牙韌體的補強堆疊,並且首次將開放標準的網狀網路連線用於低功耗藍牙。此外,本文詳細說明藍牙網狀網路的優點與弱點,幫助設計者與其他低功耗無線技術替代方案進行比較,決定此技術是否適合其無線應用。第 2 部將說明如何使用 DigiKey 供應商所提供的 IC 與開發套件,將藍牙網狀網路整合入低功耗藍牙設計當中。
網狀網路連線是針對智慧家庭與智慧工業應用所預備的低功耗無線技術的一項關鍵要求,因為此技術克服了範圍上的限制、可方便擴充並且內建干擾抗力。然而,之前想要使用低功耗藍牙的設計師都因爲該技術缺乏網狀網路連線的支援而倍受挫折。
缺乏支援的情況迫使設計人員於智慧家庭應用中必須選擇其他技術 (如 Zigbee 與 Thread),即便低功耗藍牙可能更加合適且廣受支援。(請參閱 DigiKey 文章「比較低功耗無線技術」)。
藍牙技術聯盟現已藉由引入補充規格 (即藍牙網狀網路 1.0) 因應此弱點。此規格並不要求額外的硬體,而且可以在所有的低功耗藍牙晶片 (v4.0、4.1、4.2、5) 上執行。某些廠商已經使用該規格的自有韌體實作,以及相關開發工具,支援藍牙網狀網路 1.0。
然而,在採用新規格開始網狀網路設計之前,設計人員應當先熟悉藍牙技術聯盟的網狀網路實作與其他替代技術的相異之處。比如說,有關簡易性、功耗與彈性等方面的取捨,因為此差異會影響設計的選擇與流程。
本文以規格為例,為設計人員說明藍牙網狀網路架構。本文將說明此規格的操作特性,以及如何支援諸如智慧照明的智慧家庭與應用。文末將介紹一些合適的藍牙網狀網路設計工具,以及支援的軟硬體解決方案。
網狀網路連線的優點
低功耗藍牙起初的設計是要以中度電池蓄電量,將無線技術延用至周邊裝置,以補強「古典」藍牙技術。此類週邊裝置包括運動感測器 (如心率帶) 或無線控制玩具。每一個周邊裝置透過獨立的通道與中央監測裝置 (如智慧型手機) 進行通訊,共同形成星狀網路拓撲。
低功耗藍牙技術與智慧型手機具備互運性等優點,因此可快速擴充至其他應用領域,包含燈光控制等智慧家庭應用。此類應用中,星狀網路的缺點很快就顯現。
例如低功耗藍牙解決方案只能同時處理有限的連線數 (通常是八個)。照明安裝設備的燈泡數量若超過該數量,就無法使用單一指令控制,如此就會導致延遲。再者,在一個大屋子中,位於遠端的燈泡可能會超出中央控制器的控制範圍。
在網狀網路中,訊息不會透過中央裝置與個別周邊裝置進行通訊,而是在連接多個節點的雙向通道內跳躍,從網路的單點傳送到其他點。此方式為網狀網路連線帶來了顯著的優勢:可以允許同時對數十個連接的裝置進行控制、克服範圍限制,並且內建備援。(圖 1)
圖 1:網狀網路拓撲。訊息在連接多個節點的雙向通道內跳躍,從網路的單點傳送到其他點。(圖片來源:Silicon Labs)
藍牙網狀網路堆疊
低功耗藍牙成為藍牙核心規格 4.0 版的一部分之後,已歷經 4.1、4.2 與 5 版幾次的改版。藍牙 5 在範圍、傳輸量、廣播與共存性上均有所提升。(請參閱 DigiKey 文章《克服物聯網挑戰的藍牙 4.1、4.2、5 相容低功耗藍牙 SoC 與工具》。)
作為最新引入的生產版本,我們可能假設藍牙網狀網路 1.0 僅可用於藍牙 5 的升級,但事實並非如此。任何舊款 (4.0、4.1、4.2、5) 的低功耗藍牙晶片都能夠進行修改,透過韌體升級即可執行藍牙網狀網路,因而允許現場安裝裝置使用新科技的優點。
此種向下相容的關鍵在於,藍牙網狀網路並非低功耗藍牙堆疊不可分割的一部分,相反的,它是一個包含七層堆疊的獨立新實體 (圖 2)。
圖 2:藍牙網狀網路包含一個七層的堆疊,可補強低功耗藍牙協定。(圖片來源:藍牙技術聯盟)
當藍牙網狀網路節點接收到一則訊息,便會透過承載層,將該訊息從底層的低功耗藍牙堆疊,向上傳送到網路層。網路層會進行不同的檢查,以決定將該訊息轉至傳輸層還是予以拋棄。
請注意,藍牙網狀網路規格定義了一個全新的主機層,此層與低功耗藍牙主機層具有一些相同的概念,但卻不與其相容。這與其他競爭的技術 (如 Zigbee 與 Thread) 有些不同,因為這些技術在設計初期就已包含網狀網路連線能力 (圖 3)。
圖 3:在低功耗藍牙協定 (深藍) 內配置藍牙網狀網路堆疊 (淺藍)。藍牙網狀網路規格定義了一個全新的主機層,此層與低功耗藍牙主機層具有一些相同的概念,但卻不與其相容。(圖片來源:Nordic Semiconductor)
藍牙網狀網路節點
藍牙網狀網路使用四種類型的網路節點:
轉送節點在網路上接收並轉送封包。轉送節點的缺點是它們必須隨時保持警戒,這樣會大幅增加功耗。對於主電源供電的應用 (如智慧照明) 這不算是一項缺點,但是對於非主電源供電的節點 (如併入網路中的交換器),這是一個問題。
低功耗節點 (LPN) 採用低功耗藍牙標準的省電特性 (即長時間保持在休眠狀態),所以能夠使用電池或能源採集進行長時間運作。每個低功耗節點被連接至主電源供電的朋友節點 (Friend Node),此節點將保持喚醒狀態並且快取任何傳向低功耗節點的訊息。當低功耗節點進入接收模式 (依據預先決定的時程),即接受快取的訊息,然後按指示操作,並且回到省電的休眠模式。
代理節點允許不包含藍牙網狀網路堆疊的裝置連接至藍牙網狀網路網路。例如,當消費者希望使用舊款智慧型手機控制智慧照明網路時,這就相當實用了。可透過節點與裝置的泛型屬性設定檔 (GATT) 介面達成此互動 (圖 4)。
圖 4:藍牙網狀網路使用四種類型的節點。在此圖片中,除了最左方的燈泡之外,所有其他燈泡與開關都是主電源供電的轉送節點。(圖片來源:Ericsson)
溫度感測器是電池供電的低功耗節點,並且會定期接收來自由最左方燈泡形成的主電源供電之朋友節點的訊息。智慧型手機使用低功耗藍牙堆疊的 GATT 介面 (而非藍牙網狀網路堆疊) 形成了一個代理節點。
在新的節點可以參與例行網狀網路運作前,必須由佈建者 (Provisioner) 進行佈建 (provision)。佈建者是一個受信任的元件,可存取網路中的所有節點。新節點被指定一個新位址,以及網路與裝置的金鑰。佈建之後,裝置金鑰用來建立安全通道以配置新的節點。藍牙網狀網路最多可支援 32,000 個節點。
藍牙網狀網路架構
藍牙網狀網路使用一種稱為「泛洪」(flooding) 的技術在網路上傳送訊息。每個封包都被廣播到網路中的每個節點,直到到達目標為止。一則訊息的目標可以是單一節點、一群節點,或是所有節點。
節點群組是以群組位址作為其標的,該位址定義網路的一個要素,如一間房間裡的多個燈光。此外,該規格還定義了四個「固定群組位址」:「全代理」、「全朋友」、「全轉送」及「全節點」,以針對特定的節點類型。(請注意,無法為低功耗節點特別指定位址,因為它們要倚賴「朋友節點」。)
泛洪網狀架構與群組位址指定的選定,可確定藍牙網狀網路是否適用智慧家庭應用。比如說,泛洪網狀可允許一個來自開關的「ON」指令透過智慧燈光網路快速傳遞,使每個節點都接收到該指令並執行相應動作。目標群組內的燈光幾乎立即開啟。舉例說,該網路中的最小延遲遠低於星狀網路的延遲;在星狀網路中,中央裝置必須傳送個別指令至每一個連接的燈光。
在典型作業中,低功耗藍牙的廣告通道是用來廣告藍牙裝置的存在,並且掃描其他想要進行通訊的裝置。一旦這些裝置完成配對,通訊將移動至 37 個全頻寬通道之一,以加速傳輸量。
相對之下,藍牙網狀網路在節點完成連結後,不會移動至全頻寬通道,而是繼續地採用廣播通道來傳輸資訊,因此將工作變得更為簡單並且降低了延遲。
這種安排的缺點是會降低網路頻寬,並且有擁塞的風險,因為僅有三個傳輸量受限的頻率處理所有流量。有兩個機制能處理此擁塞的情況。第一個是「存活時間」(TTL) 計數器,此計數器定義特定封包可以被轉送的次數 (典型值是 3 步)。第二個是封包快取,此機制可擷取已完全環繞網狀網路流通的封包,這些封包於擷取時已假定不需要繼續傳輸。
開發者也可以選用頻寬保存轉送功能,節點可以藉此功能接收封包,但不進行傳遞。代價為失去彈性。
藍牙網狀網路:模型取代設定檔
藍牙網狀網路使用 GATT 設定檔以遵循藍牙技術的架構,GATT 設定檔可允許多個使用案例分享共同的資訊結構。但是在藍牙網狀網路堆疊中,這些設定檔被稱為模型。
模型代表一個特定行為或服務,並且定義一組狀態與依據狀態執行動作的訊息。標準模型包含典型的使用情境,如元件配置、感測器讀取及燈光控制。廠商也可以建立自訂模型。
節點內的模型以要素進行配置;每個要素作為網狀網路中的一個虛擬實體,且具備獨特位址。每則傳進來的訊息由要素中的模型處理 (圖 5)。
圖 5:每個網路節點 (網狀網路元件) 包含按要素分組的模型。每個元件有獨特位址,要素內的模型會處理傳送進來的訊息。(圖片來源:Nordic Semiconductor)
模型透過「發佈及訂閱」系統彼此通訊。發佈動作傳送訊息,節點則設定爲訂閱傳送至特定位址進行處理的訊息。
在圖 6 中,最左方的燈光開關 (開關 1) 向「廚房」群組位址發佈訊息。燈光 1、燈光 2、燈光 3 等節點訂閱「廚房」位址,並因此接收、處理訊息並依據發佈到此位址的訊息 (如「開」與「關」指令) 執行動作。請注意,燈光 3 還訂閱了「餐廳」位址,因此它可以透過開關 2 及開關 1 操作。
圖 6:模型透過「發佈及訂閱」系統彼此通訊。一個模型可以訂閱一個以上的發佈者。(圖片來源:藍牙技術聯盟)
(請注意,「模型」是一個複雜的主題。讀者如需獲得本文綜整資料以外的詳情,建議閱讀參考文獻 1。)
使用藍牙網狀網路進行設計
有些低功耗藍牙廠商已經引入與標準相容的藍牙網狀網路堆疊。由於藍牙網狀網路可補強成熟的低功耗藍牙協定,所以開發者沒有必要為了要利用藍牙網狀網路的優點,而以新的技術取代成熟而且已獲證實的低功耗藍牙堆疊。而且開發者無須為撰寫許多新程式碼,藍牙網狀網路韌體可將此技術的所有功能帶入全新及現有的設計中。
比如說,Nordic Semiconductor 最近已經將 nRF5 SDK for Mesh 新增至其開發套件系列中。此軟體開發套件包括精選的驅動程式、程式庫與範例,而且是為了在幾種整合的開發環境 (IDE) 及編譯器 (含 CMake 與 SEGGER Embedded Studio) 中執行而設計。
經過編譯的程式碼在該公司依據其 nRF52832 矽晶為架構的 nRF52 DK 開發套件上執行。
Nordic 的文件詳細說明了如何開發網狀網路,其中包含了關於如何編譯藍牙網狀網路堆疊、佈建網狀、建立網路,以及建立新模型的明確說明。
下圖 7 中,展示如何使用 nRF5 SDK for Mesh 佈建並設定一個新的裝置 (燈泡)。在本圖中,燈泡向佈建者發出訊號,表示正在尋找一個網路加入。佈建者確認燈泡的信標並且邀請它加入網路。如果驗證成功,該裝置就會獲得必要的金鑰與位址,以加入網路並預備進行配置。接下來,該燈泡獲得「家庭自動化」應用金鑰。接著設定用來控制燈泡的「開關伺服器」發佈狀態,最後新增「燈泡群組」的訂閱。
圖 7:使用 Nordic Semiconductor 的 nRF5 SDK for Mesh 在網狀網路中佈建與配置燈泡。(圖片來源:Nordic Semiconductor)
Silicon Labs 還透過其 EFR32 Blue Gecko 藍牙入門套件提供藍牙網狀網路。該公司建議購買三個到四個套件以建造一個網狀網路原型。這些套件是依據該公司的 EFR32MG1 低功耗藍牙 SoC 製作。除了硬體之外,開發者還需要藍牙 SDK 及藍牙網狀網路 SDK,兩者均可從該公司網站下載。
如需要啟用 Silicon Labs 的藍牙網狀網路技術,必須使用 Simplicity Studio IDE。開發工具包含預先編譯的展示、應用說明與相關範例。可採用 Android 應用程式透過智慧型手機佈建、配置並控制藍牙網狀網路節點。
STMicroelectronics 採用與 Nordic Semiconductor 及 Silicon Labs 類似的方式,使用 SDK 支援基於該公司的 BlueNRG-2 低功耗藍牙 SoC 開發網路連線的元件。
結論
藍牙網狀網路賦予低功耗藍牙網狀網路連線功能,因而無需在智慧家庭應用中使用自行研發的網狀韌體。
本技術雖帶來簡易性,但功耗稍微增加且損失了一些彈性。其關鍵優勢在於,該技術與所有低功耗藍牙晶片相容,而不只是最新的藍牙 5 產品。
低功耗藍牙晶片廠商已經開始引入藍牙網狀網路軟體開發套件,以補強其已成熟的硬體與協定韌體產品。
本文章的第 2 部將詳細探討如何使用現成的硬體、韌體及開發套件,將藍牙網狀網路整合至低功耗藍牙中。
參考資料
- 《藍牙網狀網路網路連線/開發者簡介》,藍牙技術聯盟,2017 年 8 月。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。