RS485总线发生总线冲突,如何解决

2019-08-17 08:12发布

本帖最后由 stm32zzq 于 2017-5-26 14:22 编辑

主机和从机采取RS485半双工总线,主机和上位机用全双工通信,但是发现主从总线冲突,详细情况是主机以50ms周期给从机发送查询命令,并做超时重发处理,在串口助手里上位机对主机发送开关灯的指令,主机收到上位机的命令时需要对从机进行控制处理,目的是让主机控制从机开关灯并返回开关灯状态给主机,主机再返回给上位机,问题是有时候主机发给从机的控制命令从机收不到(情况1),有时候主机发给从机的控制命令从机收到了并且返回给主机,此时主机却收不到了(情况2),本人猜想:情况1的原因是因为从机正在对主机的查询命令进行应答,情况2的原因是因为从机给主机返回控制应答的时候正好主机又给从机发送查询命令,半双工收发冲突。求助各位大神,我的想法是否正确,如果是,那么怎么解决;如果不是,那么又是什么问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
enan
1楼-- · 2019-08-18 21:39
用逻辑分析仪,这个简单,选好你的硬件通讯接口,采样10M,带宽2M,逻辑分析仪拿个通道接485A,地线接485B,协议选串口,直接可以看到总现场主机从机发送的数据,什么时候发送,发送的什么数据,从机收到数据后隔了多久回复的,都可以看到
合六斗
2楼-- · 2019-08-18 23:29
用串口助手收个数据,先排除硬件问题。再调整时间吧。485只能同时一方发送。
合六斗
3楼-- · 2019-08-19 03:56
有条件尽量不用485,太麻烦。
stm32zzq
4楼-- · 2019-08-19 07:37
enan 发表于 2017-5-26 17:30
用逻辑分析仪,这个简单,选好你的硬件通讯接口,采样10M,带宽2M,逻辑分析仪拿个通道接485A,地线接485B, ...

好的,谢谢您,学习了
stm32zzq
5楼-- · 2019-08-19 12:31
 精彩回答 2  元偷偷看……
abb200628
6楼-- · 2019-08-19 16:48
本帖最后由 abb200628 于 2017-5-27 10:58 编辑

主机采用双串口,一个串口作为485主机和多个从机通信,另一个主机的串口作为通信从机和电脑通信。这样能解决你遇到的问题

一周热门 更多>