第 11 章 串行通信和可编程接口芯片 8251A

Post on 22-Jan-2016

175 views 0 download

description

第 11 章 串行通信和可编程接口芯片 8251A. 11.1 串行通信的基本概念 与 EIA RS-232C 串行口 11.2 可编程串行通信接口芯片 8251A 11.3 8251A 应用举例. 11.1 串行通信的基本概念与 RS-232C 串行口. 并行通信 : 各位数据都是并行传输的,它以字节(或字)为单位与 I/O 设备或被控对象进行数据交换。 特点: 传输速度快;硬件开销大;只适合近距离传输。 串行通信: 串行通信是通过一位一位地进行数据传输来实现通信。 特点: 具有传输线少,成本低等优点,适合远距离传送;缺点是速度慢。. - PowerPoint PPT Presentation

Transcript of 第 11 章 串行通信和可编程接口芯片 8251A

第 11 章 串行通信和可编程接口芯片 8251A

11.1 串行通信的基本概念与EIA RS-232C串行口

11.2 可编程串行通信接口芯片 8251A

11.3 8251A应用举例

并行通信 : 各位数据都是并行传输的,它以字节(或字)为单位与 I/O 设备或被控对象进行数据交换。

特点:传输速度快;硬件开销大;只适合近距离传输。

串行通信:串行通信是通过一位一位地进行数据传输来实现通信。特点:具有传输线少,成本低等优点,适合远距离传送;缺点是

速度慢。

11.1 串行通信的基本概念与 RS-232C 串行口

完成串行通信任务的接口称为串行通信接口,简称串行接口。功能:( 1)输入时,完成串行到并行格式转换( 2)输出时,完成并行到串行格式转换。

(1) 发送时钟和接收时钟

二进制数据序列称为比特组,由发送器发送到传输线上,再由接收器从传输线上接收。

二进制数据序列在传输线上是以数字信号形式出现,即用高电平表示二进制数 1 ,低电平表示二进制数 0 。

每一位持续的时间是固定的,在发送时是以发送时钟作为数据位的划分界限,在接收时是以接收时钟作为数据位的检测。

1. 串行通信中的术语

① 发送时钟:串行数据的发送由发送时钟控制,移位寄存器由发送时钟触发进行移位输出。② 接收时钟:串行数据的接收是由接收时钟来检测,传输线上送来的串行数据序列由接收时钟作为移位寄存器的触发脉冲。

½ÓÊÕÊý¾Ý ¼Ä´æÆ÷

½ÓÊÕÒÆλ¼Ä´æÆ÷¼° Æä¿ØÖÆ

·¢ËÍÊý¾Ý ¼Ä´æÆ÷

·¢ËÍÒÆλ¼Ä´æÆ÷¼° Æä¿ØÖÆ

Êý¾Ý×ÜÏß»º³å Æ÷

¿ØÖÆÂß¼

´®ÐÐÍⲿÉ豸

Êý¾Ý×ÜÏß RXD

TXD

½ÓÊÕ

·¢ËÍ

RESET

CSWRRD

⑵ DTE 和 DCE ① 数据终端设备 (data terminal equipment , DTE) :是对属于用户所有联网设备和工作站的统称,它们是数据的源或目的或者即是源又是目的。例如:数据输入 / 输出设备,通信处理机或各种大、中、小型计算机等。 DTE 可以根据协议来控制通信的功能。 ② 数据通信设备 (data communication equipment , DCE) : DCE 是对网络设备的统称,该设备为用户设备提供入网的连接点。自动呼叫 / 应答设备、调制解调器 Modem 和其他一些中间设备均属 DCE 。

⑶ 信道

信道是传输信息所经过的通道 , 是连接 2 个 DTE 的线路 , 它

包括传输介质和有关的中间设备。

例: 公用电话线(经交换机接续),普通电话线是模拟信道,

带宽为 300 ~ 3400Hz ,很难直接远距离传输数字信号( 0 ,

1 信号)

专用电话线

无线信道(除 modem 外,外加收发机)

2. 数据通信的一般模型:

数据终端设

备 数据通信设

信 道

数据终端设

备数据通信设

DTE DCE DTEDCE

3. 串行通信中的工作方式 串行通信中的工作方式分为:单工通信方式、半双工通信方式和全双工通信方式 ⑴单工工作方式 传输的线路用一根线,通信的数据只允许按照一个固定的方向传送。如图:只能从 A站点传送到 B站点。

例: 单工通信类似无线电广播,电台发送信号,收音机接收信号,收音机永远不能发送信号。

T RA B

⑵半双工工作方式

传输的过程中依然用一根线连接,在某个时刻,只能进行发送,或只能进行接收,即发送和接收不可能同时进行。

如图 :

例:半双工通信工方式类似对讲机,某时刻A方发送 B方接收,

另一时刻B方发送 A方接收,双方不能同时进行发送和接收。

T TA B

R R

数据流

⑶全双工工作方式 相互通信的双方,都可以是接收器也都可以是发送器。分别用 2 根独立的传输线 ( 一般是双绞线,或同轴电缆 ) 来连接发送信号和接收信号,这样发送方和接收方可同时进行工作。 如下图所示。全双工通信工方式类似电话机,双方可以同时进行发送和接收。

