第 14 章 并行通信及其接口电路

90
第 14 第 第第第第第第第第第第

description

第 14 章 并行通信及其接口电路. 本章主要内容 1. 简单并行接口电路; 2. 可编程并行接口电路 8255A 的结构及工作原理; 3. 8255A 的应用。. 14.1 概述. 在计算机和数据通信系统中,有两种基本的数据传送方式,即串行数据传送方式和并行数据传送方式,也称 串行通信和并行通信。 数据在单条一位宽的传输线上按时间先后一位一位地进行传送,称为串行传送; 数据在多位宽的传输线上各位同时进行传送,称为并行传送。 和串行传送相比,在同样的时钟速率下,并行传送的数据传输率较高。. 并行通信往往适用于信息传输率要求较高,而传输距离较短的场合。 - PowerPoint PPT Presentation

Transcript of 第 14 章 并行通信及其接口电路

Page 1: 第  14  章    并行通信及其接口电路

第 14 章 并行通信及其接口电路

Page 2: 第  14  章    并行通信及其接口电路

本章主要内容1. 简单并行接口电路;2. 可编程并行接口电路 8255A 的结构及工作原

理;3. 8255A 的应用。

Page 3: 第  14  章    并行通信及其接口电路

14.1 概述 在计算机和数据通信系统中,有两种基本的数据传送

方式,即串行数据传送方式和并行数据传送方式,也称串行通信和并行通信。

数据在单条一位宽的传输线上按时间先后一位一位地进行传送,称为串行传送;

数据在多位宽的传输线上各位同时进行传送,称为并行传送。

和串行传送相比,在同样的时钟速率下,并行传送的数据传输率较高。

Page 4: 第  14  章    并行通信及其接口电路

并行通信往往适用于信息传输率要求较高,而传输距离较短的场合。

在本章,我们重点介绍并行通信及其所要求的并行接口电路,研究它们的组成、功能及典型的并行接口芯片的工作原理及使用方法。

首先介绍几种简单的 ( 不可编程 ) 并行输入输出接口电路,然后着重介绍可编程并行接口电路 8255A 及其典型应用。

Page 5: 第  14  章    并行通信及其接口电路

14.2 简单的并行接口电路 在输入输出接口电路中,经常要对所传送的信号进行

缓冲、驱动和锁存。 能实现这种功能的接口芯片通常是简单的数据锁存器、

缓冲器以及双向总线收发器等。 本节扼要介绍三种常用的简单并行输入输出接口芯片,

它们是: 锁存器 74LS373 ; 缓冲器 74LS244 ; 数据总线收发器 74LS245 。

Page 6: 第  14  章    并行通信及其接口电路

14.2.1 锁存器 74LS373

74LS373 是一种 8 位 D 锁存器电路 (D-Latch) ,具有三态控制输出,其逻辑电路及引脚图如图 14.1 所示。

图中小括号内的数字编号为芯片的引脚号。

Page 7: 第  14  章    并行通信及其接口电路

图 14.1 74LS373 锁存器

G( 选通)

DG Q

(3)

(8)

(4)

(13)

(7)

(17)

(14)

(2)

(11)

(6)

(5)

(12)

(9)

(19)

(15)

(16)

3D

4D

5D

6D

7D

8D (18)

2D

1D

3Q

4Q

5Q

6Q

7Q

8Q

2Q

OE(1)

( a )逻辑电路

G OE

3D

4D

5D

6D7D

8D

2D

1D

3Q

4Q

5Q

6Q7Q

8Q

2Q

1Q

( b )引脚图

1Q

Page 8: 第  14  章    并行通信及其接口电路

由图 14.1 可见,该电路由 8 个 D 锁存器构成 ( 图中仅画一个,其余与此相同 ) ,有 8 个输入端 1D ~ 8D ,8 个输出端 1Q ~ 8Q ,两个控制端:

选通端 G 和输出允许端 OE 。 当选通端 G 为高电平时,则 D 锁存器的输出跟随相应

输入数据端的逻辑电平; 当 G 变为低电平时,则 D 锁存器中的当前内容被锁存。 只有当输出允许信号 OE 有效 ( 为低电平 ) 时,锁存器

中的信息才出现在输出端 1Q ~ 8Q 上;如果 OE 为高电平,则输出处于高阻态。

Page 9: 第  14  章    并行通信及其接口电路

74LS373 的真值表如表 14-1 所示。 该表中 H 为高电平, L 为低电平, Q0 为原状

态, Z 为高阻态, X 表示任意值 ( 为 H 或 L 均可 ) 。

Page 10: 第  14  章    并行通信及其接口电路

表 14.1 74LS373 真值表

选通 G 输出允许 OE 输入 D 输出 Q

H L L L

H L H H

L L X Q0( 原状态)X H X Z (高阻态)

Page 11: 第  14  章    并行通信及其接口电路

锁存器工作时间图

锁存器的应用t0 t1 t2

输入 D

选通

输出 Q

Q 跟随D

保持 t2 时 D 的锁存值

D0

D1

D n-1

Q n-1Q1

Q0

选通

n 位数据总线

Page 12: 第  14  章    并行通信及其接口电路

从表 14-1 可以看到 74LS373 的功能为: 当选通端 G 为高电平,同时输出允许端 OE 为低电平时,

