15.串口通信编程1.RS-232C标准

1.RS-232C标准

所谓串行通信接口标准,是指串行通信接口与外设的信号连接标准。 实际中常用的串行通信接口标准有3种:

PC机一般都配置了 RS-232C 标准接口。RS-232C 标准常简称为RS-232。

RS-232C 的定义包括电气特性(如电压值)、机械特性(如接头形状)及功能特性(如脚位信号)等。

串行通信接口基本功能是:在发送时,把CPU送来的并行码转换成串行码,逐位地依次发送出去;在接收时,把发送过来的串行码逐位地接收,组装成并行码,并行地发送给CPU去处理。这种串行到并行转换的功能,常用硬件电路来实现,这种硬件电路叫做串行通信接口。

普通的 Modem 通常都是通过 RS-232C 串行口信号线与计算机连接。

根据RS-232C标准规定,接口电路采用一对物理D型连接器:DTE设备应该有一个D型插头接口,DCE设备应该有一个D型插座接口。

D型连接可以是25芯(简称为DB25),也可以是9芯(简称为DB9)。RS-232C引脚分配如下图所示。

1.1 信号连接

RS-232C规定使用一种 DB25 连接器,其中20个脚作了定义,9、10、11、18、25未作定义。 RS-232C串行口信号分为3类:传送信号、联络信号和信号地。

1.传送信号(TxD和RxD)

传送信号是经由(发送数据信号线,引脚2)传送和(接收数据信号线,引脚3)接收的信息格式即一个传送单位(字节)由起始位、数据位、奇偶校验和停止位组成。

2.联络信号(RTS、CTS、 DTR、DSR、DCD和RI等6个信号)

RTS(请求传送,引脚4),是PC向Modem发出的联络信号。高电压表不PC机请求向Modem传送数据。

CTS(清除发送,引脚5),是Modem向PC机发出的联络信号。高电压表示Modem响应PC发出的RTS信号,且准备向远端Modem发送数据。

DTR(数据终端就绪,引脚),是PC向Modem发出的联络信号。高电压表示PC机处于就绪状态,本地Modem和远端Modem之间可以建立通信信道。若为低电平,则强迫Modem终止通信。 

DSR(数据装置就绪,引脚),是Modem向PC发出的联络信号。它指出本地Modem的工作状态,高电压表示Modem没有处于测试通话状态,可以和远端Modem建立通道。

DCD(传送检测,引脚),是Modem向PC发出的状态信号,高电压表示本地DCE接收远端Modem发来的载波信号。

RI(铃指示,引脚),Modem向PC发出的状态信号。高电压表示本地Modem收到远端Modem发来的振铃信号。

3.SG(信号地)

SG(信号地,引脚)为相连的PC和Modem提供同一电势参考点。

1.2 握手

DTE 和 DCE 之间要实现双向通信,至少需要3条信号线:TxD 使数据从 DTE 到 ECE。RxD 使数据从 ECE 到 ETE,SG 为信号地。

必须使用握手信号,它提供了一种控制数据流的方法,即接收设备可以控制发送设备的数据发送。

在异步串行通信中,这称之为握手(handshaking)或流量控制(flow control)。握手控制可以具体分为硬件握手(硬件流控)和软件握手(软件流控)。

1.硬件握手

硬件握手是使用专门的握手电路去控制数据的传输。当接收设备准备好之后,就通过专用的握手电路传送一个正电压给发送设备,指示发送设备数据。如果接收传送一个负电压给发送设备,则指示发送设备停止发送数据。

为了完成数据通信需要有3类电路:数据线、信号线和握手线。

(1) DTE 到 DCE

为了控制 DTE 的发送数据,DCE 使用 DSR 信号作为主握手信号去通知 DTE 已做好接收数据库的准备。当通知 DTE暂停发送数据时,置 DSR 无效。

(2) DCE 到 DTE

为了控制 DCE 的数据发送,DTE 使用 DTR 信号作为主握手信号去通知 DCE 已做好接收数据的准备。当通知 DCE暂停发送数据时,置 DTR 无效。

DTE 还使用 RTS 信号作为第二握手信号控制 DCE 设备。仅当这两条握手线都有效时,DCE 才发送数据。

