藍牙Mesh協議的基本概念及發展前景
藍牙Mesh協議的基本概念及發展前景
Mesh網絡中每個設備節點都能發送和接收信息,只要有一個設備連上網關,信息就能夠在節點之間被中繼,從而讓消息傳輸至比無線電波正常傳輸距離更遠的位置。這樣,Mesh網絡就可以分佈在製造工廠、辦公樓、購物中心、商業園區以及更廣的場景中,為照明設備、工業自動化設備、安防攝像機、煙霧探測器和環境傳感器提供更穩定的控制方案。
Part 01、發展歷史
藍牙技術開始於愛立信在1994年創制的方案,該方案旨在研究移動電話和其他配件間進行低功耗、低成本無線通信連接的方法。發明者希望為設備間的無線通訊創造一組統一規則(標準化協議),以解決用戶間互不兼容的移動電子設備的通信問題,用於替代RS-232串口通訊標準。
1998年5月20日,愛立信聯合IBM、英特爾、諾基亞及東芝公司等5家著名廠商成立「特別興趣小組」(Special Interest Group,SIG),即藍牙技術聯盟的前身,目標是開發一個成本低、效益高、可以在短距離範圍內隨意無線連接的藍牙技術標準。當年藍牙推出0.7規格,支持Baseband與LMP(Link Manager Protocol)通訊協定兩部分。
1999年藍牙1.0版本出現,但直到2003年1.2版本推出才滿足了無線語音和音頻傳輸等功能的基本要求。
2004年推出的藍牙2.0版本和2007年推出的2.1版本將藍牙的傳輸速率提高到了3Mbit/s,並改善了藍牙設備的配對體驗。
2009年發布的藍牙3.0新增了High Speed功能,使傳輸速率高達24Mbit/s。但此功能應用範圍較窄,僅在電腦上出現過。
2010年發布了藍牙4.0版本,增加了藍牙低功耗(Bluetooth Low Energy)技術。藍牙進入了物聯網產品中。
2016年藍牙5.0協議發布,在低功耗模式下具備更快更遠的傳輸能力。速度上限達到2Mbit/s,傳輸有效距離理論上可達300m。
2017年發布了藍牙Mesh1.0協議。藍牙通過這個協議正式進入了物聯網的領域。
Part 02、發展前景
藍牙Mesh的優點:
1.芯片成本低。基本人手一個帶藍牙的智能手機,普及度高。低功耗模式下功耗低,可以使用電池供電。
2.網絡容量大,理論可以支持網絡接入6萬個設備。流行os實現中(安卓、linux)穩定的協議棧及智能手機控制,未來潛力巨大。
當前,小米作為國內智能家居的大廠,目前主推藍牙Mesh協議,不斷推出藍牙Mesh協議的智能家居產品,並且在開發文檔中明確說明不再推廣ZigBee接入方案。阿里巴巴作為SIG國際藍牙組織智能家居專項組主席,不斷推進藍牙Mesh在智能照明電工、大小家電等各個領域的協議落地。天貓精靈AI智能音箱也在積極推動藍牙Mesh設備接入,並且阿里也推出了平頭哥藍牙Mesh芯片。
國外亞馬遜、谷歌、蘋果等科技巨頭也在積極投入藍牙Mesh生態。迄今為止,全球銷量榜前6的智能音箱中,五款內置藍牙Mesh網關功能。
Part 03、基本概念
- 廣播和洪氾
藍牙Mesh技術是基於低功耗藍牙廣播報文來實現的。這是一種基於洪氾(flooding)的消息傳遞機制。當一個節點需要向另一個節點發送消息時,它會廣播一條消息,所有收到這個消息的節點都接收並且轉發這條消息,確保目標節點能夠收到這一消息。
- 節點和設備
在藍牙Mesh網絡中,我們通常把還未加入藍牙Mesh網絡的設備叫做未配網設備(Unprovisioned device),未配網設備加入一個藍牙Mesh網絡之後就被稱為節點(Node)。
把一個未入網設備加入藍牙Mesh網絡變成節點的過程叫做配網過程(Provisioning)。在藍牙Mesh網絡中,通常是由一個配網器(Provisioner)來將未配網設備進行配網從而變成藍牙Mesh網絡中一個節點的。
一些節點扮演不同的角色,表現出以下四個節點特徵(Features):
- 低功耗(Low-Power) 特性
功率受限的節點可能會利用低功耗特性來減少無線電接通時間並節省功耗。同時低功耗節點(LPN)可以與Friend節點協同工作。
- Friend 特性
功率不受限的節點很適合作為Friend節點。Friend節點能夠存儲發往低功耗節點(LPN)的消息和安全更新;當低功耗節點需要時再將
- 中繼(Relay) 特性
中繼節點能夠接收和轉發消息,通過消息在節點之間的中繼,實現更大規模的網絡。節點是否能夠具備這一特性取決於其電源和計算能力。
- 代理(Proxy) 特性
代理節點能夠實現GATT和藍牙Mesh節點之間的Mesh消息發送與接收。承擔這一角色的節點需要固定的電源和計算資源。
- 元素
一個節點是由元素組成的,節點至少要包含一個主元素(Primary Element),也可以包含多個元素,每個節點裡包含的元素個數和結構是固定的,每個元素都有自己的地址,主元素的單播地址在配網過程中由配網器下發,而節點中其餘元素的地址則依序增加。
- 狀態
狀態(State)用於表示節點中元素處於的某一個特定狀況。元素的狀態是通過客戶-服務端的機制來訪問的。例如,某個節點(比如插座)中的元素有通用開關模型的開關服務端,用來代表這個元素的開關狀態;另一個節點的元素(比如開關按鈕)有通用開關模型的開關客戶端,這樣就可以通過開關按鈕上的開關客戶端發送開關模型定義好的消息去訪問或控制插座上開關服務端的開關狀態。
- 消息
藍牙Mesh網絡節點之間的通信都是通過消息來實現的。每個狀態都關聯一系列消息,客戶端會發送這些消息給服務端去讀取或設置服務器端的狀態,服務端也會在狀態改變時發出消息來通知其他節點的客戶端。
藍牙Mesh的消息定義包含了消息報文格式及消息的交互機制。消息報文格式由操作碼和相關參數組成。
消息分為需要回复的消息和不需要回复的消息。
- 模型
模型(Model)定義了節點具備的基本功能,包含實現這個功能所必需的狀態和操作狀態的消息及其他一些行為。一個節點可以包含多個模型。在藍牙Mesh模型裡,採用客戶端-服務端的架構進行通信。因此,在藍牙Mesh網絡中的應用也被定義成這3種模型:服務端模型、客戶端模型和控制模型。
- 發布和訂閱
在藍牙Mesh網絡中,節點在需要時可以向單播地址、組播地址、虛擬地址發布消息,而其他節點可以通過訂閱這些地址來獲取這些消息。如客廳中的燈具可以訂閱客廳的組播地址。
- 配網過程
1)未配網設備向外廣播自己的存在。
2)在未配網設備和配網器間建立一個鏈接。
3)安全的建立一個共享密鑰,用於後期傳送配網數據。
4)通過OOB信息認證未配網設備是否可以加入藍牙Mesh網絡。
5)加密傳輸配網數據。