STM32 MCU中的CRC功能是什么?

1. 循环冗余检查

循环冗余校验(CRC)是一种基于二进制除法的数字数据错误检测方法。
CRC算法生成固定的校验和代码长度。


2.STM32 MCU中的CRC功能是什么?

硬件CRC外围功能因STM32而异,主要功能如下表所示:

如果启用了“I/O数据上的可逆性选项”功能,则每个输入和/或输出字节在用于计算之前都会得到反映。输入或/和输出字节的位以相反的顺序使用。
有关CRC外围设备的详细功能说明,请参阅产品参考手册。
 

3.关于错误检测和碰撞

冲突是对于两个不同的输入数据类似的CRC。
CRC值具有的比特越多,冲突的概率就越小。
对于CRC-8,有2^8个不同的CRC值-->两个不同数据具有相同CRC的概率为1/256。
增加CRC宽度可以得到更好的错误保护。
CRC不能纠正错误,它只检测错误以再次发送数据为例,或者只作为信息。
必须选择生成器多项式以最大化错误检测能力,同时最小化总体碰撞概率。
 

4.CRC是散列吗?

CRC和散列函数都有一个共同的特性,即它们接受一个输入值并将其减少为一个输出值,通常更短。
哈希是一个安全的函数,用于比较大型数据集。例如,它通常与用于保护数字签名的加密机制一起使用。
CRC用于较小的数据,以防止意外更改,在发送数据时进行随机错误检测。它不适用于防止外部攻击。