程序计算,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