当前自动控制系统中常用的网络,如现场总线 CAN 、 Profibus 、 INTERBUS-S 以及 ARCNet 的物理层都是基于 RS-485 的总线进行总结和研究.
一、 EIA RS-485 标准
在自动化领域,随着分布式控制系统的发展,迫切需要一种总线能适合远距离的数字通信.在 RS-422 标准的基础上, EIA 研究出了一种支持多节点、远距离和接收高灵敏度的 RS-485 总线标准.
RS-485 标准采有用平衡式发送,差分式接收的数据收发器来驱动总线,具体规格要求:
· 接收器的输入电阻 RIN ≥ 12k Ω
· 驱动器能输出± 7V 的共模电压
· 输入端的电容≤ 50pF
· 在节点数为 32 个,配置了 120 Ω的终端电阻的情况下,驱动器至少还能输出电压 1.5V (终端电阻的大小与所用双绞线的参数有关)
· 接收器的输入灵敏度为 200mV (即( V+ ) - ( V- )≥ 0.2V ,表示信号 "0" ;( V+ ) - ( V- )≤ -0.2V ,表示信号 "1" )
因为 RS-485 的远距离、多节点( 32 个)以及传输线成本低的特性,使得 EIA RS-485 成为工业应用中数据传输的首选标准.
二、影响 RS-485 总线通讯速度和通信可靠性的三个因素
1 、在通信电缆中的信号反射
在通信过程中,有两种信号因导致信号反射:阻抗不连续和阻抗不匹配.
阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射,如图 1 所示.这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的.消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续.由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻,如图 2 所示.
从理论上分析,在传输电缆的末端只要跨接了与电缆特性阻抗相匹配的终端电阻,就再也不会出现信号反射现象.但是,在实现应用中,由于传输电缆的特性阻抗与通讯波特率等应用环境有关,特性阻抗不可能与终端电阻完全相等,因此或多或少的信号反射还会存在.
引起信号反射的另个原因是数据收发器与传输电缆之间的阻抗不匹配.这种原因引起的反射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱.
信号反射对数据传输的影响,归根结底是因为反射信号触发了接收器输入端的比较器,使接收器收到了错误的信号,导致 CRC 校验错误或整个数据帧错误.
在信号分析,衡量反射信号强度的参数是 RAF ( Refection Attenuation Factor 反射衰减因子).它的计算公式如式( 1 ).
RAF=20lg(Vref/Vinc) ( 1 )
式中: Vref- 反射信号的电压大小; Vinc- 在电缆与收发器或终端电阻连接点的入射信号的电压大小.
具体的测量方法如图 3 所示.例如,由实验测得 2.5MHz 的入射信号正弦波的峰 - 峰值为 +5V ,反射信号的峰 - 峰值为 +0.297V ,则该通讯电缆在 2.5MHz 的通讯速率时,它的反射衰减因子为:
RAF=20lg(0.297/2.5)=-24.52dB
要减弱反射信号对通讯线路的影响,通常采用噪声抑制和加偏置电阻的方法.在实际应用中,对于比较小的反射信号,为简单方便,经常采用加偏置电阻的方法.在通讯线路中,如何通过加偏置电阻提高通讯可靠性的原理,后面将做详细介绍.
2 、在通讯电缆中的信号衰减
第二个影响信号传输的因素是信号在电缆的传输过程中衰减.一条传输电缆可以把它看出由分布电容、分布电感和电阻联合组成的等效电路,如图 4 所示.
电缆的分布电容 C 主要是由双绞线的两条平行导线产生.导线的电阻在这里对信号的影响很小,可以忽略不计.信号的损失主要是由于电缆的分布电容和分布电感组成的 LC 低通滤波器.PROFIBUS 用的 LAN 标准型二芯电感(西门子为 DP 总线选用的标准电缆),在不同波特率时的衰减系数如表 1 所示.
表 1 电缆的衰减系数
通讯波特率 衰减体系数( 1km)
≤ 42dB 16MHz
≤ 22dB 4MHz
≤ 4dB 38.4kHz
≤ 2.5dB 9.6kHz
3 、在通讯电缆中的纯阻负载
影响通讯性能的第三个因素是纯阻性负载(也叫直流负载)的大小.这里指的纯阻性负载主要由终端电阻、偏置电阻和 RS-485 收发器三者构成.
在叙述 EIA RS-485 规范时曾提到过 RS-485 驱动器在带了 32 个节点,配置了 150 Ω终端电阻的情况下,至少能输出 1.5V 的差分电压.一个接收器的输入电阻为 12k Ω,整个网络的等效电路如图 5 所示.按这样计算, RS-485 驱动器的负载能力为:
RL=32 个输入电阻并联 ||2 个终端电阻 = (( 12000/32 )×( 150/2 )) / ( 12000/32 ) + ( 150/2 ))≈ 51.7 Ω
现在比较常用的 RS-485 驱动器有 MAX485 、 DS3695 、 MAX1488/1489 以及和利时公司使用的 SN75176A/D 等,其中有的 RS-485 驱动器负载能力可以达到 20 Ω.在不考虑其它诸多因素的情况下,按照驱动能力和负载的关系计算,一个驱动器可带节点的最大数量将远远大于 32 个.
在通讯波特率比较高的时候,在线路上偏置电阻是很有必要的.偏置电阻的连接方法如图 6 .它的作用是在线路进入空闲状态后,把总线上没有数据时(空闲方式)的电平拉离 0 电平,如图 7 .这样一来,即使线路中出现了比较小的反射信号或干扰,挂接在总线上的数据接收器也不会由于这些信号的到来而产生误动作.
通过下面后例子了,可以计算出偏置电阻的大小:
终端电阻 Rt1=Rr2=120 Ω;
假设反射信号最大的峰 - 峰值 Vref ≤ 0.3Vp-p ,则负半周的电压 Vref ≤ 0.15V; 终端的电阻上由反射信号引起的反射电流 Iref ≤ 0.15/(120||120)=2.5mA .一般 RS-485 收发器(包括 SN75176 )的滞后电压值( hysteresis value )为 50mV ,即:
( Ibias-Iref )×( Rt1||Rt2 )≥ 50mV
于是可以计算出偏置电阻产生的偏置电流 Ibias ≥ 3.33mA
+5V=Ibias(R 上拉 +R 下拉 + ( Rt1||Rt2 ) ) ( 2 )
通过式 2 可以计算出 R 上拉 =R 下拉 =720 Ω
在实际应用中, RS-485 总线加偏置电阻有两种方法:
( 1 )把偏置电阻平衡分配给总线上的每一个收发器.这种方法给挂接在 RS-485 总线上的每一个收发器加了偏置电阻,给每一个收发器都加了一个偏置电压.
( 2 )在一段总线上只用一对偏置电阻.这种方法对总线上存在大的反射信号或干扰信号比较有效.值得注意的是偏置电阻的加入,增加了总线的负载.
三、 RS-485 总线的负载能力和通讯电缆长度之间的关系
在设计 RS-485 总线组成的网络配置(总线长度和带负载个数)时,应该考虑到三个参数:纯阻性负载、信号衰减和噪声容限.纯阻性负载、信号衰减这两个参数,在前面已经讨论过,现在要讨论的是噪声容限( Noise Margin ).RS-485 总线接收器的噪声容限至少应该大于 200mV .前面的论述者是在假设噪声容限为 0 的情况下进行的.在实际应用中,为了提高总线的抗干扰能力,总希望系统的噪声容限比 EIA RS-485 标准中规定的好一些.从下面的公式能看出总线带负载的多少和通讯电缆长度之间的关系:
Vend=0.8(Vdriver-Vloss-Vnoise-Vbias) (3)
其中: Vend 为总线末端的信号电压,在标准测定时规定为 0.2V ; Vdriver 为驱动器的输出电压(与负载数有关.负载数在 5 ~ 35 个之间, Vdriver=2.4V ;当负载数小于 5 , Vdriver=2.5V ;当负载数大于 35 , Vdriver ≤ 2.3V ); Vloss 为信号在总线中的传输过程中的损耗(与通讯电缆的规格和长度有关),由表 1 提供的标准电缆的衰减系数,根据公式衰减系数 b=20lg(Vout/Vin) 可以计算出 Vloss=Vin-Vout=0.6V( 注:通讯波特率为 9.6kbps ,电缆长度 1km ,如果特率增加, Vloss 会相应增大 ) ; Vnoise 为噪声容限,在标准测定时规定为 0.1V ; Vbias 是由偏置电阻提供的偏置电压(典型值为 0.4V ).
式( 3 )中乘以 0.8 是为了使通信电缆不进入满载状态.从式( 3 )可以看出, Vdriver 的大小和总线上带负载数的多少成反比, Vloss 的大小和总线长度成反比,其他几个参数只和用的驱动器类型有关.因此,在选定了驱动器的 RS-495 总线上,在通信波特率一定的情况下,带负载数的多少,与信号能传输的最大距离是直接相关的.具体关系是:在总线允许的范围内,带负载数越多,信号能传输的距离就越小;带负载数据少,信号能传输的距离就发越远.
四、分布电容对 RS-485 总线传输性能的影响
电缆的分布电容主是由双绞线的两条平行导线产生.另外,导线和地之间也存在分布电容,虽然很小,但在分析时也不能忽视.分布电容对总线传输性能的影响,主要是因为总线上传输的是基波信号,信号的表达方式只有 "1" 和 "0" .在特殊的字节中,例如 0x01 ,信号 "0" 使得分布电容有足够的充电时间,而信号 "1" 到来时,由于分布电容中的电荷,来不及放电, (Vin+)-(Vin-)- 还大于 200mV ,结果使接爱误认为是 "0" ,而最终导致 CRC 校验错误,整个数据帧传输错误.具体过程如图 8 所示.
由于总线上分布影响,导致数据传输错误,从而使整个网络性能降低.解决这个问题有两种方法:
( 1 )降低数据传输的波特率;
( 2 )使用分布电容小的电缆,提高传输线的质量.