RS-485与CAN类似,也是一种工业控制环境中常用的通讯协议,它由RS-232协议改进而来,在要求通讯距离为几十米到上千米时,广泛采用RS-485串行总线标准。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。RS-485采用半双工工作方式,任何时候只能由一点处于发送状态。RS-485最大的通信距离约为1200m,最大传输速率为10Mbps,传输速率与传输距离成反比,在100Kbps的传输速率下,能达到最大的通信距离。
RS-485协议主要将RS-232的信号改进成差分信号,从而大大提升了抗干扰性。相比于RS-232,RS-485用于多点互连时非常方便,可以省掉许多信号线,节点数主要根据“接收器输入阻抗而定”,根据规定,标准RS-485接口的输入阻抗为》=120Ω,这样和我们上一节的CAN是类似的,我们将阻抗设置为120Ω。
RS-485与RS-232的差异只体现在物理层上,它们的协议层是相同的,也是使用串口数据包的形式传输数据。而由于RS-485具有强大的组网功能,人们在基础协议之上还制定了MODBUS协议,被广泛应用在工业控制网络中。
由于RS-485与RS-232的协议层没有区别,进行通讯时,我们同样是使用STM32的USART外设作为通讯节点中的串口控制器,再外接一个RS-485收发器芯片把USART外设的TTL电平信号转化成RS-485的差分信号即可。