[AVR单片机] RS485问题请教?急!!

[复制链接]
1733|15
 楼主| gwgjl 发表于 2014-10-11 09:09 | 显示全部楼层 |阅读模式
    用的MEGA8单片机,485芯片为MAX487,一主带三从,主单片机对三从定时发广播信号,广播信号中含有一地址信息,从单片机收到信息后,再检查地址信息,若地址信息与自己相符,则向主单片机上传本地信息。现在遇到的问题是:若三个从单片机都接上去时,系统工作正常,若有某个节点不接,则剩下的两个节点只有一个能正常通信,另一个能收到信息,但地址信息总是不对(因为通过示波器观察到不上传数据);若只接一个节点,工作正常。对通信协议反复修改,将主单片机的广播方式改为依地址轮询方式也还是存在同样的问题(事实上先前的广播方式也是轮询方式,只不过信息大家都能同时接收到),请问大家有遇到过这样的问题吗?怎么解决的,请赐教。
    单片机串口设置为9位数据模式,即第一字节为地址,以后为数据。
    已经调了两天了,一点进展也没有,都快疯掉了,请大家帮帮忙。
a43770 发表于 2014-10-11 10:01 | 显示全部楼层
485芯片电路的匹配电阻看一下
songchenping 发表于 2014-10-11 10:55 | 显示全部楼层
我认为可能是通信机制上出问题了。主从什么时候接收,什么时候不接收。
ningling_21 发表于 2014-10-11 12:49 | 显示全部楼层
可能是对485的收发控制 没搞好
 楼主| gwgjl 发表于 2014-10-11 14:42 | 显示全部楼层
a43770 发表于 2014-10-11 10:01
485芯片电路的匹配电阻看一下

485芯片入口端留有端接电阻的位置,从实际情况看,接不接对工作不影响,因为我的四个设备是在一台大的机柜里面的,距离很近。
 楼主| gwgjl 发表于 2014-10-11 14:45 | 显示全部楼层
songchenping 发表于 2014-10-11 10:55
我认为可能是通信机制上出问题了。主从什么时候接收,什么时候不接收。

主定时400ms向三个从设备发送数据,发送完成后处于接收状态。从接收到信息后,若里面包含的地址信息与自己一致,则发送信息,发送完后处于接收状态。主从发送的数据量都很小,只有四个字节,速率为9600,因此这么长的定时间隔应该是完全足够了。
 楼主| gwgjl 发表于 2014-10-11 14:46 | 显示全部楼层
ningling_21 发表于 2014-10-11 12:49
可能是对485的收发控制 没搞好

能具体点吗?我的程序是主定时400ms向三个从设备发送数据,发送完成后处于接收状态。从接收到信息后,若里面包含的地址信息与自己一致,则发送信息,发送完后处于接收状态。主从发送的数据量都很小,只有四个字节,速率为9600,因此这么长的定时间隔应该是完全足够了。
ningling_21 发表于 2014-10-11 15:05 | 显示全部楼层
gwgjl 发表于 2014-10-11 14:46
能具体点吗?我的程序是主定时400ms向三个从设备发送数据,发送完成后处于接收状态。从接收到信息后,若 ...

改为8位数据模式试试结果.
songchenping 发表于 2014-10-11 15:36 | 显示全部楼层
把你400ms的定时先去掉。
songchenping 发表于 2014-10-11 15:36 | 显示全部楼层
还有你每两个字节之间有间隔吗
yklstudent 发表于 2014-10-11 16:51 | 显示全部楼层
多半程序问题,自己好好研究下吧
qq4988 发表于 2014-10-11 17:22 | 显示全部楼层
我觉得也是,程序的问题占很大部分
xlsbz 发表于 2014-10-11 22:02 来自手机 | 显示全部楼层
也认为是收发控制,就是使能。和上面讨论的时间无关。
Sea-Wolf 发表于 2014-10-12 00:01 | 显示全部楼层
轮询的时间没控制好
 楼主| gwgjl 发表于 2014-10-12 22:47 | 显示全部楼层
本帖最后由 gwgjl 于 2014-10-12 22:48 编辑

谢谢大家的关注,昨天下午有事,今天休息,没有进行测试,明天试验后再来和大家讨论。
WHLZHH 发表于 2014-10-20 14:02 | 显示全部楼层
末端设备加反射电阻,看485规范
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

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