作为上世纪80年代早期批准的一个平衡传输标准,RS-485似乎已成为工业界永不过时的接口标准。关于它的文献有很多,但对于很少接触接口设计的系统工程师而言,如此海量的文献就有些让人吃不消了。
本文旨在讨论RS-485标准的主要内容,为初接触它的设计师提供入门指南。研究文末参考的一些附加应用笔记可进一步帮助设计师在最短的时间内完成一套可靠的数传设计。
RS-485标准的用途
RS-485只定义了用于平衡多点传输线的驱动器和接收器的电特性,因此很多更高层标准都将其作为物理层引用。
网络拓扑
总线节点以菊花链或总线拓扑方式联网。(见图1)也就是说,每个节点都通过很短的线头连接到主线缆。该接口总线通常设计为用于半双工传输,也就是说它只用一对信号线,驱动数据和接收数据只能在不同时刻出现在信号线上。
图1:RS-485总线结构(左)与半双工总线结构(右)。
这就需要通过方向控制信号(例如驱动器/接收器使能信号)控制节点操作的协议,以确保任何时刻总线上都只能有一个驱动器在活动,而必须避免多个驱动器同时访问总线导致总线竞争。
信号电平
RS-485驱动器必需在54的负载上提供最小1.5V的差分输出,而RS-485接收器则必需能检测到最小为200mv的差分输入(见图2)。这两个值为可靠数据传输提供了足够的裕度,即便信号经过线缆和连接器发生严重衰减时亦如此。而稳健性正是RS-485适用于噪声环境的长距离联网的主要原因。
图2:RS-485规定的最小总线信号电平。
线缆类型
在双绞线上传送差分信号为RS-485应用带来了很大好处。这是因为外部噪声源产生的噪声总是等量耦合进两根信号线中,属于共模噪声,而这能在差分接收器的输入处就被抑制掉。
工业用RS-485线缆是特性阻抗为120和22AWG的塑封非屏蔽双绞线。图3所示为一对用于半双工网络的UTP线缆的横截面。
图3:RS-485通信线缆示例。
为了保持网络的电特性,除了网络线缆的连接之外,印制电路板的布线和RS-485设备连接器上的管脚分配需保持两根信号线之间的距离均等且足够靠近。
总线端接与线头长度
数据传输线应进行端接,而且线头应尽可能短,以避免传输线上发生信号反射。良好的端接要求终端电阻RT与传输线线缆的特征阻抗Z0匹配。RS-485建议采用Z0为120的线缆,因此通常每根线缆末端都采用120的电阻进行端接。
图4:利用共模噪声滤波器对RS-485进行端接。
噪声环境下的应用往往用两个RC低通滤波器替代这些120的电阻,以增强对共模噪声的滤波(见图4)。值得注意的是,两个滤波器的电阻值应相等(最好采用精密电阻)以确保两个滤波器具有相同的滚降频率。电阻容差过大会导致滤波器转角频率出现偏差,而导致共模噪声转换为差模噪声,使接收器的抗噪性能降低。
线头的电长度(即收发器与线缆干线之间的距离)应小于驱动器输入信号上升时间的1/10。表1列出了图4中不同驱动信号上升时间对应的最大线缆线头长度。
表1:不同信号上升时间下的线头长度和未端接线缆长度。
故障保险
故障保险(failsafe)是指接收器可以在无输入信号时保证一个确定的输出状态。可能导致信号丢失的原因有三种:1)电路开路:由电线断线或收发器从总线上断开导致;2)电路短路:绝缘失效导致传输差分对信号的两根线互相短路;3)总线空闲:总线上没有驱动器工作。
由于以上几种条件可能导致传统的接收器在输入信号为零时输出随机的状态,因此现代收发器设计中均为开路、短路和总线空闲状态下的故障保险设计了专门的偏置电路。当输入信号为零时,该电路会使接收器的输出保持在一个确定的状态。
尽管这些带故障保险的收发器宣称能减少元器件个数,但它们10mV的最坏情况噪声裕度使外部故障保险电路的设计成为必要。
外部故障保险电路包含一个电阻分压器,用以产生足够的差分总线电压,将接收器的输出驱动至一个确定的状态。为确保电路具备足够的噪声裕度,VAB在200mV接收器输入阈值之外还必需能涵盖最大差分噪声。按下式计算故障保险偏置电阻RB在最坏情况条件下(即最低电压,最大噪声条件下)的阻值:
其中VAB=200mV + VNoise。在最小总线电压为4.75V,VAB=0.25V并且Zo=120时,RB的计算结果为528。在RT上串联两个523的电阻(见图5左),就在总线一端建立起一个故障保险电路。
图5:总线空闲的外部故障保险偏置。
由于驱动器依靠电流输出,因此必需为输出电流提供一个负载。为总线增加收发器和故障保险电路同时也增大了所需的总负载电流。为了估计总线允许的最大负载个数,RS-485定义了一个假想的单位负载(UL),一个UL代表的负载阻抗约为12k。符合标准的驱动器必需能驱动32个这样的单位负载。如今的收发器往往采用的是减小了的单位负载,例如1/8UL,因此总线上允许连接的收发器个数多达256个。
由于故障保险偏置电路就占据了总线负载中多达20UL,因此总线上允许的最大接收机个数就减少了。因此,当采用1/8的收发器时,总线上最多能连接96个设备。即。
数据率与总线长度的关系
最大总线长度受传输线损耗与某个数据率下的信号抖动限制。在抖动达到波特周期的10%或以上时,数据可靠性会急剧下降。图6给出了传统RS-485驱动器在10%信号抖动下,不同数据率特性对应的线缆长度。
图6:不同数据率下的线缆长度。
在图6中,第一部分代表了线长受主要非抗性(即阻性)线缆损耗限制的数据率范围。第2部分中,线缆的电抗性损耗随频率增加,因此频率增加后允许的线缆长度就减小了。经验准则告诉我们线长(单位为英寸)乘以数据率(单位为bps)应小于3107。当线长较短时,线缆损耗可以忽略,这时,限制最大可能数据率的只有驱动信号的上升时间(第3部分)。
最小节点间距
以增多器件与器件间互连的方式增大总线容抗会降低总线阻抗,并导致总线的传输媒介与负载部分的阻抗失配。输入信号到达这些失配点时会有一部分被反射回信号来源处,从而使驱动器输出信号失真。
要确保总线上任何一处输出驱动器送出的信号在第一次信号转换过程中,到达接收器时均达到有效输入电平,就要求总线节点之间只相隔最小间距,约可按下式计算:
其中CL为集总负载电容,C为传输媒介(线缆或PCB走线)单位长度的电容。上式给出的是最小器件间距与分布媒介和集总负载电阻的函数关系,图7将这种关系图形化了。
图7:最小节点间距与器件和传输媒介容抗的关系。
负载电容包括线路总线管脚的电容、连接器的接触电容、印制电路板的走线电容、保护器件的电容,当总线至收发器(收发器的线头)之间的电距离较短时还包括任何其他与干线相连的物理连接带来的电容。
接地与隔离
远程数据连接通常存在很大的地电位差(GDP),该电位差到了发送器的输出上就成了共模噪声。如果这种噪声过大,就可能超过接收器的输入共模噪声容限,从而对器件造成损坏。因此,不建议依靠本地接地作为电流回流的可靠路径(见图8a)。也不建议直接用地线连接远程地,(见图8b)因为这可能会引发很大的地回路电流,耦合到数据线之中成为共模噪声。像RS-485建议的那样通过在接地通路上插入电阻来减小回路电流也只解决了一半问题。一个大接地回路的存在就使数据链路对回路中其他地方产生的噪声非常敏感。因此,通过这种方式仍无法建立一个可靠的数据链路(见图8c)。
图8:需要注意的设计缺陷:a) GPD过高; b) 回路电流过大; c)减小回路电流,但过大的接地环路仍会导致电路对感应噪声高度敏感。
建立可靠的长距离数据链路的最可靠的方法是通过绝缘隔离。采用该方法时,总线收发器的信号线和电源线与本地信号与电源是相互隔离的。
电源隔离器,例如隔离型DC/DC变换器、和数字容性隔离器等信号隔离器均能阻止电流在远程系统的接地之间流通,从而避免创造这样的电流回路。
图9给出的是多个隔离型收发器的详细连接。所有收发器中除了一个以外其他均通过隔离连接到总线,图中唯一一个未隔离的收发器为整个总线提供单一地参考。
图9:多个现场总线收发器位置与单一地参考的隔离。
本文小结
虽不能说是非常完整,但本文的目标是涵盖RS-485系统设计的所有主要问题。尽管关于这一主题有大量的技术文献,但本文旨在为新接触RS-485的系统设计师们提供一个详尽的设计指南。