二、 工作原理
循环冗余校验同其他差错检测方式一样,通过在要传输的k比特数据D后添加(n-k)比特冗余位(又称帧检验序列,Frame Check Sequence,FCS)F形成n比特的传输帧T,再将其发送出去。
如何生成比特冗余位呢?核心原理就一种,用传输的k比特数据除以某一个被除序列,得到的余序列(正常的顺序是减去余序列,但是因为模2减法和模2加法相同,减去余序列等同于加上余序列)即为比特冗余位。这样,发送的完整序列除以被除序列就为0,因为被除序列接收端也是知道的,所以接收端用用接收到的完整序列除以被除序列,为0判断为正确,不为0判断为错误。
有2种方法介绍比特冗余位的生成过程,第一种是直接法,第二种是多项式法。
直接法:与十进制除法过程一样,但用的是模2除法,模2除法与算术除法类似,但每一位除的结果不影响其它位,不借位, 实际上就是异或。假设4比特传输数据为1111,被除序列为1101,除法如下图所示,得到的余序列为111,最终发送序列为1111111。