通过 RS-232、RS-422 和 RS-485 接口,UART 确保了可靠的远距离工业通信

对于工业检测和控制,通信总线面临诸多挑战。例如,数百甚至数千英尺的布线稀松平常,而恶劣的操作环境简直堪称工业环境的代名词。工业设备往往需要在宽温度范围内工作;无论电源线路还是信号线路均存在较高的电噪声;电磁干扰 (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)。
Texas Instruments 的基本 RS-232 系统示意图
图 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)
RS-232 数据包示意图(点击放大)
图 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)。
信号名称 助记符 功能
数据终端就绪 DTR DTE 准备就绪,可以传输数据时,DTE 开启该信号。在 DCE 可以开启 DSR 之前,此线路必须先开启。
数据集就绪 DSR 由 DCE 开启,表明 DCE 处于联机状态。
载波检测 DCD DCE 从远程 DCE 接收载波时,DCE 开启该信号。
振铃指示 RI 当远程电话线振铃时,DCE 开启该信号。
请求发送 RTS DTE 准备就绪,可以发送数据时,DTE 开启该信号。
允许发送 CTS 由 DCE 开启,响应收到的 RTS 命令。保持开启,直至 RTS 关闭且接收到最后一个数据位为止。
接收数据线 RX 接收数据。
发送数据线 TX 发送数据。
表 1:RS-232 控制和握手信号。(表格来源:Digi-Key Electronics)
硬件握手通过请求发送 (RTS) 和允许发送 (CTS) 流控制信号来实现,以确保两台设备都已做准备好传输数据,并且接收设备已经收到数据。硬件握手通过以下操作实现:
  1. 数据终端设备将 RTS 线设置为逻辑 "1",即“传号”状态
  2. 数据通信设备将 CTS 线设置为逻辑 "1",即“传号”状态
  3. 数据终端设备将数据终端就绪 (DTR) 线设置为逻辑 "1",即“传号”状态,并在整个数据传输期间保持该状态
  4. 传输结束时,数据终端设备将 DTR 和 RTS 线恢复为逻辑 "0",即“空号”状态
  5. 数据通信设备将 CTS 线恢复为逻辑 "0",即“空号”状态
RS-232 还能通过软件握手来控制数据流。在这种方式下,XON(ASCII DC1,十六进制数 11)和 XOFF(ASCII DC3,十六进制数 13)字符以数据流形式发送,数据传输类似同步传输。

UART 功能框图

Texas Instruments 的 TL16C752D 是一款双通道 UART,具有 64 字节的接收和发送 FIFO,数据速率高达 3 Mb/s(图 3)。
Texas Instruments 的 TL16C752D 3 Mb/s 双通道 UART 功能框图
图 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)。
Microchip Technology 的 PIC16F688T-I/SL CMOS 微控制器示意图
图 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)。
Texas Instruments 用来缓冲 TL16C752D 双通道 UART 的 MAX232DR 双通道驱动器/接收器示意图
图 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)。
标准 RS-232 RS-422 RS-485
线路配置 单端 差分 差分
传输类型 全双工 全双工 半双工(2 线)
全双工(4 线)
使用的信号 TX、RX、RTS、CTS、DTR、DSR、DCD、接地 TXA、TXB、RXA、RXB、接地 数据 A、数据 B、接地
总线拓扑 点对点 点对点 多点
最大连接设备数 1 10(接收模式下) 32
最大长度 15 米,9600 bit/s 1.2 千米,100 Kb/s 1.2 千米,100 Kb/s
最大数据速率 1 Mb/s 10 Mb/s 10 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)。
RS-485 接口的全双工(左)和半双工拓扑示意图
图 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 为这三项标准夯实了基础,从而可以在设计中轻松增加串行通信,尤其是那些针对恶劣工业环境的设计。

用户喜欢...