T TA B

R R

数据流

4. 串行传送的两种基本工作方式 串行通信分为 2 种类型:一种是同步通信方式,另一种是异步通信方式。 ⑴同步通信方式特点: 由一个统一的时钟控制发送方和接收方,若干字符组成一个信息组,字符要一个接着一个传送; 没有字符时,也要发送专用的“空闲”字符或同步字符,因为同步传输要求连续传送,字符中间不允许有间隔。 同步传输的特征是:在每组信息的开始 (常称为帧头 )要加上l 一 2 个同步字符,后面跟着 8位的字符数据。

同步通信字符格式

传送时每个字符的后面是否要奇、偶校验,由初始化时设同步方式字决定。

01111110 01111110 8 位数据 8 位数据 8 位数据 … 8 位数据 01111110

同步字符 1

同步字符 2

数据 结束标志

⑵异步通信方式

特点:

字符是一帧一帧的传送,每一帧字符的传送靠起始位来同步。在数据传输过程中,传输线上允许有空字符。

所谓异步通信,是指通信中两个字符的时间间隔是不固定的,而在同一字符中的两个相邻代码间的时间间隔是固定的通信。

异步通信中发送方和接收方的时钟频率允许有一定的误差,但不能超过一定的范围。

异步通信字符格式

0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/11 0 1…

1 1 0 0/1 0/1 0/1 …

7 位数据

奇偶校验

停止位

起始位 7 位数据

奇偶校验

停止位 空闲n位 起始位 7 位数据

第 n+ 1 个字符第 n 个字符第 n- 1 个字符

数据低位 数据高位 下降沿指示下一个字符开始

例:

D0 D1 D2 D3 D4 D5 D6 校验位

起始位

停止位数据长度

5 、 6 、 7 、 8

空闲位

空闲位

校验位 (奇偶校验位 ) : 1 位 。奇校验:数据位和校验位共有奇数个“ 1 ” 。偶校验:数据位和校验位共有偶数个“ 1” 。

字符的前面是一位起始位 ( 低电平 ) ,之后跟着 5~ 8位的数据位,低位在前、高位在后。数据位后是奇、偶校验位,最后是停止位 ( 高电平 ) 。是否要奇、偶校验位,以及停止位设定的位数是 1 , 1.5位或 2 位都由初始化时设置异步方式字来决定。

注意:

数据流方向,先发低位再发高位。

每传送一个字节就进行一次协调,所以允许通信双方波特率有一定误差。

空闲位起缓冲作用。

5. 串行传送速率

波特率 (Baud Rate) :波特率作为串行传输中数据传输速度

的衡量单位,用每秒传输数据的位数 ( 位 /秒 ) 来表示。

例: 10 位 / 字符×120 字符 /秒 =1200 位 /秒 =1200

波特 国际上规定的一个标准的波特率系列是: 110 , 300 , 600 , 1200 , 1800 , 2400 , 4800 , 9600 , 19200 。 同步传送的波特率高于异步,可达 64000波特。 异步通信允许发送方和接收方的时钟误差或波特率误差在 4%~ 5 %。

发送时钟与波特率的关系是:

时钟频率= n×波特率

(n 可以是 l , 16, 32 , 64 。 n 为波特率因子,是传输一位二进制数时所用的时钟周期数。不同芯片的 n 由手册中给出 ) 。

6. 通信中必须遵循的规定 ( 协议) 通信双方必须制定并遵守同一个约定 ( 协议),包括:数据格式、同步方式、传输速率、纠错方式等。 异步通信协议包括:一、字符传送格式的规定。例:异步方式每个字符在传送时,前面必须加一个起始位,后面必须加停止位来结束,停止位可以为 1 位, 1.5位, 2 位。奇、偶校验位可以加也可以不加。

二、数据传送速率的要求。

7. 信号的调制与解调

计算机对数字信号的通信,要求传输线的频带很宽,但在实际的长距离传输中,若利用电话线来传输,电话线的频带一般都比较窄。为保证信息传输的正确,要采用调制解调器 (modem) 来实现远距离的信息传输。

调制解调器,顾名思义主要是完成调制和解调的功能。经过调制器 (modulator) 可把数字信号转换为模拟信号,经过解调器 (demodulator)把模拟信号转换为数字信号。

modem 的功能:实现对通信双方信号的转换过程。使模拟信号的某参数(幅、频、相)随数字信号而变化。

调制方法:ASK:幅度键控(抗干扰能力差)FSK:频率键控(把 0 , 1 调制成不同的两种频率,传输速率不高 )PSK:相位键控(由传输的初相角确定 0 , 1 ;占用频带窄,可用于传输速率较高场合)

模拟

电子开关

模拟

电子开关

高频正弦信号

低频正弦信号

数字信号10101010

频带信号输出

合成 1 10

FSK 调制过程

调制与解调过程

计算机A

MODEMA

MODEMB

计算机B

0 1 1 1 10 0 0 0 0 1 1 1 10 0 0 01 0 1 0

数字信号模拟信号数字信号

电话线

EIA RS-232C 串行口

串行接口标准:

指的是计算机或终端 ( 数据终端设备 DTE) 的串行接口电路与调制解调器 MODEM 等 ( 数据通信设备 DCE)之间的连接标准。

