Modbus协议中的CRC-16校验方法
CRC-16是一个16-bit 二进制数 ,计算CRC-16步骤如下:
1、先设定CRC寄存器为0FFFFH 。
2、将CRC 寄存器的低字节与信息中第一个字节作XOR ,并将结果传回CRC 寄存器的低字节 。
3、 CRC 寄存器右移一位 ,最高位填入0 。
4、如果移出位是0 ,重复步骤3 。如果移出位是1 ,则CRC寄存器与 A001H作XOR 。
5、重复步骤3及4直到已经右移8位为止 。
6、对信息的下一个字节 ,重复步骤2至5 ,直到信息中的所有字节都处理完 。
7、此时CRC 寄存器中的值 ,即为CRC-16 data 。
在传送CRC-16校验值时 ,先传送低字节的校验值 ,再传送高字节的校验值 。