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