Mesh?無線協(xié)議的選擇
智能家居和智能建筑等產品的開發(fā)者可以使用大量的無線協(xié)議。 Zigbee,Z-Wave,以及專有的無線協(xié)議,在這些市場中占據了主導地位,新的進入者還包括Thread 和藍牙網格。 雖然傳統(tǒng)的BLE和 Wi-Fi 在這些市場上也很流行,但它們不支持網狀網絡。 無論底層協(xié)議如何,物聯(lián)網的部署網絡必須是健壯的,這種穩(wěn)健性可以通過測量吞吐量、延遲和可靠性來量化。 這些測量取決于部署規(guī)模的大小和其他系統(tǒng)級別的需求。
在Mesh協(xié)議方面,"沒有一種協(xié)議可以適合任意情況"。 每個無線協(xié)議都有獨特的特性和優(yōu)點,這取決于應用場景和最終應用。 理解Mesh技術的內部機制要優(yōu)于具體技術的一系列關鍵特征。 更重要的是,開發(fā)人員需要了解這些網絡協(xié)議在功耗、吞吐量、延遲、可伸縮性、安全性以及互聯(lián)網連接等關鍵領域的表現。 Zigbee,Thread 和藍牙m(xù)esh的設計有著本質的不同,每種Mesh的實現方式都會對系統(tǒng)性能和健壯性產生影響。
無線連接的Mesh技術
無線芯片上的SoC已經具備了成本效益,足以被添加到物聯(lián)網中,為我們的日常生活提供了方便、安全和舒適的體驗。 當添加了無線連接時,一個個的物就變成了物聯(lián)網設備。 許多物聯(lián)網設備以前都沒有無線互聯(lián)網連接。 不斷變化的規(guī)則和消費者的期望迫使產品制造商在無數產品和系統(tǒng)中添加無線連接,以保持競爭力或為新的收入流提供可能。 當開發(fā)者選擇構建物聯(lián)網設備時,必須考慮如何使用最終產品以及這些產品將在何種生態(tài)系統(tǒng)中運行。
無線網絡的種類
在眾多物聯(lián)網無線技術中存在兩種基本拓撲: Mesh(網格) 和 Star (星形)(圖1)。 由于能夠擴展到無數的節(jié)點并且覆蓋很長的距離,因此它Mesh在家庭和智能建筑中通常比星型網絡更受歡迎。 星際網絡依賴于端節(jié)點和中央設備之間的點對點連接。 如果在安裝了網絡之后環(huán)境發(fā)生了變化,那么一個星型網絡可能就會發(fā)生故障。
圖1 兩種基本拓撲結構
在點對點或星網中,信號范圍是輸出功率的函數。 為了確保設備可以在電池上運行足夠長的時間或提高能源效率,理想的方案是減少功率消耗和輸出功率。 然而,盡管功耗減少,設備仍然需要能夠與其他設備進行通信和互動。 Mesh網絡中的每個設備都傳輸較短的距離,以減少其功耗。 當通信在Mesh網絡上的設備之間傳輸時,系統(tǒng)的總通信范圍可以得到改進。
Mesh網絡也提供了額外的通信優(yōu)勢,例如它們具有動態(tài)自愈能力。 例如,如果一個網格網絡中的一個節(jié)點失敗,則可以通過重新路由以提高可靠性。 網格網絡的另一個重要好處是設備可以直接相互通信。
哪個網絡最適合家庭和智能建筑?
Mesh網絡提供了一種理想的技術來實現和加強一些應用,如上所述的建筑和家庭自動化,照明系統(tǒng)和零售beacon系統(tǒng)。 Mesh網絡允許系統(tǒng)減少電力消耗,提高電池壽命,擴大通信范圍,提高整個系統(tǒng)的可靠性。
每個網格網絡標準為不同的設備類型和應用提供基于標準的支持。 有一個成熟的應用層支持家庭自動化,照明和計量,而***個藍牙Mesh規(guī)范主要關注照明和一些家庭自動化支持。 Thread是三種Mesh技術中唯一基于 IPv6的網格技術。 這提供了一些獨特的好處,例如在同一個網絡或跨網絡上的端到端路由和地址,而不需要實現額外的翻譯層。
Zigbee 通常用于建筑和家用設備的自動化。 最近,針對這些應用也在考慮Thread 和藍牙Mesh。 Z-wave 是另一種Mesh技術,在智能家居的安全應用中也很流行。
表1 3種協(xié)議的對比
大多數連接設備受益于連接到云端的使用場景,例如數據聚合。 支持低耗電藍牙的藍牙網格設備可以通過智能手機或平板電腦為云提供連接。 當然,這是一個暫時的連接,因為如果手機或平板電腦不存在,這些設備將無法連接到云端來發(fā)送或接收信息。 需要一個云連接的網關,而基于 IP 連接的 Thread 并不需要在網狀網絡之間建立一個完整的網關。 通過Thread,路由器能夠以較輕的權重方式促進在 IP 上直接進行設備對云的通信。
智能家居和智能建筑包括能量采集設備、電池供電設備和有線設備的組合。 照明和恒溫器通常是有線的,因為它們是基礎設施的一部分,但這并不意味著功耗可以被忽略。 因此,必須謹慎管理作為基礎設施的設備組成以及交流電的設備。電池通常為遠程傳感器和控制元件提供動力。 這意味著Mesh必須從功率角度理解兩個根本不同的應用場景。
應用場景
在智能家居和智能建筑中有許多潛在的Mesh網絡應用場景。利用Mesh網絡,整個系統(tǒng)性能和終端用戶體驗可以得到顯著的改善。 通過建筑和家庭自動化,設備可以直接相互溝通。 在光開關上的一個動作可以立即發(fā)送到本地網格網絡的燈光,而不需要通過通向云端的網關進行通信。這種類型的即時反應可以提高消費者的體驗。 此外,對于一些使用情況,例如在火災報警時關閉空調的 HVAC 系統(tǒng),網狀網絡上的局部通信可以確保系統(tǒng)正確運行而不依賴云連接。
舒適
對于照明系統(tǒng),可以簡化部署和管理。 Mesh網絡提供的擴展連接范圍意味著可以在更遠的地方部署連接燈。 一個集線器或網關可以放置在一個位置,和連接的燈光共同部署。 隨著每一個節(jié)點的部署,通信的范圍增加,允許一個單一的網關有效地覆蓋更大的區(qū)域。
例如,考慮一下劇院或博物館的照明和環(huán)境控制。 這些裝置通常有成百上千個節(jié)點。 燈光、窗簾的馬達和百葉窗需要精確和精心設計的控制。 所有的燈光都要同時調暗,控制窗簾的馬達應該一致工作。 細微的差異是顯而易見的,并且會減少觀眾的體驗。
家里也有類似的需求。 如果在一個有燈光和窗簾的場景,用戶期望一個無縫的且精心設計的體驗,可能是所有的燈光同時暗淡,所有的窗簾都會同時移動。
安全
像倉庫這樣的工業(yè)環(huán)境可能比劇院有不同的照明需求。 通常,一個區(qū)域的燈光是同時打開的。 然而,如果這些燈光一起亮起來,或者只需要幾秒鐘就能照亮所有的燈,這并不重要。 用戶體驗和期望是不同的。 另一方面,如果由于停電,某些燈需要快速打開,時間突然又變得重要起來。
方便
在部署過程中,如果每盞燈都一致亮著,這也許并不重要。 然而,如果開發(fā)者想要添加額外的服務,那么網絡的強大程度就有可能成為問題。
在部署Mesh的過程中越來越受歡迎的服務是資產跟蹤。 在這種情況下,設計者依賴于控制網絡來傳輸關于被安裝的設備,進而追蹤資產的數據。 在這個例子中,吞吐量和延遲問題取決于資產信息在網絡中傳播的速度。
圖2 網絡連接帶來的增值服務
另外,用于零售營銷或資產追蹤的Beacon可以不要求每一個都在手機的范圍內來管理。 還可以將這些領域和設備類型的功能結合起來。 例如,燈不僅可以自動化,還可以充當Beacon。 這種方法可以通過增加位置服務和廣告等功能來增加燈的功能和價值。
應用層的協(xié)議支持
協(xié)議的全部功能也取決于相應的應用層。 雖然Thread協(xié)議不包括應用層,但可以使用任何基于 ip 的應用層,如 dotdot 或 OCF。 藍牙包括一個名為 Mesh 模型的本地應用層,這是一個全新的應用層,支持不同的設備類型,但相比 Zigbee 或 Thread 更加有限。 藍牙Mesh對于照明和通用控制的支持都有很好的支持,比如 on / off,傳感器,滑塊,電源和電池狀態(tài),但對許多家庭配件缺乏專門的模型,如門鎖,HVAC,或窗口覆蓋特定的功能定義的互操作性。
表2 協(xié)議對應用層的原生支持
哪種Mesh協(xié)議***?
不能一概而論。 在 Zigbee,Thread 和藍牙Mesh之間存在著基本的架構差異。 ZigBee和 Thread 可以在使用時可能會用到flooding,但通常使用路由網格來最小化網絡開銷,從而干擾信息傳遞。 藍牙Mesh則允許設備的配置作為路由器來減少flooding的影響。 藍牙技術聯(lián)盟(SIG)將此稱為"托管式洪峰處理"。
ZigBee和 Thread 網絡包括路由節(jié)點和終端節(jié)點。 路由節(jié)點通常是線路供電的,可以作為Mesh的骨干。 端節(jié)點通常由電池驅動,在網格的外圍運行,并使用路由器傳遞信息。 在創(chuàng)建網格時,將建立路由表。 路由表是一個分類目錄,它告訴每個設備如何與網格中的其他設備進行通信。 通過這種方式,一個節(jié)點可以通過網格以精確的路徑發(fā)送消息,有效地與另一個節(jié)點進行通信。 這對網格的吞吐量有積極的影響,并且可以隨著網格的增長而減少延遲。
在歷史上,路由網格更受歡迎,因為它提供了更高效的通信和可預測的性能。 另一方面,對于協(xié)議棧的開發(fā)人員來說,路由更難實現。
已經部署的系統(tǒng),一個產品必須可以交互操作是一個重要的因素考慮。 以住宅為例,其中一些設備可能使用 Zigbee 或 Thread 形成一個Mesh網絡。 一個網關或者一個集線器和網關的組合很可能已經將這些設備連接到云端以獲得額外的服務。 手機可能也會與云溝通,然后再回到設備上。
為了支持電話到設備的直接通信,或者支持一個生態(tài)系統(tǒng),如蘋果 HomeKit,藍牙連接是必需的。 如果所有的設備都支持該協(xié)議,藍牙就可以與另一個Mesh網絡結合起來,或者單獨作為一個Mesh網絡使用。 在設備中增加對多個協(xié)議的支持也可以提供好處,比如使用手機在沒有Zigbee 或 Thread 網絡的情況下安裝或使用設備。
連接需求應該考慮整個生態(tài)系統(tǒng),從終端設備,到任何網關或中心,到應用程序層和服務提供者。 網絡技術,如 Zigbee 和藍牙網格,不能本地支持 IP 必須首先適應網關的 IP。 這個過程涉及到將網絡級有效載荷映射到 IP 數據報上,并將網絡級有效載荷重新打包。 相比之下,本地網絡本身支持 IP,如 Thread,可以在不干預的情況下提前和路由應用程序有效載荷。 在本地網絡中加密的數據包可以保持端到端的安全。
ZigBee 和 Thread 的包結構
Zigbee 和 Thread 都使用 IEEE 802.15.4中127字節(jié)的數據包,基礎數據速率為250 kbps。 雖然相同,但數據包結構不同,導致有效負載的大小略有不同。 圖2顯示了 Zigbee 數據包格式,結果是一個68字節(jié)的有效負載。 對于68字節(jié)以上的有效載荷,Zigbee 將碎片分成多個數據包。 Thread數據包格式如圖3所示,結果是一個63字節(jié)的有效負載。 對于63字節(jié)以上的有效載荷,thread協(xié)議棧使用6LoWPAN。這些都是構建應用程序時需要關注的設計參數。
圖3 ZigBee 的數據包格式
圖4 Thread 的數據包格式
它們都會將較大的信息分解成更小的信息。 對于 Zigbee 來說,應用層會發(fā)生分段處理,并且從源到目的地進行端到端的執(zhí)行。 對于線程來說,分割是在6LoWPAN 層完成的。
- 對于這些網絡中的單播轉發(fā),一旦設備準備好發(fā)送,消息就會被轉發(fā)。 對于多播轉發(fā),有一些網絡需求:
- 對于 Zigbee 設備來說,只在64毫秒抖動之后,設備才會發(fā)送多播消息。 然而,在重新傳輸初始消息之前,啟動裝置有500毫秒的間隔。
Thread設備使用 RFC7731 MPL 轉發(fā)多播消息。涓流計時器被設置為64毫秒,這樣設備在重新發(fā)送之前可以隨機返回。
BLE 的包結構
BLE有如下的數據包結構,以減少無線傳輸時間和功耗。 藍牙Mesh進一步完善了這個數據包結構,增加了網格和安全性能。
圖5 藍牙Mesh 的數據包結構
這意味著藍牙Mesh只有12或16個字節(jié)可用于有效負載,除此之外,數據包被分割成單獨的數據包,然后在目的地重新組裝。 這個分段包攜帶一個header,標識應用中有效負載的分段和12字節(jié),但***一段除外,它們可以更短。 然而,藍牙網格規(guī)范空間中需要額外的處理這些分段包,從而增加了延遲并減少吞吐量。 由于所有的吞吐量和延遲分析都是基于應用的有效負載,可以看到,藍牙網格將需要比 Zigbee 或 Thread 更多的數據包。
路由與flooding的對比
Zigbee,Thread 和藍牙網絡是為智能家居和智能建筑設計的。 Zigbee 支持幾種路由技術,包括用于路由發(fā)現的flooding或群組消息; 網格中控制消息的下一跳路由; 以及通向網關的多對一路由,然后使用到設備的源路由。 Zigbee 網絡同時使用所有這些方法也是正常的。
Thread也支持下一跳路由和flooding。 然而,Thread網絡將下一跳路由維護到所有路由器,作為正常網絡維護的一部分,而不是一個執(zhí)行路由發(fā)現的設備。 Thread還將處理可伸縮性的活躍路由器數量降到***。 以前,這被視為嵌入式802.15.4網絡的限制,因為網絡在大量路由器的存在下flooding限制了組播通信的頻率和可靠性。 需要注意的是,Thread網絡管理了活躍路由器的數目和間隔,不需要用戶干預或管理。
藍牙網支持管理flooding。 這是Mesh上的一個微調,用戶可以指定哪些設備參與了flooding。 這將減少flooding的影響,但需要用戶確定其網絡中路由器的適當密度和拓撲結構,這可能變得很困難。 隨著網絡條件的變化,哪些設備參與了flooding也可能需要改變,這也將需要用戶干預。
藍牙還有類似于 Zigbee 或 Thread 的終端設備,稱為"友鄰"設備。 一個友鄰裝置與一個相鄰的有線節(jié)點耦合在一起,而友鄰的數據包則由有線節(jié)點存儲。 友鄰設備會定期醒來詢問鄰居是否有任何數據包。 有線節(jié)點只在一定的時間段內保存數據包,所以"友鄰"需要使用其配對的中繼節(jié)點進行簽入。
圖6 藍牙Mesh 示例
對網格拓撲的研究可以分析網絡規(guī)模。 這些網絡表現得差異很大,在考慮10節(jié)點網絡或200節(jié)點網絡時,路由和管理技術往往需要改變。
通常情況下,在一個小網絡中,設備可以通過一兩跳和非常簡單的路由或flooding就可以適合。 隨著網絡規(guī)模的擴大,增加了復雜性,例如設備間的更多的跳躍; 設備的密度,這可能干擾彼此發(fā)送消息; 更多的關注延遲和可靠性。 如果使用flooding類型的信息來打開100盞燈,通常不能接受只打開了98或99個開關。 這種類型的問題在10節(jié)點網絡中很少見,但在100節(jié)點網絡中可能變得普遍。
硅實驗室的測試結論
為了最小化設備測試的可變性,測試可以在固定拓撲中進行,在這些拓撲結構中,射頻路徑通過分路器和衰減器連接在一起,以確保該拓撲不會隨著時間和測試而改變。 硅實驗室采用了七跳測試,以確保網絡拓撲。 當然,MAC地址過濾也可以用來實現網絡拓撲。
關注的度量指標
在以前應用場景中,設計者希望為應用建立一個健壯的網絡。 在評估網絡的健壯性時,需要關注的測量指標包括吞吐量、延遲和可靠性。 這三種測量方法可以準確地預測給定網絡的健壯性。
- 吞吐量: 定義了網絡的可伸縮性(有多少設備可以發(fā)送正常的流量) ,以及高級數據操作的行為,如向設備推送固件更新
- 時延: 描述了行動的發(fā)生需要多長時間。 它是涉及最終用戶交互的關鍵參數(而不是機器對機器的通信) ,因為很多人能夠體會到超過100毫秒的操作。 對于需要同時進行操作的過程,例如打開多盞燈,時間必須低于100毫秒,以便最終用戶不會抱怨燈光連續(xù)亮起時產生"爆米花"效應。
- 可靠性: 但是當用戶與諸如燈光和開關等日常設備互動時,用戶期望100% 的可靠性。 實際上,硅谷實驗室測試的可靠性達到99.999% 。
無論使用什么樣的無線技術,這些都是Mesh網絡測量的關鍵因素,并且與設備和無線系統(tǒng)的設計目標密切相關。
基準測試
硅實驗室使用了無線 Gecko SoC 平臺進行了測試,該平臺可以運行藍牙網、線程、 Zigbee 和專有協(xié)議, 同時使用了硅實驗室的藍牙、線程和 Zigbee 軟件協(xié)議棧。 測試環(huán)境是一個商業(yè)辦公大樓,有活躍的 Wi-Fi 和 Zigbee 網絡。 無線測試集群被部署在走廊、會議室、辦公室和空曠地區(qū)。
100字節(jié)有效負載的吞吐量
圖7 吞吐量與多跳的對比
典型的網絡包括兩到三跳,吞吐量根據跳數不同而變化,協(xié)議性能隨著跳數的增加而變得相似,藍牙Mesh的小數據包有效負載導致吞吐量減少。
四跳的時延
圖8 4跳網絡的時延
- 所有的協(xié)議都在較小的有效負載時提供了類似的延遲
- 當有效負載大小增加時,Thread(6LowPAN)實現了***的效率和延遲性能。
- Zigbee 有很好的效率,但是一些應用層分段處理,
- 藍牙Mesh 的延遲隨著由于數據包大小和由此產生的分段蠢了,有效負載大小降低較多。
小載荷小型網絡
圖9 多播時延
- 三種協(xié)議的峰值都低于50毫秒,
- 它們網絡膨脹后均已擴大至90毫秒,遠低于200毫秒的市場目標。
- 另外,所有協(xié)議的多播都提供了非常高的可靠性。
具有中等載荷的小型網絡
圖10 中載荷小網絡的多播時延
- 在延遲高達100毫秒(ms)的情況下,Thread表現***。
- Zigbee 執(zhí)行的數據包大多數具有80ms 的延遲,逐漸擴展到130 ms。
- 藍牙網格延遲在60毫秒,擴展到250毫秒。
- 所有192個節(jié)點均為藍牙Nesh中繼節(jié)點,沒有進行中繼節(jié)點進行優(yōu)化。
帶有小載荷的大型網絡
圖11 小載荷大網絡的多播時延
- 在延遲擴展到100毫秒的情況下,線程表現***。
- Zigbee 執(zhí)行的數據包大多數具有80ms 的延遲,逐漸擴展到130 ms。
- 藍牙網格延遲在60毫秒,擴展到250毫秒
- 所有192個節(jié)點均為藍牙網格繼電器,沒有進行繼電器優(yōu)化
測試結果
- Thread、 Zigbee 和藍牙Mesh在小型網絡中的較小有效載荷下能進行類似的操作
- 當有效負載和吞吐量需求增加時,Thread 和 Zigbee 的性能比藍牙Mesh要好
- 隨著網絡規(guī)模的增長,這三種方式的延遲都會增加,但是藍牙Mesh的增長***
- 選擇物聯(lián)網無線連接解決方案應該包括額外的標準,如預期的生態(tài)系統(tǒng)和功耗需求
- 對于大型藍牙Mesh,可以利用中繼節(jié)點優(yōu)化來優(yōu)化性能
- 當短消息(11B)特別用于多播消息時,藍牙Mesh效果***
結論
基于所使用解決方案的理論網絡大小不能準確反映網絡在實際實現中所需節(jié)點的數目。 實際的限制是基于一些因素,包括網絡拓撲、數據包大小以及吞吐量和延遲等性能要求。 例如,一個 Zigbee 的設備子網在100個設備中有一個實際的限制,盡管可以部署極大的商業(yè)系統(tǒng),比如在拉斯維加斯的 Aria 酒店,擁有超過80000個有多個子網的 Zigbee 網絡設備。 1.1協(xié)議針對每個網絡約250個節(jié)點進行了優(yōu)化,但是由于線程是基于 IP 的,邊界路由器使得網絡更容易擴展和分布。
Mesh網絡的選擇取決于終端應用程序或生態(tài)系統(tǒng)。 有許多已經建立了的生態(tài)系統(tǒng),如飛利浦 Hue,亞馬遜 Echo Plus 和 Comcast Xfinity。 如果一個設備制造商想與這些生態(tài)系統(tǒng)進行交互操作,Zigbee 是***選擇。 如果沒有為應用程序指定生態(tài)系統(tǒng),那么還有許多其他的協(xié)議選擇。
Thread和藍牙Mesh都是可行的選擇,也是除了 Zigbee 之外最常見的選擇。 集成電路供應商提供的開發(fā)工具在Mesh網絡開發(fā)的速度上有很大的影響。 數據包跟蹤和多節(jié)點能量分析等工具可以確保所選擇的Mesh網絡得到有力的支撐。 最終,網絡的大小,所需的延遲,預期的吞吐量和整體的可靠性將驅動網格協(xié)議的選擇。
本文編譯自以下3篇文章:
http://www.embedded-computing.com/iot/how-zigbee-thread-and-bluetooth-mesh-stack-up-in-performance-benchmarking
https://www.silabs.com/products/wireless/learning-center/mesh-performance
https://www.silabs.com/whitepapers/selecting-the-appropriate-wireless-mesh-network-technology
【本文來自51CTO專欄作者“老曹”的原創(chuàng)文章,作者微信公眾號:喔家ArchiSelf,id:wrieless-com】