CRC标准的几个参数解释
- 宽度(Width): 指CRC校验码的宽度,同时也是指多项式的宽度。
eg. crc-16的width是16,crc-32的宽度是32 - 多项式(Poly):指CRC校验的多项式的二进制码去掉最高位。
eg. crc8的Poly:gx=x8+x2+x1+1,二进制码100000111,所以POLY这个参数为:0x07 - 初始值(Init),是指CRC的寄存器的初始值.
eg.如为0xff,则INIT = 0xff,如为0x,则INIT = 0x00 - 输入值反转(RefIN):是指需要校验的数据(输入值)二进制位数相反。
eg. 输入值为:10101100,则实际进行校验的值为00110101 - 输出值反转(RefOut):指输出的校验码二进制位进行反转。
eg. 输出值为:10101100,则实际输出值为00110101 - 结果异或值(XorOut): 指运算出的校验码与结果异或值异或之后,最终最为校验码。
eg. XorOut为0xff,计算的校验码为0x17,则输出校验码为:0xff^0x17
Tips: 输入值反转后,算法在计算CRC时,多项式也需要注意。