低功耗藍芽在物聯網中的應用
什麼是BLE mesh
BLE mesh於2017年07月釋出V1.0版本。BLE即是低功耗藍芽,在Bluetooth 4.0時提出。有別於早期2000年釋出的藍芽版本1.0-3.0(一般叫BR/EDR經典藍芽)在經過1.0到3.0的幾個版本迭代後,資料傳輸速率上有比較大的提升,目前的應用領域主要有藍芽音箱和耳機,以及藍芽滑鼠和鍵盤等,功耗相對較高。BR/EDR是典型的“點對點”的通訊方式,主要用於替換近距離的有線資料傳輸。
在2010年SIG釋出了低功耗藍芽BLE。BLE和BR/EDR經典藍芽的區別相當大,兩者通訊上不相容,因此BLE出來時也催生了藍芽的“雙模”這樣的說法,一個藍芽裝置如果同時支援BR/EDR和BLE,就是雙模藍芽。BLE的資料速率對於經典藍芽而言有所降低,但是功耗極低。BLE迎合了現在的一些嵌入式裝置、電腦周邊裝置等低功耗的需求,目前主要用於一些電池供電的嵌入式裝置,常見的有藍芽遙控器、心率監測、藍芽手錶、手環等。應用場景如行動式手機、平板,健康領域,智慧家庭領域以及穿戴領域。
BLE支援星型網路拓撲,即中心節點可以連線多個外圍節點角色的裝置。當然,實際的中心節點能夠連線的外設的個數很有限。首先是因為中心節點的記憶體有限,每增加一條鏈路,其協議棧所耗費的記憶體就會增加不少。更為關鍵的是,RF的鏈路維持,BLE是以connection interval為基礎,Master(中心節點)和Slave(外圍節點)不斷的同步來保持鏈路的,而星型拓撲,隨著連線的Peripheral數量增加,其實分到每一個Peripheral的interval是非常小的,而且Master要處理好所有Peripheral鏈路的保持,不至於衝突,又不至於掉線。當然BLE的廣播也可以支援一對多的通訊,這個技術應當就是BLE mesh的基礎了。
BLE mesh就是基於上面的BLE的網路拓撲的限制而提出的,可以支援“多對多”。因此BLE mesh被設計用於大規模節點互相通訊的網路支援的特性。其應用目標場景是比如樓宇自動化、感測器網路、以及更多的IoT應用。BLE mesh並非新的協議技術,它基於BLE技術,只是規範了上層的網路層應用,使之支援多對多的應用場景。
BLE mesh的工作方式
BLE mesh的目標是可信安全的網路,全部的互通操作性,成熟的生態,滿足工業級別的應用,支援大規模節點數量的組網。BLE mesh的工作方式是”managed flood”–有管理的泛洪訊息傳播。泛洪的方式使訊息的傳播非常可靠,易於擴充套件,且效能滿足商業與工業市場。
BLE mesh的期望是更多場景下的Beacon應用,機器人,工廠自動化,能源管理,智慧城市以及更多IoT以及製造業的解決方案。
BLE mesh的可能未來
根據ABI調查預期,2021年將會有48 billion的聯網裝置,其中1/3將是藍芽裝置。SIG期望BLE mesh能在商業照明和工廠應用中,能產生大的影響,並且能夠成為IoT生態的一種普遍使用的技術。
當然,目前而言,BLE mesh還只是剛剛起步。
BLE Mesh主要需要解決的應用場景的特點是:
l 大範圍的覆蓋能力
l 拿來即可使用-很強的互操作性
l 對大規模節點裝置的監測與控制能力
l 儘可能優化的低功耗能力
l 射頻資源的有效利用,可擴充套件性強
l 與目前的智慧手機、平板、PC產品相容
l 工業標準級別、政府級別的安全性
上面的大範圍的覆蓋能力,是通過mesh網路的relay(中繼)功能來實現的,即在mesh網路中,訊息可以被臨近的節點relay出去,這樣經過多跳之後,訊息再到達目標節點。因此傳輸覆蓋能力,指的是在mesh網路覆蓋的範圍內,通過其網路內部的節點的relay去實現,同時也可以解決點對點的BLE通訊時的遇到障礙物會通訊不暢的問題。
同時relay也引出了mesh網路的“Managed Flooding”,就是訊息會以泛洪方式傳播,只要relay節點收到訊息,那麼它就會將訊息廣播給其周圍的節點。Flooding的方式是不需要有中心節點去協調的(如Zigbee就有router和coordinator),因此並不會去選擇最優路徑去傳播,而是訊息可能通過許多條路徑先後到達……於是,這同時也為Flooding的網路帶來了問題,訊息其實傳輸一次併成功即可,這種方式會有太多的冗餘的傳輸,造成能量的消耗和網路資料的阻塞。
因此“Managed Flooding”也在一定程度上,針對以上的問題進行優化。其一就是TTL值,使訊息最多能傳播TTL跳,其次是Heartbeat訊息,此訊息包含了使網路瞭解其拓撲,使裝置能將TTL設定為一個最優的值。最後是cache訊息,即裝置上次relay過的同樣的訊息過來,會直接忽略。
儘可能優化的低功耗能力,這個是通過mesh裡面的Low Power Node來實現的,Low Power Node不是單獨存在,而是需要搭配Friend Node存在的,形成“Friendship”關係。即Low Power Node是可以儘量低功耗的休眠的,但Friend Node是不能長時間休眠的,它需要幫Low Power Node去cache一些資訊。
與目前的智慧手機、平板、PC產品相容這一點,其實是通過BLE的GATT來實現。mesh裡面實現了一種Proxy的Node,可以將GATT資料轉為廣播資料,這樣使原來的BLE裝置能夠和Proxy Node建立連線,然後通過Proxy Node去和mesh網路溝通。
mesh尤為注重工業標準級別、政府級別的安全性,比如重放攻擊是通過sequence number來防範,中間人攻擊是通過在關鍵步驟(Provision)使用非對稱加密方式來防範,垃圾桶攻擊是通過金鑰更新來防範。
BLE mesh目前的預期還是樓宇自動化、商用燈具、感測器網路。這些應用其實也是mesh平臺,比如樓宇的mesh燈具,既可以通過mesh網路靈活控制,同時又是樓宇裡面的mesh網路平臺,可以以此為基礎構建資產跟蹤與定位應用等等。