您现在的位置是: 首页 >  Modbus >  文章详情 文章详情

Modbus 中的 CRC 校验是什么?如何计算 CRC 校验值?

2023-03-19 【Modbus】 312人浏览

简介Modbus 协议中的 CRC 校验是一种用于验证 Modbus 数据报文完整性的校验方式,可以有效防止数据传输中的误码和数据篡改。Modbus 协议中使用的 CRC 校验采用了多项式除法的方式,具体计算方法如下:首先将 Modbus 数据报文中的所有字节按照顺序组成一个字节数组。然后将该字节数组的

Modbus 协议中的 CRC 校验是一种用于验证 Modbus 数据报文完整性的校验方式,可以有效防止数据传输中的误码和数据篡改。Modbus 协议中使用的 CRC 校验采用了多项式除法的方式,具体计算方法如下:

  1. 首先将 Modbus 数据报文中的所有字节按照顺序组成一个字节数组。

  2. 然后将该字节数组的所有字节依次带入 CRC 计算函数中,计算出 CRC 校验值。

  3. 最后将计算出的 CRC 校验值附加到 Modbus 数据报文的末尾,用于验证数据的完整性。

计算 CRC 校验值的具体步骤如下:

  1. 将一个16位寄存的初值设为0xFFFF。

  2. 对字节数组中的每一个字节进行以下操作:

    • 如果寄存器的最高位为1,就将寄存器左移一位,并与0xA001做异或运算;

    • 如果寄存器的最高位为0,就将寄存器左移一位。

    • 将该字节的值与0xFF做异或运算。

    • 将上述结果与16位寄存器的低8位进行异或运算,得到一个新的16位寄存器的值。

    • 对新的16位寄存器的值进行8次循环,每次循环:

  3. 最终得到的16位寄存器的值就是 CRC 校验值。

需要注意的是,计算 CRC 校验值时,字节的顺序需要按照 Modbus 协议规定的顺序,一般来说是从低位到高位依次排列。此外,CRC 校验值的附加方式也需要按照 Modbus 协议规定的格式进行。

下载整理一些CRC在线效验的网址:

http://www.ip33.com/crc.html

https://www.23bei.com/tool/232.html


很赞哦! (0)

站长推荐