反馈

CRC-16校验

浏览器本地计算,不上传。相关: CRC-32 校验 · MD5 · SHA · 文件 Hash · 进制转换

📖 工具说明

1. CRC-16 是什么

CRC(循环冗余校验)用一次多项式除法给数据算出一个校验值,附在数据后面。接收方重新计算,值不一致就说明传输出错。CRC-16 输出 16 位,检错能力强、计算开销小,是 Modbus RTU、USB、蓝牙、X.25 等协议的标配。

同样叫「CRC-16」,参数不同结果完全不同。一个 CRC-16 算法由 5 个参数确定:多项式 Poly、初始值 Init、结果异或 XorOut、输入反射 RefIn、输出反射 RefOut。

2. 这个工具能做什么

全部在浏览器本地计算,数据不上传。

3. 常用预设速查

名称 Poly Init XorOut RefIn/Out 检查值(123456789)
CRC-16/ARC (IBM) 0x8005 0x0000 0x0000 true 0xBB3D
CRC-16/MODBUS 0x8005 0xFFFF 0x0000 true 0x4B37
CRC-16/USB 0x8005 0xFFFF 0xFFFF true 0xB4C8
CRC-16/CCITT-FALSE 0x1021 0xFFFF 0x0000 false 0x29B1
CRC-16/XMODEM 0x1021 0x0000 0x0000 false 0x31C3
CRC-16/KERMIT 0x1021 0x0000 0x0000 true 0x2189
CRC-16/X-25 0x1021 0xFFFF 0xFFFF true 0x906E

4. 使用步骤

  1. 选算法预设(工业设备一般是 MODBUS,文件传输一般是 XMODEM)。
  2. 选输入格式,填入数据;串口抓包一般用 Hex 字节。
  3. 看结果和自检行。把 Hex 值按设备要求的字节序(多数 Modbus 是低字节在前)拼到报文末尾。

5. 常见问题(FAQ)

Q:为什么同一段数据在别的工具算出来不一样? A:几乎都是参数不同。先看两边的 Poly / Init / XorOut / RefIn / RefOut 是否完全一致,再用 123456789 的检查值对一下算法。

Q:结果要不要交换高低字节? A:本工具给的是算法定义的数值。实际报文的字节序由协议规定 —— Modbus RTU 的 CRC 是低字节在前,很多串口助手也按这个显示,需要时自己调换两个字节。

Q:MODBUS 和 ARC 什么关系? A:多项式和反射都一样(0x8005,反射),只有初始值不同:ARC 用 0x0000,MODBUS 用 0xFFFF。

Q:Hex 输入要不要带 0x 或空格? A:都可以。工具会自动去掉 0x、空格、逗号等,只要十六进制位数是偶数即可。

Q:能校验文件吗? A:能,选文件即可,整文件读入后计算。大文件会占内存,处理全程在本地。


相关:CRC-32 校验 · MD5 · SHA · 文件 Hash · 进制转换。

📖 了解原理

📖 相关推荐