通过 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-232rs-232 串行通信标准现在也称为 eia/tia-232-f,是由美国电子工业协会/电信工业协会公布的一项标准。字母 f 表示为最xin版本。该标准与国际电信联盟 (itu) 的 v.24 和 v.28 标准具有等效性。最初,该接口作为个人电脑的串行总线,用于连接计算机(术语称作数据终端设备 (dte))与调制解调器(称作数据通信设备 (dce))。
eia/tia-232-f 定义了物理层的标准,包括信号电平和时序、控制信号、连接器及其接线,但没有定义字符编码、组帧等协议层的其他方面。典型的异步串行总线包括 uart 或 ace、线路驱动器、连接器及电缆(图 1)。
图 1:基本 rs-232 系统包括计算机等数据终端设备 (dte) 和调制解调器等数据通信设备 (dce)。uart/ace 可通过 rs-232 串行接口与计算机并行背板连接。
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 个停止位组成。
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 控制和握手信号。
硬件握手通过请求发送 (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。
基于微控制器的 uartmicrochip technology 的 pic16f688t-i/sl 等许多微控制器都包括串行数据接口,可用于与监视器、外部模数转换器 (adc)、数模转换器 (dac) 或其他微控制器进行通信(图 4)。
图 4:microchip technology 的 pic16f688t-i/sl cmos 微控制器串行接口采用增强型通用同步/异步接收器/发送器 (eusart)。
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 的输入电压,而且输出具有接地短路保护。
在需要较高电压的工业应用中,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-232rs-422rs-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 标准的特征比较。
rs-422 和 rs-485 的区别在于,rs-485 可以与多达 32 台收发器配合使用(若采用总线扩展器,可以连接更多收发器),而 rs-422 总线上最多只能连接 10 台接收器。全双工模式下的 rs-485 需要四芯线,而半双工模式下只需要两芯线;rs-422 也只需要两芯线(图 6)。
图 6:rs-485 接口的全双工(左)和半双工拓扑。计算机或主控设备显示为红色,其他设备为蓝色。
差分总线的每路发送或接收信号线均需使用两芯线,如图所示。全双工操作需要四芯线,而半双工只需要两芯线。由于 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 为这三项标准夯实了基础,从而可以在设计中轻松增加串行通信,尤其是那些针对恶劣工业环境的设计。
金湖辛德瑞自动化设备有限公司