第七章 输入输出及其接口芯片

31
第第第 第第第第第第第第第第 1 第第第第第第第第第第第第第 CPU 第第 7-1 第第第第第第 I/O I/O 第第第第 DB 第第第第 CB 第第第第 AB CPU

description

地址总线 AB. CPU. I/O 接 口. 输 出 设 备. I/O 接 口. 存 储 器. 输 入 设 备. 数据总线 DB. 控制总线 CB. 第七章 输入输出及其接口芯片. 7-1 输入输出概述. 1 、输入输出设备通过接口电路与 CPU 连接. 数据输入准备好. 数据总线. 输. 控制寄存器. 数据输入回答. 读信号. 入. 设. 输入缓冲寄存器. 写信号. 备. 数据输入. 输出缓冲寄存器. 准备好. 中断请求. CPU. 状态寄存器. 数据输出. 输. 地址. 地址. 出. - PowerPoint PPT Presentation

Transcript of 第七章 输入输出及其接口芯片

Page 1: 第七章 输入输出及其接口芯片

第七章 输入输出及其接口芯片

1 、输入输出设备通过接口电路与 CPU 连接7-1 输入输出概述

存储器

I/O接口

输入设备

I/O接口

数据总线 DB

控制总线 CB

地址总线 AB

输出设备

CPU

Page 2: 第七章 输入输出及其接口芯片

CPU

控制寄存器

输入缓冲寄存器

输出缓冲寄存器

状态寄存器

数据总线

地址译码

读信号写信号

准备好中断请求

地址片选

A0A1

输入设备

数据输入

数据输入准备好

数据输入回答

输出设备

数据输出

数据输出准备好

数据输出回答

Page 3: 第七章 输入输出及其接口芯片

• 由图可见,外设通过 I/O 接口电路与 CPU 相连。每个接口电路包含多个寄存器:数据输入寄存器、数据输出寄存器、状态寄存器、控制寄存器。• 通常称这些寄存器为 I/O 端口 (PORT) ,每个端口有一个端口地址。• CPU 与端口通过数据总线交换信息,信息类型包括:数据、对外设的控制信息、外设的状态信息,分别存放在接口电路的不同寄存器中。• 端口选择通过地址总线产生。

Page 4: 第七章 输入输出及其接口芯片

2 、接口电路的作用(为什么要用接口电路)( 1)速度的匹配 外设的读写速度可能很慢。 CPU 与端口进行

快速数据交换,端口与外设进行慢速交换。( 2)信息格式的变换 外部设备的数据形式可能是数字量、模拟量

或开关量等,数字量可能采用并行方式或串行方式。接口电路的功能之一是将不同信息格式变换为 CPU 能接收的标准并行信息,如电平转换、串并转换、 A/D 、 D/A 转换等;

Page 5: 第七章 输入输出及其接口芯片

( 3)提供主机和外设间传送数据的状态和控制信息

如 WR 、 RD 、 READY 、 INTR 等( 4)时序的匹配 CPU 时序与外设时序可能不一致,由接口电路

实现匹配。

Page 6: 第七章 输入输出及其接口芯片

3 、 I/O 端口的编址方式• CPU 对 I/O 端口编址有两种方式: 1 )与存储器统一编址方式; 2 ) I/O 端口独立编址方式。• 统一编址方式将外设端口与存储器一致处理,

使用相同的指令访问外设和存储器。• 独立编址方式需要专用的访问外设指令,硬

件上需要有控制线来区分访问存储器还是外设。

• 8086 CPU 采用外设端口独立编址方式。

Page 7: 第七章 输入输出及其接口芯片

7-2 可编程并行接口芯片 82551 、性能概要• 8255 是一个可编程并行接口芯片。• 有三个 8 位输入输出端口:端口 A 、端口 B 、端口

C ,以及控制 8255 内部工作方式的控制字寄存器,共 4 个端口。

• 每个端口可编程设定为输入端口或输出端口,并可设定为不同的工作方式。

• 端口 A 、端口 B 通常作为输入输出数据端口。• 端口 C 可作为数据端口使用;也可分成两个 4 位端

口,作为 A 口和 B 口的控制和状态端口。• 控制字寄存器接收 CPU 写入的控制字,对 A、 B、 C

端口进行控制,以决定其工作方式。

Page 8: 第七章 输入输出及其接口芯片

reset

D7~

D0

A7~

A2A1A0

RDWR

片选译码

数据缓冲器

读写控制

片内译码

CS

RESET

A1A0

RDWR

PC7~

PC0

PB7~

