当前位置: 首页 > news >正文

物联网(IoT)中常用的通信协议

物联网(IoT)中常用的通信协议,用于设备与设备、设备与服务器之间的数据传输和控制。

以下是常见协议的简要说明:


1. MQTT (消息队列遥测传输)

  • 特点轻量级发布/订阅模式、基于 TCP
  • 工作原理: 设备(发布者)将消息发送到一个称为“代理”(Broker)的中间服务器,其他设备(订阅者)从代理订阅它们关心的主题(Topic)来接收消息。
  • 优势: 非常节省电量和网络带宽,非常适合网络不稳定或资源受限的嵌入式设备。
  • 典型应用: 远程传感器数据采集、移动应用消息推送、智能家居设备控制。

2. HTTP (超文本传输协议)

  • 特点请求/响应模式、基于 TCP、是互联网上最广泛使用的协议。
  • 工作原理: 客户端(如设备)向服务器发起一个请求(Request),服务器处理后再向客户端返回一个响应(Response)。
  • 优势: 通用性强,标准统一,开发简单,有大量成熟的工具和库支持。
  • 典型应用: 设备通过 RESTful API 与云平台进行数据交换(尤其是需要与现有Web系统集成时)。

3. CoAP (受限应用协议)

  • 特点专为受限设备设计(如低功耗、低内存)、基于 UDP、语法与 HTTP 类似。
  • 工作原理: 也采用请求/响应模型,但非常轻量。它支持多播、低开销,并且有重传机制来弥补UDP的不可靠性。
  • 优势: 在保证类似HTTP功能的同时,极大地降低了功耗和协议开销。
  • 典型应用: 无线传感器网络(WSN)、NB-IoT/LoRaWAN等低功耗广域网设备。

4. SNMP (简单网络管理协议)

  • 特点专用于网络设备管理、基于 UDP
  • 工作原理: 通过“管理器”(Manager)来轮询(Poll)“代理”(Agent,即被管理的设备),获取或设置其状态信息(如CPU使用率、端口状态等)。也支持“陷阱”(Trap),即代理主动向管理器报告异常事件。
  • 优势: 是网络设备管理的行业标准,功能强大且成熟。
  • 典型应用: 路由器、交换机、打印机等网络设备的监控和管理,现在也广泛应用于服务器和IoT网关的监控。

5. LwM2M (轻量级机器对机器协议)

  • 特点一个设备管理协议,而不仅仅是通信协议。它通常使用 CoAP 作为传输协议。
  • 工作原理: 定义了一套标准的对象和资源模型,用于对IoT设备进行远程管理,包括:固件升级、连接管理、数据上报、故障诊断等。
  • 优势: 提供了一套完整的端到端设备管理解决方案,而无需自己设计管理接口。
  • 典型应用: 需要对大规模部署的IoT设备(如智能电表、共享单车)进行远程监控、配置和软件更新的场景。

总结与关系

协议主要用途传输层模型
MQTT通用数据采集与发布TCP发布/订阅
HTTP通用数据交互与集成TCP请求/响应
CoAP受限环境下的数据交互UDP请求/响应
SNMP网络设备监控与管理UDP请求/响应 + 陷阱
LwM2MIoT设备生命周期管理通常基于CoAP(UDP)对象模型

可以这样理解:

  • MQTT、HTTP、CoAP 更像是“数据传输”的高速公路,负责把数据从A点送到B点。
  • SNMPLwM2M 则是在这些“高速公路”上跑的“专用车辆”,它们不仅运送数据,还定义了数据的具体格式和用途(主要是设备管理)。其中,LwM2M 这辆“车”经常选择跑在 CoAP 这条“高速”上。

这些协议共同构成了物联网生态系统中的通信骨干,我们根据设备能力、网络条件和应用场景来选择最合适的协议或协议组合。