(3) 双向通信

双向通信中只使用主握手线,则共需要5条信号线:TxD、RxD、DSR、DTR 和 SG。如果还使用第二握手线,则共需要7条信号线。

为了使 DCE 能向 DTE 提供更多信息,通常还使用 RI 和 DCE 两条信号线。这样一个完整的异步串行通信必需的就是这9条信号线 。

有握手功能的双向通信如下图所示:

2.软件握手

软件握手的原理机制与硬件握手基本相同,不同的握手信号是在数据线(TxD和RxD)上进行传送的,而不是在专门握手线上传送。这是因为软件握手信号是由特殊字符组成的,所以传送这些字符必须使用数据电路,而不是使用专门握手电路。这种方法常用在直接连接或通过Modem连接的两台计算机之间进行双向通信的场合。

软件握手最常用的协议是XON/XOFF协议。该协议主要解决通信双方处理速度不区配的问题,协议规定发送XOFF表示暂停发送数据,发送XON表示继续发送数据。

3.硬件与软件相结合的握手

为了综合硬件握手和软件握手的好处,可以采用硬件和软件相结合的握手控制。假设DTE设备为计算机,DCE设备为Modem,两台计算机之间通过Modem经电话线连接,则此时计算机与Modem之间可采用硬件握手方法,而两台计算机之间可以使用软件握手方法进行联系。

1.3 微机的RS-232C接口

个人计算机的RS-232C接口名称有多个:RS-232C口、串口、通信口、COM口、异步口等。

目前DOS3.3以上版本和Windows 3.2/98/NT最多支持4个串口:COM1、COM2、COM3和COM4。

它们所占用的I/O口地址和中断号见表 :

串口

I/O地址

中断号

COM1

0x3f8

IRQ4

COM2

0x2f8

IRQ3

COM3

0x3e8

IRQ4

COM4

0x2e8

IRQ3

为更好地说明 RS-232C 接口电路的实际工作情况,下面以应答呼叫过程为例,具体分析其信号间的交互关系。

所谓应答呼叫过程,即指 Modem 从接收到振铃信号开始,到数据传输结束后 Modem 和 DTE 恢复到原来的空闲状态为止的过程。

(1) 数据终端DTE的控制软件持续监视振铃指示(RI),等待该信号有效。引脚连线如图:

(2) 响铃后,Modem在振铃脉冲期间发出振铃指示信号(RI有效),在振铃脉冲间隔期间,振铃指示信号有效。即随着振铃脉冲的有无,RI信号ON/OFF交替变化。

(3) DTE的通信控制软件在检测到振铃指示后,开始通过计算机振铃指示ON/OFF变化的次数对振铃进行计数。当达到程序预置好的振铃数时,控制软件发出数据终端就绪信号(DTR有效),迫使Modem进入摘机状态,开始应答电话。

(4) Modem在等待一小段时间后,自动地发送它的应答载波信号。同时Modem发出数据设备就绪信号(DSR信号有效),通知DTE已完成所有准备工作,正在等待对方载波信号。

(5 )在DTE发出数据终端就绪信号(DTR有效)期间,DTE的控制软件监视数据设备就绪信号(DSR是否有效)。当DSR变为ON状态后,DTE便知道了Modem已准备建立数据链路,于是DTE开始监视载波检测(DCD)信号,以检查数据链路是否已建立。

(6) 当主叫Modem的载波信号出现在电话线上时,被叫Modem就发出载波检测信号(DCD),通知DTE已建立数据链路。

(7) 在数据链路连接期间,发送数据(TxD)和接收数据(RxD)线上即开始了全双工通信。同时,DTE仍监视着载波检测(DCD)信号,以确定数据链路是否连接。

(8) 数据传输结束后,DTE使数据终端就绪信号(DTE无效),Modem撤消载波信号并以载波检测(DCD)和数据设备就绪(DSR)信号无效给予响应。数据链路释放后,Modem和DTE准备下一次接收或作另一次呼叫。

本文来源于《Delphi程序设计教程》(第3版)杨长春主编

展开阅读全文

页面更新:2024-03-17

标签:通信   振铃   载波   信号线   串口   信号   接口   硬件   标准   数据   设备   软件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top