物聯網行業最重要的就是通信技術,物聯網發展至今,出現了許多種協議,無論何種協議作用無外乎都是將”各類事物”通過各種協議連接到物聯網中,以實現物與物之間的通信。今天,本文介紹兩種物聯網協議中的補充協議——MQTT和Modbus協議,幫助大家快速了解這兩種協議。
Modbus是一個串行通信協議,首次出現于1979年,是連接行業設備實際使用的標準協議。MQTT早在20年前便已出現,但是將這兩個協議結合在一起使用,能夠為深度嵌入式設備提供物聯網的規模和連接性。下圖展示了這些協議之間的一般關系,同時介紹了連接的支持解決方案:物聯網網關。
物聯網網關作為物聯網通信的支持解決方案,現在讓我們來看一下Modbus和MQTT,以了解其區別以及如何在物聯網中互相補充。
Modbus
自1979年首次出現至今,Modbus已經演變為一套全面的支持多種物理鏈接的協議集(如RS485)。Modbus的核心是一個串行通信協議,采用主從模式。主機向從機發送請求,從機予以回復。在標準Modbus網絡中,有一臺主機以及最多247臺從機(但是,如果采用2字節尋址,則可顯著提高這一界限)。
借助RS485,主從機之間的通信發生在指示功能碼的幀中。該功能碼可識別要操作的功能,如讀取獨立輸入;讀取先進先出隊列;或執行診斷函數。然后,從機根據收到的功能碼進行響應,該響應較為簡單,由一組字節指示。因此,從機可以是智能設備,也可以是只有一個傳感器的簡單設備。
從該描述中,您可以看到Modbus協議非常簡單,但是其作為協議的開放性使其成為整個行業或SCADA系統的實際通信協議。
消息隊列遙測傳輸
MQTT是一個開放的輕量級機器對機器協議,專為物聯網交互設計。MQTT網絡包含一個MQTT經紀人(broker),負責協調MQTT代理之間的交互。代理是發布器,負責發布供用戶使用的信息(參見下圖)。
消息隊列遙測傳輸網絡中的作用因素
MQTT的要求非常少,因為它專為資源有限的嵌入式設備設計。除了占地空間少之外,MQTT還可提供出色的通信高效性(即使通過低帶寬網絡進行通信)和非常少的開銷(較之HTTP等協議)。即使是在3G網絡中,MQTT的吞吐量速度是使用HTTP的表述性狀態轉移(REST)的93倍,5G/4G下的提升將會更大。
MQTT可使用最少的方法指示要在特定主題上實施的操作,進而實施發布/訂閱模式。代理先連接到經紀人,然后再發布或訂閱主題。完成后,代理將從經紀人上斷開連接。MQTT方法定義:
連接-建立與MQTT經紀人之間的連接。
斷開連接-斷開與MQTT經紀人之間的連接。
發布-在MQTT經紀人上發布主題。
訂閱-從MQTT經紀人上訂閱主題。
退訂-從MQTT經紀人上退訂主題。
又如下圖所示,下圖展示了發布者與訂閱者使用MQTT經紀人進行的簡單交互。如圖所示,信息創建者(producer)連接至MQTT經紀人。同樣,信息消費者(consumer)連接至MQTT經紀人。消費者訂閱主題(此處定義為/home/alarms/1/status)。本示例主題可識別主頁上針對區域1的警報系統的狀態變化。當創建者有信息要分享時,它會向經紀人發布一條消息,然后經紀人將會將信息分享給所有訂閱該主題的用戶。
消息隊列遙測傳輸代理之間的簡單交互
請注意此處分享的主題結構。它與文件系統層次結構相似,這可簡化主題的結構。這種資源層次形式也常見于協議架構中,如REST。
MQTT甚至允許使用通配符的形式,以簡化訂閱流程。如果用戶想要獲取所有警報的狀態,則可直接訂閱/home/alarms/+/status,該主題可通知用戶所有的警報狀態變化。整個子樹還可使用主題/home/#進行訂閱,該主題可以訂閱/home下的所有事件。
服務質量
MQTT允許定義服務質量(QoS)。MQTT中有三個等級的QoS:
1、QoS0。該等級表示“最多一次”交付(最佳狀況)。消息不會得到確認,因而,這是一種一勞永與的方法。
2、QoS1。該等級表示“至少一次”交付。用戶可能不止一次獲得消息,但是允許收到的人確認已經收到。
3、QoS2。最慢但是最有保障的服務質量等級即為等級2。QoS2表示“只有一次”,并包含四個階段的交付握手。該等級最慢,但是最安全。
您選擇的QoS等級將取決于數據及其交付的重要性。
隨著越來越多的物聯網設備采用MQTT作為支持協議,作為支持傳感器、設備和云之間安全交互的愛陸通物聯網網關不僅支持MQTT和Modbus協議,還支持ZigBee、5G/4G/3無線網絡、藍牙、USB、WiFi等多種通信協議,完美的兼容了各類前端設備.