RS-485 通信协议
RS-485是一种通用的通信标准, RS是Recommended Standard的意思,是美国电子工业协会(EIA)在1983年批准了一个新的平衡传输标准。
它描述了接口的物理层,像协议、时序、串行或并行数据以及链路全部由设计者或更高层协议定义,被广泛用于数据采集和控制应用中,比如工业自动化、智能建筑、安防监控、电力系统等领域,为各种设备之间的通信提供了可靠的解决方案,推动了智能化和自动化技术的发展。
它允许将多个 RS485 设备放在同一条总线上,这使得多个节点可以相互连接。RS-485 通信可比喻成一个信息高速公路系统。驱动器(driver)和接收器(receiver)芯片就像是高速公路的入口和出口,负责车辆(数据)的进出。而通信线路则如同高速公路本身,连接着不同的地点(设备)。
一、重要性
相比其它通信协议,更能体现它的重要性。
抗干扰能力强 —— 采用差分传输,增加噪声抗扰度,减少噪声辐射。即使有外部干扰,也会同时反应到两条线上,不影响最终的差值。
- 在复杂的工业环境中,存在着各种电磁干扰。RS-485 采用差分信号传输方式,能够有效抑制共模干扰,确保数据的稳定传输,这对于保证工业控制系统的可靠性至关重要。
例如,在工厂车间里,各种电机、变频器等设备产生的电磁干扰会对通信造成严重影响。RS-485 通信协议可以在这种恶劣的环境下,依然保持稳定的通信性能。
通信距离远 —— 长距离链路,最长可达4000英尺(约1219米)
- RS-485 可以实现较长距离的通信,一般可达千米以上。这使得它在需要远距离数据传输的场合具有很大的优势。
例如,在大型工厂、矿山等场所,设备分布较为分散,需要进行远距离的数据传输和监控。RS-485 通信协议能够满足这种需求,将各个设备连接起来,实现集中控制和管理。
支持多点通信 —— 同一总线可以连接多个驱动器和接收器
- RS-485 可以连接多个设备,形成一个多点通信网络。这对于需要多个设备协同工作的系统来说非常方便。
例如,在智能建筑系统中,需要将多个传感器、控制器等设备连接在一起,实现对建筑物的智能化管理。RS-485 通信协议可以轻松实现这种多点通信,提高系统的集成度和效率。
通信速率高 —— 数据速率高达10Mbps,不过随着传输距离增加,传输速率也逐渐降低
适应性强 —— 宽共模范围允许驱动器和接收器之间存在地电位差异,允许最大共模电压-7到+12V
- 即使不同设备之间的地电位有一定的偏差,在存在较强电磁干扰的场合,可能会产生较大的共模电压,RS-485 通信仍然可以正常进行,其驱动器和接收器之间可以承受的最大共模电压差 是-7V 到 +12V。
在实际的通信系统中,由于不同设备可能连接到不同的电源系统或者处于不同的地理位置,它们之间的地电位往往存在差异。如果通信协议不能很好地处理这种地电位差异,就会导致通信故障。
例如,在一个大型工厂中,不同的设备可能连接到不同的配电柜,而这些配电柜的地电位可能不完全相同。如果采用不具备宽共模范围的通信协议,地电位差异可能会导致信号失真、误码率增加甚至通信中断。而 RS-485 通信协议则可以在这种情况下保持稳定的通信。
二、通信实现
-
硬件连接
RS-485通讯其实是在串口通信的基础上加上一个485转换芯片。将两个RS-485芯片的A线和A线相连,B线和B线相连就可以通讯了。
-
半双工通讯
发送和接收不能同时进行。数据的发送和接收由管脚控制。
-
数据传输格式
在通信总线上,通信的数据报文信息包含起始位、数据位、校验位、停止位等。 -
波特率
常见的有9600、19200、38400、115200。表示1秒钟能传输多少bit。两台设备要想进行串口通信,收发端的波特率必须一致,否则不能正常接收。 -
电平转换
大部分单片机只能输出TTL电平,485芯片可以把TTL信号转化为差分信号,也可以把差分信号转化为TTL信号。通信时只需要两根线,不需要地线。
RS-485通信的逻辑电平是通过A线和B线之间的电压差来定义的。
-
逻辑1(正逻辑电平):当A线的电压高于B线的电压,且A、B之间的电压差在+2V至+6V范围内时,定义为逻辑1状态。例如,A线电压为+8V,B线电压为+5V,A-B = +3V,属于逻辑1。
-
逻辑0(负逻辑电平):当B线的电压高于A线的电压,且A、B之间的电压差在-6V至-2V范围内时,定义为逻辑0状态。比如,B线电压为+8V,A线电压为+5V,A-B = -3V,属于逻辑0。
对于接收端而言,当接收端A、B之间的电压差大于+200mV时,输出正逻辑电平;当电压差小于-200mV时,输出负逻辑电平。
三、其它通信方式
MCU系统之间常见的通讯方式还有:RS232、RS422、Bluetooth、wifi等,但大多数的通信接口都可以通过串口来扩展。因此,对于单片机系统而言,只要掌握串口,就能够掌握大多数的通信方式了。
3.1 串口通信
在串口通信中,数据以位(bit)为单位逐位依次传输,物理连接上的线路至少包括发送线、接收线和地线这三根线。
- 物理连接
- 帧格式
数据位也可以是7位或5位。 - 逻辑电平
串口通信采用的是TTL逻辑(Transistor-transistor logic,晶体管-晶体管 逻辑),其电平范围一般高电平为5V,低电平为0V
-
抗干扰能力
抗干扰能力弱。比如突然来个静电,就会把低电平变高。
-
传输距离近,1米左右。主要用于芯片间的通讯或芯片和电脑的近距离通讯。
3.2 RS232标准
RS232通信其实只是在原来串口通信的基础上加一个电平转换芯片。
高电平3到15V,低电平 -15到-3V。
可以看出RS232只是改变了电平大小,增强了抗干扰能力,传输距离变更远了,但还是全双工通讯,传输的还是原来串口的那些0和1的数据。
四、总结
不论是TTL、RS-232还是RS-485,都是改变物理电平标准,对于程序来说,都是操作串口,所以只要学会了串口通讯,就可以轻松变为RS-232或RS-485了。