| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 主流物联网协议选择:MQTT、CoAP 还是 LwM2M? -> 正文阅读 |
|
[嵌入式]主流物联网协议选择:MQTT、CoAP 还是 LwM2M? |
随着物联网技术的发展与普及,越来越多的智能设备具备了网络连接与数据传输能力。由于物联网场景复杂多样,设备端硬件条件、网络稳定性、流量限制、设备功耗以及设备连接数量等多方面因素造成物联网设备的消息传递与传统互联网场景有着很大不同,也因此产生了多种物联网通讯协议。 本文将选取几种主流的物联网协议,从协议的技术特性、适用场景、相对优势以及市场情况等方面一一进行介绍,为物联网从业者提供参考,帮助大家在实际项目中选择合适的物联网协议。 协议分类在介绍之前,我们对物联网协议进行一个简单分类,方便读者理解其应用场景。 从功能角度从功能角度来划分,我们可以将其分为两大类,一类是物理层/数据链路层协议,一类是应用层协议。 物理层/数据链路层协议一般负责设备间的组网及通信,比如 2G/3G/4G/5G、NB-IoT、WiFi、ZigBee、LoRa 这些远距离通信,也有近距离的比如 RFID、NFC、蓝牙协议无线协议和 RS232、USB 等有线协议。 应用层协议则主要是运行在传统互联网 TCP/IP 协议之上的设备通讯协议,这类协议通过互联网,支撑设备到云端平台的数据交换及通信,常见的有 HTTP、MQTT、CoAP、LwM2M 以及 XMPP 等协议。 从应用角度从协议在物联网系统中的应用角度来看,我们可以将协议划分为云端协议和网关协议。 云端协议是建立在 TCP/IP 上的协议,传感器、控制设备等物联网数据通常都需要传输上云,通过云端连通用户并与企业系统进行集成。 支持 TCP/IP 的物联网设备,可以通过 WIFI、蜂窝网络以及以太网,使用 HTTP、MQTT、CoAP、LwM2M 以及 XMPP 等应用层协议协议接入云端。 网关协议是适用于短距通信无法直接上云的协议,比如蓝牙、ZigBee、LoRa 等。此类设备需要接入网关转换之后,通过 TCP/IP 协议进行上云。 ZigBeeZigbee 是一种网状网络无线协议,专为建筑和家庭自动化应用而设计,是物联网环境中最流行的网状协议之一。目前主要用于局域网内连接,在设备侧以网关的身份接入控制各类设备。 协议特性
市场状况Zigbee 技术具有低功耗、大节点容量、短时延、安全可靠等突出优点,可满足智能家居应用需求,是智能家居核心无线组网连接技术。得益于中国智能家居市场快速发展,应用 Zigbee 技术的智能家居设备数量不断增长,Zigbee 技术应用推广步伐日益加快。 相比同为无线局域网技术体系的 WiFi、蓝牙技术,Zigbee 技术在功耗、节点容量、自组网能力、安全性方面具有突出优势,应用规模不断扩大。
NB-IoTNB-IoT 是由 3GPP 标准化组织制定的一种新型蜂窝技术,属于低功率广域 (LPWA) 物联网连接的一种,主要用于连接带宽资源受限的终端,允许终端以比 GRPS、3G、LTE 等技术更少的资源收集和交换数据。 NB-IoT 在 2017-2018 年发展迅速,全球众多运营商陆续实现了商用部署。NB-IoT 的低成本、低功耗和广覆盖使得用户能够实现传统蜂窝网络无法支持的新场景新应用。 2020 年 7 月 9 日,3GPP 宣布 5G R16 标准冻结,NB-IoT 正式纳入 5G 标准,成为 5G mMTC 海量物联网连接场景核心技术。 协议特性
市场状况当前,NB-IoT 已进入亿级连接时代,后续随着全球运营商对商用 NB-IoT 5G 网络的全覆盖建设,NB-IoT 将在智能家居、智慧农业、工业制造、能源表计、消防烟感、物流跟踪、金融支付等各领域中持续爆发。 以中国电信物联网开放平台为例,该平台实现了对中国电信 NB-IoT 以及其他网络物联网设备的集中接入,并为政企用户提供物联网设备管理、数据接口以及应用使能等服务。 EMQ 从该平台建设之初即已参与,配合天翼物联为该平台研发 NB-IoT 设备接入与消息路由能力,并同时支持电信 TLINK、MQTT 等协议设备的接入,平台整体设计接入能力达亿级。 LoRaLoRa 协议是一个低功耗、远距离、无线广域网的标准协议,其名称来自于「远距离(Long Range)」的简称。 LoRa 相比其他无线传播协议如 ZigBee、蓝牙、WIFI 最大的特点是同功耗下传播距离更远,实现了低功耗和远距离的统一,它在同样的功耗下比传统的无线射频通信距离扩大 3-5 倍。 LoRa 在物联网应用中的无线技术有多种,可组成局域网或广域网。LoRa 网络主要由终端(可内置 LoRa 模块)、网关(或称基站)、Server 和云四部分组成。 LoRaWAN 的数据传输速率范围为 0.3 kbps 至 37.5 kbps,为了最大化终端设备电池的寿命和整个网络容量,LoRaWAN 网络服务器通过一种速率自适应(Adaptive Data Rate , ADR)方案来控制数据传输速率和每一终端设备的射频输出功率。 协议特性
市场状况对于智慧农业、智慧城市、工业物联网 (IIoT)、智能环境、智能家居和楼宇、智能公用事业和计量以及智能供应链和物流中的农村或室内应用场景,LoRa 具有极高的灵活性。 LoRa 组网方便,利用 LoRa 极强的穿透力,可以低成本实现对较大范围内的设备连接,相比通过 NB-IoT 和运营商 SIM 卡接入,LoRa 不需要每年换卡或缴费,长期使用拥有较低的成本。 MQTTMQTT 协议是基于发布/订阅模式的物联网通信协议,凭借简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山。 MQTT 协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力、能源等领域,既能作为网关在设备侧接入通信,也能作为设备-云端的通信协议。ZigBee、LoRa 等绝大多数网关协议最终都转换为 MQTT 协议接入上云。 协议特性
通信模式MQTT 采用发布订阅模式通信,发布订阅模式区别于传统的客户端-服务器模式,它使发送消息的客户端(发布者)与接收消息的客户端(订阅者)分离,发布者与订阅者不需要建立直接联系。我们既可以让多个发布者向一个订阅者发布消息,也可以让多个订阅者同时接收一个发布者的消息。 市场状况MQTT 是 IoT 领域的最重要的标准协议之一,广泛用于物联网、车联网、工业物联网、智能家居、智慧城市、电力石油能源等行业。 MQTT 是 AWS IoT Core、 Azure IoT Hub、阿里云物联网平台等顶级云厂商物联网平台标准通信协议,是工业互联网、车联网、智能家居等各个行业以及诸多网关协议上云的首选协议。 EMQX 作为全球最热门、最成熟的 MQTT Broker 之一,提供了「随处运行,无限连接,任意集成」云原生分布式物联网接入平台,一体化的分布式 MQTT 消息服务和强大的 IoT 规则引擎,为高可靠、高性能的物联网实时数据移动、处理和集成提供动力,助力企业快速构建关键业务的 IoT 平台与应用。
CoAPCoAP 是一种在物联网世界的类 HTTP 的协议,使用在资源受限的物联网设备上,它的详细规范定义在 RFC 7252。 由于物联网设备大多都是资源限制型的,比如 CPU、RAM、Flash、网络宽带等。对于这类设备来说,想要直接使用现有网络的TCP和HTTP来实现设备实现信息交换是不现实的。为了让这部分设备能够顺利接入网络,CoAP 协议应运而生。 协议特性CoAP 参考了很多 HTTP 的设计思路,同时也根据受限资源限制设备的具体情况改良了诸多的设计细节,增加了很多实用的功能。
市场状况相比于 MQTT,CoAP 更加轻量、开销更低,在某些特定的设备和网络环境下更为合适。EMQX 以及部分公有云物联网平台都提供提供了 CoAP 接入能力,请参考 MQTT 和 CoAP 在 EMQX 世界的一次「约会」 。 LwM2MLwM2M 是适用于资源有限的终端设备管理的轻量级物联网协议。LwM2M 协议诞生于 2013 年底,由 OMA(Open Mobile Alliance)提出并定义。目前的成熟版本号依然是 1.0,OMA 的专家们正为 1.1 版而努力。 协议特性LwM2M 协议最主要的实体包括 LwM2M Server 和 LwM2M Client。
此外,根据需要还可以加入LwM2M引导服务器(Bootstrap Server)或智能卡(SmartCard),对客户端完成初始的引导。 LwM2M 协议有以下几个突出特点:
考虑到与时俱进,实现简洁易懂的风格,LwM2M 协议采用了 REST。 但由于协议的服务对象是资源有限的终端设备,传统的 HTTP 数据传输方式显得过分笨重,难以支持受限资源,因此选择了具备 REST 风格的 CoAP 来完成消息和数据传递。一方面 CoAP 基于 UDP,与 TCP 相比,在网络资源有限及无法确保设备始终在线的环境里更加游刃有余(出于安全性考虑,使用了基于 UDP 的 DTLS 安全传输协议)。另一方面 CoAP 本身的消息结构非常简单,报文压缩,主要部分可以做到特别小巧,无需占用过多资源。 出于类似的考虑,协议的数据结构必须足够简单。LwM2M 协议定义了一个以资源(Resource)为基本单位的模型,每个资源可以携带数值,可以指向地址,以表示 LwM2M 客户端中每一项可用的信息。资源都存在于对象实例中(Object Instance),即对象(Object)的实例化。LwM2M 协议预定义了 8 种对象(Object)来满足基本的需求,分别是:
考虑到扩展性,协议也允许根据实际需要自定义更多的对象。在这样的数据模型中,资源、对象实例以及对象都是用数字对应的ID来表示的,以实现最大程度的压缩,因此任何资源都可以用最多 3 级的简洁方式表示,例如 /1/0/1 表示服务器对象(Server Object)第 1 个实例中的服务器短 ID 资源。 在注册阶段,LwM2M 客户端把携带了资源信息的对象实例传递给 LwM2M 服务器,以通知服务器自身设备所具备的能力。 EMQ 也实现了 EMQX 服务器上的 LwM2M 接入能力,实现了 LwM2M 协议的大部分功能,LwM2M 设备可以注册至 EMQX-LWM2M 上,从而通过 EMQX-LWM2M 访问并管理设备,设备也可以向 EMQX-LWM2M 上报信息,并使用 EMQ 后端的服务来采集数据。 XMPPXMPP 可拓展消息处理现场协议是基于 XML 的即时通讯协议,协议将通信上下文信息嵌入到 XML 结构化数据中,使得人与人之间、应用系统之间以及人与应用系统之间能即时通讯。 协议特性
市场状况XMPP 特点在于协议和扩展协议成熟,功能完善,专门为即时聊天(IM)场景设计。XMPP 是老牌的即时聊天协议,像 Google Hangouts, WhatsApp Messenger 等即时聊天程序都是基于 XMPP 的。 但由于 XMPP 依赖 XML 协议,放在 IoT 场景里过重,因此基本不适合物联网传输使用。 结语横向来看,物联网在几乎所有行业都有广泛的应用场景,每个行业有不同的工况和组网模式;从纵向来看,物联网系统涵盖了传感器/控制设备,数据接入、传输、路由交换组件以及数据的存储处理整个软硬件链条,每个环节都有需要合理、高效的技术方案。 当前物联网协议呈现多元化发展,不同行业和场景适用不同的协议,在相同的场景下也能够有多个协议可供选择,没有任何协议能够在市场上占有统治地位,各种协议之间存在一定的互补效应。因此,要实现物联网设备和数据的互联互通,关键点并不在与协议的统一,而在于不同协议之间的互联互通、上层业务应用层协议的统一。 EMQ 致力于解决物联网设备数据连接问题。核心产品 EMQX 物联网消息服务器可以通过开放标准的 MQTT、CoAP 和 LwM2M 协议连接任何设备,对于诸如工业场景中工业协议复杂多样的情况,也可通过边缘工业协议网关软件 Neuron 转换成统一的 MQTT 协议接入,满足绝大多数物联网场景下的数据采集需求,为企业的物联网业务提供高效可靠的数据接入层。
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:54:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |