设计指南 723

RS-232、RS-422及RS-485串行数据标准的选择及使用


摘要 : 按照技术指标和电气接口介绍三种常见的串行数据标准:RS-232、RS-422和RS-485。介绍电缆端接技术、多个负载的使用、RS-232菊花链连接、RS-232至RS-485的转换、RS-485至RS-232的转换,以及RS-232端口供电的RS-485转换。

引言

“标准的奇妙之处在于有如此之多的选择。”这句话出现在最近一次关于光缆的会议中,但同样也适用于电气接口标准。随着不同行业内串行数据标准的独立发展,我们拥有的标准从未如此之多。

PC和电信应用领域最成功的串行数据标准可能就是RS-232。相类似,RS-485和RS-422也在工业应用领域最成功的标准之列。这些标准并不直接兼容。然而,对于控制和仪器仪表应用,往往必须在不同标准之间进行通信。本文讨论不同的标准(物理层指标),介绍如何将一种标准转换为另一种标准,并演示如何在相同应用中组合不同的标准。

RS-232电气指标和典型连接

RS-232链路最初用于支持IBM PC上的调制解调器和打印机应用。然而,该标准现在支持各种外设与PC通信。RS-232标准定义为单端标准,用于以较低波特率(<20kbps)提高串行通信距离。多年以来,该标准几经变化,以支持较快的驱动器,例如MAX3225E,该器件能提供1Mbps数据传输速率。为了兼容RS-232,MAX3225E等收发器必须满足表1所列的电气指标。从典型连接(图1)可看出,利用硬件握手来控制数据流。

表 1. RS-232标准的主要电气指标汇总

参数 条件 最小 最大 单位
驱动器输出电压,开路     25 V
驱动器输出电压,带载 3kΩ < RL < 7kΩ ±5 ±15 V
驱动器输出电阻,关断 -2V < V < 2V   300  
电压变化率   4 30 V/µs
最大负载电容     2500 pF
接收器输入电阻   3 7
接收器输入门限:
输出 = 串号(逻辑1)   -3   V
输出 = 空号(逻辑0)     3 V

典型的RS-232连接
图1. 典型的RS-232连接。

典型RS-232信号(图2,CH1)的摆动范围为正和负。注意左侧坐标轴上0V踪迹标记的相对位置。尽管RS-232数据为反相,从TTL/CMOS到RS-232然后再返回至TTL/CMOS的转换恢复了数据的原始极性。RS-232的典型传输距离很少超过100英尺。原因有两个:首先,发送电平(±5V)和接收电平(±3V)之差只允许有2V的共模抑制;第二,较长电缆的分布电容可能超过规定的最大负载(2500pF),从而降低摆率。由于RS-232被设计为点对点接口,并非多节点接口,所以其驱动器的指标为3kΩ至7kΩ单负载。因此,多节点接口应用通常采用菊链的连接方法(图3)。

RS-232接收器支持双极性输入信号
图2. RS-232接收器支持双极性输入信号(上部踪迹,CH1),输出反相的TTL/CMOS信号(底部踪迹,CH2)。

菊链方法允许在单个RS-232链路上挂接多个从机接收器
图3. 菊链方法允许在单个RS-232链路上挂接多个从机接收器。

菊链设备及其限制

在菊链配置中,RS-232信号经过第一个接收器,并环回至发送器。对数据发送线中之后的器件重复该配置。该项技术的主要问题是电缆断裂。如果从机1和从机2之间发生断裂,妨碍所有下行器件发送或接收数据。另一种多节点RS-232技术涉及到预缓冲或RS-232输出升压驱动(使其驱动多个并联的5kΩ输入)。

为避免菊链网络相关的问题,Maxim开发了MAX3322E/MAX3323E,专门设计用于多节点应用。这些独特的器件采用了5kΩ逻辑开关输入电阻。器件未被选中时,其输入电阻保持为高阻态,允许与共用总线上的其它器件继续通信。

