本人现在做加油机控制主板程序。分为主板和侧板。侧板上有键盘和液晶显示模块,还有IC卡读卡器。侧板上的CPU要响应键盘命令,显示,同时还要把键盘码发给主板CPU,还有发送IC卡内数据。侧板还与PC 通信,把命令转发给主板。主板上有一个计量CPU,还有一个税控CPU及液晶显示模块。主板计量CPU响应侧板CPU发送的数据,处理。现在想请大家帮助想一个侧板CPU和主板计量CPU通信的协议。特别是如果传输错误时该如何办?特别不明白正确和错误时对发送缓冲区的操作该怎样。
判高手指点!在线等!
错误就重新发送。
正确时就处理缓冲区数据,
错误时就清除缓冲区数据。
补充:
我觉得最困难的是主板CPU响应侧板的键盘码,由于是人机互动,人按下两个键盘之间可能有时间间隔,而主板要实时响应这个键盘码,所以我觉得按下一个键就要发送给主板CPU,如果正确怎么样处理发送缓冲区(假设我按下一个键就把键码存在一个数组内),如果错误呢,要求重发。这个过程中,侧板CPU是一直发送按下的键盘码呢,还是等待上一个键盘码发送并接收都正确了再发送下一个呢?
CRC+纠错,如果还错就重发。
“这个过程中,侧板CPU是一直发送按下的键盘码呢,还是等待上一个键盘码发送并接收都正确了再发送下一个呢?”
都可以。当然一直发也可以改为定时发,其实人操作键盘的时间间隔足够CPU干很多活了,不是吗?一般恩下就发就可以。
HEROP() ,做过吗,能否详细一些,向你请教了!
没什么可送你的,多送你些分得了。
对了,还有oatdisk(陶陶),我说的是发送缓冲区处理,接收缓冲区我认为应该不成问题!
有两种发送数据方式:一种是定时发送,根据你需要处理的精度要求以及按键抖动处理的时间来确定发送周期;还有一种就是触发事件发送方式,根据你按下按键后来发送数据。本人觉得定时发送比较好,相互之间规定一个通讯协议,将数据的内容进行详细定义。这样只要处理你的按键处理,一旦完成就更新你传送的数据就可以了。至于通讯协议,你觉得对精度要求高吗?如果不高,没必要让你的程序过于复杂的去处理这个通讯协议,关键是保证正常接收到数据后,对相关数据进行处理。(纯粹个人观点,对于你的具体情况不是很明确,所以仅此而已)
heavenxyf(风云) ,你好
能否详细向你请教呢
我QQ150009127,信箱cbq1111@163.com
如果有好的建议和想法,请和我联系,定谢!QQ150009127,信箱cbq1111@163.com
侧板CPU和主板计量CPU通信的协议,
短距离用UART口就可以了吧,
也就是单片机上面RX,TX口,
至于数据校验有很多方法呀,
用CRC最常用了
校验,应答...
其实,就是做一个约定,让双方都能按照那个流程走到底的...