则输出 Q =输入 D( 输出 Q 跟随输入 D) ; 当选通端 G 为低电平,而输出允许端 OE 也为低电平时,

则输出 Q = Q0(Q0 为原状态,即选通端 G 由高电平变为低电平时输出端 Q 的状态 ) ;

当输出允许端 OE 为高电平时,无论选通端 G 为何值,输出端 Q 总为高阻态。

Page 13: 第  14  章    并行通信及其接口电路

74LS373 是十分常用的锁存器电路,主要用来在总线传输电路中锁存地址信息或数据信息,并实现总线信号的缓冲与驱动。

与 74LS373 锁存器功能类似的芯片还有 Intel 8282/8283 等 。

Page 14: 第  14  章    并行通信及其接口电路

14.2.2 缓冲器 74LS244 74LS244 是一种三态输出的 8 位缓冲器 / 驱动器电路 ,

其逻辑电路图和引脚图如图 14.2 所示。

Page 15: 第  14  章    并行通信及其接口电路

图 14.2 74LS244 缓冲器

(a) 逻辑电路

(18)

(16)

(14)

(12)

(9)

(7)

(5)

(3)

1Y3

1Y4

2Y1

2Y2

2Y3

2Y4

1Y2

1Y1

1A3

1A4

2A1

2A2

2A3

2A4

1A2

1A1

___2G

___1G

(2)

(4)

(6)

(8)

(11)

(13)

(15)

(17)

(1)

(19) 1G 2G

1A3

1A4

2A1

2A22A3

2A4

1A2

1A1

1Y3

1Y4

2Y1

2Y22Y3

2Y4

1Y2

1Y1

( b )引脚图

Page 16: 第  14  章    并行通信及其接口电路

由图 14.2 可见, 74LS244 有 8 个输入端,分为两路—— 1A1 ~ 1A4 和 2A1 ~ 2A4 ;

有 8 个输出端,也分为两路—— 1Y1 ~ 1Y4 和 2Y1 ~ 2Y4 。

两路数据传送分别由两个控制信号 1G 和 2G 控制: 当 1G 有效 ( 为低电平 ) 时, 1Y1 ~ 1Y4 的电平与 1A1 ~ 1A4 的电平相同,即输出反映输入的逻辑电平;

同样,当 2G 有效时, 2Y1 ~ 2Y4 的电平与 2A1 ~ 2A4的电平相同。而当 1G( 或 2G) 无效 ( 为高电平 ) 时,输出 1A1 ~ 1A4( 或 2A1 ~ 2A4) 为高阻态。

Page 17: 第  14  章    并行通信及其接口电路

74LS244 缓冲器主要用于存储器地址驱动器、单向总线接收器和发送器等。例如,可将其 8 个输入端的某几位接地,其余接 +5V ,即可提供特定的 8 位二进制代码,如为某设备接口提供 8 位中断类型码。

Page 18: 第  14  章    并行通信及其接口电路

14.2.3 数据总线收发器 74LS245 74LS245 是一种三态输出的 8 位双向总线收发器 (transc

eiver) ,其逻辑电路图和引脚图如图 14.3 所示。

Page 19: 第  14  章    并行通信及其接口电路

图 14.3 数据总线收发器 74LS245

( a )逻辑电路

(2)

(5)

(3)

(6)

(4)

(8)

(7)

(18)

(1)

(16)

(17)

(14)

(15)

(11)

(13)

(12)

A3

A4

A5

A6

A7

A8 (9)

A2

A1

B3

B4

B5

B6

B7

B8

B2

(19)DIR _G

B1

_ G DIR

A2

A3

A5

A6

A7

A8

A1

( b )引脚图

B3

B4

B5

B6B7

B8

B2

B1

Page 20: 第  14  章    并行通信及其接口电路

由图 14.3 可见, 74LS245 有 16个双向传输的数据端,即 A1 ~ A8 和 B1 ~ B8 ;另有两个控制端,即允许端 G和方向控制端 DIR。 G 用于允许该收发器的操作, DIR用于控制数据传送的方向 (A→B或 B→A) 。

由图 14.3(a) 可见,若 G 信号无效 ( 为高电平 ) ,则无论DIR为何种电平,下面两个“与门”的输出均为低电平,从而使两个方向上的三态门的输出均为高阻态,收发器处于“隔开”状态,即两个方向上的数据传送均不能进行。

Page 21: 第  14  章    并行通信及其接口电路

若 G 信号有效 ( 为低电平 ) ,则可在某一个方向上进行数据传送,到底在哪个方向上进行传送,则由方向控制端 DIR的逻辑电平来决定。

74LS245 的真值表如表 14-2 所示。

74LS245 通常用于数据的双向传送、缓冲与驱动。 与 74LS245 功能类似的双向总线收发器电路还有 Intel

8286/8287 等。

Page 22: 第  14  章    并行通信及其接口电路

表 14-2 74LS245 的真值表

允许 G 方向控制 DIR 数据传送方向L L BA

L H AB

H X 隔开

Page 23: 第  14  章    并行通信及其接口电路

14.2.4 应用举例

1. 锁存器 74LS373 的应用 在 80386DX微机系统中, 需在地址总线上对 30 位地

