Modbus 中的 CRC 校验是什么?如何计算 CRC 校验值?

Modbus 中的 CRC 校验是什么?如何计算 CRC 校验值?缩略图

Modbus 协议中的 CRC 校验是一种用于验证 Modbus 数据报文完整性的校验方式,可以有效防止数据传输中的误码和数据篡改。Modbus 协议中使用的 CRC 校验采用了多项式除法的方式,具体计算方法如下:

Modbus 中的 CRC 校验是什么?如何计算 CRC 校验值?概述

  1. 首先将 Modbus 数据报文中的所有字节按照顺序组成一个字节数组。
  2. 然后将该字节数组的所有字节依次带入 CRC 计算函数中,计算出 CRC 校验值。
  3. 最后将计算出的 CRC 校验值附加到 Modbus 数据报文的末尾,用于验证数据的完整性。

计算 CRC 校验值的具体步骤如下:

  1. 将一个16位寄存器的初值设为0xFFFF。
  2. 对字节数组中的每一个字节进行以下操作:
    • 将该字节的值与0xFF做异或运算。
    • 将上述结果与16位寄存器的低8位进行异或运算,得到一个新的16位寄存器的值。
    • 对新的16位寄存器的值进行8次循环,每次循环:
      • 如果寄存器的最高位为1,就将寄存器左移一位,并与0xA001做异或运算;
      • 如果寄存器的最高位为0,就将寄存器左移一位。
  3. 最终得到的16位寄存器的值就是 CRC 校验值。

需要注意的是,计算 CRC 校验值时,字节的顺序需要按照 Modbus 协议规定的顺序,一般来说是从低位到高位依次排列。此外,CRC 校验值的附加方式也需要按照 Modbus 协议规定的格式进行。

下载整理一些CRC在线效验的网址:

http://www.ip33.com/crc.html

https://www.23bei.com/tool/232.html

对新的16位寄存器的值进行8次

技术术语(共 1 个)—— 点击展开
寄存器Modbus 寄存器存储数据单元,分线圈/离散输入/保持/输入寄存器四类
来源/工具信息 —— 点击展开
来源 Modbus.cn — China's leading Modbus communication protocol technical community 分类 Modbus 协议标准 字数 593 字 · 阅读约 2 分钟 更新 2026-07-01 永久链接 https://www.modbus.cn/en/11817.html
推荐工具:Modbus调试助手 微信小程序
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
📝 作者声明
本文由 Modbus中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口

One response to “Modbus 中的 CRC 校验是什么?如何计算 CRC 校验值?”

发表回复

Your email address will not be published. 必填项已用 * 标注

http://www.ip33