尽管存在高达±13V的高信号摆幅,但RS-232仍然是一种非平衡或单端接口,而且本身极易受噪声影响。它的总线最大长度被限定在20米(60英尺)左右。尽管允许进行全双工数据传输(通过一些单独的信号导线同时发送和接收数据),但是RS-232并不支持在同一条总线上连接多个节点。
与之形成鲜明对比的是,RS-485是一种使用差分信号传输的平衡接口,从而让其拥有较高的共模噪声抗扰性。因此,延长RS-232数据链路传输距离和实现多总线节点连接,要求通过接口转换器将其转换为RS-485信号(参见图1)。
图 1 短距、点对点数据链路到远距、多点网络的转换
图2显示了一个低功耗、隔离式转换器设计的原理图。这里,一台个人计算机(PC)的RS-232串行端口连接至左侧的SUB-D9接口。
图2 使用自动选向控制的隔离式RS-232到RS-485转换器。
个人计算机串行端口包含一个RS-232驱动器和接收器芯片,芯片将其内部5V逻辑信号转换为接口处更高的±8V到±13V电平。这些高压总线信号再通过另一个RS-232芯片转换回标准逻辑电平,以同RS-485收发器进行通信。
在发送方向,485收发器将来自RS-232接收器输出的逻辑信号转换成差分总线信号。在接收方向,它将差分总线信号转换成进入RS-232驱动器输入端的单端、低压信号。
RS-485收发器包括一个电容式隔离层,其实现总线端与逻辑控制端之间的电流隔离,从而消除了总线节点之间的接地电流。
在总线端,这种转换器设计拥有数个确保可靠数据传输的元件。跳线J1和J2在总线空载期间激活故障保护偏压网络。如果这种转换器安装在总线端,则通过跳线J3可以实现一个120欧姆端接电阻器。
一个瞬态抑制器通过钳制接地电位,保护收发器免受危险瞬态过电压的损害。为了将瞬态电流分流至地电位,要求使用一个高压电容器,以在浮动总线接地和保护接地(PE)之间提供AC耦合。一般而言,我们使用一条短单芯导线(18 AWG)来实现到PE端或机壳接地的连接。
信号通路隔离还要求电源隔离。这里,我们通过一个低压降电压调节器(LDO)对总线电源(3.3V到10V)进行调节。然后,把它用于收发器总线电源(Vcc2)和一个隔离式DC/DC转换器。这种转换器由变压器驱动器、隔离变压器和一个次LDO(为逻辑端电路供电)组成。
更老一点的转换器设计有时会使用一个请求发送信号(RTS)来将RS-485收发器从接模式切换到发送模式。但是,在一些计算机应用中,RTS生成接口软件运行在Windows?下,并非实时。因此,如果Windows决定将其处理时间用于另一个应用程序、屏幕保护程序或者杀毒软件,则RTS可能就无法实时地将收发器切换回接收模式,因此另一个总线节点所发送的数据便可能会丢失。
图2所示转换器设计通过实现一种自动选向功能消除了出现上述状况的可能性。这种自动选向检测通过一个单稳态触发器实现。触发器的输出由232接收器输出触发为高。默认情况下,RS-485收发器处于接收模式。当单稳态输出变为高时,它便将收发器切换到发送模式。
该单稳态输出的时间常量由一个R-C网络定义。数据速率为9600 bps,2ms高态时间时,C = 220 nF,而R = 10 kOhm;数据速率为1200 bps,20ms高态时间时,R = 100 kOhm。当高态时间结束后,单稳态输出再次回到低,从而将收发器切换回接收模式。尽管自动选向功能依赖于数据速率,但其仍然是防止数据丢失的一种可靠方法。