址信号 A2 ~ A31 和 4 个字节允许信号 BE0 ~ BE3 进行锁存。

图 14.4给出了使用 5 片 74LS373 芯片对这些信息进行锁存的电路配置情况。

Page 24: 第  14  章    并行通信及其接口电路

图 14.4 74LS373 用于地址信号锁存

___ ___ 字节允许 BE0~BE3

A2~A31

74LS373 G

__OE

74LS373 G

__OE

74LS373 G

__OE

74LS373 G

__OE

74LS373 G

__OE

经锁存的地址总线

AL24~AL31

AL16~AL23

AL8~AL15

AL2~AL7

___ ___ BEL0~BEL3

地址总线 A24~A31

A 16~A 23

A8~A15

A2~A7

ALE

Page 25: 第  14  章    并行通信及其接口电路

注意,由于电路中 74LS373 的 OE 固定接为逻辑 0,所以其输出 AL2 ~ AL31 和 BEL0 ~ BEL3 将始终处于允许状态。

由图 14.4 可见 , 各片 74LS373 的选通端 G 均由 ALE(Address Latch Enable) 信号来驱动, ALE 即地址锁存允许信号,它是专门用来控制地址锁存器的一个总线信号。

Page 26: 第  14  章    并行通信及其接口电路

2. 数据总线收发器 74LS245 的应用 图 14.5给出了用 74LS245 实现的总线接口中数据总

线收发器电路配置图。 对于像 80386DX 这样的 32 位微机系统,其外部数据

总线为 32 位,所以需 4块 74LS245 这样的电路来实现双向总线驱动。

图 14.5 中, 74LS245 的 DIR输入是由总线信号 DT/R来控制,而 G 是由 DEN控制。 DT/R和

DEN是系统中总线控制逻辑的输出信号。

Page 27: 第  14  章    并行通信及其接口电路

图 14.5 数据总线收发器的应用

D0~D31

74LS245DIR

74LS245

74LS245

74LS245

DB24~DB31

DB16~DB23

DB8~DB15

DB0~DB7

D24~D31

D 16~D 23

D8~D15

D0~D7

____DEN __

DT/R系统数据总线

_ G

_ G

_ G

_ G

DIR

DIR

DIR

微处理器数据总线

Page 28: 第  14  章    并行通信及其接口电路

数据总线收发器的一个主要功能是对数据总线信号进行缓冲与驱动,缓冲能力的大小取决于该电路在其输出端能够吸收多少电流。

74LS245 的 IOL( 输出低电平负载电流 ) 额定值为 64mA ,而 80386DX 数据总线最多仅能吸收 4mA 电流。所以,通过增设数据总线收发器电路可以极大地增强总线的驱动能力。

Page 29: 第  14  章    并行通信及其接口电路

14.3 可编程并行接口

14.3.1 可编程并行接口的组成及其与 CPU 和外设的连接

通常,一个可编程并行接口电路应包括下列组成部分:(1) 两个或两个以上具有缓冲能力的数据寄存器。(2) 可供 CPU访问的控制及状态寄存器。(3) 片选和内部控制逻辑电路。

Page 30: 第  14  章    并行通信及其接口电路

(4) 与外设进行数据交换的控制与联络信号线。(5) 与 CPU用中断方式传送数据的相关中断控制电路。 典型的可编程并行接口及其与 CPU 和外设的连接示意

图如图 14.6 所示。

Page 31: 第  14  章    并行通信及其接口电路

图 14.6 可编程并行接口电路及其与 CPU 和外设的连接

CPU

输出设备

输入设备

并行接口电路数据总线

读控信号

写控信号

复位信号

中断响应信号

中断请求信号

地址 译码器 片选

输出缓冲寄存器

输入缓冲寄存器

控制寄存器

状态寄存器

中断逻辑

并行输出数据

并行输入数据

输出准备好

输出回答

输入准备好

输入回答

Page 32: 第  14  章    并行通信及其接口电路

14.3.2 可编程并行接口的数据输入输出过程 将以 8255A 为例进行讨论。

Page 33: 第  14  章    并行通信及其接口电路

14.4 可编程并行通信接口 8255A

14.4.1 8255A 的性能概要 Intel 8255A 是一个为 Intel 8080 和 8085微机系统设

计的通用可编程并行接口芯片,也可应用于其他微机系统之中。

8255A采用 40 脚双列直插封装,单一 +5V 电源,全部输入输出与 TTL 电平兼容。

用 8255A连接外部设备时,通常不需要再附加其他电路,给使用带来很大方便。

Page 34: 第  14  章    并行通信及其接口电路

8255A 有三个输入输出端口: 端口 A 、端口 B 、端口 C 。

每个端口都可通过编程设定为输入端口或输出端口,但有各自不同的方式和特点。

端口 C可作为一个独立的端口使用,但通常是配合端口 A 和端口 B的工作,为这两个端口的输入输出提供控制联络信号。

Page 35: 第  14  章    并行通信及其接口电路

14.4.2 8255A 芯片引脚分配及引脚信号说明

8255A 芯片引脚分配如图 14.7 所示。

