LINUX SB 快照站

讲一下CRC验证

原帖: linux.sb/topic/11121 · 共 3 楼 · 标题快照 2026-08-12 10:26:22

楼主 · 历史 (2)
发帖 2026-08-11 10:10:33 · 快照 2026-08-12 11:59:27

CRC 的底层核心逻辑其实就是的除法:
1. 生成多项式:就是通信双方提前约定好一个固定的“除数”(比如 Modbus RTU 使用的是0xA001或0x8005,对应多项式 X^16 + X^15 + X^2 + 1)。
2. 发送方:把要发送的数据加上末尾补的零,除以这个固定的除数,得到一个 余数。把这个余数附在报文末尾一起发出去。
3. 接收方:接收方收到整条报文(含末尾的余数),用同样的除数去除它。如果余数为 0,说明数据完美无损;如果不为 0,说明传输过程出了错,直接丢弃该报文。

#1
发帖 2026-08-11 10:13:09 · 快照 2026-08-12 10:26:22

CRC应该很容易碰撞吧。

#2
发帖 2026-08-11 10:18:55 · 快照 2026-08-12 10:26:22

讲得挺清楚,余数为0这儿一说就通了,比之前看的教程明白多了。