|
发表于 2007-3-20 10:01:15
|
显示全部楼层
有兴趣聊的,我们可以继续在这个主题下,一边聊PLC一边聊技术细节!
最近要实现的东东给大家看看,本人现在正在考虑如何对通讯的安全作到万无一失的保证!
TWI通讯都是有主机主动发起"读""写"操作,从机属于被动应答.
传统的RS-485多机通讯的一帧信息基本上:[地址][信息][校验].
TWI对于地址可以不作识别.因此:[信息][校验].
关于信息和校验是那些内容和什么校验方式,完全自由,这个没有讨论的必要.
------------------------------------------------------------------------
想和大家讨论一下应答机制-挂号信的实现.
1.以前,从机少,主机信息写入后,就立刻开始读入(读从机应答信息).当然如果信息量大的话,假如从机不是边接收边解释的话,会有一个超时机制.主机会等,(和STK500协议基本相似),
假如,从机校验发现错误,应答时会提交一个错误内容.主机会重复写,这个写入次数也是有规定了,我定了3次,连续3次,就报警,这个基本上没有可能出现.
2.现在从机多了,有10多个,呵呵,上1的做法效率会太慢了.
假设,通讯永远不会出错的话,取消应答机制,可见速度是非常之快.
现实中如我心中认为是肯定对的,可制度上应答又必须要做,呵呵,所以,有了一个变通的思想.
主机每10MS到,激活TWI任务(统一操作,这个跟搭飞机一样,觉不搞专机特殊化),先记录下消息的个数,然后执行TWI消息队伍中要写操作的从机消息,各个从机写处理完毕后,然后根据这个消息队伍执行读一圈各个从机的应答信息.这个方法,效率上比要等待的方法高很多了,假如正确的弹掉消息,消息数--,全部正确的话,消息数=0了,退出!
有错误的会在根据消息队伍中的消息,再执行一次,应答还是不正确的话,就只有退出了,转到错误处理程序中了.
仔细看,要去读从机的数据怎么办?呵呵,当然也是先写入读命令后,收取应答信息阶段,从机会将数据+应答信息一起上传的!
大家看看,我这个思想有没有1.严重问题?2.效率是否低? |
|