8255A 芯片的 40条引脚,大致可分为三类:(1) 电源与地线共 2条: Vcc、 GND 。(2) 与外设相连的共 24条: PA7 ~ PA0 : 端口 A 数据信号。 PB7 ~ PB0 : 端口 B数据信号。 PC7 ~ PC0 : 端口 C数据信号。

Page 36: 第  14  章    并行通信及其接口电路

图14.7 8255A芯片引脚分配

1 40

2 39

3 38

4 37

5 36

6 35

7 34

8 33

9 8255A 32

10 31

11 30

12 29

13 28

14 27

15 26

16 25

17 24

18 23

19 22

20 21

PA3

PA2

PA1

PA0

RD

CS

GND

A1

A0

PC7

PC6

PC5

PC4

PC3

PC2

PC1

PC0

PB0

PB1

PB2

PA4

PA5

PA6

PA7

WR

RESET

D0

D1

D2

D3

D4

D5

D6

D7

VCC

PB7

PB6

PB5

PB4

PB3

1 40

2 39

3 38

4 37

5 36

6 35

7 34

8 33

9 8255A 32

10 31

11 30

12 29

13 28

14 27

15 26

16 25

17 24

18 23

19 22

20 21

PA3

PA2

PA1

PA0

RD

CS

GND

A1

A0

PC7

PC6

PC5

PC4

PC3

PC2

PC1

PC0

PB0

PB1

PB2

PA4

PA5

PA6

PA7

WR

RESET

D0

D1

D2

D3

D4

D5

D6

D7

VCC

PB7

PB6

PB5

PB4

PB3

Page 37: 第  14  章    并行通信及其接口电路

通用插座D-40脚

通用插座B-20脚通用插座A-20脚

通用插座-16脚 通用插座-14脚

单脉冲

逻辑笔

开关K7-K0

LED显示(L7-L0)

七段数码管(abc…fdp)

位码

复位

触发器

时钟脉冲直流信号

I/O地址 / 选通信号

喇叭

50线插头

总线

电源开关

计数器8253

DA 0832

AD 0809

并口8255A

8253通道0 / 1

8255A-PC口

8255A-PA口

+5V

+5V

GND

GND

+5V

模拟量输入

模拟量输出

DMA/IO跳线端子

继电器

步进电机

话筒

Page 38: 第  14  章    并行通信及其接口电路

(3) 与 CPU相连的共 14条: RESET: 复位信号,高电平有效。当 RESET信号有效

时,所有内部寄存器都被清除。同时, 3 个数据端口被自动设置为输入端口。

D7 ~ D0: 双向数据线,在 8080 、 8085 系统中, 8255A 的 D7 ~ D0 与系统的 8 位数据总线相连;

在 8086系统中,采用 16位数据总线, 8255A 的 D7 ~ D0 通常是接在 16位数据总线的低 8 位上。

Page 39: 第  14  章    并行通信及其接口电路

CS: 片选信号,低电平有效。该信号来自译码器的输出,只有当 CS 有效时,读信号 RD 和写信号WR才对8255A 有效。

RD :读信号,低电平有效。它控制从 8255A读出数据或状态信息。

Page 40: 第  14  章    并行通信及其接口电路

WR : 写信号,低电平有效。它控制把数据或控制命令字写入 8255A 。

A1 、 A0 : 端口选择信号。 8255A 内部共有 4 个端口( 即寄存器 ) : 3 个数据端口 ( 端口 A 、端口 B、端口C) 和 1 个控制端口 ,当片选信号 CS 有效时,规定 A1 、 A0 为 00 、 01 、 10 、 11 时,分别选中端口 A 、端口 B 、端口 C 和控制端口。

CS 、 RD 、WR、 A1 、 A0 这五个信号的组合决定了对三个数据端口和一个控制端口的读写操作,如表 14-3 所示。

Page 41: 第  14  章    并行通信及其接口电路

表 14-3 8255A 端口选择和基本操作

A1 A0 输入操作(读)0 0 0 1 0 端口 A 数据总线0 1 0 1 0 端口 B 数据总线1 0 0 1 0 端口 C 数据总线

输出操作(写)0 0 1 0 0 数据总线端口 A

0 1 1 0 0 数据总线端口 B

1 0 1 0 0 数据总线端口 C

1 1 1 0 0 数据总线控制字寄存器无操作情况

X X X X 1 数据总线为三态(高阻)1 1 0 1 0 非法操作X X 1 1 0 数据总线为三态(高阻)

RD WR cs

Page 42: 第  14  章    并行通信及其接口电路

14.4.3 8255A 内部结构方块图

8255A 内部结构方块图如图 14.8 所示。

Page 43: 第  14  章    并行通信及其接口电路

图 14.8 8255A 内部结构方块图

RESET

A 组端口 A

( 8 位)

A 组端口 C

(高 4 位)

B 组端口 C

(低 4 位)

B 组端口 B

( 8 位)

I/O PA7~PA0

I/O PC7~PC4

I/O PC3~PC0

I/O PB7~PB0

A 组控制

B 组控制

数据总线缓冲器

读写控制逻辑

__RD__WRA1

A0

__CS

电源

+5V

GND

8 位内部数据总线

D7~D0

双向数据总线

Page 44: 第  14  章    并行通信及其接口电路