PB0

PA7~

PA0

控制字端口

端口 A

端口 C

端口 B

+5VGND

D7~

D0外

8255A总线

Page 9: 第七章 输入输出及其接口芯片

8255A

PA3PA2PA1PA0RDCS

GNDA1A0

PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2

PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3

2 、 8255 芯片引脚

Page 10: 第七章 输入输出及其接口芯片

3 、端口寻址A1 A0 选中端口

0 0 端口 A

0 1 端口 B

1 0 端口 C

1 1 控制字端口

Page 11: 第七章 输入输出及其接口芯片

4 、 8255 的工作方式 8255 可有三种工作方式:• 方式 0 — 基本输入或输出方式 8255 端口与外设只有数据信号线,没有控制、

状态等联络信号的工作方式。• 方式 1 — 选通输入或输出方式 8255 端口与外设除数据信号线外,有控制、

状态等联络信号的工作方式。• 方式 2 — 选通双向传送方式

Page 12: 第七章 输入输出及其接口芯片

• 工作方式由 CPU 写入控制字寄存器中的控制字决定

• A 口可工作于方式 0 、方式 1 或方式 2

• B 口可工作于方式 0 或方式 1

• C 口只能工作于方式 0 ,可分成两个四位端口,可单独定义为基本输入或输出,也可以按位置位或复位。

• 当 A 口和 B 口工作于选通方式(方式 1, 方式2 )时, C 口的某些位被用于作为联络信号。

• C 口可通过控制字按位进行置位和复位操作。

Page 13: 第七章 输入输出及其接口芯片

5 、 8255 的控制字• 8255 的控制字有两种:工作方式控制字和 C

口置位复位控制字• 工作方式控制字控制 8255 各端口的工作方式• C 口置位 / 复位控制字对 C 口各位进行位操作

Page 14: 第七章 输入输出及其接口芯片

B 口

0 输出1 输入

0 方式 01 方式 1

1

D7 D6 D5 D4 D3 D2 D1 D0

特征位, 1 表示工作方式控制字

PC3~PC00 输出1 输入

B 口工作方式

PC7~PC4 0 输出1 输入A 口 0 输出

1 输入A 口工作方式 00 方式 0

01 方式 11x 方式 2

Page 15: 第七章 输入输出及其接口芯片

0 复位1 置位

0

D7 D6 D5 D4 D3 D2 D1 D0

特征位 D7=0 表示该特征字是 C口按位置位 / 复位控制字

无意义 选择设置位

C 口按位置位 / 复位控制字

D3 D2 D1 设置位 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7

Page 16: 第七章 输入输出及其接口芯片

例 8255 与 CPU 连接后所分配的地址为 F0~F3h

1) 确定各端口地址 ;

2) 编程设置 8255A:

A 口方式 0 输入, PC7~PC4 输出 B 口方式 0 输出, PC3~PC0 输入

Page 17: 第七章 输入输出及其接口芯片

答:1 )根据 8255 端口寻址关系可得出 A 口地址为 F0 H B 口地址为 F1 H C 口地址为 F2 H D 口地址为 F3 H2 )确定方式控制字

1 0 0 1 0 0 0 1

D7 D6 D5 D4 D3 D2 D1 D0

特征位 A 口方式 0

A 口输入

PC7~PC4输出

B 口方式 0

B 口输出

PC3~PC0输入

Page 18: 第七章 输入输出及其接口芯片

所以,方式控制字为 1001 0001B ,即 91H

3 )方式控制字设置的程序: MOV AL, 91H ; 方式控制字

OUT 0F3H, AL

Page 19: 第七章 输入输出及其接口芯片

6 、选通工作方式下联络信号的定义• 在方式 1 下, C 口作为 A 口、 B 口联络信

号的外部引脚,其动作关系在芯片设计和制造时已固定,不由用户设定,也不能编程改变。即 C 口作为联络信号的引脚,不受方式控制字的控制,不受 C 口按位置位 / 复位控制字控制。

1 )端口 A 工作在方式 1 输入时,应用 PC3 、 PC4 、 PC5 作为联络信号。

①PC4 — STB (strobe) 选通信号(低电平有效)

由外设发出送给 8255 ,作用是将外设送来的数据锁存到 8255 的输入端口。

Page 20: 第七章 输入输出及其接口芯片

② PC5 —IBF(input buffer full) 输入缓冲器满信号(高电平有效)

由 8255 发出,表示外设送来的数据已进入输入端口。当外设送来的数据送入输入端口后, 8255 自动发出 IBF 。

