來源 | 博客園
物聯網 (IoT) 不只是新技術,還是與舊技術的集成,其關鍵在于通信。可用的通信方法各不相同,但是,各種不同的協議在將海量 “事物” 連接到互聯網時發揮著重要的作用。
本文介紹了兩種物聯網補充協議:用于短距離設備連接的本地協議 Modbus 以及支持物聯網進行全局通信的可擴展互聯網協議 “消息隊列遙測傳輸 (MQTT)”。
Modbus 是一個串行通信協議,首次出現于 1979 年,是連接行業設備實際使用的標準協議。MQTT 早在 20 年前便已出現,但是將這兩個協議結合在一起使用,能夠為深度嵌入式設備提供物聯網的規模和連接性。
圖 1. 物聯網 (IoT) 網關作為物聯網通信的支持解決方案 我們來看一下 Modbus 和 MQTT,以了解其區別以及如何在物聯網中互相補充。
1、Modbus
自 1979 年首次出現至今,Modbus 已經演變為一套全面的支持多種物理鏈接的協議集(如 RS-485)。Modbus 的核心是一個串行通信協議,采用主從模式。主機向從機發送請求,從機予以回復。在標準 Modbus 網絡中,有一臺主機以及最多 247 臺從機(但是,如果采用 2 字節尋址,則可顯著提高這一界限)。
借助 RS-485,主從機之間的通信發生在指示功能碼的幀中。該功能碼可識別要操作的功能,如讀取獨立輸入;讀取先進先出隊列;或執行診斷函數。然后,從機根據收到的功能碼進行響應,該響應較為簡單,由一組字節指示。因此,從機可以是智能設備,也可以是只有一個傳感器的簡單設備。
從該描述中,您可以看到 Modbus 協議非常簡單,但是其作為協議的開放性使其成為整個行業或 SCADA 系統的實際通信協議。
2、消息隊列遙測傳輸
MQTT 是一個開放的輕量級機器對機器協議,專為物聯網交互設計。MQTT 網絡包含一個 MQTT 經紀人 (broker),負責協調 MQTT 代理之間的交互。代理是發布器,負責發布供用戶使用的信息(參見圖 2)。
圖 2. 消息隊列遙測傳輸網絡中的作用因素
MQTT 的要求非常少,因為它專為資源有限的嵌入式設備設計。除了占地空間少之外,MQTT 還可提供出色的通信高效性(即使通過低帶寬網絡進行通信)和非常少的開銷(較之 HTTP 等協議)。在 3G 網絡中,MQTT 的吞吐量速度是使用 HTTP 的表述性狀態轉移 (REST) 的 93 倍。
MQTT 可使用最少的方法指示要在特定主題上實施的操作,進而實施發布 / 訂閱模式。代理先連接到經紀人,然后再發布或訂閱主題。完成后,代理將從經紀人上斷開連接。MQTT 方法定義:
連接 - 建立與 MQTT 經紀人之間的連接。
斷開連接 - 斷開與 MQTT 經紀人之間的連接。
發布 - 在 MQTT 經紀人上發布主題。
訂閱 - 從 MQTT 經紀人上訂閱主題。
退訂 - 從 MQTT 經紀人上退訂主題。
圖 3 展示了發布者與訂閱者使用 MQTT 經紀人進行的簡單交互。如圖所示,信息創建者 (producer) 連接至 MQTT 經紀人。同樣,信息消費者 (consumer) 連接至 MQTT 經紀人。消費者訂閱主題(此處定義為 /home/alarms/1/status)。本示例主題可識別主頁上針對區域 1 的警報系統的狀態變化。當創建者有信息要分享時,它會向經紀人發布一條消息,然后經紀人將會將信息分享給所有訂閱該主題的用戶。
圖 3. 消息隊列遙測傳輸代理之間的簡單交互
請注意此處分享的主題結構。它與文件系統層次結構相似,這可簡化主題的結構。這種資源層次形式也常見于協議架構中,如 REST。
MQTT 甚至允許使用通配符的形式,以簡化訂閱流程。如果用戶想要獲取所有警報的狀態,則可直接訂閱 /home/alarms/+/status,該主題可通知用戶所有的警報狀態變化。整個子樹還可使用主題 /home/# 進行訂閱,該主題可以訂閱 /home 下的所有事件。
2.1 服務質量
MQTT 允許定義服務質量 (QoS)。MQTT 中有三個等級的 QoS:
QoS 0。該等級表示 “最多一次” 交付(最佳狀況)。消息不會得到確認,因而,這是一種一勞永與的方法。
QoS 1。該等級表示 “至少一次” 交付。用戶可能不止一次獲得消息,但是允許收到的人確認已經收到。
QoS 2。最慢但是最有保障的服務質量等級即為等級 2。QoS 2 表示 “只有一次”,并包含四個階段的交付握手。該等級最慢,但是最安全。
您選擇的 QoS 等級將取決于數據及其交付的重要性。
2.2 消息隊列遙測傳輸經紀人
隨著越來越多的物聯網采用 MQTT 作為支持協議,您將會發現許多開源應用和產品中出現了 MQTT。英特爾 物聯網網關解決方案則是其中一款采用 MQTT 的全面物聯網解決方案。
該系列產品支持傳感器、設備和云之間安全交互。這些預驗證的應用就緒型平臺支持出色的可管理性、安全性和多種連接選項,如 ZigBee*、蜂窩網絡、藍牙、USB、Wi-Fi,當然還有 MQTT 和 Modbus 等協議。
英特爾根據市場需求提供了三個版本的英特爾 物聯網網關,分別包含不同的輸入 / 輸出選項,并針對工業和能源、交通運輸以及綜合產業等不同領域。雖有不同之處,但它們無一例外都包括通用的可管理性和供應、數據和端點安全性以及運行時環境。它們分別運行在安全且穩定的 Wind River* Linux* 上。
英特爾 物聯網網關的主要優勢是 McAfee 嵌入式控制安全技術。McAfee 嵌入式控制可根據策略處理設備變化,同時能夠追蹤所有變化,提供完整的可視性和可說明性,以便進行持續的審計跟蹤。
總結
MQTT 和 Modbus 能夠互相補充提高物聯網的性能。使用 Modbus 作為本地接口來管理設備,使用 MQTT 作為全局協議來擴展設備的范圍,二者都起到了重要的作用。英特爾 物聯網網關可為現在以及未來構建物聯網提供一個簡單、安全的方式。
審核編輯:湯梓紅
-
通信協議
+關注
關注
28文章
857瀏覽量
40254 -
物聯網
+關注
關注
2903文章
44262瀏覽量
371215 -
MODBUS
+關注
關注
28文章
1760瀏覽量
76833 -
MQTT
+關注
關注
5文章
649瀏覽量
22428
原文標題:MQTT 和 Modbus 協議對比
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論