RS232和 RS485讲解.docx

上传人:b****8 文档编号:29724756 上传时间:2023-07-26 格式:DOCX 页数:21 大小:711.66KB
下载 相关 举报
RS232和 RS485讲解.docx_第1页
第1页 / 共21页
RS232和 RS485讲解.docx_第2页
第2页 / 共21页
RS232和 RS485讲解.docx_第3页
第3页 / 共21页
RS232和 RS485讲解.docx_第4页
第4页 / 共21页
RS232和 RS485讲解.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

RS232和 RS485讲解.docx

《RS232和 RS485讲解.docx》由会员分享,可在线阅读,更多相关《RS232和 RS485讲解.docx(21页珍藏版)》请在冰豆网上搜索。

RS232和 RS485讲解.docx

RS232和RS485讲解

RS232和RS485讲解

一、计算机常见通讯接口

  随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要。

这里所说的通信是只计算机与外界的信息交换。

因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换。

由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。

对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。

在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式。

所以串行接口是微机应用系统常用的接口。

许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU与接口之间仍按并行方式工作。

1 串行通信的概念

图1-1

  所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。

如图1-1所示。

这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。

由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串→并)和“发送移位寄存器”(并→串)。

典型的串行接口的结构如1-2所示。

图1-2

  在数据输入过程中,数据1位1位地从外设进入接口的“接收移位寄存器”,当“接收移位寄存器”中已接收完1个字符的各位后,数据就从“接收移位寄存器”进入“数据输入寄存器”。

CPU从“数据输入寄存器”中读取接收到的字符。

(并行读取,即D7~D0同时被读至累加器中)。

“接收移位寄存器”的移位速度由“接收时钟”确定。

在数据输出过程中,CPU把要输出的字符(并行地)送入“数据输出寄存器”,“数据输出寄存器”的内容传输到“发送移位寄存器”,然后由“发送移位寄存器”移位,把数据1位1位地送到外设。

“发送移位寄存器”的移位速度由“发送时钟”确定。

接口中的“控制寄存器”用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接口的工作方式。

“状态寄存器”的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状态或某种错误。

例如,用状态寄存器的D5位为“1”表示“数据输出寄存器”空,用D0位表示“数据输入寄存器满”,用D2位表示“奇偶检验错”等。

能够完成上述“串<-->并”转换功能的电路,通常称为“通用异步收发器”(UART:

UniversalAsynchronousReceiverandTransmitter),典型的芯片有:

Intel8250/8251,16550。

二、串口通信基本接线方法

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

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

1.DB9和DB25的常用信号脚说明

1.RS232C串口通信接线方法(三线制)

  首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:

同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连,同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)

  上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:

接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。

2.串口调试中要注意的几点:

  串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。

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

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

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

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

电话线就是二线全双工信道。

由于采用了回波抵消技术,双向的传输信号不致混淆不清。

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

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

0100,0101=45H  D7D0

  由于干扰,可能使位变为1,这种情况,我们称为出现了“误码”。

我们把如何发现传输中的错误,叫“检错”。

发现错误后,如何消除错误,叫“纠错”。

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

可采用奇校验或偶校验。

奇校验:

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

  10110,0101  00110,0001

  偶校验:

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

10100,0101

  奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。

在发现错误后,只能要求重发。

但由于其实现简单,仍得到了广泛使用。

有些检错方法,具有自动纠错能力。

如循环冗余码(CRC)检错等。

 

三、串口通讯流控制

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

那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?

这里我们就来谈谈这个问题。

1.流控制在串行通讯中的作用这里讲到的“流”,当然指的是数据流。

数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。

现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。

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

因此流控制可以控制数据传输的进程,防止数据的丢失。

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

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

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

这种硬件握手方式的过程为:

我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置低电平(送逻辑0),当发送端的程序检测到CTS为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平。

RTS则用来标明接收设备有没有准备好接收数据。

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

我们在此不再详述。

由于流控制的多样性,我个人认为,当软件里用了流控制时,应做详细的说明,如何接线,如何应用。

3.软件流控制由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。

一般通过XON/XOFF来实现软件流控制。

常用方法是:

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

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

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

 

四、RS-232-C详解

  串行通信接口标准经过使用和发展,目前已经有几种。

但都是在RS-232标准的基础上经过改进而形成的。

所以,以RS-232C为主来讨论。

RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。

它适合于数据传输速率在0~20000b/s范围内的通信。

这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。

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

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

首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(DataTerminalEquipment)与数据通信设备DCE(DataCommunicationEquipment)而制定的。

因此这个标准的制定,并未考虑计算机系统的应用要求。

但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。

显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。

有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了。

其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。

由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。

