首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

精通硬件和PC通讯协议,帮忙给看看协议!该怎么解决

2012-02-27 
精通硬件和PC通讯协议,帮忙给看看协议!!PC通讯协议一、机器空闲:1)控制器发给PC数据(共6个16进制数):7E+K+

精通硬件和PC通讯协议,帮忙给看看协议!!
PC通讯协议
一、机器空闲:
1)   控制器发给PC数据   (共6个16进制数):
7E   +   'K '   +   实际值低位   +   实际值高位   +   校验和低位   +   校验和高位
2)   PC机应答给控制器数据   (共6个16进制):
A   :   用户没有发指令:
7E   +   'S '   +   目标值低位   +   目标值高位   +   校验和低位   +   校验和高位
B   :   当用户按《SEND》发指令:
7E   +   'S '   +   目标值低位   +   目标值高位   +   校验和低位   +   校验和高位
二、机器运行中:
1)   控制器发给PC数据   (共6个16进制数):
7E   +   'M '   +   目标值低位   +   目标值高位   +   校验和低位   +   校验和高位
2)   PC机应答给控制器数据   (共6个16进制):
A   :   实际值已经达到目标值时:
7E   +   'K '   +   目标值低位   +   目标值高位   +   校验和低位   +   校验和高位
B   :   实际值没有达到目标值时:
7E   +   'S '   +   目标值低位   +   目标值高位   +   校验和低位   +   校验和高位
校验和方法:数据的前4位做CRC检验.

以上就是硬件(是种控制器,步进机)厂家给我们发的协议
希望大侠们帮解释一下!
感谢!

[解决办法]
这个很简单啊,
7E相当于是数据开始标志
'K '是数据类型标志
接下来的2个字节就是数据了,收到后拼接起来就是
最后2个字节就是校验,校验正确才认为接收到的数据是正确的,否则接收到的数据无效
[解决办法]
用串口传输还是并口?
以第一种情况,简单解释
1) 控制器发给PC数据 (共6个16进制数):
7E + 'K ' + 实际值低位 + 实际值高位 + 校验和低位 + 校验和高位
7E为数据头,K字符代表传输类型
在PC机上收到的数可能为7E 75 XX XX YY YY,总数应该是6个字节,中间的XX XX就是数据,需要你进行重组,高低位互换,后面的YY YY就是校验和,是将其前面的4个字节做的4位CRC校验和。
如mochen5460(mochen)所说,在收到数据之后,读取前4个字节,然后做校验,和收到的校验和部分作比较,相同则说明数据接收正确,否则数据错误,选择丢弃,然后可以让发送方重发或者不管继续接收后续数据

热点排行