由图 14.8 可以看出, 8255A 由以下几部分组成:

(1) 数据总线缓冲器 这是一个双向三态 8 位数据缓冲器,它是 8255A 与 CPU数据总线的接口。

输入数据、输出数据以及 CPU发给 8255A 的控制字和从 8255A读出的状态信息都是通过该缓冲器传送的。

Page 45: 第  14  章    并行通信及其接口电路

(2) 端口 A 、端口 B 、端口 C 8255A 有三个 8 位端口 ( 端口 A 、端口 B、端口 C) ,各端口可由程序设定为输入端口或输出端口。

在使用中,端口 A 和端口 B常常作为独立的输入端口或输出端口。

端口 C也可以作为输入端口或输出端口,但往往是用来配合端口 A 和端口 B的工作。

在方式字的控制下,端口 C可以分成两个 4 位的端口,分别用来为端口 A 和端口 B提供控制和状态信息。

Page 46: 第  14  章    并行通信及其接口电路

(3) A 组控制和 B 组控制 A 组控制——控制端口 A 及端口 C的高 4 位。 B组控制——控制端口 B及端口 C的低 4 位。(4) 读写控制逻辑 读写控制逻辑负责管理 8255A 的数据传输过程。

Page 47: 第  14  章    并行通信及其接口电路

14.4.4 8255A 的控制字

1. 方式选择控制字 方式选择控制字的格式如图 14.9所示。

Page 48: 第  14  章    并行通信及其接口电路

图 14.9 8255A 方式选择控制字

1 D6 D5 D4 D3 D2 D1 D0

方式选择控制字标识位

A 组方式选择00 方式 001 方式 11x 方式 2 端口 A

1 输入0 输出

PC3~PC0: 1 输入 (方式 0 时) 0 输出

端口 B: 1 输入 0 输出

B 组方式选择: 0 方式 0 1 方式 1

PC7~PC4: 1 输入(方式 0 时) 0 输出

Page 49: 第  14  章    并行通信及其接口电路

假定要求 8255A 的各个端口工作于如下方式: 端口 A—— 方式 0 ,输出; 端口 B—— 方式 0 ,输入; 端口 C的高 4 位——方式 0 ,输出; 端口 C的低 4 位——方式 0 ,输入。 那么,相应的方式选择控制字应为 10000011B(83H) 。

Page 50: 第  14  章    并行通信及其接口电路

在实验系统中 8255A 控制口的地址为 28BH ,则执行如下三条指令即可实现上述工作方式的设定。

MOV DX, 28BH MOV AL, 83H OUT DX , AL ; 将方式选择控制字写入控制口

Page 51: 第  14  章    并行通信及其接口电路

2. 端口 C 按位置 1 /置 0 控制字 可以用专门的控制字实现对端口 C 按位置 1/置 0操

作,用以产生所需的控制功能,这种控制字就是“端口 C按位置 1/置 0 控制字”。

该控制字的具体格式如图 14.10 所示。

Page 52: 第  14  章    并行通信及其接口电路

图 14.10 端口 C 按位置 1/ 置 0 控制字

0 D6 D5 D4 D3 D2 D1 D0

x x x

无关

1: 置 1

0: 置 0

00001111

端口 C 按位置 1/ 置 0控制字标识位 位选择

PC0

PC1

PC2

PC3

PC4

PC5

PC6

PC7

00110011

01010101

Page 53: 第  14  章    并行通信及其接口电路

需要指出的是,端口 C 按位置 1/置 0 控制字是对端口 C的操作控制信息,因此该控制字必须写入控制口,而不应写入端口 C 。

控制字的 D0 位决定是置“ 1”操作还是置“ 0”操作,但究竟是对端口 C的哪一位进行操作,则决定于控制字中的 D3 、 D2 、 D1 位。

Page 54: 第  14  章    并行通信及其接口电路

例如,要实现对端口 C的 PC6位置“ 0” ,则控制字应为 00001100B(0CH) 。

设 8255A 的控制口地址同上,则执行下列指令即可实现指定的功能:

MOV DX,28BH MOV AL , 0CH ; OUT DX , AL ; 将“端口 C 按位置 1/置 0 控制

字”写入控制口,实现对 PC6位置“ 0”

Page 55: 第  14  章    并行通信及其接口电路

14.4.5 8255A 的工作方式

1. 方式 0 方式 0 也叫基本输入/输出方式。 在这种方式下,端口 A 和端口 B可以通过方式选择控

制字规定为输入口或者输出口; 端口 C分为高 4 位 (PC7 ~ PC4) 和低 4 位 (PC3 ~ PC

0) 两个 4 位端口,这两个 4 位端口也可由方式选择控制字分别规定为输入口或输出口。

Page 56: 第  14  章    并行通信及其接口电路

这四个并行口共可构成 24=16种不同的使用组态。 利用 8255A 的方式 0 进行数据传输时,由于没有规定专门的应答信号,所以这种方式常用于与简单外设之间的数据传送,如向 LED显示器的输出,从二进制开关装置的输入等。

Page 57: 第  14  章    并行通信及其接口电路

2. 方式 1

方式 1 也叫选通的输入/输出方式。 和方式 0 相比,最主要的差别就是当端口 A 和端口 B

