通过 RS-232、RS-422 和 RS-485 接口,UART 确保了可靠的远距离工业通信                         
作者:Art Pini /Digi-Key 北美编辑                    

对于工业检测和控制,通信总线面临诸多挑战。例如,数百甚至数千英尺的布线稀松平常,而恶劣的操作环境简直堪称工业环境的代名词。工业设备往往需要在宽温度范围内工作;无论电源线路还是信号线路均存在较高的电噪声;电磁干扰 (EMI)、静电放电 (ESD) 或短路等故障事件频发。
使用基于通用异步接收器/发射器 (UART) 的可靠串行接口即可解决这些问题。有些供应商也将 UART 称作异步通信元件 (ACE)。UART 可以是 Texas Instruments 的 TL16C752D 一类的独立器件,也可以如 Microchip Technology 的 PIC16F688T-I/SL 一样集成在微控制器中。
只要线路驱动器使用得当,UART 即可实现远距离通信:使用 RS-232 串行数据总线,可传输 15 m;使用 RS-485 或 RS-422 接口,则可传输 1000 m。这三种协议均在工厂自动化应用中用于控制远程设备和控制器,旨在最大限度地降低最恶劣环境中的 EMI 和 ESD 的影响。
本文将介绍这些常用工业控制接口协议的背景,并说明如何利用 UART 和线路驱动器来实现这些协议。

RS-232

RS-232 串行通信标准现在也称为 EIA/TIA-232-F,是由美国电子工业协会/电信工业协会公布的一项标准。字母 F 表示为最新版本。该标准与国际电信联盟 (ITU) 的 V.24 和 V.28 标准具有等效性。最初,该接口作为个人电脑的串行总线,用于连接计算机(术语称作数据终端设备 (DTE))与调制解调器(称作数据通信设备 (DCE))。
EIA/TIA-232-F 定义了物理层的标准,包括信号电平和时序、控制信号、连接器及其接线,但没有定义字符编码、组帧等协议层的其他方面。典型的异步串行总线包括 UART 或 ACE、线路驱动器、连接器及电缆(图 1)。
图 1:基本 RS-232 系统包括计算机等数据终端设备 (DTE) 和调制解调器等数据通信设备 (DCE)。UART/ACE 可通过 RS-232 串行接口与计算机并行背板连接。(图片来源:Texas Instruments)
UART/ACE 将计算机内部并行总线转换为串行数据流。此外,还提供输入和输出先进先出 (FIFO) 存储缓冲器、接口时钟(一般称为波特率发生器)、接口时序和握手信号。UART/ACE 的模拟输入和输出可以由线路驱动器提供缓冲。DTE 的输出称为发送信号 (TX),而输入称为接收信号 (RX)。接口电缆的最大长度以 15 米为限。电缆的长度决定了通过接口总线能够可靠传输的最大数据速率。
RS-232 接口通过全双工连接来接通两台设备,因而每台设备可以同时发送和接收。RS-232 串行数据包由 1 个起始位、5 至 8 个数据位、1/1.5/2 个停止位和 1 个奇偶校验位组成(图 2)
图 2:RS-232 数据包由 1 个起始位、5 至 8 个数据位(图示为 8 个)、1 个奇偶校验位(可选)和 1、1.5 或 2 个停止位组成。(图片来源:Digi-Key Electronics)
RS-232 电缆至少需要三芯线:一根用于发送,一根用于接收,还有一根用于信号接地。接地线是两条信号线的回路。
RS-232 的许多特性与其最初在电信领域中的应用有关。该标准使用负逻辑,高电平称为空号,低电平称为传号。中性或空闲状态为高电平,因此可以远程验证互连。在发送端,逻辑 0(空号)的电平范围在 +5 至 +15 V 之间,逻辑 1(传号)的电平范围在 -5 至 -15 V 之间。在接收端,3 至 15 V 的电平表示 0,-3 至 -15 V 表示 1。
因为没有发送时钟信号,术语称这种传输为异步传输。RS-232 要求总线两端设置特定时钟或波特率。波特率衡量每秒传输的符号数量;对于 RS-232,波特率约等于时钟频率。常见的波特率有 300、600、1200、2400、4800、9600、19200、38400、57600、115200、230400、460800 和 921600 波特。
时钟频率越高,电缆长度越受限。例如,在 9600 波特时,可以使用的最长电缆为 15 米。提高波特率,电缆最大长度就相应缩短。

