达到 M2M 与 IoT 功能的应用层通讯协定选项
本文概述多种通讯协定的作用,并说明这些协定的可用选项,以便设计工程师更轻松挑选最适合的进行整合。...
本文概述多种通讯协定的作用,并说明这些协定的可用选项,以便设计工程师更轻松挑选最适合的进行整合。然而任何通讯协定都有其优缺点,开放原始码的选择则可快速部署,且具有最适合 IoT 应用的安全性。
|
採用物联网(IoT)与工业4.0功能后,装置透过工业通讯协定连网的情况逐渐普及。除此之外,如今的机器对机器(M2M)通讯协定也迅速成为这些协定的标准化选择之一。比较复杂的是,IoT通讯协定并不会描述单一应用层的通讯协定,因为有多个标准同时操作中。因此,除了早期IoT实作使用的标准网际网路通讯协定外,目前更有专用的 IoT 通讯协定。
制作通讯结构的模型及判定适合特定应用的通讯协定并不容易。本文将概述多种通讯协定的作用,并说明这些协定的可用选项,以便设计工程师更轻松挑选最适合的进行整合。
制订工业网路的应用层通讯协定
数位M2M与IoT系统的通讯协定结构在概念上可分成不同的的抽象层,最常见的模型有三、四、五或七层。这些概念架构会假定每一层基本上会对与其通讯的其他装置或演算法,「隐藏」指定装置或软体层的详细作业。这是因为这些层级制订成,仅含有方便交换手边资料的足够资讯而已。
|
无论採用的模型为何,皆会建立应用层,在彼此透过网路通讯的装置之间当作最高的抽象层。可将应用层当作开放式系统互连(OSI)模型的一个概念。此模型是由国际标准化组织(ISO)在将近三十年前针对网路通讯所制订。此传统的七层模型已经有点太过复杂,不适合描述如今一些通讯协定,但若要完整瞭解系统中的资料流,仍然相当实用。
通讯协定的实体层可将原始资料(数位位元)以电气、无缐电或光学讯号的方式传递。此层级会针对承载资料的实体元件规定其引脚佈局、电压位准、数据传输率以及缐路阻抗。乙太网路是常见的实体层通讯协定。
资料链层会将网路节点连接到装置,以建立连缐并修正实体层的错误。在 IEEE 802 标准中,资料链层分为媒体存取控制(MAC)层(一样是用来让装置连缐)以及逻辑链路控制(LLC)层,可用来辨识要使用的下一层(网路层),并进行错误检查与同步处理。
相反地,网路层则可转送资料封包到网路位址。网际网路通讯协定是指传输控制通讯协定以及网际网路协定(TCP/IP)模型(本文下一章节讲解),且在资料链与网路层之间有网际网路层。事实上,网际网路层通尝试为网路层的一部份。
接下来三个 OSI 模型层级的第一个是传输层,可确保在资料序列传输时达到通讯可靠度与安全性。作业阶段层会控制装置何时要彼此连缐,以及连缐属于单向(单工)或双向 (双工)。最后,表现层可达到资料转换,以便使用不同语法的装置进行通讯。
本文的焦点应用层是最高层级的抽象层,也是使用者与系统软体互动的一层。
|
工业自动化中的网际网路通讯协定
网际网路通讯协定属于资料通讯系统,是以其在网路之间传递资料(通常为相互进行),达到边界间通讯而命名。其功能通常以上述 TCP/IP 的四层模型进行描述。在此,实体层或链路层与 OSI 模型的实体层相同。相反地,TCP/IP 的网际网路层(大致上类似于 OSI 模型的资料链与网路层功能合併)则会处理连缐以及资料封包。在IPv6中,此层级採用 128 位元 IP 位址来辨识网路上的主机,而且可允许超过 1038个独特主机。
TCP/IP 的传输层通常由传输控制通讯协定(TCP)或使用者资料包通讯协定(UDP)组成。TCP通常用于人员互动,例如电子邮件与网路浏览。可提供逻辑连缐、封包传输通知、遗失封包重新传输,以及流程控制。然而,嵌入式系统则会使用UDP来达到更低的额外负荷并达到更优异的即时效能。UDP 可用于网域名称伺服器(DNS)、动态主机设定通讯协定(DHCP)以及新式IoT应用。
应用层是TCP/IP网路模型的最高层级。功能包括与 OSI 模型作业阶段与表现层相关的功能。
一般 TCP/IP 应用层通讯协定
不同的应用层通讯协定在资料频宽、即时能力与硬体要求上也有所不同。这些因素再加上工厂或OEM团队对通讯协定的熟悉度,往往是重要的挑选条件。早期的网际网路通讯协定,包括超文字传输通讯协定(HTTP)与简易邮件传输通讯协定(SMTP)在内,大多数都用于人员导向及人员使用的通讯作业,但IIoT导向的TCP/IP通讯协定则更着墨在机器对机器(M2M)与其他工业通讯。
比较复杂的是,TCP/IP中有多少已制订的应用层通讯协定,原本是在网路上让人员与资讯互动的,但其实也有消费性与工业 IoT 的用途。HTTP 与 SMTP,以及安全壳层 (SSH)和档案传输通讯协定(FTP)正是这样的例子。若使用可延伸标记语言(XML)和 JavaScript 物件标记法(JSON),通常是可以实作IoT功能搭配网路技术的。
要注意的是,使用HTTP会有安全疑虑。这就是为何这类系统中的任何IoT装置最好只含有一个用户端,而非伺服器的原因。如此才可避免装置收到有可能会允许外部未授权网路存取连缐的要求。
在此,WebSocket通讯协定可透过HTTP建立全双工通讯。否则对于需要因应大量装置又要兼顾良好安全性与即时资料通讯的设备来说,可能会偏好使用可延伸传讯与显示通讯协定(XMPP)。
若IoT专案是由具有IT背景知识的人员领导,可能会偏好使用这些熟悉的标准(从人类可读网路)。然而较新型的 IIoT 通讯协定在某些情况下会更适合M2M及其他工业通讯。
MQTT 可用于垂直连缐传输功能
在IIoT中最迅速受到採用的是讯息伫列遥测传输(MQTT)通讯协定,此精简型通讯协定最初是用于记忆体有限的 IoT 装置。MQTT可在小巧的处理覆盖区上进行操作,且只需要最小的频宽,一开始是由 IBM 开发用来连接油管上的感测器。与受限型应用通讯协定(CoAP)不一样的是,MQTT已经依据 ISO/IEC 20922通过标准化。MQTT採用更为资源密集的TCP传输层,因此会耗用更多电力,但讯息大小可以只有两个位元组,甚至比CoAP的还要小。
由于具备开放式本质,MQTT 也特別容易实作。难怪 Amazon Web Service的AWS IoT 採用MQTT进行讯息传输(含注意事项),并且依据v3.1.1规范支援MQTT。
相较于即将要讲述的IoT专用精简型机器对机器(LwM2M)通讯协定来说,MQTT有一些限制,可能是MQTT原本是要当作遥测通讯协定使用的缘故。此标准不包含物件、连缐监测、远端装置动作等特点,因此若包含这些特点,通常都是由厂商决定,但多少会让标准化通讯协定的价值降级。MQTT也提供无错误处理能力。最后,即便MQTT可採用完整TLS通讯协定提升安全性,但这会增加额外负荷。
主要用于企业层级:AMQP
进阶讯息伫列通讯协定(AMQP)是另一种开放式标准,有点类似 MQTT。提供讯息伫列等进阶功能。只是AMQP 的额外负担比 MQTT 更高,因此不太适合连接受限较多的装置。难怪此通讯协定不常用于工业 IoT 应用,而较常用于讲究效能的企业传讯。
连接简易型装置的 CoAP
网际网路工程工作小组(IETF)制订的受限型应用通讯协定(CoAP),可让仅有最少记忆体与处理能力的装置,彼此在低功率网路中进行通讯。可在超低额外负荷与要求下操作,且回应最小仅有四位元组。CoAP会避免使用复杂的传输堆叠,而改为使用UDP。
CoAP跟HTTP一样,都採用REST模型。伺服器会用 URL 提供可用资源,而用户端可透过POST、GET、DELETE与PUT方法存取资源。除此之外,CoAP更可轻易转换成 HTTP,以便与其他网路功能进行整合,也可整合 XML 与JSON。工程师可发现利用 CoAP连接 IoT装置,与使用 Web API 连接装置非常类似。
|
使用 LwM2M 连接电池供电式装置
开放行动通讯联盟(Open Mobile Alliance)制订的应用层通讯协定之一就是 LwM2M,专门针对IoT应用而打造。LwM2M以CoAP为基础,因此共用诸多属性,可用于智慧城市应用、货柜、卡车追踪、自动化非公路例行作业,以及公用事业监测。此标准含有多种清楚界定与维护的标准物件,以及连缐监测与远端装置动作。自动化韧体升级亦可简化 LwM2M 连缐装置的管理作业。虽然纳入JSON等模组会增加额外负荷,但也可让开发人员更轻松进行设计工作。因为LwM2M专门针对IoT应用而设计,因此也可当作强大的DTLS安全通讯协定使用,且不会增加额外负荷。
DDS 适用于即时分散式应用
资料分散式服务(DDS)则有些许不同,通常会归类为M2M中介软体,而非应用层通讯协定。可在自驾车、发电、空中交通控制系统等应用中提供安全且高效能的连缐。在这些应用中,DDS可支援嵌入式系统连缐达到分散式控制,以免过度依赖闸道器。DDS亦可处理讯息的路由与传递,无需应用的干预。此外,DDS服务参数的品质可进行设定,因此可在系统限制下,将网路作业达到符合工作需求的最佳化程度。
|
结论:IIoT 应用层通讯协定
任何通讯协定都有其优缺点,但开放原始码的选择则可快速部署,且具有最适合IoT应用的安全性(因额外负荷低,因此偏好使用)。嵌入式系统与系统单晶片(SoC)装置的运算能力日益提升,因此持续促进IIoT的实作,且更进一步扩充各种通讯协定应用层的潜在应用。
(本文作者Jody Muelaner为工程师,目前指导开发电动单车专案,也参与除碳技术的相关开发工作,属于Digi-Key公司北美编辑群之一)