工作于方式 1 时,要利用端口 C来接收选通信号或提供有关的状态信号,而这些信号是由端口 C的固定数位来接收或提供的,即信号与数位之间存在着对应关系。

这种关系不可以用程序的方法予以改变。

Page 58: 第  14  章    并行通信及其接口电路

(1) 方式 1 输入 当端口 A 和端口 B工作于“方式 1 输入”时,端口 C

控制信号定义如图 14.11 所示。 该图中还给出了相应的方式选择控制字。

Page 59: 第  14  章    并行通信及其接口电路

图 14.11 8255A 方式 1 输入

1 0 1 1 1/0

A 组方式 1

D7 D6 D5 D4 D3 D2 D1 D0

PC6 , 7

1 输入0 输出

端口 A 输入

INTEB

PC2

PC1

____STBB

IBFB

PB7~PB0

___RD

PC0

D7~D0

INTRB

方式 1 输入(端口 B )

INTEA

PC4

PC5

PC6,7

2I/O

____STBA

IBFA

PA7~PA0

___RD

PC3

D7~D0

INTRA

方式 1 输入(端口 A )

1 1 1

D7 D6 D5 D4 D3 D2 D1 D0

B 组方式 1

端口 B 输入

Page 60: 第  14  章    并行通信及其接口电路

对于图 14.11 中所示的控制信号说明如下: STB(Strobe): 选通信号,低电平有效。它是由外设送给 8255A 的输入信号,当其有效时, 8255A 接收外设送来的一个 8 位数据。

IBF(Input Buffer Full): “ 输入缓冲器满”信号,高电平有效,它是一个 8255A 送给外设的联络信号。

Page 61: 第  14  章    并行通信及其接口电路

当 IBF 为高电平时,表示外设的数据已送进输入缓冲器中,但尚未被 CPU 取走,通知外设不能送新数据;

只有当 IBF 变为低电平时,即 CPU已读取数据,输入缓冲器变空时,才允许外设送新数据。

IBF信号是由 STB使其置位 ( 变为高电平 ) ,而由读信号 RD 的上升沿使其复位 ( 变为低电平 ) 。

Page 62: 第  14  章    并行通信及其接口电路

INTR(Interrupt Request) : 中断请求信号,高电平有效。

它是当 STB 为 1 、 IBF 为 1 且 INTE 也为 1( 中断允许 ) 时被置为高电平。

也就是说,当选通信号结束 (STB=1) ,已将一个数据送进输入缓冲器 (IBF=1) ,并且端口处于中断允许状态(INTE=1) 时, 8255A 的 INTR端被置为高电平,向 CPU发出中断请求信号。

当 CPU 响应中断读取输入缓冲器中的数据时,由读信号 RD 的下降沿将 INTR置为低电平。

Page 63: 第  14  章    并行通信及其接口电路

INTEA(Interrupt Enable): 端口 A 中断允许信号。 INTEA没有外部引出端,它实际上就是端口 A 内部的中断允许触发器的状态信号。

INTEA 由 PC4 的置位/复位来控制, PC4=1 时,使端口A 处于中断允许状态。

INTEA

controlled by bit set/reset of PC4

Page 64: 第  14  章    并行通信及其接口电路

INTEB : 端口 B中断允许信号。与 INTEA 类似, INTEB也没有外部引出端,它是端口 B内部的中断允许触发器的状态信号。

由 PC2 的置位/复位来控制, PC2=1 时,使端口 B处于中断允许状态。

Page 65: 第  14  章    并行通信及其接口电路

另外,在方式 1 输入时, PC6 和 PC7 两位还闲着未用。如果要利用它们,可用方式选择控制字中的 D3 位来设定。

方式 1 输入工作时序图如图 14.12 所示。

Page 66: 第  14  章    并行通信及其接口电路

图 14.12 方式 1 输入工作时序图

来自外设的输入数据

___STB

IBF

INTR___RD

tRIB

tST

tSIB

TSIT

tRIT

tPS

tPH

Page 67: 第  14  章    并行通信及其接口电路

图 14.12 中的参数说明

Tmin Tmax

tST 选通脉冲的宽度 500ns

tSIB 选通脉冲有效到IBF有效的时间 300ns

tSIT___STB=1到中断请求INTR有效的时间 300ns

tPH 数据保持时间 180ns

tPS ___数据有效到STB无效的时间 0

tRIT 有效到中断请求信号撤除的时间 400ns

tRIB 为1到IBF为0的时间 300ns

参数 说明 8255A

RD

RD

Page 68: 第  14  章    并行通信及其接口电路

(2) 方式 1 输出 当端口 A 和端口 B工作于方式 1 输出时,方式选择

控制字及相应的端口 C控制信号定义如图 14.13 所示。

Page 69: 第  14  章    并行通信及其接口电路

图 14.13 8255A 方式 1 输出

1 0 1 0 1/0

A 组方式 1

D7 D6 D5 D4 D3 D2 D1 D0

PC4 , 5

1 输入0 输出

端口 A 输出

1 1 0

D7 D6 D5 D4 D3 D2 D1 D0

B 组方式 1

端口 B 输出

INTEA

PC7

PC6

PC4,5

2I/O

____OBFA

ACKA

PA7~PA0

___WR

PC3