③PC3 — INTR 中断申请信号; 8255 发出,用来向 CPU 发出中断申请。 STB 、 IBF 、 INTEA 均为1时, 8255 发出 INTR 。

RD 信号的下降沿清除 INTR 。

Page 21: 第七章 输入输出及其接口芯片

PA7~PA0

PC4PC5

PC3

INTEAPC4

与门IBFSTB

INTR

D7~D0

Page 22: 第七章 输入输出及其接口芯片

• 在 A 口方式 1 输入,中断允许控制信号 INTEA ( PC4 )作为 8255 内部控制信号。其作用是控制 8255 的中断申请信号 INTR 是否允许发出。

• 通过对 C 口相应位的置位 / 复位来设置允许或不允许发出中断信号。

2 )端口 B 工作在方式 1 输入 时,应用 PC0 、PC1 、 PC2 作为联络信号。

PC2 — STB (strobe)

PC1 —IBF(input buffer full)

PC0 — INTR ( interrupt ) 中断允许控制信号 INTEB 由内部信号 PC2

的置位或复位设置决定。

Page 23: 第七章 输入输出及其接口芯片

PB7~PB0

PC2

PC1

PC0

INTEBPC2

与门RD

D7~D0

IBF

STB

INTRB

Page 24: 第七章 输入输出及其接口芯片

举例: 8255 端口地址为 10H~13H ,设 A 口工作于方式 1 输入,采用中断方式传送数据, B口工作于方式 0 输出, C 口工作于输出方式。对该 8255 进行初始化编程;并将 CL 中的数据通过 B 口输出,用 PC0 高电平控制输出设备的接收。

1 )确定控制字工作方式控制字为: 1011 0000B=0B0H

对 PC4 置位控制字为: 0000 1001B=09H

对 PC0 置位控制字为: 0000 0001B=01H

Page 25: 第七章 输入输出及其接口芯片

2 )初始化编程 MOV AL , 0B0H ;工作方式控制字 OUT 13H , AL ;赋给 8255 控制字寄存器

MOV AL , 09H ; OUT 13H , AL ;对 PC4 置位,允许 8255 向 CPU 发

中断 MOV AL , CL OUT 11H , AL ;将 CL中的数据发送到 B口 MOV AL , 01H OUT 13H , AL ; PC0置位,以控制外设接收数

Page 26: 第七章 输入输出及其接口芯片

3 )端口 A 工作在方式 1 输出时,应用 PC3 、 PC6 、 PC7 作为联络信号。

① PC6 — ACK 外设响应信号。 由外设发出,送给 8255 。作用是通知 825

5 输出端口的数据已被外设取走,可以传送下一个数据。

② PC7 — OBF (output buffer full) 输出缓冲器满信号

CPU 将数据送至 8255 输出缓冲器后, 8255自动发出此信号。表示数据已进入 8255 输出端口,通知外设把数据取走。

Page 27: 第七章 输入输出及其接口芯片

③ PC3 — INTR 中断申请信号 当 OBF 、 ACK 、 INTEA 均为1时, 8255A

自动发出 INTR 。 中断允许控制信号 INTEA 由内部信号 PC6

的置位或复位设置决定。

PA7~PA0

PC6

PC7

PC3

INTEAPC6

与门

OBFA

ACKA

INTRAWR

D7~D0

Page 28: 第七章 输入输出及其接口芯片

4 )端口 A 工作在方式 2 时,应用 PC3 、 PC4 、 PC5 、 PC6 、 PC7 作为联络信号,功能同上。

Page 29: 第七章 输入输出及其接口芯片

例:以 8255A 作为接口,采集一组开关 S7~ S0 的状态,然后它通过一组发光二极管 LED7—LED0 显示出来, (Si 闭合.对应 LEDi 亮; Si断开,对应 LEDi 灭 ),电路连接如图所示。已知 8255A 的 A、 B两组均工作在方式 0(1) 写出 8255A 四个端口地址;(2) 写出 8255A 的工作方式控制字;(3) 编写给定功能的汇编语言指令程序。

Page 30: 第七章 输入输出及其接口芯片
Page 31: 第七章 输入输出及其接口芯片

设 8255A 的 A口、 B口、 C口和控制口地址分别为:000H , 001H , 002H , 003H 。8255A 的工作方式控制字为: 1000X01XB

程序如下: MOV AL , 1000X01XB

MOV DX , 003H OUT DX , AL

DEC DXDEC DX

cycle: IN AL , DXNOT ALDEC DX

OUT DX , ALInc DX

jmp cycle