加总异或有什么用呢?现在,很多设备的通信协议都采用了加总异或校验而不是累加和校验。例如丹麦丹佛斯Danfoss的变频器、其成员单位海利普的变频器都采用了加总异或校验。
言归正传,下面我们来看看怎么对下面的数据进行加总异或:
02 06 01 04 7C 40 00
计算 02 06 01 04 7C 40 00? 的加总异或值有以下几种方法:
1、采用Windows自带计算器进行异或运算:先计算02与06的异或值,然后把结果再和01异或。。。。。。一共进行6次异或计算,得到结果3D
2、采用现成的软件进行计算:例如大傻串口调试软件V4.5等软件,一次性就可以计算出来。
对于手工计算,有2种计算方法:1、 逐个字节异或;2、 把所有的字节先求和,再异或。下面的方法3和方法4就是这两种方法的体现。
3、手工计算:和方法1原理一样,只不过方法1是计算器,该方法是手工计算:
.....02 0000 0010
.....06 0000 0110
XOR 04 0000 0100
.....01 0000 0001
XOR 05 0000 0101
.....04 0000 0100
XOR 01 0000 0001
.....7C 0111 1100
XOR 7D 0111 1101
.....40 0100 0000
XOR 3D 0011 1101
粘贴到网页上排列就乱了,我重新发个图片:
4、手工计算:和方法3原理一样,只不过方法3是一个一个计算,该方法是一起计算:
下面是《丹佛斯变频器VLT5000 RS485协议手册》(英文)中第15页对该计算方法的描述:
学习了,非常感谢楼主的帖子,帮大忙了。
帮忙就好,总算有两位关注这个帖子了。要不然我还以为我说的是多余的,呵呵。。。
太感谢楼主了,楼主的讲解,比看那些破书有用处多了!
强烈感谢!
楼主是搞自动控制方面的,还是搞单片机方面的?
如果有机会可以聊一下,我的QQ:32332862;我搞电气自动化设计方面的,PLC、变频、伺服那些破玩意,,都是应用方面,
楼主是搞自动控制方面的,还是搞单片机方面的?
如果有机会可以聊一下,我的QQ:32332862;我搞电气自动化设计方面的,PLC、变频、伺服那些破玩意,,都是应用方面,