RS-232C 串行接口标准 :• 美国电子工业协会 EIA 制定的通用标准串行接口

– 1962 年公布, 1969 年修订– 1987 年 1 月正式改名为 EIA-232D

• 设计目的是用于连接调制解调器,现是最常用的串行通信接口标准之一,是 PC 机的标准配置。

• 是数据终端设备 DTE (例如计算机)与数据通信设备 DCE (例如调制解调器)的标准接口

• 可实现远距离通信,也可近距离连接两台微机• 属于网络层次结构中的最低层:物理层

• RS-232C 是一种标准接口, D 型插座,采用 25芯引脚或 9芯引脚的连接器,如图所示。

连接及通信原理 : 微型计算机之间的串行通信是按照 RS-232C标准设

计的接口电路实现的。如果使用电话线进行通信,那么计算机和 MODEM之间的连线就是根据 RS-232C标准连接的。其连接及通信原理如图所示。

RS-232C 的引脚定义 :• 232C 接口标准使用一个 25 针连接器• 绝大多数设备只使用其中 9个信号,所以就有了 9针连接器• 主要引脚定义: TxD :发送数据,串行数据的发送端。 RxD :接收数据,串行数据的接收端。 RTS :请求发送,当数据终端设备准备好送出数据时,就发

出有效的 RTS 信号,用于通知数据通信设备准备接收数据。 CTS :清除发送(允许发送),当数据通信设备已准备好接

收数据终端设备的传送数据时,发出 CTS 有效信号来响应RTS 信号。

RTS 和 CTS 信号逻辑 0 为有效状态,是数据终端设备与数据通信设备间一对用于数据发送的联络信号。

DTR :数据终端准备好– 通常当数据终端设备一加电,该信号就有效,表明数

据终端设备准备就绪DSR :数据装置准备好

– 通常表示数据通信设备(即数据装置)已接通电源连到通信线路上,并处在数据传输方式

DTR 和 DSR 信号逻辑 0 为有效状态,可用做数据终端设备与数据通信设备间的联络信号,例如应答数据接收。

• GND :信号地– 为所有的信号提供一个公共的参考电平

• CD :载波检测( DCD )– 当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效信号

• RI :振铃指示– 当调制解调器接收到对方的拨号信号期间,该引脚信

号作为电话铃响的指示、保持有效

• 保护地:(机壳地)– 起屏蔽保护作用的接地端,一般应参照设备的使用规

定,连接到设备的外壳或大地• TxC :发送器时钟

– 控制数据终端发送串行数据的时钟信号• RxC :接收器时钟

– 控制数据终端接收串行数据的时钟信号

RS-232C 的连接:

• 微机利用 232C 接口连接调制解调器,用于实现通过电话线路的远距离通信

• 微机利用 232C 接口直接连接进行短距离通信。这种连接不使用调制解调器,所以被称为零调制解调器( Null Modem )连接

连接调制解调器

电话线

MODEM微机2345678

2022

2345678

2022

MODEM

2345678

2022

数据装置准备好 DSR

数据终端准备好 DTR

发送数据 TxD接收数据 RxD请求发送 RTS允许发送 CTS

信号地 GND载波检测 CD

振铃指示 RI

微机2345678

2022

不使用调制解调的 3 线相连方式——Null Modem

微机

TxD

RxD

GND

微机

为了交换信息, TxD 和 RxD 应当交叉连接程序中不必使 RTS 和 DTR 有效但 CTS 应接地

RS-232C 的电气特性: 232C 接口采用 EIA电平

逻辑低电平为+ 3V~+ 15V 逻辑高电平为- 3V~- 15V 实际常用±12V或±15V

标准 TTL电平 低电平: 0V~ 0.4V 高电平:+ 2.4V~+ 5V

相互转换

1488

-12V

+12V

TTL IN

EIA OUT

EIA IN

TTL OUT

+5V

1489

TTL 与 EIA 电平的转换

电平转换器件: MC1488 ( ±12v 供电)、 MC1489 ( +5v 供电) MAX232 ( +5v 供电)、 MAX233 等

+

+

++

+

C1+

C1-C2+

C2-

V+

V-

Vcc

T1IN

T2IN

R1OUT

R2OUT

R1IN

R2IN

TTL RS-232C

1 2

3

4

11

5

10

12

9

14

7

13

8

6

+5V

+10V

-10V

MAX232

T1OUT

T2OUT 2

1

3

813121714

20

5

18

419

11151610

C1+

C1-V-V-V+

C2+C2+C2-C2-

96GND

T1IN

T2IN

R1OUT

R2OUT

R1IN

R2IN

T1OUT

T2OUT

RS-232C

TTL

MAX233

+5V7

一、 8251A的主要性能和内部结构

825lA是可编程的串行通信接口芯片,是 Intel 公司生产的一种通用同步 /异步数据收发器( USART ) , 它的基本性能如下:

(1) 可工作在同步方式,也可工作在异步方式。同步方式下波特率为 0 ~ 64,000波特,异步方式下波特率为 0 ~ 19,200波特。