1、RS-232-C  RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(ElectronicIndustryAssociation)代表美国电子工业协会,RS(ecommededstandard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。

它规定连接电缆和机械、电气特性、信号功能及传送过程。

常用物理标准还有有EIA�RS-232-C、EIA�RS-422-A、EIA�RS-423A、EIA�RS-485。

这里只介绍EIA�RS-232-C(简称232,RS232)。

例如,目前在IBMPC机上的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

图4-1

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

对于数据(信息码):

逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平告语+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)V之间。

EIA-RS-232C与TTL转换:

EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。

因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。

实现这种变换的方法可用分立元件,也可用集成电路芯片。

目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成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转换器,进行电平转换后才能送到连接器上去或从连接器上送进来。

图4-2

(2)连接器的机械特性:

  连接器:

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

下面分别介绍两种连接器。

<1>DB-25:

PC和XT机采用DB-25型连接器。

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

①异步通信的9个电压信号(含信号地SG)2,3,4,5,6,7,8,20,22②20mA电流环信号9个(12,13,14,15,16,17,19,23,24)③空6个(9,10,11,18,21,25)④保护地(PE)1个,作为设备接地端(1脚)DB-25型连接器的外形及信号线分配如图3所示。

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

图4-3

  电缆长度:

在通信速率低于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根,它们是:

(1)联络控制信号线:

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

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

这两个信号有时连到电源上,一上电就立即有效。

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

请求发送(Requesttosend-RTS)——用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。

它用来控制ODEM是否要进入发送状态。

允许发送(Cleartosend-CTS)——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。

当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。

这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。

在全双工系统中作发送方式和接收方式之间的切换。

在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。

接收线信号检出(ReceivedLinedetection-RLSD)——用来表示DCE已接通通信链路,告知DTE准备接收数据。

当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字两数据后,沿接收数据线RxD送到终端。

此线也叫做数据载波检出(DataCarrierdectection-DCD)线。

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

(2)数据发送与接收线:

发送数据(Transmitteddata-TxD)——通过TxD终端将串行数据发送到MODEM,(DTE→DCE)。

接收数据(Receiveddata-RxD)——通过RxD线终端接收从MODEM发来的串行数据,(DCE→DTE)。

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

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

例如,只有当DSR和DTR都处于有效(ON)状态时,才能在DTE和DCE之间进行传送操作。

若DTE要发送数据,则预先将DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的回答后,才能在TxD线上发送串行数据。

这种顺序的规定对半双工的通信线路特别有用,因为半双工的通信才能确定DCE已由接收方向改为发送方向,这时线路才能开始发送。

  2个数据信号:

发送TXD;接收RXD。

1个信号地线:

SG。

6个控制信号:

DSR��数传机(即modem)准备好,DataSetReady.DTR��数据终端(DTE,即微机接口电路,如Intel8250/8251,16550)准备好,DataTerminalReady。

RTS��DTE请求DCE发送(RequestToSend)。

CTS��DCE允许DTE发送(ClearToSend),该信号是对RTS信号的回答。

DCD��数据载波检出,DataCarrierDetection当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时,使DCD有效,通知DTE准备接收,并且由DCE将接收到的载波信号解调为数字信号,经RXD线送给DTE。

RI��振铃信号Ringing当DCE收到交换机送来的振铃呼叫信号时,使该信号有效,通知DTE已被呼叫。

 

五、远距离通信

  第1和第2中情况是属于远距离通信(传输距离大于15m的通信)的例子,故一般要加调制解调器MODEM,因此使用的信号线较多。

注意:

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

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

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

图5-1

  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可以从数据输入寄存器读取字符。

  近距离通信:

当通信距离较近时,可不需要Modem,通信双方可以直接连接,这种情况下,只需使用少数几根信号线。

最简单的情况,在通信中根本不需要RS-232C的控制联络信号,只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信,即是这里要讨论的第一种情况。

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

RS-232C标准规定:

当误码率小于4%时,要求导线的电容值应小于2500PF。

对于普通导线,其电容值约为170PF/M。

则允许距离L=2500PF/(170PF/M)=15M,这一距离的计算,是偏于保守的,实际应用中,当使用9600bps,普通双绞屏蔽线时,距离可达30~35米。

 

六、RS-232、RS-422与RS-485的由来

  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标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。

因此在视频界的应用,许多厂家都建立了一套高层通信协议,或公开或厂家独家使用。

如录像机厂家中的Sony与松下对录像机的RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis协议是公开的,而ProLINK则是基于Profile上的。

1、RS-232串行接口标准

  目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。

RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。

RS-232采取不平衡传输方式,即所谓单端通讯。

图6-1

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

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

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

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

由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1