使用指南

如何计算 Modbus RTU 帧的 CRC

说明 CRC-16/Modbus 的初始值、多项式、字节顺序和可复现的帧校验方法。

最快路径

当你需要为 RTU 请求或响应得到可复现的 CRC 值时,直接使用 Modbus CRC 计算器。 只输入校验值之前的字节,然后按低 CRC 字节、高 CRC 字节的顺序追加。

应该输入什么

ASCII 模式会按你输入的字符编码。标准测试向量可以直接输入 123456789。 十六进制模式适合粘贴串口分析仪里的帧字节,例如 01 03 00 00 00 0A。重新计算已有帧时不要把最后两个 CRC 字节带进去。

参数

初始值0xFFFF
多项式0x8005 的反射形式 0xA001
线上字节顺序先低 CRC 字节,再高 CRC 字节
已知向量ASCII 123456789 得到 0x4B37

手算流程

  1. 把 CRC 寄存器初始化为 0xFFFF
  2. 把下一个数据字节 XOR 到寄存器低字节。
  3. 按最低位优先处理 8 bit,每次右移。
  4. 移出的 bit 为 1 时,与 0xA001 做 XOR。
  5. 最后一个数据字节处理完后,先追加低字节,再追加高字节。

调试清单

  • 重新计算已有帧时,不要包含尾部两个 CRC 字节。
  • 确认串口工具显示的是数值 CRC,还是线上的传输字节顺序。
  • 如果另一个工具显示 0x374B,先检查它是否按线上字节顺序展示。
  • 确认十六进制字符串是完整字节,没有混入时间戳或方向标记。

下一步

打开 Modbus CRC 计算器,在 ASCII 和十六进制输入之间切换,把计算出的完整帧与设备真实发送的字节对照。