(2) 在同步方式时,每个字符可定义为 5、 6、 7或 8位。两种方法实现同步,由内部自动检测同步字符或由外部给出同步信号。允许同步方式下增加奇 /偶校验位进行校验。

11.2 可编程串行通信接口芯片8251A

(3) 在异步方式下,每个字符可定义为 5、 6、 7或 8位,

用 1 位作奇偶校验。时钟速率可用软件定义为波特率的 l 、 16

或 64倍。另外, 8251A在异步方式下能自动为每个被输出的

数据增加 1 个起始位,并能根据软件编程为每个输出数据设置

1 位、 1.5位或 2 位停止位。

(4) 能进行出错检测。带有奇偶、溢出和帧错误等检测电路,

用户可通过输入状态寄存器的内容进行查询。

8251A的内部结构框图如下页图所示。

它由数据总线缓冲器、读 /写控制逻辑、调制 / 解调器控制

逻辑、发送缓冲器、发送控制器、接收缓冲器、接收控制器、

等组成。

发送缓冲器

数据总线缓冲

调制解调控制

电路

DB

读 / 写逻辑

RESETCLK

RDWRC/D

CS

DSR

DTR

CTS

RTS

发送控制电路

接收缓冲器

接收控制电路

RxD

TxD

TxRDY

TxE

TxC

RxRDY

RxC

SYNDET

状态缓冲器、接收数据缓冲器、数据 /命令缓冲器

8251A的内部结构框图

1) 数据总线缓冲器

数据总线缓冲器通过 8位数据线 D7 ~ D0 和 CPU的数据总

线相连,负责与 CPU交换信息。

还可随时把状态寄存器中的内容读到 CPU中,在 825lA初

始化时,分别把方式字、控制字和同步字符送到方式寄存器、

控制寄存器和同步字符寄存器中。

2) 读 /写控制逻辑

8251A的控制信号与执行的操作之间的对应关系表

CS RD WR DC/ 执行的操作

0000

0101

1010

0011

CPU由 8251A输入数据CPU向 8251A输出数据CPU读取 8251A的状态

CPU向 8251A写入控制命令

3) 接收缓冲器与接收控制器(异步方式)

接收缓冲器包括接收移位寄存器(接收 RXD 管脚的串行数据)和数据输入寄存器(转为并行格式数据等待 CPU取走)。

接收控制电路是用来控制数据接收工作。接收数据的速率取决于 RxC引脚上接的时钟频率。异步方式下,接收时钟的频率可以是波特率的 1 、 16或 64倍,即波特率系数(因子)为 1 、16或 64 。

当 CPU发出允许接收数据的命令时,接收缓冲器就一直监视着数据引脚 RxD 上的电平信号,一旦检测到下降沿,就启动接收过程。

RxD

异或门

÷内部CLK

DB

检测

奇偶检验结果接收缓冲寄存器

接收移位寄存器

奇偶位停止位 1

波特率

当 8251允许接收并准备好接收数据时,监测 RxD 端,当检测到起始位(低电平)后,使用 16倍率的内部 CLK ,连续检测 8 个 0确认。然后按波特率移位 ( 取决于 RxC引脚上的时钟频率 ) 。检测 RXD ,直至停止位。内部删除起始、奇偶、停止位,送到接收缓冲寄存器后,使 RxRDY 为高,向 CPU 提出中断申请。

接收器工作过程

启动检测 确定已检测到启动位

采样数据检测

中央点

16T

启动位 DATA

CLOCK

16T

8251A 对数据的采样过程

4) 发送缓冲器与发送控制器(异步方式)

发送缓冲器包括数据输出寄存器(寄存来自 CPU的数据)和发送移位寄存器(将串行数据从 TXD 管脚发送出去)。

发送控制电路能按程序规定的字符格式,给发送数据自动加上起始位、奇偶校验位和停止位对串行数据实行逐位发送。发送速率取决于 TxC引脚上接的发送时钟频率。

内部产生起始、奇偶检验、停止位,按约定的波特率从 TxD 输出。发送速率取决于 TxC引脚上接的发送时钟频率。

数据发送缓冲器

波特率

发送移位寄存器奇偶位停止位 1 起始位

异或门

TXD

SOUT

0 ÷

内部CLK

DB

CPU 执行输出指令,并行数据→发送缓冲器。

发送器工作过程

发送缓冲器→发送移位寄存器,向 CPU 提出中断申请( TxRDY=1 )。

当数据全部输出结束,在 TXD 发出连续低电平 ( 中止符BREAK) , (TxE=1) 。

5) 调制 / 解调器控制逻辑

利用 8251A进行远距离通信时,发送方要通过调制解调

器将输出的串行数字信号变为模拟信号,再发送出去。接

收方也必须将模拟信号经过调制解调器变为数字信号,才

能由串行接口接收。

调制解调器控制电路是专为调制解调器提供控制信号用

的。

8251A引脚图

二、 8251A的外部特性

8251A引脚信号可以分为六类:

1) 双向的数据信号线 D7 ~ D0

825lA有 8条数据线 D7 ~ D0 ,通过这 8根线和 CPU的数据

总线相连接。

数据线上传输数据,编程命令字和状态信息。

