CRC校验

CRC

什么是CRC?

​ CRC(循环冗余校验)是一种常用的数据校验算法,主要用于检测数据在传输或存储过程中是否发生了错误。它通过对数据内容进行特定数学处理(多项式除法),生成一个短小的校验码(CRC码),附加在数据后面一起发送。

CRC在数据传输中的作用

检测数据错误

  • 数据在传输过程中(如串口、网络、存储介质等)可能由于噪声、干扰、硬件故障等原因发生比特翻转、丢失或插入。

  • CRC能检测绝大多数常见的传输错误,尤其擅长发现突发错误(连续的多个比特发生错误)。

提高数据可靠性

  • 发送方:对原始数据使用CRC算法生成校验码,将其和数据一起发送。

  • 接收方:收到数据后,用相同算法计算CRC码,与接收到的CRC码对比。

如果一致,说明数据很可能没有出错;如果不一致,说明数据被破坏,接收方可以丢弃数据或请求重发。

应用场景

​ 各类串口通信(如UART、CAN、Modbus等)、网络协议(如以太网帧)以及闪存、硬盘等存储设备都广泛使用CRC作为数据完整性校验手段。

​ 以及我们的固件升级启动安全也会使用CRC校验

CRC原理与实现

百度