[技术支持] 通信中常用CRC8、CRC16、C32校验数据

[复制链接]
 楼主| 地瓜patch 发表于 2025-5-23 16:42 | 显示全部楼层 |阅读模式
数据通信中常用CRC8、CRC16、C32三种校验
三种都用过,但是不是很清楚什么情况下用CRC8,什么情况用CRC32
与校验的数据长度又关系么?数据量越大,用crc32.数据量小用crc8
dukedz 发表于 2025-5-23 19:00 | 显示全部楼层
用crc8, 碰撞的概率 1/256
用crc16, 碰撞的概率 1/65536
用crc32, 碰撞的概率 1/0x100000000

碰撞就是错误的数据被误认为正确的概率

用 crc8 碰撞概率太高,用 crc32 又会增加协议开销和计算速度(没有多余硬件crc 的时候)

所以 256 字节的数据包通常用 crc16, 譬如串口通讯的 modbus、cdbus
 楼主| 地瓜patch 发表于 2025-5-29 20:08 | 显示全部楼层
dukedz 发表于 2025-5-23 19:00
用crc8, 碰撞的概率 1/256
用crc16, 碰撞的概率 1/65536
用crc32, 碰撞的概率 1/0x100000000

又学到了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1815

主题

14874

帖子

29

粉丝
快速回复 在线客服 返回列表 返回顶部