2) 片选信号 CS 低电平有效,如果 8251A未被选中,数据线 D7 ~ D0 将处于高阻状态,读 /写信号对芯片都不起作用。3) 读 /写等控制信号 RD ( 输入, 13引脚 ) 为读信号,低电平有效。当 CS也为低电平, CPU可以从 8251A读取数据或状态信息。 WR ( 输入, 10引脚 ) 为写信号,低电平有效。当 CS也为低电平, CPU可以向 8251写入数据或控制字。 C/D( 输入, 12引脚 ) 为控制 / 数据信号,分时复用。为高电平时,系统处理的是控制信息或状态信息,为低电平时,传送的是数据信息。 RESET( 输入, 21引脚 ) 为复位信号,高电平有效。复位时 8251A进入空闲( Idle)状态,等待对芯片进行初始化编程。

CLK( 输入, 20引脚 ) 为主时钟信号,用于芯片内部的定

时。对于同步方式,它的频率必须大于发送时钟 TXC 和接收时

钟 RXC 的 30倍。对于异步方式,必须大于它们的 4.5 倍。

8251A的时钟频率规定在 0.74 ~ 3.1 MHz 的范围内。

8251A共有三种时钟信号: CLK、 TXC 和 RXC 。其中发送

时钟和接收时钟由波特率和波特率因子来决定。

4) 与发送有关的信号

TXD (输出 ) :发送数据。

TXRDY( 输出 ) :发送器准备好信号,高电平有效。当该信号为高电平时,通知 CPU,发送缓冲器已准备从 CPU接收一个数据。 TXRDY 可作为中断申请信号,也可作为查询方式的联络信号使用。

TXE ( TXEMPTY ) ( 输出 ) : 发送器空信号,高电平有效。当该信号有效时,表示 8251A发送器中的并行到串行转换器空,即已完成一次发送操作。

TxC (输入):发送时钟。控制 8251A发送器发送字符的速度。对于同步方式,输入时钟频率应等于发送数据的波特率,对于异步方式,应等于发送波特率和波特率因子的乘积。

5) 与接收有关的信号

RXD( 输入 ) :接收数据。

RXRDY( 输出 ) :接收器准备好信号,高电平有效。当该信号为高时,表示接收数据缓冲器已收到一个字符,等待 CPU取走。它可以作为中断请求信号或查询联络信号与 CPU联系。

SYNDET/BRKDET( 输入 / 输出 ) :为同步检测 / 断缺检测信号,高电平有效。

在异步方式下BRKDET 实现断缺检测功能,当 RXD 端连续收到 8个 0 信号时, BRKDET 端呈高电平,表示当前处于数据断缺状态, RXD 端没有收到数据。当 RXD 端收到 1 信号时,BRKDET 端变为低电平。

在同步方式下, SYNDET 执行同步检测功能,可以工作在输入状态,也可以工作在输出状态。同步检测分为内同步和外同步两种方式。采用哪种同步方式要取决于 8251A的工作方式,由初始化时写入方式寄存器的方式字来决定。当 8251A工作在内同步方式时, SYNDET 作为输出端,是在 8251A内部检测同步字符。如果 8251A检测到了所要求的一个或两个同步字符时,SYNDET 输出高电平,表示已达到同步,后续收到的是有效数据。当 8251A工作在外同步方式时, SYNDET 作为输入端。外同步是由外部其他机构来检测同步字符,当外部检测到同步字符以后,从 SYNDET 端向 8251A输入一个高电平信号,表示已达到同步,接收器可以串行接收数据。芯片复位时, SYNDET为低电平。

RXC( 输入 ): 为接收器时钟信号,控制 8251A接收字符的速度。在同步方式时,它的频率等于接收数据的波特率,并由调制解调器供给 ( 近距离不用调制解调器,传送时由用户自行设置 ) 。在异步方式时,时钟频率等于波特率和波特率因子的乘积。

6) 与 MODEM之间的接口信号

8251A与外部装置进行远距离通信时,一般要通过调制解调器连接 , 经标准电话线传输数据。

发送数据时的联络信号 :

RTS( 输出 ): 为请求发送信号,低电平有效。这是 8251A向

调制解调器或外设发送的控制信息,初始化时由 CPU向 825lA

写控制命令字来设置。该信号有效时,表示 CPU请求通过 825l

A向调制解调器发送数据。

CTS( 输入 ): 为发送允许信号,低电平有效。是由调制解调器

或外设送给 8251A的信号,是对 RTS 的响应信号, 只有当 CT

S 为低电平时, 825lA才能执行发送操作。

接收数据时的联络信号 :

DTR( 输出 ): 为数据终端准备好信号,低电平有效。是由 8251A送出的一个通用的输出信号,初始化时由 CPU向 8251A写控制命令字来设置。该信号有效时,表示为接收数据做好了准备, CPU可以通过 8251A从调制解调器接收数据。

DSR( 输入 ): 为数据装置准备好信号,低电平有效。这是由调制解调器或外设向 8251A送入的一个通用的输入信号,是 DTR的回答信号, CPU可以通过读取状态寄存器的方法来查询 DSR是否有效。

如果近距离传输时,可不用调制解调器而直接连接,外设不要求有联络信号时,这些信号可以不用。若外设需要,可用一对联络信号,也可两对都用。

