购物车0种商品
IC邮购网-IC电子元件采购商城
【图】串口通信RS232,RS422,RS485详解
(2023/10/13 11:00:00)
串口通信RS232,RS422,RS485详解
串口通信RS232,RS422,RS485详解

串口技术发展简介

1969年,美国电子工业协会(EIA)公布了RS-232C作为串行通信接口的电气标准, 该标准定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要 求,在世界范围内得到了广泛的应用。



但它采用单端驱动非差分接收电路,因而存在着传输距离不太远(最大传输距离15m) 和传送速率不太高(最大位速率为20Kb/s)的问题,远距离串行通信必须使用Modem,增加了成本。



在分布式控制系统和工业局部网络中,传输距离常介于近距离(<20m)和远距离 (>2km)之间的情况,这时RS-232C(25脚连接器)不能采用,用Modem又不经济,因而需要制定新的串行通信接口标准。



1977年EIA制定了RS-449,它除了保留与RS-232C兼容的特点外,还在提 高传输速率,增加传输距离及改进电气特性等方面作了很大努力,并增加了10个控制信号。



与RS-449同时推出的还有RS-422和RS-423,它们是RS- 449的标准子集。



另外,还有RS-485,它是RS-422的变形。RS-422、RS-423是全双 工的,而RS-485是半双工的。



RS-422标准规定采用平衡驱动差分接收电路,提高了数据传输速率(最大位速率为 10Mb/s),增加了传输距离(最大传输距离1200m)。



RS-423标准规定采用单端驱动差分接收电路,其电气性能与RS-232C几乎相同,并设 计成可连接RS-232C和RS-422。它一端可与RS-422连接,另一端则可与RS-232C连接,提供了一种从旧技术到新技术过渡 的手段,同时又提高位速率(最大为300Kb/s)和传输距离(最大为600m)。



因RS-485为半双工的,当用于多站互连时可节省信号线,便于高速、远距离传送。许多智能 仪器设备均配有RS-485总线接口,将它们联网也十分方便。



串行通信由于接线少、成本低,在数据采集和控制系统中得到了广泛的应用,产品也多种多样。



串行通信接口标准经过使用和发展,目前已经有几种,但都是在RS-232标准的基础上经过改进而形成的。所 以,以RS-232C为主来讨论。



RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议, 它适合于数据传输速率在0~20000b/s范围内的通信,这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。



由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口 中广泛采用。



在讨论RS-232C接口标准的内容之前,先说明两点:



首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的,因此这个标准 的制定,并未考虑计算机系统的应用要求,但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准 的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了。



其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的 立场来定义的。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。








RS-232-C



RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(ecommeded standard)代表推荐标准,232是 标识号,C代表RS232的最新一次修改(1969),在这之前有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能 及传送过程。常用物理标准还有有RS-232-C、RS-422-A、RS-423A、RS-485。 这里只介绍RS-232-C(简称232,RS232)。 例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。



 1、电气特性  



EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。  



在TxD和RxD上,

逻辑1(MARK) =-3V~-15V  

逻辑0(SPACE) =+3~+15V



在RTS、CTS、DSR、DTR和DCD等控制线上,

信号有效(接通,ON状态,正电压) =+3V~+15V

信号无效(断开,OFF状态,负电压) =-3V~-15V



以上规定说明了RS-323C标准对逻辑电平的定义。



对于数据(信息码):逻辑“1“ (传号)的电平低于-3V,逻辑“0” (空号)的电平高于+3V。

对于控制信号:接通状态(ON),即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于 -3V。

也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间 的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)V之间。





EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的 规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路 之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。



目前较为广泛地使用集成电路转换器件,如MC1488SN75150芯片可完成TTL电平到EIA 电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL和EIA双 向电平转换,图1显示了1488和1489的内部结构和引脚。







MC1488的引脚(2)、(4,5)、(9,10)和(12,13)接TTL输入,引脚3、6、8、11 输出端接EIA-RS-232C。MC1498的14的1、4、10、13脚接EIA输入,而3、6、8、 11脚接TTL输出。具体连接方法如图2所示。







图中的左边是微机串行接口电路中的主芯片UART,它是TTL器件,右边是EIA-RS-232C连接器, 要求EIA高电压。因此,RS-232C所有的输出、输入信号都要分别经过MC1488和MC1498转换器,进行电平转换后才能送到连接器上去或从连接 器上送进来。



