RS485是工业控制场景下,应用得非常广泛的通信协议,RS485的差分物理信号在电磁环境复杂的工业现场,有强大的抗干扰能力。
对于平时专注于应用软件开发的工程师,使用RS485进行数据传输,只要关注串口的数据收发器即可,但其实在硬件层面,RS485通信的数据收发,也需要遵循一定的机制。
RS485通信接口特点
作为工业领域上较常用的通信方式,RS485总线具有以下诸多特点:
1、收发器输出A、B之间的电平为+2V~+6V,是逻辑“1”;为-6V~-2V,是逻辑“0”。信号电平比RS232降低了,不易损坏接口芯片。另有“使能”控制信号,可使收发器处于高阻状态,切断与传输线的连接。
2、接收器的输入灵敏度为200mV。即在当接收端A、B之间的电平相差200mV时即可输出逻辑。
3、传输速率高(10Mbps),传输距离达到1200m)。
4、具有多站点传输能力,即总线上允许挂接多达128个收发器,可建立设备网络。
5、RS485收发器共模电压范围为-7V~+12V,只有满足该条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定,甚至损坏接口。
RS485收发控制方法
RS485属于半双工总线,在实际使用时一般采用主机轮询或令牌传递的方法来分配总线控制权,RS485设备需要进行发送和接收的方向转换。
比较通用的做法是,每个RS485设备在平时均处于接收状态,只有在自己有数据要发送时才转换到发送状态,数据发送完毕后再次切换回接收状态。
第一种:程序换向控制
最常用的RS485收发换向方法是程序换向,即由MCU的一个I/O端口控制RS485收发器件的收发使能引脚,在平时使RS485收发器件处于接收状态。
如下图,这里485芯片用TI的SN65LBC184,最大速率达到250Kbps,当有数据需要发送时,MCU将RS485收发器件引脚(网络RS485_EN2)置于发送状态,完成数据发送后,再把RS485收发器件切回接收状态。