例如, RTS 可以悬空,但 CTS必须接低电平,否则发送器不工作。

RS-232 C标准所能传输的最大距离是 30m ,一般不超过 15

m 。数据传输的波特率低于 20 , 000波特。

8251A

RxD

TxD

TxC

RxC

D7~D0

RD WR A1

RESET A B C G2A

G1

Y0 Y1 Y2

O O O

D7~D0

RD WR C/D RESETA0

A2A3

A7

8086

系统总线

LS138

M/IO&A4

A5A6

G2B

CSTxRDY TxE RxRDY BRKDET

RS-232

接口

波特率

发生器

7 ) 8251A 与 CPU 的连接

与 8086CPU 的连接

与 PC总线的连接

D7~ D0

RDWR

C/D

TXDRXD

DTRDSRCTSRTSTXC

RXC

CS

D7~ D0

地址译码地址总线

AEN

IORIOW

A0

异步调制解调器

RS-232C收发器

时钟源

CDCCCBCA

8251A

TXDRXDGND

1 、 8251A的编程地址

8251A只需要两个端口地址:一个用于数据端口,一个用于控制端口。数据输入输出用读信号 RD 和写WR 信号区分;状态端口只能读不能写,控制端口只能写不能读。

三、 8251A的编程

2 、 8251A初始化的编程流程

8251A是一种多功能的串行接口芯片,使用前必须向它写入

方式字及命令字等,对它进行初始化编程后,才能收发数据。

初始化编程主要是对 8251A的方式字、命令字和状态字进行

编程设置。

方式字:确定8251A 的工作方式;(异步,波特率,字符长度,奇偶校验)

命令字:控制 8251A按方式字所规定的方式工作;(允许,禁止收发数据,启动搜索同步字符,8251 复位)

状态字:了解 8251A 的工作状态。

复位操作

输出方式字

传送完

输出第一个同步字符

输出第二个同步字符输出命令字

传送数据

输入状态字

同步方式

双同步

复位

Y

N

Y

Y

Y

N

N

N

编程流程图

1. 方式字

方式字( 8位)是 8251A在初始化时,用来写入方式选择字用的。

方式选择有两种:同步方式和异步方式。

方式字最低 2 位全为 0 时表示是同步方式,最低 2 位不全为0 时表示是异步方式。

四、 8251A的控制字

1) 8251A工作在异步方式下

8251A异步方式下方式字的格式

D7S2

停止位个数00: 无定义

D6S1

D5EP

D4PEN

D3L2

D2L1

D1B2

D0B1

检验类型0: 奇检验1: 偶检验

检验设置0: 无校验1: 有校验

01: 1 个10: 1.5 个11: 2 个

波特率因子00: 同步模式01: 波特率因子为 110: 波特率因子为 1611: 波特率因子为 64

数据位数00: 5 位, 01: 6 位10: 7 位, 11: 8 位

(1) D1D0(B2B1)不全为 0 的情况表示是异步方式,当B2B1

= 01 时,规定波特率的因子为 1 ; B2B1= 10 时,规定波特

率因子为 16; B2B1= 11 时,规定波特率因子为 64 。

(2) D3D2(L2L1) 是规定在异步传送时每个字符的位数,与同步

方式下的数据位数规定相同。

(3) D4(PEN) 是规定在异步传输时是否需要校验位,与同步方

式下的规定相同。

(4) D5(EP) 是用来规定异步方式时,数据校验的类型,与同

步方式下的规定相同。

(5) D7D6(S2S1) 是用来规定异步方式时,停止位的个数。

为了和同步方式相区别,当 D7D6= 00 时,没有定义停止位的

个数;当 D7D6= 01 时,表示 1 个停止位;当 D7D6= 10 时,

表示 1.5个停止位;当 D7D6= 11 时,表示 2 个停止位。

例:要求 8251A芯片作为异步通信,波特率系数(因子)

为 64 ,字符长度 8位,奇校验, 1 个停止位的方式选择字应

为十六进制的 5FH 。

01 01 11 1lB= 5FH

8251A同步方式下方式寄存器的格式

D7SCS

同步字符数0: 2 个字符1: 1 个字符

D6ESD

D5EP

D4PEN

D3L2

D2L1

D10

D00

检验类型0: 奇检验1: 偶检验

检验设置0: 无校验1: 有校验

全 0 为同步模式否则为异步模式

数据位数同步方式0: 内同步, SDYNDET 为输出1: 外同步, SDYNDET 为输入

00: 5 位, 01: 6 位10: 7 位, 11: 8 位

2) 8251A工作在同步方式下

(1) D1D0= 00 是同步方式的标志特征,表示同步传送时波特率因子为 1 ,此时芯片上 TXC 和 RXC引脚上的输入时钟频率和波特率相等。

(2) D3D2(L2L1) 是规定同步传送时每个字符的位数,当 L2L1 对应为 00 、 01 、 10 、 11 时,分别表示传输字符的位数是 5、6、 7、 8位。

(3) D4(PEN) 是规定在传输数据时是否需要奇偶校验位,该位为“ 1”表示有校验位,为“ 0”则无校验位。

(4) D5(EP) 是用来规定校验位的类型,该位为“ 0”表示是奇校验,为“ 1”表示是偶校验。

