地瓜patch 发表于 2025-5-23 16:42

通信中常用CRC8、CRC16、C32校验数据

数据通信中常用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
页: [1]
查看完整版本: 通信中常用CRC8、CRC16、C32校验数据