CRC16校验码运算

CRC寄存器一开始填充为16位1111 1111 1111 1111 然后将CRC寄存器的低8位1111 1111与报文数据第一个八位数据进行异或运算,报文可以是主站发送的功能码,或者是从站反馈的功能码。得出的8位数据结果与CRC校验的高八位1111 1111合并,例如助手发送的十进制码第一个八位数据为03即0000 0011,与CAR低八位1111 1111异或为1111 1100,合并后为11111111 11111100
将合并后的数据与二项式进行异或运算 。计算中,先将低位移出去再进行判断,如果移出去的是0,则右移不异或,如果移出去的是1,那么就与多项式进行异或,是16位的CRC寄存器与16位的二项式进行异或,注:二项式都是固定的。得出的最终结果,为16位的数据。再将这16位的数据低八位与报文数据的第二个八位数据进行异或,异或完了以后再和高八位合并,步骤与第一次相同,将所有的数据异或完成以后,得出的最终结果,则是校验码!二项式二项式

猜你喜欢

转载自blog.csdn.net/qq_18671205/article/details/83382134