打印

高手们,这样的通讯协议有问题吗?

[复制链接]
2147|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子尘埃|  楼主 | 2007-2-3 19:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
A B机通讯协议
     通讯线空闲时,A机处于接受准备状态,当B机处于通讯空闲状态时,向通讯线上发送空闲码0x55,读取返回的数据是否为0xaa,如否,则不断循环的发送、接收、区别直至接收到的为0xaa为止。
A机接收到空闲码0x55,立即将接收确认码0xaa发送至通讯线上(此时A机与B机已经同步上了),随后发送两个字节的CRC16码与三个字节的报警数据。
之后A机接收B机返回的无误准认码0xaa,如果接收到无误准认码不是0xaa,将不断循环重发上述数据串与验证从B机返回的无误准认码0xaa步骤,直至返回无误准认码为0xaa后,A机才进行新一轮数据处理。B机是根据CRC16码区别传输错误,如有错误,将返回误码0x5a(码值不重要只要不是0xaa既可)至通讯线让A机接收,以重新接收新一串CRC码与报警数据,如没有传输错误将生成无误准认码0xaa并返回至通讯线上,并进入新一轮数据处理。

相关帖子

沙发
电子尘埃|  楼主 | 2007-2-3 19:18 | 只看该作者

A与B机通讯均用软件模拟

使用特权

评论回复
板凳
电子尘埃|  楼主 | 2007-2-3 19:42 | 只看该作者

能同步上吗?最想知道的问题

使用特权

评论回复
地板
电子尘埃|  楼主 | 2007-2-3 19:45 | 只看该作者

同步不上,还得加起始位

使用特权

评论回复
5
电子尘埃|  楼主 | 2007-2-3 19:49 | 只看该作者

同步应该能同上,但同步时间会很随机,对吗?

应该是,哈哈哈...............
没人理我。

使用特权

评论回复
6
chunyang| | 2007-2-4 10:25 | 只看该作者

呵呵,周6的晚餐时间不要指望太多

能否同步,取决于A能否及时知道存在回复,故A每次发送完空闲指令后要立刻转入接收态,定时无正确接收才继续发送下一轮空闲码。

使用特权

评论回复
7
mohanwei| | 2007-2-4 14:19 | 只看该作者

太复杂了。应该让B机作为主机,A作为从机。

B机发送查询码,没有回应就继续发;
A机收到查询码,直接发数据和校验码就可以了。
B机对数据进行校验以取舍。
(正常的话通信到此结束了)

如果B机发觉数据错误,重复上述过程。

其实这种通信出现异常的概率是很小的。协议要尽量简单一点,像上面的简单协议里,一切都由B机掌控,这样异常的种类就只有几种了,很容易处理。

使用特权

评论回复
8
电子尘埃|  楼主 | 2007-2-4 16:45 | 只看该作者

是噢,楼上两位一理,感觉就清楚了,

其实蛮简单的,最近不知道怎么回事,老是把简单的事想的非常复杂.谢谢两位.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

444

帖子

0

粉丝