RS485通信协议问题浅析 点击:893 | 回复:0



华启智能

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 0回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2014年8月01日
发表于:2014-08-06 11:43:33
楼主

 RS485接口大多都是基于RS232接口与电脑进行通信的,RS485协议编程都是基于串口编程的,而由于RS232与RS485接口的不同,由于RS232只支持点对点通信,全双工通信,而RS485是支持点对多点通信,半双工通信,基于其编写的协议有一定的相关性又有一定的区别。

 RS232接口支持点对点通信,全双工通信模式,现在对于RS232的使用大多都是基于无Modem连接,其分为握手连接和无握手连接,握手连接方式类似于打电话,请求连接方发起连接请求发送,等待对方准备就绪并且允许发送,然后发送数据,发送数据的同时也可以接收对方发送的数据。而无握手连接则是类似于对讲,直接发送相关的数据过去,由于现在硬件功能增强,串口可以随时处于准备接收状态。在针对RS232串口进行编程,无握手连接最简单,而握手连接则需要编写相应的应答命令之类的代码。

 RS-485接口支持点对多点通信,半双工通信模式,由于485是半双工通信模式,就必须要解决数据流向问题,就像某条铁路可以双向通车,为了防止撞车追尾等事故的发生,必须要通过相应的调度来解决该问题,同样的道理,由于支持点对多点通信,也必须要通过主机进行相应的调度来解决该问题,而且主机对于整个总线必须具有绝对的控制权。关于485通信问题,我们利用老师在教室讲课作为例子来说明。

 我们假设电脑作为RS485总线的主机,而采集模块作为RS485总线的从设备。RS485总线的主机一开始也会对从设备进行一次轮询,逐个地址码去询问设备是否正常并且对相关情况做个记录,防止在正常通信的时候不断呼叫并不存在的地址码而导致通信效率下降。主机对于从设备的控制是利用广播方式发送下去的,而从设备只对含有自己地址码的指令做相关的回应,在从设备做回应的情况下,其他的从设备和主机保持沉默,当从设备执行完相关指令之后,发送完毕信号给主机,主机继续执行下一条指令。RS485协议的编程基于上面的思路编写。

 RS485总线协议对于意外情况的处理,当RS485总线主机对其从设备发送相关的指令的时候,从设备可能会因为种种原因而不执行相关指令的情况,比如从设备在使用过程中损坏而不能回应相关指令,主机一般都会设定一个时延,在设定的时间之内得不到相关从设备的回应,其应该做相应的记录并且执行下一条指令。  

 RS485总线线路外部干扰过大会导致衰减的RS485信号淹没在噪声中,需要增加RS485中继器中继还原相关信号再次传输,当485总线传输距离过长的时候,也是通过485中继器放大信号延长传输距离,如果将多个RS-485总线简单的按照星型连接或者树形连接方式连接,就会产生信号反射等问题,就必须采用485集线器或者485中继器将其相互隔离,独立驱动,不会相互影响,从而保证RS485通信的稳定性。



热门招聘
相关主题

官方公众号

智造工程师