RS-232 控制信号
RS-232 规定了若干控制信号。这些信号用于报告 DTE 和 DCE 设备的状态,并通过基于硬件的握手来确定数据传输速率(表 1)。
[td]               
信号名称助记符功能
数据终端就绪DTRDTE 准备就绪,可以传输数据时,DTE 开启该信号。在 DCE 可以开启 DSR 之前,此线路必须先开启。
数据集就绪DSR由 DCE 开启,表明 DCE 处于联机状态。
载波检测DCDDCE 从远程 DCE 接收载波时,DCE 开启该信号。
振铃指示RI当远程电话线振铃时,DCE 开启该信号。
请求发送RTSDTE 准备就绪,可以发送数据时,DTE 开启该信号。
允许发送CTS由 DCE 开启,响应收到的 RTS 命令。保持开启,直至 RTS 关闭且接收到最后一个数据位为止。
接收数据线RX接收数据。
发送数据线TX发送数据。
        
表 1:RS-232 控制和握手信号。(表格来源:Digi-Key Electronics)
硬件握手通过请求发送 (RTS) 和允许发送 (CTS) 流控制信号来实现,以确保两台设备都已做准备好传输数据,并且接收设备已经收到数据。硬件握手通过以下操作实现:

  • 数据终端设备将 RTS 线设置为逻辑 "1",即“传号”状态
  • 数据通信设备将 CTS 线设置为逻辑 "1",即“传号”状态
  • 数据终端设备将数据终端就绪 (DTR) 线设置为逻辑 "1",即“传号”状态,并在整个数据传输期间保持该状态
  • 传输结束时,数据终端设备将 DTR 和 RTS 线恢复为逻辑 "0",即“空号”状态
  • 数据通信设备将 CTS 线恢复为逻辑 "0",即“空号”状态
RS-232 还能通过软件握手来控制数据流。在这种方式下,XON(ASCII DC1,十六进制数 11)和 XOFF(ASCII DC3,十六进制数 13)字符以数据流形式发送,数据传输类似同步传输。

