CRC,即Cyclic Redundancy Check的英文简称,也就是我们说的循环冗余校检码。CRC可以检查数据中的多位错误,比奇偶校检码相对多了那么几位的校检功能。下面叙述下CRC的工作原理(看着比较麻烦,就分段叙述了)
原理浅述
1、我们假设有一段K位的原码需要进行校检,使用CRC进行效检的时候,我们需要在在K位原码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。
2、对于一个给定的(N,K)码,存在一个最高次幂的为N-K=R的多项式G(x)。我们根据这个多项式G(x)就可以生成K位原码信息的校验码(方法后面简述),这个多项式G(x)我们叫做这个CRC码的生成多项式。
对于生成多项式,我们有一些要求:
1)生成多项式的最高位和最低位上的值必须为1;
2)当被传送信息(CRC码)任何一位发生错误时,被生成多项式做模二运算下的除法后应该使该余数不为0;
3)不同位发生错误时,所得到的的余数应该是不同的;