news 2026/9/27 11:27:40

【嵌入式】MODU协议

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【嵌入式】MODU协议

Modbus-RTU 是一种主从式串行通信协议,通过 RS-232 或 RS-485 等物理层传输。其核心是二进制编码的紧凑帧,解析的关键在于帧界定、字段解析和 CRC 校验。

📨 帧结构与解析

一个完整的 RTU 帧由以下字段组成:

· 从站地址 (1 字节):目标设备地址(1-247)。主机通过它寻址,从机响应时也填入自己的地址。

· 功能码 (1 字节):指示操作类型,如 0x03 读寄存器。

· 数据域 (N 字节):可变长度(0-252),包含请求参数或响应数据。

· CRC 校验 (2 字节):对整个帧(不含自身)的 CRC-16 校验结果,低字节在前。

解析实例:请求帧 01 03 00 6B 00 03 76 87

· 01: 从站地址

· 03: 功能码(读保持寄存器)

· 00 6B: 起始地址 0x006B (107)

· 00 03: 读取 3 个寄存器

· 76 87: CRC 校验值

🔬 CRC 校验

CRC 校验用于验证帧传输的完整性。接收方计算 CRC 并与帧中的校验码比较,若不匹配则丢弃该帧。

· 算法参数:多项式 0x8005(反转 0xA001),初始值 0xFFFF。

· C语言实现核心逻辑(来自开源参考):

```c

uint16_t ModRTU_CRC(uint8_t buf[], int len) {

uint16_t crc = 0xFFFF;

for (int pos = 0; pos < len; pos++) {

crc ^= (uint16_t)buf[pos];

for (int i = 8; i != 0; i--) {

if ((crc & 0x0001) != 0) {

crc >>= 1;

crc ^= 0xA001;

} else {

crc >>= 1;

}

}

}

return crc; // 注意:此时高低字节已交换,可直接发送

}

```

注意:发送时需先发低字节,再发高字节。

⏱️ 防丢包与帧界定

Modbus-RTU 没有起始/结束字符,靠时间间隔界定帧。

· 帧间间隔 (>3.5 字符):前一帧结束到后一帧开始,总线需空闲至少 3.5 个字符时间。

· 帧内间隔 (<1.5 字符):同一帧内字节间隔必须小于 1.5 个字符时间,否则视为帧结束。

· 字符时间计算:取决于波特率。例如 9600bps、11 位/字符时,约 1.14ms/字符,3.5 字符约 4ms。波特率 > 19200 时,时间间隔通常固定。

🛡️ 防丢包策略

· 硬件与软件基础:使用可靠的 RS-485 硬件、正确的 CRC 校验和匹配的通信参数。

· 发送端:发送前确保总线已空闲至少 3.5 字符。

· 接收端:核心策略是解析功能码,根据协议计算出响应帧的预期长度,然后读取指定字节数,而非单纯依赖时间。超时重传也是常用策略。

· 物理层:检查接线(双绞线、手拉手拓扑)、终端电阻和屏蔽层。

💎 总结

实现可靠的 Modbus-RTU 通信,关键在于:

1. 正确解析:理解并严格按顺序解析地址、功能码、数据域。

2. 精确校验:必须实现并正确使用 CRC-16 校验。

3. 时间敏感:严格遵守 3.5 字符和 1.5 字符的时间间隔规定。

4. 主动防丢:采用“长度感知”接收、超时重传等机制,不能完全依赖时间。

建议在实际开发中参考成熟的开源库(如 libmodbus、nanoMODBUS),它们已妥善处理了上述细节。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 11:27:29

高级软件架构师学习笔记----质量属性和质量效用树

本文重点对于这篇文章的内容&#xff0c;我只想说&#xff0c;它绝对是重中之重&#xff0c;因为这个章节中的内容往往存在于案例课程的第一题&#xff0c;如果这道题你要是不能拿到22分以上&#xff0c;我觉得你案例就危险了。在这篇文章中&#xff0c;我将把我的诀窍告诉你&a…

作者头像 李华
网站建设 2026/9/27 11:26:43

企业展示型网站源码2026最新:解决无人访问的实战方案

企业展示型网站源码2026最新:解决无人访问的实战方案 网站做好了没人访问,这是绝大多数中小企业老板最头疼的事。很多老板以为买了服务器、找了外包,网站上线就等于万事大吉,结果后台数据一片惨淡,连个像样的询盘都没有。这通常不是技术问题,而是选错了方向,或者没抓住2026最新的技术红利。…

作者头像 李华
网站建设 2026/9/27 11:26:29

3套方案搞定wordpress小图标网站 图解步骤避坑域名服务器

3套方案搞定wordpress小图标网站 图解步骤避坑域名服务器 域名买好了,服务器也租了,结果网站打开全是破图?别急,这不仅是图标没加载出来的问题,更是你技术选型没选对。很多站长盯着代码看半天,其实卡点根本不在前端,而在你对 WordPress…

作者头像 李华
网站建设 2026/9/27 11:26:00

2026最新查询类网站开发安全避坑指南

2026最新查询类网站开发安全避坑指南 很多甲方朋友一上来就问:“我要做个查询类网站,预算多少?多久能好?”但真正让项目延期、甚至上线后出大事故的,往往不是功能没做完,而是 域名服务器搞不懂…

作者头像 李华
网站建设 2026/9/27 11:25:50

衡阳seo排名多少钱?揭秘本地建站防坑指南

衡阳seo排名多少钱?揭秘本地建站防坑指南 找衡阳本地建站公司,最怕听到“全包”两个字。一开口问多少钱,报价单写得花里胡哨,最后落地时要么功能缩水,要么后期维护费像无底洞。很多老板心里都有本账:到底衡阳seo排名优化多少钱才合理?别被那些“首月免费”“排名保证前三”的忽悠话术带偏了。…

作者头像 李华
网站建设 2026/9/27 11:25:49

宁波外贸公司黄页搭建实战:不懂代码花多少钱能搞定

宁波外贸公司黄页搭建实战:不懂代码花多少钱能搞定 手里拿着几百家宁波外贸客户的资料,想做个黄页站挂在网上,却连服务器怎么买、域名怎么绑都不知道,这种“有货无门”的焦虑太常见了。别慌,今天不整虚的,直接拆解一个真实案例:一位做汽配出口的老张,预算有限,不懂代码,如何在两周内上线一个能接询盘的外贸黄页站…

作者头像 李华