请较RS485问题

[复制链接]
3741|11
 楼主| lilione 发表于 2007-1-8 11:15 | 显示全部楼层 |阅读模式
本人搞了一个25个分布端口的RS485的通信系统,有一个问题请较各位.<br /><br />由于各端口(89C51)分布位置不同,有时候会断电,重新通电,这样的话MAX485就引入了一个错误码到系统上面,如00H,FFH,FCH,我现在是利用通信规定来在各个接收端屏蔽掉这个错误码,但最好的办法应该是每个部件的通电,断电时不会向外发出这个错误码,电路上应该怎么办?<br /><br /><br /><br />
chunyang 发表于 2007-1-8 12:07 | 显示全部楼层

正确的暂态逻辑设计即可解决问题

电路设计时,注意电源上升暂态时令485接口芯片处于接收态即可。
daguang72 发表于 2007-1-8 13:24 | 显示全部楼层

不要指望电气上不出毛病

首先如chunyang所说,然后再软件上多花功夫,感觉你的软件不健壮,比如说来了一堆乱数据,在里面包含一包正确的数据,如果软件健壮的话应该能在乱数据中把有用的数据包捡出来
happystar 发表于 2007-1-8 13:47 | 显示全部楼层

恩?

我做的时候是把这堆乱数据丢掉,通过时间判断是否一帧完整数据。我一般遇到问题的时候都是从软件方面先找的。保证一个程序的健壮性得考虑到很多意外情况的。
daguang72 发表于 2007-1-8 14:58 | 显示全部楼层

宁可错杀一千不能漏掉一个

我将接收到的数据保存起来然后在主循环里挨个字节处理,保证不会漏掉一包有效数据
 楼主| lilione 发表于 2007-1-10 15:12 | 显示全部楼层

问 chunyang

1.我已经将MAX485全部都设在接收状态了,还是自然产生的错码.理论上的确解释不通.<br /><br />2.我现在的方法是在通信上设一个接受的头码,如23H,30H,只有在第一个接收到才算数,<br /><br />还有好方法吗.
chunyang 发表于 2007-1-10 16:00 | 显示全部楼层

解答

1、检查总线静态时是否为逻辑0,不是的话要加偏置,但也可以令主机静态时发送逻辑1,不过不如加硬件偏置可靠。<br />2、建议参考Modbus协议,我的Blog中有。
daguang72 发表于 2007-1-11 17:43 | 显示全部楼层

明显是软件太脆弱了

&quot;2.我现在的方法是在通信上设一个接受的头码,如23H,30H,只有在第一个接收到才算数&quot;
newfree 发表于 2007-1-12 18:45 | 显示全部楼层

搭车问问另外一个485相关的问题。

我用一个MAX488,全双工不带控制端的422芯片。<br />将A,Y短接,B,Z短接,然后接入485网络可行么?<br /><br />担心那个488的Driver端一直开着会影响485网络。<br />
gfm100 发表于 2007-1-13 21:31 | 显示全部楼层

得到

我们也是用头码
 楼主| lilione 发表于 2007-1-15 10:41 | 显示全部楼层

谢谢提醒daguang72

&quot;明显是软件太脆弱了&quot;<br /><br />以前确实考虑不周,在软件上加上一些限制是个方向.
KFYSX 发表于 2007-2-17 10:55 | 显示全部楼层

使用好的通信协议,改用简易can总线,通信十分可靠!

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

25

帖子

0

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