另外,还有我们还经经常听到的Modbus 与上面提到的协议(MQTT, HTTP, CoAP, SNMP, LwM2M)有本质的区别,但它们又可以在物联网系统中协同工作。

简单来说,它们的关系是:Modbus 是用于“现场”设备通信的“工业语言”,而上面那些协议是用于“云端”或“远方”数据传输的“互联网语言”。


Modbus 的核心特点(与上图协议的根本区别)

  1. 应用领域不同:工业 vs 互联网

    • Modbus: 诞生于1979年,是工业自动化领域老祖宗级协议。它专门用于连接PLC(可编程逻辑控制器)、传感器、电机、阀门等工业设备。
    • MQTT/HTTP等: 是互联网时代的协议,旨在让设备通过以太网、Wi-Fi、4G/5G等IP网络连接到云端平台或应用程序。
  2. 网络层次不同:现场总线 vs IP网络

    • Modbus: 最初是一种串行通信协议(Modbus RTU,跑在RS-485/RS-232物理层上),后来有了基于以太网TCP/IP的版本(Modbus TCP)。但即使是Modbus TCP,它也只定义了传输层和应用层,其目的非常单纯:读写寄存器。
    • MQTT/HTTP等: 是纯粹基于IP网络(TCP/IP协议栈)的应用层协议,天生就是为了在局域网或互联网上进行远程通信。
  3. 通信模型不同:主从式 vs 对等/发布订阅

    • Modbus: 严格的主从(Master-Slave)架构。只有一个主设备(如工控机、网关)可以发起请求,从设备(如传感器、执行器)只能被动响应。从设备之间不能直接通信
    • MQTT发布/订阅(Pub/Sub)架构,设备可以自由地发布或订阅消息。
    • HTTP/CoAP客户端-服务器(Client-Server)架构,比主从式更对等,任何一方都可以作为客户端发起请求。
  4. 数据模型不同:寄存器 vs 主题/资源

    • Modbus: 数据模型极其简单和固定。设备的数据被映射到四种类型的“寄存器”上:
      • 线圈(Coils): 可读可写的开关量(1位)
      • 离散输入(Discrete Inputs): 只读的开关量(1位)
      • 输入寄存器(Input Registers): 只读的模拟量(16位)
      • 保持寄存器(Holding Registers): 可读可写的模拟量(16位)
        通信内容就是“读/写某个地址的寄存器”。
    • MQTT: 数据模型是灵活的主题(Topic)消息体(Payload),内容通常是JSON、二进制等自定义格式。
    • HTTP: 数据模型是URL资源,内容格式无限自由(JSON, XML, HTML等)。

它们如何协同工作?

第四层: 云端处理与应用
第三层: 协议转换与上传
第二层: 数据采集与转换
采集原始寄存器数据
如: 40001=2560
转换为应用数据
如: '温度': 25.6
MQTT/HTTP/CoAP
发布至云端Topic/API
接收并触发规则链
持久化数据
提供查询接口
Modbus RTU/RS-485
或 Modbus TCP
通过HTTP/REST API
提供数据服务
第五层: 应用呈现
Web可视化大屏
手机App
监控中心
物联网云平台
ThingsBoard/AWS IoT
规则链
处理/存储/告警
数据存储
协议适配器
MQTT/HTTP Client
物联网网关
Modbus Master
数据解析与转换引擎
第一层: 现场层 Field Level OT
PLC
传感器
执行器
智能电表

这幅图清晰地展示了数据从工厂车间的传感器到用户屏幕的五个关键层级:

1. 现场层 (Field Level - OT)

  • 设备:PLC、传感器、执行器、智能电表等。
  • 协议:使用Modbus(RTU over RS-485或TCP)进行通信。
  • 角色:这些设备作为Modbus从站(Slave),被动地等待被网关采集数据。

2. 数据采集与转换层

  • 核心部件物联网网关
  • 角色1 (Modbus主站):网关充当Modbus主站(Master),主动轮询采集所有从站设备的原始寄存器数据。
  • 角色2 (数据转换):网关内的转换引擎将原始数据(如:寄存器40001的值2560)解析并转换成有物理意义的应用数据(如:“温度”: 25.6)。