2、连接器的机械特性



1)连接器  



由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各 种类型的连接器,其引脚的定义也各不相同。下面介绍连接器DB-25。   



DB-25连接器定义了25根信号线,分为4组:  



a、异步通信的9个电压信号(含信号地SG):2,3,4,5,6,7,8,20,22;



b、20mA电流环信号:9个 (12,13,14,15,16,17,19,23,24);



c、空:6个 (9,10,11,18,21,25);



d、保护地(PE):1个,作为设备接地端(1脚)。  



DB-25型连接器的外形及信号线分配如图3所示。







注意,20mA电流环信号仅IBM PC和IBM PC/XT机提供,至AT机及以后,已不支持。



2) 电缆长度



在通信速率低于20kb/s时,RS-232C所直接连接的最大物理距离为15m(50 英尺)。



最大直接传输距离说明:RS-232C标准规定,若不使用MODEM,在码元畸变小于4%的情况 下,DTE和DCE之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的。为了保证码元畸变小于 4%的要求,接口标准在电气特性中规定,驱动器的负载电容应小于2500pF。








  3、RS-232C的接口信号



RS-232C规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的 只有9根,它们是:  



a、联络控制信号线



数据装置准备好(DSR,Data set ready),有效时(ON)状态,表明 MODEM处于可以使用的状态。



数据终端准备好(DTR,Data terminal ready),有效时(ON)状态, 表明数据终端可以使用。



这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有效,只表示设备本 身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。



请求发送(RTS,Request to send),用来表示DTE请求DCE发送 数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。它用来控制MODEM是否要进入发送状态。



允许发送(CTS,Clear to send),用来表示DCE准备好接收DTE发 来的数据,是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送 数据线TxD发送数据。



这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。在 全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。



接收线信号检出(RLSD,Received Line signal detection), 用来表示DCE已接通通信链路,告知DTE准备接收数据。当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时, 使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字数据后,沿接收数据线RxD送到终端。此线也叫做数 据载波检出(DCD,Data Carrier dectection)线。 



振铃指示(RI,Ringing),当MODEM收到交换台送来的振铃呼叫信号时,使该信 号有效(ON状态),通知终端,已被呼叫。



b、数据发送与接收线   

发送数据(TxD,Transmitted data),通过TxD终端将串行数据发送到 MODEM,从DTE到DCE。
  

接收数据(RxD,Received data),通过RxD线终端接收从MODEM发来的串行 数据,从DCE到DTE。
  



c、地线   

有两根线SG、PG,信号地和保护地信号线,无方向。
  



上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。

例如,只有当DSR和DTR都处于有效(ON)状态时,才能在DTE和DCE之间进行传送操作。若 DTE要发送数据,则预先将DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的回答后,才能在TxD线上发送串行数据。这种顺序 的规定对半双工的通信线路特别有用,因为半双工的通信才能确定DCE已由接收方向改为发送方向,这时线路才能开始发送。



 3.1 远距离通信   

在以下各图中,DTE信号为RS-232-C信号,DTE与计算机间的电平转换电路未画出。 

1) 采用Modem(DCE)和电话网通信时的信号连接   

若在双方MODEM之间采用普通电话交换线进行通信,除了需要2~8号信号线外还要增加RI(22 号)和DTR(20号)两个信号线进行联络,如图4所示。







DSR、DTR:数传机(DCE)准备好、数据终端(DTE)准备好,只表示设备 本身可用。

首先,通过电话机拔号呼叫对方,电话交换台向对方发出拔号呼叫信号,当对方DCE收到该信号后,使 RI(振铃信号)有效,通知DTE,已被呼叫。当对方“摘机”后,两方建立了通信链路。

若计算机要发送数据至对方,首先通过接口电路(DTE)发出RTS(请求发送)信号。此时,若 DCE(Modem)允许传送,则向DTE回答CTS(允许发送)信号。一般可直接将RTS/CTS接高电平,即只要通信链路已建立,就可 传送信号。

RTS/CTS只用于半双工系统中作发送方式和接收方式的切换。

当DTE获得CTS信号后,通过TXD线向DCE发出串行信号,DCE(Modem)将这些数字信号调制 成模拟信号(又称载波信号),传向对方。

