crc校验码计算器在线 CRC码的计算方法

老铁们,大家好,相信还有很多朋友对于crc校验码计算器在线和CRC码的计算方法的相关问题不太懂,没关系,今天就由我来为大家分享分享crc校验码计算器在线以及CRC码的计算方法的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!本文目录CRC码的计

老铁们,大家好,相信还有很多朋友对于crc校验码计算器在线和CRC码的计算方法的相关问题不太懂,没关系,今天就由我来为大家分享分享crc校验码计算器在线以及CRC码的计算方法的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

本文目录

  1. CRC码的计算方法
  2. modbus协议CRC校验计算方式该怎么计算
  3. crc校验计算方法
  4. CRC循环冗余校验码的计算
  5. Modbus RTU CRC校验详细步骤CRC值怎么计算

CRC码的计算方法

1、循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。

2、生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。

例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。

modbus协议CRC校验计算方式该怎么计算

生成CRC的过程为:

1.将一个16位寄存器(称作CRC寄存器)初始赋值为十六进制FFFF(全1);

2.将报文的第一个字节(8位)与16位CRC寄存器的低字节异或,结果置于CRC寄存器;

3.将CRC寄存器右移1位(向LSB方向),MSB充零,并检测LSB:

4.(如果LSB为0):重复步骤3(另一次移位).

(如果LSB为1):对CRC寄存器异或多项式值0xA001(1010000000000001).

5.重复步骤3和4,直到完成8次移位操作后,一个字节的处理完毕。

6.对报文中的下一个字节重复步骤2到5继续此操作,直至所有报文被处理完毕。

7.CRC寄存器中的最终值为CRC值.

8.当放置CRC值于报文时,注意高低字节必须交换。

crc校验计算方法

在CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。

CRC计算方法是:

1、加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器。

2、把第一个8位二进制数据(即通讯信息帧的第一个字节)与16位的CRC寄存器的相异或,异或的结果仍存放于该CRC寄存器中。

3、把CRC寄存器的内容右移一位,用0填补最高位,并检测移出位是0还是1。4、如果移出位为零,则重复第三步(再次右移一位);如果移出位为1,CRC寄存器与0XA001进行异或。

5、重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理。

6、重复步骤2和5,进行通讯信息帧下一个字节的处理。

7、将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换

8、最后得到的CRC寄存器内容即为:CRC校验码。

CRC循环冗余校验码的计算

循环冗余校验码的计算方法:

编码原理:

现假设有:有效信息:M;

除数G(生成多项式)有:M/G=Q+R/G;

此时,可选择R作为校验位,则MR即为校验码。

校验原理:(M-R)/G=Q+0/G

说明:以接收到的校验码除以约定的除数,若余数为0,则可认为接收到的数据是正确的。

例:有效信息1101,生成多项式样1011

循环校验码解:

有效信息1101(k=4),即M(x)=x3+x2+x0,生成多项式1011(r+1=4,即r=3);

即G(x)=x3+x1+x0,M(x)·x3=x6+x5+x3,即1101000(对1101左移三位);

M(x)·x3/G(x)=1101000/1011=1111+001/1011即1010的CRC是:1101001。

计算图文如下:

Modbus RTU CRC校验详细步骤CRC值怎么计算

//参考如下C代码,ModbusRTUCRC!UINT16Crc16(UCHAR*pDatas,UCHARucLen){UINT16ui16Crc=0XFFFF;UCHARi;while(ucLen–){ui16Crc^=*pDatas++;for(i=0;i>=0x01;ui16Crc^=0xa001;//多项式}else{ui16Crc>>=0x01;}}}return(ui16Crc);}

如果你还想了解更多这方面的信息,记得收藏关注本站。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1553299181@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.gujiufaka.com/20942.html