UART 功能框图
Texas Instruments 的 TL16C752D 是一款双通道 UART,具有 64 字节的接收和发送 FIFO,数据速率高达 3 Mb/s(图 3)。
图 3:Texas Instruments 的 TL16C752D 3 Mb/s 双通道 UART 功能框图显示该器件具有 64 字节的 FIFO 和接口线。(图片来源:Texas Instruments
每 UART 通道都具有独立的波特率发生器,可由软件进行控制。数据总线接口将并行数据转换为串行数据,并同时馈入两个 UART 通道。每个通道都具有独立的控制线。TL16C752D 的工作电压范围为 1.8 V 至 5.5 V,工作温度范围为 -40°C 至 85°C。

基于微控制器的 UART
Microchip Technology 的 PIC16F688T-I/SL 等许多微控制器都包括串行数据接口,可用于与监视器、外部模数转换器 (ADC)、数模转换器 (DAC) 或其他微控制器进行通信(图 4)。
图 4:Microchip Technology 的 PIC16F688T-I/SL CMOS 微控制器串行接口采用增强型通用同步/异步接收器/发送器 (EUSART)。(图片来源:Microchip Technology)
EUSART 有时也称为串行通信接口 (SCI),可以配置为全双工异步或半双工同步串行数据链路。PIC16F688T-I/SL 的 EUSART 包含了执行输入或输出串行数据传输所需的全部移位寄存器、时钟发生器和数据缓冲器,且与微控制器程序执行无关。此外,还具有一个双字符接收缓冲器和一个单字符发送缓冲器。全双工异步接口可用于与监视器等外设进行通信,这是该微控制器串行接口的主要应用。

线路驱动器
线路驱动器可作为发送和接收信号的缓冲器,从而增强 UART 的功能。由于线路驱动器可以在 RS-232 的所有电平规格下工作,因此十分有用。Texas Instruments 的 MAX232DR 双通道 RS-232/TIA/EIA-232-F 收发器是这类器件的一个范例(图 5)。
图 5:运用 MAX232DR 双通道驱动器/接收器来缓冲 TL16C752D 双通道 UART。MAX232DR 可以承受高达 ±30 V 的输入电压,而且输出具有接地短路保护。(图片来源:Texas Instruments)
在需要较高电压的工业应用中,MAX232DR 线路驱动器/接收器具有明显优势,因为该器件能承受高达 ±30 V 的输入电压。该器件包括一个电容式电压发生器,采用 5 V 单电源供电,使用四个外部电容器,在输出端提供 -5 V 至 -7 V 和 +5 V 至 +7 V 的 RS-232 电平。

差分信号
RS-232 的发送和接收线使用单端连接。采用此类单端连接时,信号电压是以线-地电压来衡量。在工业环境中,RS-232 信号线会带入很多噪声,因此需要限制总线的长度。克服这一限制的经典方法是使用差分信号。
差分总线的每路信号由两条线组成,信号电压则是以两条信号线之间的电压差来衡量。对于两条信号线而言,噪声和串扰一般是相同的,因此差分测量几乎可以完全消除这些相同的干扰信号,从而显著降低了噪声和串扰的幅度。此外,差分电缆还带有屏蔽,可进一步降低噪声和干扰的带入。
使用差分信号线的常用数据总线标准有两种:RS-422 (TIA/EIA-422) 和 RS-485 (TIA/EIA-485),后者是最常见的工业串行总线。这些标准的传输线使用双绞线,连接设备最远可以相距 1200 m (4000 ft)。这两项标准的最大数据速率均达 10 Mb/s。上述三种串行总线的比较如下所示(表 2)。
[td]               
标准RS-232RS-422RS-485
线路配置单端差分差分
传输类型全双工全双工半双工(2 线)
全双工(4 线)
使用的信号TX、RX、RTS、CTS、DTR、DSR、DCD、接地TXA、TXB、RXA、RXB、接地数据 A、数据 B、接地
总线拓扑点对点点对点多点
最大连接设备数110(接收模式下)32
最大长度15 米,9600 bit/s1.2 千米,100 Kb/s1.2 千米,100 Kb/s
最大数据速率1 Mb/s10 Mb/s10 Mb/s
接收灵敏度±3 V±200 mV±200 mV
        
表 2:RS-232、RS-422 和 RS-485 标准的特征比较。(表格来源:Digi-Key Electronics)
RS-422 和 RS-485 的区别在于,RS-485 可以与多达 32 台收发器配合使用(若采用总线扩展器,可以连接更多收发器),而 RS-422 总线上最多只能连接 10 台接收器。全双工模式下的 RS-485 需要四芯线,而半双工模式下只需要两芯线;RS-422 也只需要两芯线(图 6)。
图 6:RS-485 接口的全双工(左)和半双工拓扑。计算机或主控设备显示为红色,其他设备为蓝色。(图片来源:Texas Instruments
差分总线的每路发送或接收信号线均需使用两芯线,如图所示。全双工操作需要四芯线,而半双工只需要两芯线。由于 RS-422 和 RS-485 的传输速率较高,传输线的两端都必须端接。对于双绞线,端接电阻 RT 为 120 Ω。由于 TL16C752D 接口 IC 具有双通道 UART 配置,因此可以推断该器件具有 RS-485 模式。这也是许多 UART 和相关线路驱动器采用双通道配置的原因。
RS-422 发送器端的电平为 ±6 V,而 RS-485 为 -7 至 +12 V。在接收器端,两项标准的灵敏度均为 ±200 mV。

总结
无论距离远近,RS-232、RS-422 和 RS-485 三种串行接口均可为串行通信提供多种可靠选择。UART 为这三项标准夯实了基础,从而可以在设计中轻松增加串行通信,尤其是那些针对恶劣工业环境的设计。