CRC校验值的计算方法:模2除法(即加法不进位,减法不借位,异或运算)。 除数为:生成多项式(决定校验位数)。 被除数为原码+CRC补零位数(比如5位的CRC校验值,在原码后补5个0)。 如生成多项式为:g(x)=x^m + x^n+…+1,最高次幂为m,则CRC校验值的补零位数为m位。 计算CRC码时,首先选定除数、被除数。除数是随机,也可以是由标准多项式选定;被除数是由发送的原码+CRC补零检验位数组成。CRC校验计算的的关键是求出余数,即CRC校验码。 通过计算实例来说明整个过程。假设选定的CRC生成多项式:g(x) = x^4 + x^1 + 1,发送的原码是1101011011,计算它的CRC校验码。 (1)根据选定的多项式g(x) = x^4 + x^1 + 1,可知需要在原码后补4个0。 (2)将11010110110000作为被除数,10011作为除数,求余数。 (3)由以上计算可知CRC校验码为1110,替换被除数后4个0的位置11010110111110。 那么需要发送的码串为11010110111110,在接收方接收到数据后,利用同样的方法计算发送数据的正确性。 接收结果中余数为0,则传输结果正确,余数不为0 ,则传输过程出错。 **异或计算时**:与0异或结果不变,与1异或结果取反。
|