计算机向DTE“数据输出寄存器”传送新的数据前,应检查Modem状态和数据输出寄存器为空。当对方的 DCE收到载波信号后,向对方的DTE发出DCD信号(数据载波检出),通知其DTE准备接收,同时,将载波信号解调为数据信号,从RXD线上送给 DTE,DTE通过串行接收移位寄存器对接收到的位流进行移位,当收到1个字符的全部位流后,把该字符的数据位送到数据输入寄存器,CPU可以从数据输入 寄存器读取字符。



 3.2 近距离通信

当通信距离较近时,可不需要Modem,通信双方可以直接连接,这种情况下,只需使用少数几根信号线。最简单的 情况,在通信中根本不需要RS-232C的控制联络信号,只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。

无Modem时,最大通信距离按如下方式计算:

RS-232C标准规定,当误码率小于4%时,要求导线的电容值应小于2500PF。对于普 通导线,其电容值约为170PF/M。则允许距离L=2500PF/(170PF/M)=15M。这一距离的计算,是偏于保守的,实际应用中,当使用9600bps,普通双绞屏蔽线时,距离可达30~35米。








4. 串口通信应用说明



4.1 串口通信基本接线方法

目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近 时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。

最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用 RS232相连。  

a、DB9和DB25的常用信号脚说明   





b、RS232C串口通信接线方法(三线制)

首先,串口传输数据只要有接收数据针脚和发送针脚就能实现同一个串口的接收脚和发 送脚直接用线相连,两个串口相连或一个串口和多个串口相连。

1)同一个串口的接收脚和发送脚直接用线相连,对9针串口和25针串口,均是2与3直接相 连。

2) 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)





上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住 一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。








  4.2 串口调试中要注意的几点

1) 串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半 功倍之效果。

2) 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。



 4.3 单工、半双工和全双工的定义

如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。

如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工 传输。

如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。





电话线就是二线全双工信道,由于采用了回波抵消技术,双向的传输信号不致混淆不 清。

双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。



  4.4 奇偶校验  

串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符‘E’,其各位为:  

0100 0101 = 45H   

D7  D0



由于干扰,可能使位变为1,这种情况,我们称为出现了“误码”。我们把如何发现传输中的错 误,叫“检错”。发现错误后,如何消除错误,叫“纠错”。



最简单的检错方法是“奇偶校验”,即在传送字符的各位之外,再传送1位奇/偶校验位,可采用奇校验或偶校 验。

奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数。如:

1 0110,0101   

0 0110,0001

偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如:

1 0100,0101   

0 0100,0001





奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时它不 能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。

有些检错方法,具有自动纠错能力。如循环冗余码(CRC)检错等。  



4.5 串口通讯流控制   

我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项, 目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的。那么,流控制在串行通讯中有何作用,在编制串行 通讯程序怎样应用呢?这里我们就来谈谈这个问题。

这里讲到的“流”,当然指的是数据流。

数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同, 如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过MODEM进行数据传输,这个 问题就尤为突出。

流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收 到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。

PC机中常用的两种流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和软件流 控制XON/XOFF(继续/停止),下面分别说明。



1) 硬件流控制

硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪) 流控制。

硬件流控制必须将相应的电缆线连上,用RTS/CTS(请求发送/清除发送)流控制时,应将通讯两端的RTS、 CTS线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用CTS来起动和 暂停来自计算机的数据流。

这种硬件握手方式的过程为:我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲 区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置低电平 (送逻辑0),当发送端的程序检测到CTS为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平。RTS则用来标明接收 设备有没有准备好接收数据。

常用的流控制还有还有DTR/DSR(数据终端就绪/数据设置就绪)。  



2) 软件流控制

由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制,一般通过 XON/XOFF来实现软件流控制。常用方法如下:

当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出XOFF字符(十进制 的19或Control-S,设备编程说明书应该有详细阐述),发送端收到XOFF字符后就立即停止发送数据;

当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出XON字符(十进制的 17或Control-Q),发送端收到XON字符后就立即开始发送数据。

一般可以从设备配套源程序中找到发送的是什么字符。

应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷, 而硬件流控制不会有这个问题。





RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布 的。

RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。

RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距 离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到 4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多 机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。

为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通 信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后 命名为TIA/EIA-485-A标准。

