RS485 总线详解
RS-485 是美国电子工业协会(EIA)在 1983 年批准了一个新的平衡传输标准(Balanced Transmission Standard)也称作差分,EIA 刚开始将 RS(Recommended Standard)做为标准的前缀,不过后来为了便于识别标准的来源,将 RS 改为 EIA/TIA,所以目前该标准的名称为 TIA-485,但目前工程师们依旧习惯继续沿用 RS-485 作为该总线标准的名称。
1. 前言
RS-485 属于电气标准,该标准定义了接口的物理层标准例如电压,阻抗等等,而不对软件协议,通信时序,通信数据给予定义。而是由用户或通用软件协议来定义。目前可以使用 RS-485 作为物理层的通用标准协议(纯软件协议)有工业 HART 总线,Modbus 协议和 Profibus DP 协议。
2. 电气特性
(1) RS485 有两线制和四线制两种接线,四线制只能实现点对点的通信方式(一个主机连接一个从机),现很少采用,多采用的是两线制接线(A 线,B 线)方式,这种接线方式为总线式拓扑结构,总线多采用屏蔽双绞线传输数据,在同一总线上最多可以挂接 32 个节点,即一个主机可以连接多个从机。
(2) RS-485 以两线间的电压差为 +2V 到 +6V 表示逻辑 1
,以两线间的电压差为 -2V 到 -6V 表示逻辑 0
。接口信号电平比 RS-232 更低(RS232 为 -15V 到 +15V),所以相比 RS-232 更不易损坏接口芯片,同时 RS-485 电平与 TTL 电平兼容,可方便与 TTL 电路连接。
(3) RS-485 采用差分信号传输,减少了潜在的电磁干扰 EMI,差分信号的值很大程度上与 GND
的精确值无关,所以能够抵抗电源的干扰。
(4) 符合 RS-485 标准的驱动器能够提供不小于 1.5V 的差分输出(在 54 Ohm 负载下),RS-485 最小差分电压容限 200mV,也就是说接收端在差分电压低于 200mV 时就无法正确识别逻辑 0
和逻辑 1
。
(5) RS-485 的数据最高传输速率为 10Mbps ,即 每秒可传输 10M 位数据,而 RS-232 传输速率仅为 20Kbps。
(6) RS-485 理论上最大可传输距离为 3000米,在实际操作中极限距离仅达 1200 米。
(7) RS-485 仅支持半双工通信,因为通信双方需要共用一对差分信号线传输数据,但是一对差分信号线无法同时传输双方的数据,因此由于通信线路制约无法支持全双工通信。
2.1 理解单端/差分传输
(1) 单端传输(非平衡传输):在传输过程中,使用一根导线,在这根导线上传输对地(GND)之间的电位差,利用电位差来表示数据逻辑 0
和 1
,传输的信号叫单端信号。
(2) 差分传输(平衡传输):差分传输是使用两根线进行传输信号,这两根线上的信号振幅相等,相位相差 180 度,极性相反。在这两根线上传输的信号就是差分信号,信号接收端比较这两个信号的电位差来判断发送端发送数据的逻辑 0
和逻辑 1
。
2.2 差分传输抗干扰原理
单端传输方式,因为地并不会被干扰,而输出信号产生干扰后,输出信号与地的电位差发生变化,导致污染原始信号,噪声最终与输出信号共同输出。
差分传输方式,则源端发出的 +
信号与 -
信号的相位是相反的,而对于共模噪声而言在 +/-
两条线上都会存在,理想情况噪声是等幅同相的,而接收端,相当于一个减法器,有用信号由于相位相反则经过减法器仍然保留,而噪声则会被抵消。
3. 时序
RS-485 在时序上非常简单,没有诸如 SPI
,I2C
的同步时钟线,由于是差分数据线所以不需要我们编写程序以控制时序,在时序上没有太多可解读的内容,但是我们还是需要了解一下 RS-485 的时序,如下图。
不过差分数据线可以使用双通道示波器解读数据,例如示波器通道一接入 RS-485 的 A 线,通道二接入 RS-485 的 B 线,开启示波器的 Math 功能使用通道一减去通道二即可得到实际的数据波形。
4. 收发器
在 RS485 通信网络中,每个总线节点设备通常会使用 RS-485 收发器来转换节点设备的 TTL 逻辑电平到 RS-485 差分电平。
RS-485 通信需要结合使用单片机,DSP 处理器的 UART 接口,通过 UART 将数据发送到 RS-485 收发器,再由 RS-485 对数据电平进行转换并发送给数据接收端。
如果使用 FPGA 使用 RS-485 则需要实现一个支持串口收发的 IP 模块。甚至也可以使用 GPIO 模拟 UART 时序与 RS-485 收发器通信,只不过这需要占用大量 CPU 资源以实现底层数据位的收发。
5. 匹配电阻
在设备少,距离短的情况下即使不使用终端负载电阻整个网络也能很好的工作,但伴随着距离的递增通信质量,性能逐渐降低。
理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国 MAXIM 公司提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的 3 倍以上时就可以不加匹配电阻。
一般终端匹配采用终端电阻方法,RS-485 应在总线电缆的开始和末端都并接终端电阻。终端电阻在 RS-485 网络中取 120 Ohm。相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在100Ohm-120Ohm。
终端匹配方法简单有效,唯一的缺点是匹配电阻需要消耗较大功率,对于功耗限制比较严格的系统不太适用。另外一种比较省电的匹配方式是 RC 匹配。利用一只电容 C 隔断直流成分可以节省大部分功率。但电容 C 的取值是个难点,需要在功耗和匹配质量间进行折中。还有一种采用二极管的匹配方法,这种方案虽未实现真正的匹配,但它利用二极管的钳位作用能迅速削弱反射信号,达到改善信号质量的目的,节能效果显著。
6. 接口设计
RS-485 收发器是大部分芯片公司都涉及的产品,比如 TI,Microchip 等厂商都有,选择接口芯片的时候需要考虑芯片的供电电压输入逻辑是否与使用的处理器,DSP的电平兼容,另外 RS-485 收发器接收电路的阻抗是否是符合 RS-485 标准输入阻抗。
接口电路设计的时候还需要考虑 EMC 要求,在一些设备现场真的有很强的干扰,比如电网上有大功率电机等感性负载运行,这些负载可能干扰设备,另外也可能存在空间辐射干扰,这时候可以考虑采用屏蔽双绞线。
7. 隔离设计
在很多工业现场可能有大电流开关设备,电机感性设备等,噪声很有可能通过通讯的接地耦合进设备。尤其在工业设备中,一般都会设计成带隔离的接口电路。为了降低接地噪声要设计隔离接口,可以考虑选择具有隔离功能的芯片,比如 ADI 的
iCoupler 技术产品 ADM2481,ADM2485。当然也可以采用光耦加普通 RS-485 收发器的方式。唯一需要注意的是需要设计一个带隔离的电源,给隔离两侧电路分别供电。
8. ESD 保护
在工业应用中雷击,电源波动,静电放电都会产生较大的瞬变电压并对 RS-485 收发器造成损害,所以需要在 RS-485 端口处设置保护电路。
保护电路可以使用外部钳位器件(例如 TVS 二极管)。TVS 将总线上的电压钳位到 RS-485 收发器的共模电压范围(-7V–12V)。对于更高的电压瞬变,可在受保护器件与输入引脚之间串联电阻(10-20 Ohm)来加强保护。
9. 共地问题
由于 RS-485 采用 差分 的方式传输,因此抗干扰能力更强,通信距离也比 RS-232 更远。RS-485 通信一般是半双工的,仅需要 2 根信号线,如果是全双工的,则需要 4 根信号线。
实际上 RS485 需要三根线分别是 A,B 和 GND,GND 用于通信双方设备接地。但由于 RS485 使用差分传输,所以一般会认为 GND 不重要,经常省略甚至使用两芯线或者用视频线来传输 RS485 信号。虽然如果不接地线,在很多场合是能正常工作的,但可能会产生以下两个问题:
(1) 共模干扰问题: RS-485 接口采用差分方式传输信号,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差即可。但是 RS-485 收发器有一定的共模电压范围,一般电压范围为 -7V 到 +12V,只有满足上述条件,整个网络才能正常工作。如果总线上有很多的节点,当网络线路中共模电压超出该范围就会影响通信的稳定性。
(2) EMI 电磁兼容性问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有信号地这样低阻的返回通道,信号中的共模部分就会以辐射的形式返回源端,总线会像天线一样向外辐射电磁波。
以上就是关于 RS-485 的技术细节,在实际硬件接口设计需要 RS-485 收发器配合使用,常用的 RS-485 收发器有 SN75176BDR
,其原理图如下:
实际使用时注意设计接口保护电路,防止损坏收发芯片。