D7~D0

INTRA

方式 1 输出(端口 A )

INTEB

PC1

PC2

____OBFB

ACKB

PB7~PB0

___WR

PC0

D7~D0

INTRB

方式 1 输出(端口 B )

Page 70: 第  14  章    并行通信及其接口电路

对图 14.13 中所示的控制信号说明如下: OBF(Output Buffer Full): “ 输出缓冲器满”信号,低

电平有效,它是 8255A 输出给外设的一个控制信号。 当其有效时,表示 CPU 已经把数据输出给指定端口,

通知外设把数据取走。 它是由写信号WR的上升沿置成有效 ( 低电平 ) ,而由

ACK信号的有效电平使其恢复为高电平。

Page 71: 第  14  章    并行通信及其接口电路

ACK(Acknowledge): 外设响应信号,低电平有效。当其有效时,表明CPU通过 8255A 输出的数据已经由外设接收。它是对 OBF的回答信号。

INTR(Interrupt Request): 中断请求信号,高电平有效。它是 8255A 的一个输出信号,用于向 CPU发出中断请求。 INTR是当 ACK、 OBF和 INTE都为“ 1” 时才被置成高电平 ( 向 CPU发出中断请求信号 ) ;写信号 WR的上升沿使其变为低电平 (清除中断请求信号 ) 。

Page 72: 第  14  章    并行通信及其接口电路

INTEA : 端口 A 中断允许信号,由 PC6的置位 /复位来控制,PC6=1 时,端口 A 处于中断允许状态。

INTEB : 端口 B中断允许信号,由 PC2 的置位 /复位来控制,PC2=1 时,端口 B处于中断允许状态。

另外,在方式 1 输出时, PC4 、 PC5 两位还闲着未用,如果要利用它们可用方式选择控制字的 D3 位来设定。

Page 73: 第  14  章    并行通信及其接口电路

图 14.14 方式 1 输出工作时序图

INTR

___WR

___OBF

____ACK

输出tAK tAIT

tWIT

tWOB

tAOB

tWB

Page 74: 第  14  章    并行通信及其接口电路

图 14.14 中参数说明

Tmin Tmax

tWIT 从写信号有效到中断请求无效的时间 850ns

tWOB 从写信号无效到输出缓冲器满的时间 650ns

tAOB___ ___ACK有效到OBF无效的时间 350ns

tAK___ACK脉冲的宽度 300ns

tAIT___ACK为1到发新的中断请求的时间 350ns

tWB 写信号撤销到数据有效的时间 350ns

参数 说明 8255A

Page 75: 第  14  章    并行通信及其接口电路

14.4.6 8255A 的状态字 8255A 工作于方式 1 和方式 2 时的状态字是通过读端

口 C的内容来获得的。1. 方式 1 状态字格式 方式 1 状态字格式如图 14.16所示。

Page 76: 第  14  章    并行通信及其接口电路

图 14.16 方式 1 状态字格式

D7 D6 D5 D4 D3 D2 D1 D0

A 组 B 组

( b )方式 1 输出状态字格式

____ _____ OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB

D7 D6 D5 D4 D3 D2 D1 D0

A 组 B 组

( a )方式 1 输入状态字格式

I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB

Page 77: 第  14  章    并行通信及其接口电路

2. 方式 2 状态字格式 方式 2 的状态字也是从端口 C读取。 方式 2 状态字的格式如图 14.17 所示。

Page 78: 第  14  章    并行通信及其接口电路

图 14.17 方式 2 状态字格式

D7 D6 D5 D4 D3 D2 D1 D0

A 组状态 B 组状态

OBFA INTE1 IBFA INTE2 INTRA

_____I/O I/O I/O

方式 1

方式 0

INTEB OBFB INTRB INTEB IBFB INTRB

输出时 输入时_____

Page 79: 第  14  章    并行通信及其接口电路

14.4.7 8255A 应用举例 例 14.1 8255A 工作于方式 0 ,利用 8255A 将外设开关的二进制状态从端口 A 输入,经程序转换为对应的LED段选码 ( 字形码 ) 后,再从端口 B输出到 LED显示器。

具体连线图如图 14.18(a) 所示。 LED显示器如图 14.18(b) 所示。

Page 80: 第  14  章    并行通信及其接口电路

图14.18 8255A的应用

地址译码

地址

CPU

(8088)

RD

WR

A0

A1

__

__

D7~D0

8255A

RD

WR

A0

A1

__

__

PA0

PA1

PA2

PA3

PB0

PB1

PB2

PB3

PB4

PB5

PB6

PB7

+5V

2K×4

K0

K1

K2

K3

a

b

c

d

e

f

g

h

+5V120

74LS04 LED(a) 连线图

地址译码

地址

CPU

(8088)

RD

WR

A0

A1

__

__

D7~D0

8255A

RD

WR

A0

A1

__

__

PA0

PA1

PA2

PA3

PB0

PB1

PB2

PB3

PB4

PB5

PB6

PB7

+5V

2K×4

K0

K1

K2

K3

a

b

c

d

e

f

g

h

+5V120 欧姆

74LS04 LED(a) 连线图

a

b

c

d

e

f

g

(b)LED显示器

h

Page 81: 第  14  章    并行通信及其接口电路

