modbus通讯CRC校验

程序计算,CRC16): 
 1、定义一个初始值为FFFF的16位的变量,该变量称为CRC寄存器. 
 2、把欲发送或接收消息的高8位和CRC寄存器的底8位作异或运算,并把结果在赋到CRC寄存器。 
 3、CRC寄存器右移1位(朝最低位),同时最高位添零。取出并检查最低位是否为1。 
 4、如果为1,则CRC寄存器与多项式A001异或;如果为0,则重复第3步的动作 
 5、重复3和4直到完成了8次移位。这样完整的8位字节将完成处理了。 
 6、对于下一个8位字节的处理就是重复第2步到第5步了 
 7、把所有的欲发送或接收消息这样处理后, CRC寄存器里的值就是我们最终需要得到的CRC校验码。
 第4中为什么CRC寄存器与多项式A001异或?
 A001是如何算出的?

最佳答案

CRC原理讲解的帖子:
 见问题ID: 41525答案:连接
 http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=41525_1028.html

 S7-200的CRC校验程序:
 http://download.csdn.net/source/1274529
 http://blog.gongkong.com/blog_detail.asp?id=151662
 http://www.ad.siemens.com.cn/service/answer/tobe_solution.asp?Q_ID=40634_1028.html
 

提问者对于答案的评价:
谢谢

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc345474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:40
下一篇 2021年7月4日 下午10:40

相关推荐

发表回复

登录后才能评论