另一种解决菊链网络问题的方案是将RS-232 Rx和Tx信号转换为RS-422信号(见表2)。RS-422为差分标准,允许传输距离长得多。RS-422较高的输入阻抗,与其较高驱动能力相结合,允许连接多达10个节点(图4)。RS-422的另一种优势是独立的发送和接收通路,无需方向控制。可以利用软件(XON/OFF握手)或硬件(一组独立的双绞线)实现器件之间必要的握手。MAX3162提供了RS-232和RS-422之间进行信号转换的经济途径。更多信息请参见下文的RS-232/RS-485协议转换器部分。

表 2. RS-422关键指标汇总

参数 条件 最小 最大 单位
驱动器输出电压,开路     ±10 V
驱动器输出电压,带载 RL = 100Ω 2
-2
  V
驱动器输出电阻 A至B   100 Ω
驱动器输出短路电流 每输出至公共连接   150 mA
驱动器输出上升时间 RL = 100Ω   10 %位宽
驱动器共模电压 RL = 100Ω   ±3 V
接收器灵敏度 VCM < ±7V   ±200 mV
接收器共模电压范围   -7 7 V
接收器输入电阻   4  
差分接收器电压 可工作   ±10 V
可承受   ±12 V

典型RS-422系统允许差分传输线路上挂接多达10个接收器
图4. 典型RS-422系统允许差分传输线路上挂接多达10个接收器。

RS-485与RS-422的差异及其在应用中的使用

RS-422和RS-485收发器往往容易混淆,往往将其中一个当做另一个的全双工版本。然而,其共模范围及接收器输入电阻方面的电气差异使得这些标准适合于不同的应用。由于RS-485满足所有的RS-422规范(表3),RS-485驱动器可用于RS-422应用。然而,相反则不成立。RS-485驱动器的共模输出为-7V至+12V,而RS-422的共模范围仅为±3V。RS-422驱动器的最小接收器输入电阻为4kΩ,而RS-485驱动器则为12kΩ。

表3. RS-485关键指标汇总

参数 条件 最小 最大 单位
驱动器输出电压,开路   1.5
-1.5
6
-6
V
V
驱动器输出电压,带载 RL = 100Ω 1.5
-1.5
5
-5
V
V
驱动器输出短路电流 每输出至公共连接   ±250 mA
驱动器输出上升时间 RL = 54Ω
CL = 50pF
  30 %位宽
驱动器共模电压 RL = 54Ω   ±3 V
接收器灵敏度 -7V < VCM < 12V   ±200 mV
接收器共模电压范围   -7 12 V
接收器输入电阻   12  

为降低接线费用以及达到较长的线长,RS-485收发器已经成为销售终端、工业及电信应用领域广泛采用的标准。RS-485较宽的共模范围也支持较长的线长和较高的每节点输入电阻,允许总线上连接较多的节点(图5)。

与RS-422相比,RS-485连接较高的输入阻抗和较宽的共模范围,支持较长的线长
图5. 与RS-422相比,RS-485连接较高的输入阻抗和较宽的共模范围,支持较长的线长。

差分RS-485传输(图6)在双绞线电缆的每一根线上产生相反的电流和磁场,交叉抵消每根线周围的反向磁场,从而将辐射电磁干扰(EMI)降至最小。为了在较长电缆或较高数据率下进行传输,电缆作为传输线,并应利用电缆的特征阻抗进行端接。RS-485连接的这个方面容易引起混淆。传输线需要端接吗?如果需要,应如何端接?如果设计者不是最终用户,这些问题应该留给安装方来解决吗?对于大多数RS-485收发器,数据资料标出了电缆作为传输线时不端接和简单点对点端接之间的简单选择(图7)。A-B端子之间的端接电阻是无害的。默认情况下,应该在总线上最后一个收发器处对传输进行端接。

RS-485线上的反极性信号交叉抵消了彼此的磁场
图6. RS-485线上的反极性信号交叉抵消了彼此的磁场,从而将EMI降至最小。以上示波器截屏上的GND基准经过搬移(偏移),清晰显示RS-485输出信号的相反极性。

传输线端接电阻的选择取决于具体应用
图7. 传输线端接电阻的选择取决于具体应用。

失效保护

