用于 M2M 和物联网功能的应用层协议选项

作者:Jody Muelaner

投稿人:DigiKey 北美编辑

随着物联网 (IoT) 和工业 4.0 功能的采用,设备通过工业协议进行连接越来越多。此外,今天的机器对机器 (M2M) 通信正在迅速对这些协议进行了标准化。使问题复杂化的是,物联网协议并不描述单一的应用层协议,因为有多个标准在生效。因此,虽然早期的物联网实现使用标准的因特网协议,但现在也有专门的物联网协议。

为通信结构建模和为特定应用寻找合适的协议可能让人望而却步。本文概括了各种协议的作用以及这些协议的可用选项——如此设计工程师便可以更容易地选择最适合的协议进行整合。

工业自动化中 IIoT 功能图片图 1:工业自动化中的 IIoT 功能依赖于越来越多的采用工业协议进行联网的连接设备。这些网络的抽象层不需要了解底层的功能,这就是为什么如此多的设计工程集中在机器网络顶层(应用)的原因。(图片来源:Getty Images)

定义工业网络的应用层协议

数字 M2M 和物联网系统的通信协议结构在概念上被分成抽象层,最常见的模型有三、四、五或七层。这些概念框架假定,每一层基本上都“隐藏”了特定设备或来自其他设备的软件层或其通信所用算法的详细工作方式。这是因为各层定义为只包含手头数据交换所需的足够信息。

