Visual C++串口通信技术详解(第2版)
上QQ阅读APP看书,第一时间看更新

1.2 RS-232C标准

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

RS-232最早于1962年发布,全称为EIA-RS-232-E。它被定义为在低速串行通信中增加通信距离的单端标准,即所谓单端通信标准。1969年经过最新一次修改后被称为EIA-RS-232-C,简称为RS-232C。

目前,IBM PC及其兼容机上配置的COM1和COM2接口,都采用RS-232C标准。此外,RS-232C还是当前通信工业领域中应用最广的串行接口。

1.2.1 RS-232C电气特性

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

在TxD和RxD上,

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

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

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

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

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

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

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

■ 对于控制信号:接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义。

因此,实际工作时,应保证电平在±(3~15)V之间。

TTL规定使用高低电平表示逻辑状态,而EIA-RS-232C则规定使用正负电压来表示逻辑状态。因此,为了实现计算机系统中EIA-RS-232C部件和TTL部件的相互连接,必须要解决两者之间电压和逻辑关系的变换问题。变换时既可使用分立元件,也可使用集成电路转换器件,如MC1488、SN75150等芯片可以实现TTL电平到EIA-RS-232C电平的转换,而MC1489、SN75154等芯片可以实现EIA-RS-232C电平到TTL电平的转换。MAX232芯片可完成TTL和EIA-RS-232C之间的双向电平转换。

1.2.2 RS-232C连接器机械特性

由于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连接器的外形及信号线分配如图1-3所示。注意,20mA电流环信号仅IBM PC和IBM PC/XT机提供,至AT机及以后,已不支持。DB-25的示意图如图1-3所示,针脚功能如表1-1所示。

图1-3 DB-25针串行数据接口示意图

表1-1 DB-25针串口针脚功能表

2. DB-9连接器

在AT机及以后,不支持20mA电流环接口,使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个信号。DB-9连接器的引脚分配与DB-25引脚信号完全不同。因此,若与配接DB-9连接器DTE与配接DB-25连接器的DCE设备连接,必须使用专门的电缆线。

DB-9的示意图如图1-4所示,针脚功能如表1-2所示。

图1-4 DB-9串行数据接口示意图

表1-2 DB-9串口针脚功能表

■ 电缆长度:在通信速率低于20kbit/s时,RS-232C所直接连接的最大物理距离为15m。

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

1.2.3 RS-232C的接口信号

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

1. 联络控制信号线

■ 数据装置准备好(Data Set Ready, DSR)—有效时(ON)状态,表明Modem处于可以使用的状态。

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

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

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

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

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

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

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

2. 数据发送与接收线

■ 发送数据(Transmitted Data, TxD)—通过TxD终端将串行数据发送到Modem(DTE→DCE)。

■ 接收数据(Received Data, RxD)—通过RxD线终端接收从Modem发来的串行数据(DCE→DTE)。

3. 地线

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

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

1.2.4 RS-232C的通信方式

1. 远距离通信

采用Modem(DCE)和电话网通信时的信号连接。若在双方Modem之间采用普通电话交换线进行通信,除了需要2~8号信号线外还要增加RI(22号)和DTR(20号)两个信号线进行联络。

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

2. 近距离通信

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

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

RS-232C标准规定:当误码率小于4%时,要求导线的电容值应小于2500pF。对于普通导线,其电容值约为170pF/m。则允许距离L=2500pF/(170pF/m)=15m。

这一距离的计算,是偏于保守的,实际应用中,当使用9600bit/s,普通双绞屏蔽线时,距离可达30~35m。