确定是否需要端接电阻仅仅是实现RS-485系统时面临的问题之一。正常情况下,如果A比B大+200mV或更多,RS-485接收器输出为“1”;如果B比A大200mV或更多,收发器输出为“0”。在半双工RS-485网络中,主机收发器在向从机发送消息后,将总线置于三态。所以,如果没有信号驱动总线,接收器输出状态则无定义,因为A和B之差趋向于0V。如果接收器输出RO为“0”,从机将其解释为新的开始位,并尝试读取随后的字节。由于不会发生停止位,所以结果就是成帧错误。总线变为无主,网络停顿。

不幸的是,对于0V差分输入,不同芯片测试中会产生不同的输出信号。原型可能正常工作,但特定的节点在生产测试中却失败。为解决这一问题,如图7中多节点/失效保护端接所示,对总线进行偏置。偏置总线,确保总线为三态时的接收器输出保持为“1”。或者,您可使用“真失效保护”接收器,例如MAX3080 (5V)和MAX3070 (3V)系列产品。这些器件将接收器的门限改为-50mV,确保差分输入为0V时RO输出为“1”。

RS-232/RS-485协议转换器

MAX3162为一款很独特的器件,包括RS-232和RS-485接收器和发送器。宽范围通信器件包含在单片IC中,支持在RS-232和RS-485信号之间双向独立转换。图8所示的电路中,MAX3162配置为在点对点应用中双向转换RS-232和RS-485信号。

MAX3162在点对点应用中双向转换RS-232和RS-485信号
图8. MAX3162在点对点应用中双向转换RS-232和RS-485信号。

图9所示为MAX3162配置为RS-232/RS-485多节点协议转换器。转换方向由RTS信号R1IN控制。单端RS-232接收器输入信号转换为差分RS-485发送器输出;类似地,差分RS-485接收器输入信号转换为单端RS-232发送器输出。R2IN上接收的RS-232数据在Z和Y上作为RS-485信号发送;A和B上接收的RS-485信号在T1OUT上作为RS-232信号发送。

RTS线为共用线,用于控制转换RS-232和RS-485的电路总线方向。该线在RS-232端口上控制RS-485收发器作为发送器还是接收器(图9)。注意,系统不确定UART发送缓冲器中的数据字节是否已发送,除非系统监测RS-485驱动器的输入DI。也就是说,系统必须允许固定延时或主动监测DI输入,然后再使用DE输入来改变总线方向。

其它方向控制技术包括使用微控制器以及利用数据驱动DE输入,同时轮询A-B线电压差(利用上拉电阻将A连接至5V,利用下拉电阻将B连接至地)。这些电阻的值随电缆电容变化,但典型值为1kΩ。

MAX3162在多节点应用中双向转换RS-232和RS-485信号
图9. MAX3162在多节点应用中双向转换RS-232和RS-485信号。

端口供电器件

许多RS-232至RS-485转换器为“端口供电转换器”,此时通过RS-232 RTS线(或者有时为RTS和CTS (DTR)线的组合)为RS-485供电。由于RS-232端口可用的功率是有限的,当一个端口供电转换器与(比如) 100个RS-485端点配合使用时,就达不到RS-485的启动电压。然而,较低的接收器门限(200mV)允许较好的误差裕量。该技术被广泛用于线路较短以及A-B端点间没有端接电阻的系统。

热插拔

电路板插入到正在工作或带电背板时,对数据总线的差分干扰会造成数据错误。插入电路板时,数据通信处理器首先进入其上电序列。在此期间,处理器逻辑输出驱动器为高阻态,不能将MAX3060E/MAX3080E的DE和/RE输入驱动到规定的逻辑电平。处理器逻辑驱动器为高阻态时的漏电流高达±10mA,可能会造成收发器的标准CMOS使能输入发生漂移,处于不正确的逻辑电平。此外,电路板的寄生电容可能造成VCC或GND耦合到使能输入。如果不支持热插拔,这些因素会错误地使能收发器的驱动器或接收器。

参考
  1. RS-422 and RS-485 Application Note, B&B Electronics (This is a great source of information on RS-232, RS-485 and RS-422 standards and their practical realizations. www.bb-elec.com)
  2. Serial Port Complete, Jan Axelson (This definitive reference for serial ports includes considerable useful source code written in Visual Basic. www.lvr.com)
 

 推荐阅读

  Choosing the Right RS-232 Transceiver

 推荐产品

  多协议收发器

 访问产品线页面

  收发器