藍牙mesh網絡基本概念
各位朋友及藍牙愛好者們,本周推送的這篇文章是解密藍牙mesh系列第三篇,同時也是藍牙mesh網絡基本概念的部分,請開始你的閱讀
無論您想采用智能照明、溫控和安全系統讓家庭和辦公室變得更加智能,還是想提高工業無線傳感器網絡(IWSN)的效率,藍牙mesh網絡都能為您與環境的交互開啟全新的機遇。
藍牙mesh網絡為創建大型設備網絡奠定了基礎,讓成千上萬的無線設備彼此之間可靠安全地進行通信。本文將深入探究這一創新網絡拓撲背后的基本概念。
節點(Node)
想象一下由數千臺設備組成的網絡,每臺設備均通過低功耗藍牙(LE)無線連接進行通信。藍牙mesh網絡中的這些設備被稱為節點 (node) 。
每個節點都能發送和接收消息。信息能夠在節點之間被中繼,從而讓消息傳輸至比無線電波正常傳輸距離更遠的位置。這樣的節點網絡(圖1)可以被分布在制造工廠、辦公樓、購物中心、商業園區(圖2)以及更多環境中。

圖 1 – mesh網絡中的節點

圖2 - 制造工廠、辦公樓、商業園區等的節點
藍牙mesh節點非常多樣化,有助于在mesh網絡中實現多重功能。照明器具、機械設備、安防攝像機、煙霧探測器和環境傳感器僅僅是節點能實現的幾個例子。
元素(Elements)
一些節點(如傳感器)的電池有可能會被耗盡,而其他節點(如照明設備、制造機械和安防攝像機)則會通過主電網來獲取電力。一些節點的處理能力會高于其他節點。這些節點在mesh網絡中可承擔更為復雜的任務,扮演不同的角色,表現出以下四個節點特征(Features)
低功耗 (Low-Power) 特性
功率受限的節點可能會利用低功耗特性來減少無線電接通時間并節省功耗。同時低功耗節點(LPN)可以與friend節點協同工作。
Friend 特性
功率不受限的節點很適合作為friend節點。Friend 節點能夠存儲發往低功耗節點(LPN)的消息和安全更新;當低功耗節點需要時再將存儲的信息傳輸至低功耗節點。
中繼 (Relay) 特性
中繼節點能夠接收和轉發消息,通過消息在節點之間的中繼,實現更大規模的網絡。節點是否能夠具備這一特性取決于其電源和計算能力。
代理 (Proxy) 特性
代理節點能夠實現GATT和藍牙mesh節點之間的mesh消息發送與接收。承擔這一角色的節點需要固定的電源和計算資源。
一些節點的復雜性高于其他節點,由多個稱為元素(Element)的獨立部分組成。每個節點至少擁有一個元素,稱為主元素Primary Element
同時還可能包含其他多個元素(圖3)。元素由定義節點功能和元素條件的實體組成。例如,一個燈泡內有一個元素, 并具有兩種功能:
●節點 = 燈泡
●一個元素 = 主元素
●節點功能
- 開/關
- 亮/度
●元素條件/狀態
- “開”或“關”
- 0 – 10 (亮度等級)

圖 3 –節點必須至少有一個元素,也可能包含多個元素
節點中的每個元素都有一個的地址,稱為單播地址(unicast address),使每個元素都有址可尋。我們將在后續的解密藍牙mesh系列文章中進一步解釋“尋址”。
模型 (Model) 和狀態 (State)
無論節點位于制造廠房、酒店、辦公樓、還是商業園區的網絡中,節點的基本功能都由模型 (Model) 來定義和實施。模型位于元素內,元素必須具有至少一個模型(圖4A)。模型能夠定義并實施節點的功能和行為,而狀態 (State) 能夠定義元素的條件(圖4B)。

圖4A - 節點、元素與模型

圖4B - 節點、元素、模型以及狀態之間的關系
以燈泡為例,該模型的功能是開關和調節亮度。相關的狀態分別為“開”/ “關”和0-10
●模型 (節點功能)
1. 開/關
狀態 -> “開”或“關”
2. 亮度 (0-10)
狀態 -> 0-10
藍牙mesh支持復合狀態,即由兩個或多個值組成的狀態。變色燈就是這樣的一個例子,色調可以不受顏色飽和度或亮度的局限而改變。
綁定狀態” (Bound State) 這一術語的定義源自一種狀態的變化導致另一狀態變化的情況。級別狀態和開/關狀態通常就相互綁定。如果級別從0變為1,則“開/關”的狀態也從“關”變為“開”。
每個模型都有的標識符。藍牙技術聯盟采用16位的模型,而供應商采用32位(其中包含藍牙技術聯盟的16位公司標識符以及16位供應商的模型標識符)。這確保了每個模型的地址都并且能確定被尋址到。
藍牙mesh網絡可借助消息,通過客戶端 - 服務器架構進行通信。服務器的功能是暴露元素的狀態。的狀態之一是二進制開關,其中狀態為“開”或“關”。簡單的服務器模型是通用開/關服務器模型 (Generic On/Off Server Model) ,其中包含表示開關開啟或關閉的狀態。
客戶端可對狀態進行訪問,請求、更改或使用服務器的狀態。舉例來說,一個簡單的客戶端模型就是通用開/關客戶端模型(Generic On/Off Client Model)(二進制開關)。通用開/關客戶端模型通過發送消息來控制通用開/關服務器模型。例如,客戶端可利用這一機制開啟或關閉指示燈。
這種客戶端 - 服務器架構產生了三種類型的模型:
服務器模型 (Server Model)
●由至少一個或多個狀態跨越一個或多個元素的狀態組成
●定義模型能夠發送/接收的消息,并根據這些消息定義元素的行為
實例:
●開/關切換——可以暴露開關狀態
●傳感器——可以暴露傳感器的狀態(可能為溫度值或傳感器測量的“滿”、“待充”或“空”的結果)
●功率級別——可以暴露電源狀態(等級1-10)
客戶端模型(Client Model)
定義客戶端為請求、更改或使用服務器相應狀態所使用的消息。
實例:
●開/關切換——客戶端發送打開或關閉的消息
●電源級別——定義電源狀態的消息(0-10)
控制模型 (Control Model)
●控制模型具有多種功能,同時可能包含一個或多個:
●客戶端模型 (Server Model)
●服務器模型 (Client Model)
●控制邏輯(規則和行為)用于協調與其相連模型之間的交互。
●實例:控制模型可用在支持機器周圍循環的液體冷卻劑水泵上。
●應用場景——溫度傳感器會記錄機器的溫度。如果機器超過設定的溫度,冷卻泵則會被打開。
冷卻泵的控制模塊 (Control Module)
●與溫度傳感器相連的客戶端(用于接受溫度值)
●連接到開/關切換的服務器(用于打開或關閉水泵)
●控制邏輯(規則和行為)— 負責定義如果溫度傳感器超過設定值,則打開水泵。
模型的定義能讓您在mesh網絡中對節點及其功能進行配置。模型定義以及其他模型的概念將會在后續文章中進一步詳細介紹。