设 8255A 的端口地址为: 端口 A——D0H ,端口 B——D1H ,端口 C——D2H ,控制口—— D3H 。则本例的初始化及输入、输出控制程序如下所示。

DATA SEGMENT SSEGCODE DB 3FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H DB 7FH , 67H , 77H , 7CH , 39H , 5EH , 79H , 71H DATA ENDS CODE SEGMENT ASSUME CS: CODE , DS: DATA START : MOV AX, DATA MOV DS, AX MOV AL , 90H ;设置方式选择控制字, A 口工作于方 式 0 输入, B 口工作于方式 0 输出 OUT 0D3H, AL RDPORTA : IN AL , 0D0H ; 读 A 口 AND AL , 0FH ; 取 A 口低 4 位 MOV BX , OFFSET SSEGCODE ; 取 LED 段选码表首地址 XLAT ;查表, AL←(BX+AL)

Page 82: 第  14  章    并行通信及其接口电路

OUT 0D1H , AL ; 从 B 口输出 LED 段选码,显示相应字形符号 MOV AX , XXXXH ; 延时 DELAY : DEC AX ; JNZ DELAY ; MOV AH , 1 ; 判断是否有键按下 INT 16H ; JZ RDPORTA ; 若无,则继续读端口 A MOV AH , 4CH ; 否则返回 DOS INT 21H CODE ENDS END START

Page 83: 第  14  章    并行通信及其接口电路

例 14.2 8255A 工作于方式 0 ,用 8255A 作为以查询方式工作的打印机接口,如图 14.19 所示。

Page 84: 第  14  章    并行通信及其接口电路

图 14.19 8255A 作为打印机接口

CPU 系统总线8255A

PA7~PA0打印机

PC6

PC2

___ STB BUSY

Page 85: 第  14  章    并行通信及其接口电路

工作原理为 : 当主机开始打印输出时,先测试打印机忙 (BUSY) 信号,

如果打印机处于忙状态,则 BUSY 信号为 1 ; 反之,则 BUSY 信号为 0 。 当检测到 BUSY 信号为 0 时,则主机可通过 8255A 向打印机输出一个字符。

此时,还需输出一个选通信号 (负脉冲 ) 给打印机的 STB端,用此负脉冲作为字符送到打印机输入缓冲器的打入脉冲。

Page 86: 第  14  章    并行通信及其接口电路

用 8255A 的端口 A 作为打印输出数据口,工作于方式0 ;端口 B 不用;端口 C 也工作于方式 0 ,端口 C的PC2 作为 BUSY 信号输入端,所以 PC3 ~ PC0 应设定为输入方式;

PC6作为选通信号输出端,所以 PC7 ~ PC4 应设定为输出方式。

设打印字符存放在内存 2000H 单元 。 8255A 的端口地址为: 端口 A—D0H ,端口 B—D1H ,端口 C—D2H ,控制

口— D3H 则初始化及打印控制子程序如下所示:

Page 87: 第  14  章    并行通信及其接口电路

BEGIN : MOV AL , 81H ; 方式选择控制字,使 A 、 B 、 C 三个端口工作于方式 0 , OUT 0D3H , AL ; 端口 A 为输出, PC7 ~ PC4 为输出, PC3 ~ PC0 为输入 MOV AL , 0DH ; 用“端口 C 按位置 1/ 置 0 控制字”置 PC6=1 ,使 STB 为高电平 OUT 0D3H , AL TESBY : IN AL , 0D2H ; 读端口 C TEST AL , 04H ; 测试 PC2(BUSY) JNZ TESBY ;如 PC2=1(BUSY 信号有效 ) 打印机处于忙状态,继续查询 MOV AL , DS: [ 2000H ]; PC2=0(BUSY 信号无效 ) ,取打印字符 OUT 0D0H , AL ; 由端口 A 输出打印字符 MOV AL , 0CH ; 用“端口 C 按位置 1/ 置 0 控制字”置 PC6=0 ,使 STB 为低电平 OUT 0D3H , AL INC AL OUT 0D3H , AL ; 置 PC6=1 ,再使 STB 为高电平,从而产生一个负选通脉冲信号 RET

Page 88: 第  14  章    并行通信及其接口电路

第 14 章 作业P500-501 13 题 ; 14 题

Page 89: 第  14  章    并行通信及其接口电路

P500 习题 13解: ① 程序流程框图:

② 初始化及有关控制程序

设置 8255 方式选择控制字:A 口方式 O 输出, B 口方式 O 输出, C 口方式 O 输入。

向 A 口输出 01H ,使主道绿灯亮;向B 口输出 04H, 使副道红灯亮

延迟 40 秒

PC0=1?

Yes

向 A 口输出 02H ,使主道黄灯亮

延迟 5 秒

向 A 口输出 04H ,使主道红灯亮; 向 B 口输出 01H ,使副道绿灯亮

延迟 20 秒

向 B 口输出 02H, 使副道黄灯亮

延迟 5 秒

Page 90: 第  14  章    并行通信及其接口电路

图 14.23 交通灯控制

8255A

PC0 PA2 PA1 PA0 PB2 PB1 PB0

接系统总线

K R Y G R Y G(开关)

主道灯 副道灯