3. 协议转换与上传层

  • 核心部件:网关内的协议适配器(如MQTT Client)。
  • 动作:将转换好的结构化数据(通常是JSON格式),通过MQTTHTTP等适用于互联网的协议,发布到云端平台。

4. 云端处理与应用层

  • 核心平台物联网云平台(如ThingsBoard, AWS IoT)。
  • 处理流程:平台接收数据后,由规则链进行处理(如计算、分析)、生成告警、并最终将数据存储到时序数据库或其他存储中。

5. 应用呈现层

  • 最终呈现:处理后的数据通过平台提供的HTTP REST API,被各种客户端应用获取并展示给用户,如Web大屏手机App监控中心软件等。

整个流程体现了从OT(运营技术) 领域到IT(信息技术) 领域的完美融合,而物联网网关则是连接这两个世界、完成协议与数据转换的核心桥梁


总结对比

特性ModbusMQTT / HTTP / CoAP
领域工业自动化 (OT)物联网/互联网 (IT)
主要作用现场设备控制与数据采集远程数据通信与集成
架构主从式发布订阅 / 客户端-服务器
数据模型寄存器(线圈、保持寄存器等)主题、资源、JSON消息等
关系生于工厂,用于现场生于云端,用于远方
协作方式通过物联网网关进行协议转换,将数据汇聚并上传至使用MQTT/HTTP的云平台

所以,Modbus和上图协议不是竞争关系,而是互补关系。Modbus负责最后一段的“现场通信”,而MQTT等协议负责“远程传输”,共同构成一个完整的工业物联网解决方案。

http://www.xdnf.cn/news/1400221.html

相关文章:

  • GD32VW553-IOT 基于 vscode 的 bootloader 移植(基于Cmake)
  • 微论-突触的作用赋能思考(可能是下一代人工智能架构的启发式理论)
  • 响应式编程框架Reactor【5】
  • Spring代理的特点
  • AI-调查研究-65-机器人 机械臂控制技术的前世今生:从PLC到MPC
  • 【MCP系列教程】 Python 实现 FastMCP StreamableHTTP MCP:在通义灵码 IDE 开发并部署至阿里云百炼
  • JsMind 常用配置项
  • 【计算机网络】HTTP是什么?
  • 基于Docker部署的Teable应用
  • Linux驱动开发重要操作汇总
  • “人工智能+”政策驱动下的技术重构、商业变革与实践路径研究 ——基于国务院《关于深入实施“人工智能+”行动的意见》的深度解读
  • wpf之依赖属性
  • 桌面GIS软件FlatGeobuf转Shapefile代码分享
  • 学习游戏制作记录(视觉上的优化)
  • 第三弹、AI、LLM大模型是什么?
  • Visual Studio(vs)免费版下载安装C/C++运行环境配置
  • openEuler2403安装部署Redis8
  • FPGA学习笔记——SPI读写FLASH
  • 【运维篇第三弹】《万字带图详解分库分表》从概念到Mycat中间件使用再到Mycat分片规则,详解分库分表,有使用案例
  • 小迪Web自用笔记7
  • 【Linux】如何使用 Xshell 登录 Linux 操作系统
  • SC税务 登录滑块 分析
  • 拦截器Intercepter
  • hello算法笔记 01
  • Isaac Lab Newton 人形机器人强化学习 Sim2Real 训练与部署
  • 下一代 AI 交互革命:自然语言对话之外,“意念控制” 离商用还有多远?
  • 在 .NET Core 中实现基于策略和基于角色的授权
  • HarmonyOS应用的多Module设计机制:构建灵活高效的应用程序
  • 【瑞吉外卖】手机号验证码登录(用QQ邮件发送代替)
  • python制作一个股票盯盘系统