(5) D6(ESD) 是用来规定同步的方式,该位为“ 0”表示是内

同步,芯片的 SYNDET引脚为输出端;为“ 1”表示是外同步,SYNDET引脚为输入端。

(6) D7(SCS) 是用来规定同步字符的数目,该位为“ 0”表示

两个同步字符,为“ 1”表示一个同步字符。

例如,要求 825lA作为外同步通信接口,数据位 8位,两个同步字符,偶校验,其方式选择字应为十六进制的 7CH 。

0 1 11 11 00B= 7CH

对 8251A初始化时,写入了方式选择字后,接着要写入的是命令字,由命令字来规定 8251A的工作状态。

2. 命令字

D7EH

置“ 1” 为搜索同步字符

D6IR

D5RTS

D4ER

D3SBRK

D2RXEN

D1DTR

D0TXEN

请求发送置“ 1”后

RTS 输出 0

置“ 1”后 8251A内部复位(命令字为 40H )

送中止符置“ 1”后

TXD 输出 0

清除错误标志置“ 1”后清PE 、 OE 、 FE

1: 接收允许0: 屏蔽

1: 发送允许0: 屏蔽

数据终端就绪置“ 1”后

DTR输出 0

8251A命令字格式

(2) D1(DTR) :该位与调制解调器控制电路的 DTR 端有直接联系,当工作在全双工方式时, D0 、 D2 位要同时置 1 , D1 才能置 1 ,由于 DTR= 1 从而使 DTR 端被置成有效的低电平,通知调制解调器或 MC1488 芯片等器件, CPU的数据终端已经就绪,可接收数据了。 (3) D2(RxEN) :允许接收选择。只有当 D2= 1 时,才允许 825lA从接收端口接收数据。 (4) D3(SBRK) :当该位被置 1后,使串行数据发送管脚 TXD变为低电平,输出“ 0”信号,表示数据断缺,而当处于正常通信状态时, SBRK= 0 。

命令字( 8位),每位的定义如下: (1)D0(TXEN) :允许发送选择。只有当 D0= l 时,才允许 8251A从发送端口发送数据。

(5) D4(ER) :当该位被置 1后,将消除状态寄存器中的全部错误标志, PE 、 OE 、 FE这三位错误标志由状态寄存器的 D3 、D4 、 D5 来指示。

(6) D5(RTS) :该位与调制解调器控制电路的请求发送信号 RTS 有直接联系,当 D5 位被置 1 ,由于 RTS= 1 ,从而使 RTS输出有效的低电平,通知调制解调器或 MCl489 芯片等器件,CPU将要通过 825lA输出数据。

调制解调器控制电路的有效电平不是由 8251A内部产生,而是通过对命令字的编程来设置,这样可便于 CPU与外设直接联系。

(7) D6(IR) :当该位被置 1后,使 8251A内部复位。

当对 8251A初始化时,使用同一个奇地址,先写入方式字,接着写入同步字符 (异步方式时不写入同步字符 ) ,最后写入的才是命令字,这个顺序不能改变,否则将出错。

而初始化以后,再通过这个奇地址写入的字都是命令字,因此命令字可以随时写入。

如果要重新设置工作方式,写入方式字,必须先要将控制寄存器的 D6位置 1 (命令字为 40H ),进行内部复位返回到初始化前的状态。当然,外部的 RESET也可使 825lA复位,而在正常的传输过程中 D6=0 。

(8) D7(EH) :该位只对同步方式才起作用。当 D7=l 时表

示开始搜索同步字符,但同时要求 D2(RXEN)= l , D4(ER)=

1 ,同步接收工作才开始进行。也就是说,写同步接收控制字

时必须使 D7 、 D4 、 D2同时为 1 。

状态字( 8位)是只读的。 CPU可用 IN指令来读取状态寄存器的内容。每位的定义如下:

3. 状态字

8251A状态字格式

D7DSR

数据设备就绪后为“ 1”

D6S/BDET

D5FE

D4OE

D3PE

D2TXEMP

D1RXRDY

D0TXRDY

发送器就绪为“ 1”

帧格式出错标志,出错

为“ 1”

奇偶校验出错标志,

出错为“ 1”

接收器就绪为“ 1”

发送器 TXEMPTY

空为“ 1”溢出出错标志

出错为“ 1”反映同步方式 SYNDET/异步方式 BRKDET状态

(1) D0(TXRDY) : D0=1 是发送准备好标志,表明当前数据输出缓冲器空。

注意:

状态位 D0 的 TXRDY 和芯片引脚上的 TXRDY 的信号有差别。状态位的 TXRDY不受输入信号 CTS 和控制位 TXEN的影响;而芯片引脚上的 TXRDY必须在数据输出寄存器空,并且调制解调器控制电路的 CTS 端也为低电平时,命令字的 D0(TXEN)= 1时才有效。

(2) D1(RXRDY) :接收器准备好信号,该位为“ 1”时,表明接口已接收到一个字符,当前正准备输入 CPU中。当 CPU从8251A输入一个字符时, RXRDY 自动清 0 。

(3) D2 : (TXEMPTY) ,同 8251A的 18 脚说明。

