去年搞485通信,现在测试很稳定,谢谢21ic的...

[复制链接]
4251|11
 楼主| lixun00 发表于 2007-3-16 16:48 | 显示全部楼层 |阅读模式
朋友帮忙,特别是chunyang大大.去年的采用特殊分时搜索查询法,在带24*4的情况下工作稳定,但现在准备扩充功能,查询法满足不了要求,想用总线竞争法,4线全双工485通信,不知可不可以?有做过类似朋友的请讲下,谢谢!
chunyang 发表于 2007-3-16 17:39 | 显示全部楼层

不能用“竞争”法,但可以用“突发”法

&nbsp;&nbsp;&nbsp;&nbsp;主机不查询,节点要上传数据时,先检测总线是否被占用,若总线空闲,用最短的帧结构向主机发出请求,然后释放总线,接到回应后再独占发送。若一次请求不成功,可延时再求,最好这个延时是个一定范围内的随机数。<br />&nbsp;&nbsp;&nbsp;&nbsp;此法适于大规模主从网,485、422和无线网均可,我用此法给客户做过上百节点的无线网,运行良好,有线的485、422等总线网只会响应更快。
daguang72 发表于 2007-3-17 09:33 | 显示全部楼层

4线全双工就是422了

 楼主| lixun00 发表于 2007-3-17 15:54 | 显示全部楼层

谢谢1表达错误,就是这个"突发"法,谢谢.

  
yixiupu0 发表于 2007-3-20 17:01 | 显示全部楼层

请问chunyang

&nbsp;&nbsp;&nbsp;从机怎样&nbsp;检测总线是否被占用
chunyang 发表于 2007-3-20 19:16 | 显示全部楼层

检测一个时间段内总线的状态是否恒为1

  
yixiupu0 发表于 2007-3-21 09:59 | 显示全部楼层

还是不是很明白

&nbsp;&nbsp;&nbsp;请教chunyang&nbsp;你所说的检测一个时间段内总线的状态是否恒为1&nbsp;是不是用从机的一个I/O口用中断的方式去检测总线的状态(如总线上的B+),时间段以最长的一帧为一段,或者以1&nbsp;BYTE为一段.
chunyang 发表于 2007-3-22 02:10 | 显示全部楼层

不是用IO

直接串口检测,恒为1就不会产生起始位,串行通讯自然无法发起,这可以认为“空闲”,当然,仅如此是不够的,冲突还有存在可能的,故软件、协议及硬件上的容错是必须考虑的。
zsmbj 发表于 2007-3-26 13:18 | 显示全部楼层

To:chunyang,485总线用“突发”是不行的。

突发&nbsp;可以用在无线网上没有问题,不过用在485总线上就不行了。同一时刻发送会烧毁485芯片的。<br /><br />只有CAN总线可以随时发送。<br /><br />
xwj 发表于 2007-3-26 13:48 | 显示全部楼层

都说了:先检测空闲再突发,本来冲突的概率就很小了

再说485就算同时存在2个发送也烧不了芯片的
chunyang 发表于 2007-3-26 13:55 | 显示全部楼层

所以采用突发模式的485接口要串入20欧的保护电阻

我这么用的多了,只要设计合理,原理正确,可靠性是可以做到很高的。<br />具体信息可以查阅以前我的老帖。
chunyang 发表于 2007-3-26 13:57 | 显示全部楼层

保护电阻的引入可不仅仅是防止冲突时对器件的冲击

更重要的是可以“隔离”故障点,原理其实很简单,不妨考虑一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

683

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部