zycyhwan
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看zycyhwan的 主题 / 回贴
楼主  发表于: 2010-07-02 21:22
图片:
各位好,这个CRC CHECK是怎么算出来的??我一同学问我,我完全不懂啊谢谢。
zycyhwan
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看zycyhwan的 主题 / 回贴
1楼  发表于: 2010-07-03 17:09
图片:
图片:
图片:
引用
引用第1楼cvlsam于2010-07-03 05:47发表的  :
这个是Modbus RTU CRC16,套用的多项式为X16+X15+X2+1

算法为:将初始数据设置为FFFF,然后,将第一个数据H05与初始数据做异或,结果保存在CRC寄存器中。
               将CRC中的数据右移,直到Flag位为1,将结果与多项式进行异或,保存在CRC寄存器,然后CRC寄存器中的数据继续右移,直到Flag为1,然后继续上面这一步,直到第一个数据处理完毕。此时,装入第二个数据,继续上述过程,直到所有的数据处理完毕。

.......

这位大哥,你说的多项式为1 1000 0000 0000 0101吗?你说的直到Flag位为1怎么说,我算来算去都不正确,如上图。

2. 我按台达变频器说明书的做法算了十几页也不正确,接近崩溃。

3. 按你的提示,我下载了个CRC计算器,可那个“字符串”要填多少啊??问题多了点,请见谅。
zycyhwan
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看zycyhwan的 主题 / 回贴
2楼  发表于: 2010-07-03 21:19
引用
引用第4楼cvlsam于2010-07-03 18:00发表的  :
另外,楼主找的CRC16工具中的多项式为H8408,多项式为X16+X10+X4并非台达使用的,台达使用的多项式为HA001.

所以是不会得到与教程中相符的结果的。

Regards

谢谢楼上的大哥,我不敢再算这个了,还是让软件自己算了