通过 RS-232、RS-422 和 RS-485 接口,UART 确保了可靠的远距离工业通信
投稿人:DigiKey 北美编辑
2019-05-22
对于工业检测和控制,通信总线面临诸多挑战。例如,数百甚至数千英尺的布线稀松平常,而恶劣的操作环境简直堪称工业环境的代名词。工业设备往往需要在宽温度范围内工作;无论电源线路还是信号线路均存在较高的电噪声;电磁干扰 (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 个停止位组成。(图片来源:DigiKey)
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)。
|
表 1:RS-232 控制和握手信号。(表格来源:DigiKey)
硬件握手通过请求发送 (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)。
|
表 2:RS-232、RS-422 和 RS-485 标准的特征比较。(表格来源:DigiKey)
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 为这三项标准夯实了基础,从而可以在设计中轻松增加串行通信,尤其是那些针对恶劣工业环境的设计。
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。