物联网行业最重要的就是通信技术,物联网发展至今,出现了许多种协议,无论何种协议作用无外乎都是将”各类事物”通过各种协议连接到物联网中,以实现物与物之间的通信。今天,本文介绍两种物联网协议中的补充协议——MQTT和Modbus协议,帮助大家快速了解这两种协议。
Modbus是(shi)一(yi)个(ge)串行(xing)通信协(xie)议,首次出(chu)现(xian)于(yu)1979年,是(shi)连(lian)(lian)(lian)接行(xing)业(ye)设备(bei)实(shi)际(ji)使用(yong)的(de)标(biao)准协(xie)议。MQTT早在20年前便已出(chu)现(xian),但是(shi)将这两个(ge)协(xie)议结合在一(yi)起使用(yong),能够为深度嵌入式设备(bei)提供物(wu)联网的(de)规模和连(lian)(lian)(lian)接性。下图展示了这些协(xie)议之间(jian)的(de)一(yi)般关系,同时(shi)介绍了连(lian)(lian)(lian)接的(de)支持解(jie)决方案:物(wu)联网网关。
物(wu)联(lian)网(wang)网(wang)关作为物(wu)联(lian)网(wang)通信的支持解决方(fang)案,现在让我(wo)们来看一下Modbus和(he)MQTT,以了解其区别以及如何(he)在物(wu)联(lian)网(wang)中互相(xiang)补充。
Modbus
自1979年(nian)首次出现至今(jin),Modbus已经演变(bian)为一(yi)(yi)(yi)套全面(mian)的支持多(duo)种物理链接(jie)的协议(yi)集(如RS485)。Modbus的核心是一(yi)(yi)(yi)个串行通(tong)信协议(yi),采用主从(cong)(cong)模式。主机(ji)(ji)向从(cong)(cong)机(ji)(ji)发送请求,从(cong)(cong)机(ji)(ji)予(yu)以回复。在标准Modbus网络中,有一(yi)(yi)(yi)台主机(ji)(ji)以及最(zui)多(duo)247台从(cong)(cong)机(ji)(ji)(但是,如果采用2字(zi)节(jie)寻址,则可显著(zhu)提(ti)高这一(yi)(yi)(yi)界限(xian))。
借助RS485,主从(cong)机之(zhi)间的(de)通(tong)信(xin)发(fa)生在指(zhi)示(shi)功(gong)能(neng)码(ma)(ma)的(de)帧中。该功(gong)能(neng)码(ma)(ma)可(ke)识(shi)别要(yao)操作的(de)功(gong)能(neng),如读取独立(li)输入;读取先进(jin)先出队列;或执行诊断函数。然后,从(cong)机根据收到的(de)功(gong)能(neng)码(ma)(ma)进(jin)行响应,该响应较为简单,由一组(zu)字节指(zhi)示(shi)。因(yin)此(ci),从(cong)机可(ke)以(yi)是(shi)智(zhi)能(neng)设(she)备,也可(ke)以(yi)是(shi)只有一个传(chuan)感器(qi)的(de)简单设(she)备。
从该(gai)描述中,您可(ke)以看到(dao)Modbus协(xie)议(yi)非常简单,但(dan)是其作为(wei)协(xie)议(yi)的开(kai)放性使其成为(wei)整(zheng)个行业或SCADA系统的实际通信协(xie)议(yi)。
消息队列遥测传输
MQTT是一(yi)个开放(fang)的轻量级机器对机器协议(yi),专为物联网(wang)交互设计。MQTT网(wang)络包含一(yi)个MQTT经纪人(broker),负责协调(diao)MQTT代(dai)(dai)理(li)之间(jian)的交互。代(dai)(dai)理(li)是发布(bu)器,负责发布(bu)供用户使(shi)用的信(xin)息(xi)(参见(jian)下图)。
消息队列(lie)遥(yao)测传输网络中的作(zuo)用因素
MQTT的(de)要求非常少,因为它(ta)专为资源有限的(de)嵌(qian)入式设(she)备设(she)计。除了占(zhan)地空间少之外,MQTT还(hai)可提供出色的(de)通(tong)信(xin)高(gao)效性(xing)(xing)(即(ji)使通(tong)过(guo)低带宽网络(luo)进行通(tong)信(xin))和非常少的(de)开(kai)销(较(jiao)之HTTP等(deng)协议)。即(ji)使是(shi)在(zai)3G网络(luo)中,MQTT的(de)吞(tun)吐量速(su)度是(shi)使用HTTP的(de)表(biao)述性(xing)(xing)状态转移(REST)的(de)93倍,5G/4G下的(de)提升将会更大。
MQTT可使用最少的方法指(zhi)示要在特定(ding)主题上(shang)实(shi)施的操作,进(jin)而(er)实(shi)施发(fa)布(bu)(bu)/订阅模(mo)式。代理(li)先连接到(dao)经纪(ji)人,然后再(zai)发(fa)布(bu)(bu)或订阅主题。完成后,代理(li)将从经纪(ji)人上(shang)断开连接。MQTT方法定(ding)义:
连接-建(jian)立与MQTT经纪人之间的连接。
断(duan)开连(lian)(lian)接-断(duan)开与MQTT经(jing)纪人之间的连(lian)(lian)接。
发(fa)布-在(zai)MQTT经纪人上(shang)发(fa)布主题。
订阅-从MQTT经(jing)纪人上订阅主题。
退订(ding)-从MQTT经(jing)纪人上退订(ding)主题。
又如(ru)下(xia)图所(suo)示(shi)(shi),下(xia)图展示(shi)(shi)了发(fa)布(bu)者(zhe)(zhe)与订(ding)(ding)(ding)阅(yue)者(zhe)(zhe)使用(yong)MQTT经(jing)纪(ji)(ji)人(ren)(ren)进行的(de)简(jian)单(dan)交互(hu)。如(ru)图所(suo)示(shi)(shi),信(xin)(xin)(xin)息(xi)创(chuang)建者(zhe)(zhe)(producer)连(lian)接至MQTT经(jing)纪(ji)(ji)人(ren)(ren)。同样,信(xin)(xin)(xin)息(xi)消费者(zhe)(zhe)(consumer)连(lian)接至MQTT经(jing)纪(ji)(ji)人(ren)(ren)。消费者(zhe)(zhe)订(ding)(ding)(ding)阅(yue)主(zhu)题(此(ci)处定义(yi)为/home/alarms/1/status)。本示(shi)(shi)例(li)主(zhu)题可(ke)识别主(zhu)页上针对区域1的(de)警报系统的(de)状态(tai)变化(hua)。当(dang)创(chuang)建者(zhe)(zhe)有信(xin)(xin)(xin)息(xi)要分享(xiang)时,它会(hui)向经(jing)纪(ji)(ji)人(ren)(ren)发(fa)布(bu)一条消息(xi),然后经(jing)纪(ji)(ji)人(ren)(ren)将会(hui)将信(xin)(xin)(xin)息(xi)分享(xiang)给所(suo)有订(ding)(ding)(ding)阅(yue)该主(zhu)题的(de)用(yong)户(hu)。
消息队列(lie)遥(yao)测传输(shu)代理之间的简单交互
请注意此处分享的主题结(jie)构(gou)。它与文件系统层(ceng)次结(jie)构(gou)相似,这可简化(hua)主题的结(jie)构(gou)。这种资源层(ceng)次形(xing)式也常见于协议架构(gou)中,如REST。
MQTT甚(shen)至允许使用通配符的(de)(de)形式,以简化订阅流程。如果用户想要获取所(suo)有警(jing)报(bao)(bao)的(de)(de)状态,则可(ke)直接订阅/home/alarms/+/status,该主(zhu)题可(ke)通知用户所(suo)有的(de)(de)警(jing)报(bao)(bao)状态变化。整个子树(shu)还可(ke)使用主(zhu)题/home/#进行订阅,该主(zhu)题可(ke)以订阅/home下的(de)(de)所(suo)有事(shi)件(jian)。
服务质量
MQTT允许定义服务质量(QoS)。MQTT中有(you)三个等级的QoS:
1、QoS0。该等级表示“最(zui)多一次”交付(最(zui)佳状况)。消(xiao)息不(bu)会得到(dao)确认,因而(er),这(zhei)是一种一劳永与的(de)方法(fa)。
2、QoS1。该等级(ji)表示“至少一(yi)次”交付。用户可能不止一(yi)次获得消息(xi),但是允许收到(dao)的人确认已经(jing)收到(dao)。
3、QoS2。最慢但是最有保障(zhang)的(de)(de)服务质量(liang)等级即(ji)为(wei)等级2。QoS2表示“只有一次”,并包(bao)含(han)四个阶(jie)段的(de)(de)交(jiao)付握手。该(gai)等级最慢,但是最安(an)全(quan)。
您选择(ze)的(de)QoS等级将取决于数据(ju)及其交付的(de)重要性。
随着越来越多的物联网设备采用MQTT作为支持协议,作为支持传感器、设备和云之间安全交互的沐鸣娱乐物联网网关不仅(jin)支持MQTT和Modbus协议,还(hai)支持ZigBee、5G/4G/3无线(xian)网络(luo)、蓝牙、USB、WiFi等多(duo)种通信协议,完美的兼容了(le)各类(lei)前(qian)端设备.