分层系统架构与云计算和雾计算对比图片(点击放大)图 2:传统的系统架构是分层的,但云计算和雾计算已经模糊了组件功能之间的界限。这促使了新的网络协议模型的使用。(图片来源:Motioncontroltips.com

无论使用何种模型,都建立了一个应用层,作为网络上相互通信的设备之间的最高抽象层。考虑到应用层是开放系统互连 (OSI) 模型的一个概念——国际标准化组织 (ISO) 最初在近三十年前即已针对网络通信对之进行了定义。这个经典的七层模型对于描述今天的一些协议来说有些过于复杂,但对于充分理解系统内的数据流仍然是有用的。

协议的物理层允许将原始数据(数字比特)作为电、无线电波或光信号进行传输。该层规定了承载数据的物理元件的引脚布局、电压水平、数据速率和线路阻抗。以太网是一种常见的物理层协议。如需了解相关详情,请阅读 DigiKey 文章《EtherNet/IP 与 PROFINET 对比》。

数据链路层连接网络节点,让设备在物理层建立连接并纠正错误。在 IEEE 802 标准中,数据链路层分为介质访问控制 (MAC) 层(同样,让设备连接)和逻辑链路控制 (LLC) 层,用于识别下一个要使用的层(网络层)以及错误校验和同步。有关数据链路层功能,请阅读 DigiKey 文章《用 32 位 MCU 实现工业以太网》。相反,网络层允许将数据包转发到网络地址。另外,在数据链路和网络层之间有一个因特网层,因特网协议指的就是传输控制协议和因特网协议 (TCP/IP) 模型(在本文的下一节中讨论)。事实上,因特网层通常被认为是网络层的一部分。

接下来是三个 OSI 模型层中的第一个传输层,它确保数据序列传输过程中的通信可靠性和安全性。然后是会话层,控制设备何时相互连接,以及连接是单向的(单工)还是双向的(双工)。最后是表示层,允许数据转换,以便使用不同语法的设备可以进行通信。

本文的重点是应用层,这是最高级别的抽象,也是用户和系统软件互动的地方。

现代网络协议的 OSI 网络模型图片图 3:现代网络协议(和应用层)经常使用工业(和商业)网络的经典 OSI 模型来描述。相比之下,三层物联网架构模型将应用层置于感知和网络层之上;四层模型将其置于数据处理、网络和感知层之上。五层物联网协议模型也类似,但增加了处理层和企业层。(图片来源:Design World)

工业自动化中的因特网协议

因特网协议是数据通信系统,因其网络间转发数据的方式而得名(通常是相互转发),用于边界通信。它们的功能通常用上面提到的 TCP/IP 的四层模型来描述。这里,物理网络链路层与 OSI 模型的物理层相同。相比之下,TCP/IP 因特网层 (大致上接近 OSI 模型的数据链路和网络层功能的组合)处理连接以及数据包。在 IPv6 中,该层使用 128 位 IP 地址来识别网络上的主机——并允许超过 1038 个唯一的主机。

TCP/IP 中的传输层一般由传输控制协议 (TCP) 或用户数据报协议 (UDP) 组成。TCP 一般用于人类的互动,如电子邮件和网络浏览。它提供了逻辑连接、传输数据包的确认、丢失数据包的重传和流量控制。但是嵌入式系统则使用 UDP 来获得更低的开销和更好的实时性能。UDP 适用于域名服务器 (DNS) 和动态主机配置协议 (DHCP),以及新的物联网应用。

应用层是网络的 TCP/IP 模型中的最高层。功能包括那些与 OSI 模型的会话层和表示层相关的功能。

通用 TCP/IP 应用层协议

不同的应用层协议有不同的数据带宽、实时能力和硬件要求。这些因素以及工厂或 OEM 团队对协议的熟悉程度往往是一个重要的选择标准。尽管包括超文本传输协议 (HTTP) 和简单邮件传输协议 (SMTP) 在内的早期因特网协议主要用于人类驱动和人类消耗的通信,但具有 IIoT 倾向的 TCP/IP 协议更侧重于机器对机器 (M2M) 和其他工业通信。

使事情变得复杂的是,TCP/IP 中用于基于网络的人类信息互动的许多既定应用层协议也有消费和工业物联网的用途。对于 HTTP 和 SMTP 以及安全外壳 (SSH) 和文件传输协议 (FTP) 来说,这当然是真的。如果同时使用 eXtensible Markup Language (XML) 和 JavaScript Object Notation (JSON),用网络技术实现物联网功能通常是可行的。有一点需要注意的是,使用 HTTP 会涉及安全问题。这就是为什么在这种系统中的任何物联网设备通常最好只包括一个客户端——而不是一个服务器。这可以防止设备收到可能允许非授权外部网络接入的连接请求。在这里,WebSocket 协议可以通过 HTTP 建立全双工通信。否则,对于需要解决大量设备、具有良好安全性和实时数据通信的装置来说,可扩展的信息传递和存在协议 (XMPP) 可能是首选。

当物联网项目由具有 IT 背景的工作人员领导时,这些熟悉的标准(来自人类可读网络)可能是首选。然而,较新的 IIoT 协议在某些情况下可能更适合 M2M 和其他工业通信。

用于垂直连接传输功能的 MQTT

消息队列遥测传输 (MQTT) 协议在 IIoT 中得到了最迅速的采用,这是一个轻量级协议,最初用于存储空间有限的物联网设备。MQTT 最先由 IBM 开发,用于连接石油管道上的传感器,它提供了在紧凑的处理封装中进行操作能力,且需要的带宽最小。与受限应用协议 (CoAP) 不同,MQTT 已经根据 ISO/IEC 20922 进行了标准化。MQTT 使用资源更密集的 TCP 传输层,因此消耗更多的电力,但消息可以是两个字节——甚至比 CoAP 的消息更小。

由于其开放的性质,MQTT 也可以特别容易实现。难怪亚马逊网络服务的 AWS IoT 采用 MQTT 进行消息传输,并且(含警告)支持基于 v3.1.1 规范的 MQTT。

与稍后将介绍的物联网专用轻量级机器对机器 (LwM2M) 协议相比,MQTT 确实有一些局限性,这可能是由于 MQTT 最初是作为一个遥测协议而使用的。物体、连接性监测和远程设备操作等功能并不包括在该标准中,所以这些功能的纳入往往是针对供应商的,这在一定程度上降低了该标准化协议的价值。MQTT 也没有提供错误处理能力。最后,尽管 MQTT 可以通过完整的 TLS 协议来保证安全,但这样做会增加其开销。

主要用在企业层面:AMQP

高级消息队列协议 (AMQP) 是另一个开放标准,与 MQTT 有些类似。它提供先进的功能,如消息队列。然而,AMQP 的开销比 MQTT 的开销高,使得它不太适合连接非常受限制的设备。难怪它在工业物联网应用中的使用不如它在企业信息传递中的使用那么普遍。

用于连接简单设备的 CoAP

因特网工程任务组 (IETF) 的受限应用协议 (CoAP) 允许以最小存储空间和处理能力在低功率网络上进行设备间通信。它可以以非常低的开销运行,请求和响应可以小到四个字节。CoAP 放弃了使用复杂的传输堆栈,而是使用 UDP。如需了解 UDP 相关详情,请阅读 DigiKey 文章《EtherNet/IP 与 PROFINET 对比》。像 HTTP 一样,CoAP 也使用 REST 模型——服务器在一个 URL 下提供资源,客户端通过 POST、GET、DELETE 和 PUT 方法访问这些资源。此外,CoAP 可以很容易地翻译成 HTTP,以便与其他网络功能集成,以及与 XML 和 JSON 集成。工程师应该会发现,用 CoAP 连接物联网设备与用 Web API 连接设备非常相似。

Nordic 的 SiP 是一个低功耗 MCU 图片图 4:NordicSiP 是一款低功耗 MCU,集成了一个 LTE-M、窄带 (NB)-IoT 调制解调器以及 GPS。另提供一个软件开发工具包进行 CoAP 设置。(图片来源:Nordic Semiconductor)

用 LwM2M 连接电池供电型设备

开放移动联盟推出的一个应用层协议就是专为物联网应用而制订的 LwM2M 协议。LwM2M 基于 CoAP,因此与 CoAP 的许多属性相同,主要用于智慧城市应用、航运集装箱和货物跟踪、自动非公路例行程序和水电气监测。该标准由一系列明确定义和维护的标准对象组成,包括连接监测和远程设备操作。自动固件升级也简化了对 LwM2M 连接设备的管理。虽然纳入诸如 JSON 之类模块增加了它的开销,但它也使开发人员的设计工作变得更加容易。因为 LwM2M 是专门为物联网应用设计的,它也可以在不增加开销的情况下运行强大的 DTLS 安全协议。

用于实时分布式应用的 DDS

数据分发服务 (DDS) 有点不同——通常被归类为 M2M 中间件,而不是应用层协议。它为自主驾驶车辆、发电和空中交通管制系统提供安全和高性能的连接(其他方面除外)。在这些情形下,DDS 支持嵌入式系统的连接,使分布式控制摆脱了对网关的过度依赖。DDS 还处理消息的路由和发送,不需要应用干预。加上 DDS 服务的质量参数是可配置的,因此网络操作可以在系统约束下实现工作优化。

用于自主驾驶车辆的 Connext Drive 软件示意图图 5:用于自主驾驶车辆的 Connext Drive 软件建立在数据分配服务 (DDS) 中间件基础上——充当 AUTomotive Open System ARchitecture (AUTOSAR) 自适应和 ROS2 软件架构基础的一部分。这只是 DDS 支持物联网软件集成的一个例子。(图片来源:Real-Time Innovations

结语:IIoT 应用层协议

所有协议都有优点和缺点,但允许实现快速部署和安全(最好是低开销)的开源选项最适合物联网应用。算力不断增加的嵌入式系统和片上系统 (SoC) 器件持续推进 IIoT 的实现——并进一步扩大了各种协议应用层的可能性。

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Jody Muelaner

Jody Muelaner 博士是一位工程师,他曾设计过锯木厂和医疗设备,解决过航空航天制造系统的不确定性,并创造了具有创新意义的激光仪器。他在许多同行评审期刊和政府总结中发表过文章,并为劳斯莱斯、国际工程师协会和空客撰写技术报告。目前,他负责一个开发电动自行车的项目,详见 betterbicycles.org。Muelaner 还介绍与脱碳技术有关的发展情况。

关于此出版商

DigiKey 北美编辑