由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。

RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此 基础上用户可以建立自己的高层通信协议。








RS-232串行接口标准

目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行 通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。

收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地) 的电平,DB25各引脚定义参见图5。





典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平 在+5~+15V,负电平在-5~-15V电平。

当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平 再返回TTL电平。

接收器典型的工作电平在+3~+12V与-3~-12V。

由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的 分布电容,其传送距离最大为约15米,最高速率为20kb/s。

RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ, 所以RS-232适合本地设备之间的通信,其有关电气参数参见表1。








  6、RS-422与RS-485的网络失效保护

RS-422与RS-485标准都规定了接收器门限为±200mV。这样规定能够提供比较高的噪 声抑制能力,如前文所述,当接收器A电平比B电平高+200mV以上时,输出为正逻辑,反之,则输出为负逻辑。

但由于第三态的存在,即在主机在发端发完一个信息数据后,将总线置于第三态,即总线空闲时 没有任何信号驱动总线,使AB之间的电压在-200~+200mV直至趋于0V,这带来了一个问题,就是接收器输出状态不确定。

如果接收机的输出为0V,网络中从机将把其解释为一个新的启动位,并试图读取后续字节,由于永远不会有停止位, 产生一个帧错误结果,不再有设备请求总线,网络陷于瘫痪状态。

除上述所述的总线空闲会造成两线电压差低于200mV的情况外,开路或短路时也会 出现这种情况,故应采取一定的措施避免接收器处于不确定状态。

通常是在总线上加偏置,当总线空闲或开路时,利用偏置电阻将总线偏置在一个确定的状态(差 分电压≥-200mV)。如图17。





将A上拉到地,B下拉到5V,电阻的典型值是1kΩ,具体数值随电缆的电容变化而变化。

上述方法是比较经典的方法,但它仍然不能解决总线短路时的问题,有些厂家将接收门限移到 -200mV/-50mV,可解决这个问题。

例如Maxim公司的MAX3080系列RS-485接口,不仅省去了外部偏置电阻,而且解决了总线短路情况下 的失效保护问题。

 7、RS-422与RS-485的瞬态保护

前文提到的信号接地措施,只对低频率的共模干扰有保护作用,对于频率很高的瞬态干扰就无能为力了。由于传 输线对高频信号而言就是相当于电感,因此对于高频瞬态干扰,接地线实际等同于开路。这样的瞬态干扰虽然持续时间短暂,但可能会有成百上千伏的电 压。

实际应用环境下还是存在高频瞬态干扰的可能。一般在切换大功率感性负载如电机、变压器继电器等 或闪电过程中都会产生幅度很高的瞬态干扰,如果不加以适当防护就会损坏RS-422或RS-485通信接口。对于这种瞬态干扰可以采用隔 离或旁路的方法加以防护。



1) 隔离保护方法

这种方案实际上将瞬态高压转移到隔离接口中的电隔离层上,由于隔离层的高绝缘电阻,不会产生损害性的浪涌电流, 起到保护接口的作用。

通常采用高频变压器、光耦等元件实现接口的电气隔离,已有器件厂商将所有这些元件 集成在一片IC中,使用起来非常简便,如Maxim公司的MAX1480/MAX1490,隔离电压可达2500V。这种方案的优点是可以承受高电压、持 续时间较长的瞬态干扰,实现起来也比较容易,缺点是成本较高。

2) 旁路保护方法

这种方案利用瞬态抑制元件(如TVS、MOV、气体放电管等)将危害性的瞬态能量旁路到大地,优点是成本较低, 缺点是保护能力有限,只能保护一定能量以内的瞬态干扰,持续时间不能很长,而且需要有一条良好的连接大地的通道,实现起来比较困难。



实际应用中是将上述两种方案结合起来灵活加以运用,如图18。





在这种方法中,隔离接口对大幅度瞬态干扰进行隔离,旁路元件则保护隔离接口不被过高的瞬态 电压击穿。



浏览:(455)| 评论( 0 )
博文评论

  • 昵 称:
  • 内 容:10~250个字符
  • 验证码: 验证码看不清楚?请点击刷新验证码
  •                      
  • 博文分类

    热点博文

    最新博文

    最新评论

    IC电子元件查询
    IC邮购网电子元件品质保障