(4) D6: (SYNDET/BRKDET) ,同 8251A的 16 脚说明。

(5) D7(DSR) :数据终端准备好标志,当外设 ( 调制解调器等 )

已准备好发送数据时,就向 DSR 端发出低电平信号,使 DSR有效。此时 DSR 位被置 1 。

上面 Dl 、 D2 、 D6 、 D7这 4 位的状态与 8251A芯片外部

同名管脚的状态完全相同,反映这些管脚当前的状态。

(6) D3(PE) :奇偶出错标志位, PE= 1 时,表示当前产生了

奇偶错,但不终止 8251A工作。

(7) D4(OE) :溢出出错标志位,在接收字符时,如果数据输

入寄存器的内容没有被 CPU及时取走,下一个字符各位已从 RX

D 端全部进入移位寄存器,然后进入数据输入寄存器,这时,

在数据输入寄存器中,后一个字符覆盖了前一个字符,因而出

错,这时 D4 位被置 1 。

(8) D5(FE) :帧格式出错标志位,只适用于异步方式。在异

步接收时,接收器根据方式字规定的字符位数、有无奇偶校验

位、停止位位数等,都由计数器计数接收,若停止位为 0 ,说

明帧格式错位。字符出错,此时 FE= 1 。

上面的 PE=1 , OE= 1 和 FE= 1 只是记录接收时的三种

错误,并没有终止 8251A工作的功能,由 CPU通过 IN指令读

取状态寄存器来发现错误。

注:对 8251 的控制口进行一次写入操作,需有写恢复时间。(写恢复时间一般为 16 个时钟周期)

DELAY1 : MOV CX , 02H ;延时子程

D0 : LOOP D0

RET

8251A 复位

电源上电, 8251 自动进入复位状态,为了确保在送方式字和命令字之前 8251正确复位,可向 8251 的控制口连续写入 3 个“ 0” ,然后再写入一个复位命令字( 40H ),用软件使 8251 可靠复位。

11.3 8251A的应用举例

例 1 :异步方式下的初始化8251 工作于异步方式,波特率系数为 16 , 7 位数据位, 1 个停止位,偶校验,控制口地址 3F2H 。

MOV DX , 3F2H

MOV AL , 00H

OUT DX , AL

CALL DELAY1

OUT DX , AL

CALL DELAY1

OUT DX , AL

CALL DELAY1

MOV AL , 40H ;复位字OUT DX , AL

CALL DELAY1

MOV AL , 01111010B ;方式字OUT DX , ALCALL DELAY1

MOV AL , 00010101B ;命令字 ,允许接收发送数据,清错误标志。OUT DX , AL

例 2 :利用 RS-232C 近距离串行通信,采用三线传输最小方式。

8251A

RxD

TxD

TxC

RxC

D7~D0

RD WR A1

RESET A0 A2

A9

8086

系统总线 74

LS138M/IO

CS

D7~D0

RD WR C/D RESET

MAX233

CLK

CLK

CLK0

CS

OUT0

8253

4 分频

8MHz

2MHz

2

3

2

3

1,7

5

4

2

3

6 9

7+5V

EIA 电平

零MODEM 连接

8253 设计要求:波特率 =9600 ,波特率系数 =16

OUT0 输出频率 =9600*16=0.1536MHz分频系数 n=2MHz/0.1536MHz=13

(初始化程序略)

设 8251A 数据口和控制口地址分别为 1F0H 和 1F2H,异步方式, 7 位数据, 1 位停止位,偶校验,波特率系数 16 ,命令字: 7AH发送与接收程序如下:

BEG-T: MOV DX , 1F2H MOV AL , 7AH OUT DX , AL MOV CX , 02H D1 : LOOP D1

MOV AL , 11H OUT DX , AL MOV CX , 02H D2 : LOOP D2

LEA DI , BUFF-T MOV CX , COUNT-TNEXT-T : MOV DX, 1F2H;

IN AL , DX TEST AL , 01H JZ NEXT-T

MOV DX , 1F0H MOV AL , [DI] OUT DX , AL INC DI LOOP NEXT-T

置方式字置命令字

置发送缓冲区首址置发送数据数

读入 8251 状态

TxRDY=1

从发送缓冲区取数送 8251

修改指针

发送完

Y

Y

N

N

BEG-R : MOV DX , 1F2H MOV AL , 7AH OUT DX , AL

MOV CX , 02H D3 : LOOP D3 MOV AL , 14H OUT DX , AL MOV CX , 02H D4 : LOOP D4

LEA DI , BUFF-R MOV CX , COUNT-RNEXT-R : MOV DX, 1F2H;

IN AL , DX TEST AL , 02H JZ NEXT-R TEST AL , 38H JNZ ERROR MOV DX , 1F0H IN AL , DX MOV [DI] , AL INC DI LOOP NEXT-R

置方式字置命令字

置接收缓冲区首址置接收数据数

读入 8251 状态

RxRDY=1

从 8251 接收数据送缓冲区

修改指针

发送完

Y

Y

N

N

传送出错 Y

N

P379 习题

6 、 14 、

第 11 章补充习题

试画出“ 5”的 ASCII码的异步串行数据发送格式图。要求采用偶校验方式,并标出起始位、校验位与停止位。

作业