按照技术指标和电气接口有三种常见的串行数据标准:RS232、RS422和RS485。本文将绍电缆端接技术、多个负载的使用、RS232菊花链连接、RS232至RS485的转换、RS485至RS232的转换,以及RS232端口供电的RS485转换。
标准的奇妙之处在于有如此之多的选择,这同样也适用于电气接口标准。随着不同行业内串行数据标准的独立发展,我们拥有的标准从未如此之多。
PC和电信应用领域最成功的串行数据标准可能就是RS232。相类似,RS485和RS422也在工业应用领域最成功的标准之列。这些标准并不直接兼容。然而,对于控制和仪表应用,往往必须在不同标准之间进行通信。本文讨论不同的标准(物理层指标),介绍如何将一种标准转换为另一种标准,并演示如何在相同应用中组合不同的标准。
RS232电气指标和典型连接
RS232链路最初用于支持IBM PC上的调制解调器和打印机应用。然而,该标准现在支持各种外设与PC通信。RS232标准定义为单端标准,用于以较低波特率(<20kbps)提高串行通信距离。多年以来,该标准几经变化,以支持较快的驱动器,例如MAX3225E,该器件能提供1Mbps数据传输速率。为了兼容RS232,MAX3225E等收发器必须满足表1所列的电气指标。从典型连接(图1)可看出,利用硬件握手来控制数据流。
表1 RS232标准的主要电气指标汇总
图1 典型的RS232连接
典型RS232信号(图2,CH1)的摆动范围为正和负。注意左侧坐标轴上0V踪迹标记的相对位置。尽管RS232数据为反相,从TTL/CMOS到RS232然后再返回至TTL/CMOS的转换恢复了数据的原始极性。RS232的典型传输距离很少超过100英尺。原因有两个:首先,发送电平(±5V)和接收电平(±3V)之差只允许有2V的共模抑制;第二,较长电缆的分布电容可能超过规定的最大负载(2500pF),从而降低摆率。由于RS232被设计为点对点接口,并非多节点接口,所以其驱动器的指标为3kΩ至7kΩ单负载。因此,多节点接口应用通常采用菊链的连接方法(图3)。
图2 RS232接收器支持双极性输入信号(上部踪迹,CH1),输出反相的TTL/CMOS信号(底部踪迹,CH2)。
图3 菊链方法允许在单个RS232链路上挂接多个从机接收器
菊链设备及其限制
在菊链配置中,RS232信号经过第一个接收器,并环回至发送器。对数据发送线中之后的器件重复该配置。该项技术的主要问题是电缆断裂。如果从机1和从机2之间发生断裂,妨碍所有下行器件发送或接收数据。另一种多节点RS232技术涉及到预缓冲或RS232输出升压驱动(使其驱动多个并联的5kΩ输入)。
为避免菊链网络相关的问题,MAX3322E/MAX3323E专门设计用于多节点应用。这些独特的器件采用了5kΩ逻辑开关输入电阻。器件未被选中时,其输入电阻保持为高阻态,允许与共用总线上的其它器件继续通信。
另一种解决菊链网络问题的方案是将RS232 Rx和Tx信号转换为RS422信号(见表2)。RS422为差分标准,允许传输距离长得多。RS422较高的输入阻抗,与其较高驱动能力相结合,允许连接多达10个节点(图4)。RS422的另一种优势是独立的发送和接收通路,无需方向控制。可以利用软件(XON/OFF握手)或硬件(一组独立的双绞线)实现器件之间必要的握手。MAX3162提供了RS232和RS422之间进行信号转换的经济途径。更多信息请参见下文的RS232/RS485协议转换器部分。
表2 RS422关键指标汇总
图4 典型RS422系统允许差分传输线路上挂接多达10个接收器
RS485与RS422的差异及其再应用中的使用
RS422和RS485收发器往往容易混淆,往往将其中一个当做另一个的全双工版本。然而,其共模范围及接收器输入电阻方面的电气差异使得这些标准适合于不同的应用。由于RS485满足所有的RS422规范(表3),RS485驱动器可用于RS422应用。然而,相反则不成立。RS485驱动器的共模输出为-7V至+12V,而RS422的共模范围仅为±3V。RS422驱动器的最小接收器输入电阻为4kΩ,而RS485驱动器则为12kΩ。
表3 RS485关键指标汇总
为降低接线费用以及达到较长的线长,RS485收发器已经成为销售终端、工业及电信应用领域广泛采用的标准。RS485较宽的共模范围也支持较长的线长和较高的每节点输入电阻,允许总线上连接较多的节点(图5)。
图5 与RS422相比,RS485连接较高的输入阻抗和较宽的共模范围,支持较长的线长
差分RS485传输(图6)在双绞线电缆的每一根线上产生相反的电流和磁场,交叉抵消每根线周围的反向磁场,从而将辐射电磁干扰(EMI)降至最小。为了在较长电缆或较高数据率下进行传输,电缆作为传输线,并应利用电缆的特征阻抗进行端接。RS485连接的这个方面容易引起混淆。传输线需要端接吗?如果需要,应如何端接?如果设计者不是最终用户,这些问题应该留给安装方来解决吗?对于大多数RS485收发器,数据资料标出了电缆作为传输线时不端接和简单点对点端接之间的简单选择(图7)。A-B端子之间的端接电阻是无害的。默认情况下,应该在总线上最后一个收发器处对传输进行端接。
图6 RS485线上的反极性信号交叉抵消了彼此的磁场,从而将EMI降至最小。以上示波器截屏上的GND基准经过搬移(偏移),清晰显示RS485输出信号的相反极性
图7 传输线端接电阻的选择取决于具体应用
失效保护
确定是否需要端接电阻仅仅是实现RS485系统时面临的问题之一。正常情况下,如果A比B大+200mV或更多,RS485接收器输出为“1”;如果B比A大200mV或更多,收发器输出为“0”。在半双工RS485网络中,主机收发器在向从机发送消息后,将总线置于三态。所以,如果没有信号驱动总线,接收器输出状态则无定义,因为A和B之差趋向于0V。如果接收器输出RO为“0”,从机将其解释为新的开始位,并尝试读取随后的字节。由于不会发生停止位,所以结果就是成帧错误。总线变为无主,网络停顿。
不幸的是,对于0V差分输入,不同芯片测试中会产生不同的输出信号。原型可能正常工作,但特定的节点在生产测试中却失败。为解决这一问题,如图7中多节点/失效保护端接所示,对总线进行偏置。偏置总线,确保总线为三态时的接收器输出保持为“1”。或者,您可使用“真失效保护”接收器,例如MAX3080 (5V)和MAX3070 (3V)系列产品。这些器件将接收器的门限改为-50mV,确保差分输入为0V时RO输出为“1”。
RS232/RS85协议转换器
MAX3162为一款很独特的器件,包括RS232和RS485接收器和发送器。宽范围通信器件包含在单片IC中,支持在RS232和RS485信号之间双向独立转换。图8所示的电路中,MAX3162配置为在点对点应用中双向转换RS232和RS485信号。
图8 MAX3162在点对点应用中双向转换RS232和RS485信号
图9所示为MAX3162配置为RS232/RS485多节点协议转换器。转换方向由RTS信号R1IN控制。单端RS232接收器输入信号转换为差分RS485发送器输出;类似地,差分RS485接收器输入信号转换为单端RS232发送器输出。R2IN上接收的RS232数据在Z和Y上作为RS485信号发送;A和B上接收的RS485信号在T1OUT上作为RS232信号发送。
RTS线为共用线,用于控制转换RS232和RS485的电路总线方向。该线在RS232端口上控制RS485收发器作为发送器还是接收器(图9)。注意,系统不确定UART发送缓冲器中的数据字节是否已发送,除非系统监测RS-485驱动器的输入DI。也就是说,系统必须允许固定延时或主动监测DI输入,然后再使用DE输入来改变总线方向。
其它方向控制技术包括使用微控制器以及利用数据驱动DE输入,同时轮询A-B线电压差(利用上拉电阻将A连接至5V,利用下拉电阻将B连接至地)。这些电阻的值随电缆电容变化,但典型值为1kΩ。
图9 MAX3162在多节点应用中双向转换RS232和RS485信号
端口供电器件
许多RS232至RS485转换器为“端口供电转换器”,此时通过RS232 RTS线(或者有时为RTS和CTS (DTR)线的组合)为RS485供电。由于RS232端口可用的功率是有限的,当一个端口供电转换器与(比如) 100个RS485端点配合使用时,就达不到RS485的启动电压。然而,较低的接收器门限(200mV)允许较好的误差裕量。该技术被广泛用于线路较短以及A-B端点间没有端接电阻的系统。
热插拔
电路板插入到正在工作或带电背板时,对数据总线的差分干扰会造成数据错误。插入电路板时,数据通信处理器首先进入其上电序列。在此期间,处理器逻辑输出驱动器为高阻态,不能将MAX3060E/MAX3080E的DE和/RE输入驱动到规定的逻辑电平。处理器逻辑驱动器为高阻态时的漏电流高达±10mA,可能会造成收发器的标准CMOS使能输入发生漂移,处于不正确的逻辑电平。此外,电路板的寄生电容可能造成VCC或GND耦合到使能输入。如果不支持热插拔,这些因素会错误地使能收发器的驱动器或接收器。