第 七 章 输入输出接口

44
第 第 第 第第第第第第 第 第 第 第第第第第第 第第 第第

Upload: cynthia-woodward

Post on 01-Jan-2016

103 views

Category:

Documents


10 download

DESCRIPTION

第 七 章 输入输出接口. 主讲:刘英. 本章主要内容. 7.1 I/O 接口概述 7.2 I/O 端口的编址方式 7.3 I/O 端口地址的译码 7.4 输入 / 输出传送方式. 7.1 I/O 接口概述. 内容 I/O 接口概述 I/O 接口的典型结构. 7.1.1 I/O 接口概述. 7.1.1 I/O 接口概述. 为什么要接口电路 ? 微机的外部设备多种多样 外部设备 数据格式、工作速度差别很大 外设 不能 与 CPU 直接 相连,必须经过中间电路再与系统相连,这部分电路被称为 I/O 接口 电路。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 七 章  输入输出接口

第 七 章 输入输出接口第 七 章 输入输出接口

主讲:刘英

Page 2: 第 七 章  输入输出接口

本章主要内容本章主要内容7.1 I/O 接口概述7.2 I/O 端口的编址方式7.3 I/O 端口地址的译码7.4 输入 / 输出传送方式

Page 3: 第 七 章  输入输出接口

7.1 I/O7.1 I/O 接口概述接口概述

内容内容I/O 接口概述I/O 接口的典型结构

Page 4: 第 七 章  输入输出接口

7.1.1 I/O7.1.1 I/O 接口概述接口概述

为什么要接口电路 ?微机的外部设备多种多样外部设备数据格式、工作速度差别很大外设不能与 CPU 直接相连,必须经过中间电路

再与系统相连,这部分电路被称为 I/O 接口电路。

7.1.1 I/O7.1.1 I/O 接口概述接口概述

Page 5: 第 七 章  输入输出接口

什么是 I/O 接口(电路)?I/O 接口是位于系统与外设间、用来协助完成数

据传送和控制任务的逻辑电路,接口就是 CPU与外设的连接部件。

PC 机系统板的可编程接口芯片、 I/O 总线槽的电路板(适配器)都是接口电路

CPUCPUCPUCPU 接口接口电路电路

I/OI/O

设备设备

接口在CPU 与外设之

7.1.1 I/O7.1.1 I/O 接口概述接口概述

Page 6: 第 七 章  输入输出接口

I/O 接口的主要功能?对传送数据提供缓冲、隔离和寄存(或锁

存)对信号的形式和数据的格式进行转换对 I/O 端口进行寻址与 CPU 和 I/O 设备进行联络

7.1.1 I/O7.1.1 I/O 接口概述接口概述

Page 7: 第 七 章  输入输出接口

CPU 和 I/O 设备间交换的信息数据信息:外设的数据

数字量:如用二进制表示的字母、数字、 BCD码和字符等模拟量:如电流、电压、流量、压力和温度等开关量:用一位二进制数来表示两个不同的状态

状态信息: I/O 设备的状态,对于输入设备来说,用 READY 信号来标明待输入的数据是否准备就绪;对于输出设备来说,用 BUSY 信号来表示输出设备是否处于空闲状态。

控制信息: CPU 的控制信息,如外设的启动信号和停止信号。

7.1.1 I/O7.1.1 I/O 接口概述接口概述

Page 8: 第 七 章  输入输出接口

主要接口芯片简单的输入 / 输出接口芯片

如锁存器 74LS373 、单向缓冲器 74LS244 、双向缓冲器(数据收发器) 74LS245 等。

可编程接口芯片:其功能可以由软件来选用控制。

如并行输入输出接口 8255 、串行输入输出接口 8250/8251 、定时器 / 计数器 8253 、中断控制器 8259 、DMA 控制器 8237 等。

7.1.1 I/O7.1.1 I/O 接口概述接口概述

Page 9: 第 七 章  输入输出接口

典型 I/O 接口电路通常包括数据寄存器、控制寄存器、状态寄存器、数据缓冲器和读 / 写控制单元。

7.1.2 I/O7.1.2 I/O 接口的典型结构接口的典型结构7.1.2 I/O7.1.2 I/O 接口的典型结构接口的典型结构

Page 10: 第 七 章  输入输出接口

数据寄存器是可读可写的寄存器,用来存放 CPU与 I/O 设备交换的数据信息。控制寄存器只能写不能读,用来存放 CPU 向外部设备发送的控制命令和工作方式命令字等。状态寄存器能读不能写,用来存放外部设备当前的工作状态信息,供 CPU 查询。数据缓冲器是 CPU 与 I/O 备数据信息交换的通道,它与 CPU 的数据总线 DB 连接。读 / 写控制逻辑单元与 CPU 的地址总线 AB 、控制总线 CB 连接,接收 CPU 发送到 I/O 接口的读 / 写控制信号和端口选择信号,选择接口内部的寄存器进行读 / 写操作。

7.1.2 I/O7.1.2 I/O 接口的典型结构接口的典型结构

Page 11: 第 七 章  输入输出接口

7.2 I/O7.2 I/O 端口的编址方式端口的编址方式概念接口是每个外设或每种外设与微处理器相连时

使用的电路。在接口电路中,数据信息、状态信息和控制信

息分别进入不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为 I/O 端口。

为便于 CPU 访问,每一个端口都被赋予一个地址,称为 I/O 端口地址。

Page 12: 第 七 章  输入输出接口

接口与端口接口上可以包含唯一的端口 , 也可以包含几个端口。对 CPU 程序来说,接口仅是一个笼统的概念,而接口

中的各个端口寄存器是 CPU 程序与接口打交道的具体对象。

端口的地址和端口的数据是程序唯一可见的内容,而接口和外设在程序中是无法直接反映出来的。

CPU 以访问端口的形式来访问接口,进而 CPU 通过这些端口与该接口所连接的外部设备进行信息交换。

Page 13: 第 七 章  输入输出接口

端口分为数据端口、状态端口和控制端口为传递的数据提供缓冲、锁存等功能的称为数据端口。用来保存设备和接口的状态信息,供 CPU 查询的称为

状态端口。用来保存 CPU 发出的命令,以控制接口与外部设备的执行动作的称为控制端口。

I/O 端口编址方式——两种方式将存储器与外设端口统一编址外设端口单独编址

Page 14: 第 七 章  输入输出接口

1. 统一编址把外设接口与内存统一进行

编址。各占据统一地址空间的不同部分。一般 I/O 端口占用存储空间的高地址端。

优点指令统一,灵活;访问控制信号统一,使用同一组的地址 / 控制信号。

缺点内存可用地址空间减小;程序 I/O 操作不清晰。

0

地址空间 (共 1MB)

内存地址(960KB)

I/O地址(64KB)

FFFFFH

EFFFFHF0000H

7.2.1 7.2.1 存储器统一编址存储器统一编址

Page 15: 第 七 章  输入输出接口

2. 独立编址外设地址空间和内存地址空间相互独立。优点:内存地址空间不受 I/O 编址的影响;使用 I/O指令,

程序清晰。缺点: I/O指令功能较弱,使用不同的读写控制信号。

00000H

内存地址空间

内存空间(1MB)

I/O空间(64KB)

FFFFH

FFFFFH

I/O地址空间0000H

7.2.1 I/O7.2.1 I/O 独立编址独立编址

Page 16: 第 七 章  输入输出接口

8088/8086 CPU 的 I/O 编址方式采用 I/O独立编址方式 (但地址线与存储器共用 )

地址线上的地址信号用 来区分: 时为 I/O 地址

I/O 操作只使用 20根地址线中的 16根: A15 ~ A0

可寻址的 I/O 端口数为 64K(65536) 个I/O 地址范围为 0 ~ FFFFH

IBM PC 只使用了 1024 个 I/O 地址 (0 ~ 3FFH)

IO/M=1

IO/M

Page 17: 第 七 章  输入输出接口

把端口地址放在 DX 寄存器中,对该端口进行读写,可寻址的端口号为 0~65535(FFFFH) IN AL, DX OUT DX, AL

端口地址小于或等于 FFH(255) ,可以用立即数表示端口地址。

IN AL, 42HOUT 43H, AL

Page 18: 第 七 章  输入输出接口

7.3 I/O7.3 I/O 端口地址的译码端口地址的译码I/O 地址的译码方法与存储器地址的译码方法类似常见的端口地址译码方法有三种:门电路组合法、译码器译码法、比较器比较法

Page 19: 第 七 章  输入输出接口

例:图中译码输出地址 3E7H

试分析将图中的 A1、 A0去掉后,译码输出的地址

A9

A8

A7

A6

A5

A2

A4

A3

AENA1

A0

74LS03

3E7H

1 、门电路组合法——单个地址或地址范围

0

11111100011

?

地址范围: 3E4H~ 3E7H

Page 20: 第 七 章  输入输出接口

2、译码器(以 74LS138为例)译码法——利用译码器芯片对地址进行译码

74LS138 的逻辑功能:若 3 个译码控制端均有效,即:G1= 1 , G2A= G2B= 0 时,8 个译码输出端( Y0~ Y7 )有且只有一个有效(低电平),有效引脚的编码由输入选择信号 C、 B 、 A决定;即: CBA= i,则 Yi= 0 ( i= 0~ 7 )

ABC

G2A

G2B

G1

Y0Y1Y2Y3Y4Y5Y6

Y7GND

Vcc

Page 21: 第 七 章  输入输出接口

Y0

Y1

Y2

Y3

Y4

Y5

Y6 Y7

A5

A6

A7

A8

A9

AEN

IOW

AB

C

G2B

G2A

G1

74LS138

DMA CS ( 8237 )INTR CS ( 8259 )T/C CS ( 8253 )PPI CS ( 8255 )WRTDMAPG(写 DMA页面寄存器)

WRTNMIREG(写 NMI屏蔽寄存器)

例: PC 机系统板上的端口地址译码电路

Page 22: 第 七 章  输入输出接口

系统板上各芯片的地址系统板上各芯片的地址8237: 000H~ 01FH8259: 020H~ 03FH8253: 040H~ 05FH8255: 060H~ 07FH写 DMA页面寄存器: 080H~09FH写 NMI屏蔽寄存器: 0A0H~ 0BFH保留: 0C0H~ 0DFH保留: OE0H~ 0FFH

Page 23: 第 七 章  输入输出接口

3 、比较器比较法原理:利用数码比较器把地址线上的地址同预定的地址相比较,进而确定地址是否相符。如果比较后两个地址相等,则表示地址总线送来的端口地址就是该端口的地址。74LS688比较器:当 P0~7≠Q0~7时, P=1,输出高电平。当 P0~7=Q0~7时, P=0,输出低电平。

Page 24: 第 七 章  输入输出接口

例:比较器比较法举例

101000

10

10100010

228H~22FH

Page 25: 第 七 章  输入输出接口

7.4 7.4 输入输入 // 输出传送方式输出传送方式无条件传送方式查询传送方式中断传送方式DMA 传送方式

Page 26: 第 七 章  输入输出接口

7.4.1 7.4.1 无条件传送方式无条件传送方式若程序员能够确信一个外设已经准备就绪,就不必查询外设的状态而进行信息传输,这称为无条件传送方式。适用于总是处于准备好状态的外设以下外设可采用无条件传送方式:开关发光器件 ( 如发光二极管、 7段数码管、灯泡等 )继电器步进电机优点:软件及接口硬件简单缺点:只适用于简单外设,适应范围较窄

Page 27: 第 七 章  输入输出接口

无条件传送输入的例子:

IOR

三态缓冲器OE

I/O

装置地址译码器

CS

D7 D0~

A15 A1~

A00160H

MOV DX, 160HIN AL, DX

无条件传送输出的例子:

地址译码器

数据锁存器A15

~A1

IOW

A0 CS0160H

输出设备

D7~D0

MOV DX, 160H

MOV AL, [BX]

OUT DX, AL

Page 28: 第 七 章  输入输出接口

7.4.2 7.4.2 查询传送方式查询传送方式CPU 通过执行程序不断读取并测试外设的状态,根据外设的工作状态控制外设的输入 / 输出,即查询方式。适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。在此传送方式下,一个数据传送到接口,其过程由 3个环节组成:CPU从接口中读取状态字CPU检测状态字的对应位是否满足“就绪”条件,如果不满足,则回到前一步读取状态字。

如执行输入方式时状态字表明外设已处于“就绪”状态,则传送数据。执行输出方式时状态字表明外设已处于“空闲”状态,则传送数据。

Page 29: 第 七 章  输入输出接口

查询传送方式特点通过查询实现 CPU 与外设间的同步联络CPU 和外设串行工作接口电路简单CPU 使用率不高,用 CPU 的等待实现与外设

的同步

Page 30: 第 七 章  输入输出接口

7.4.3 7.4.3 中断传送方式中断传送方式中断方式:当外设做好传送准备后,主动向CPU请求中断, CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU 可以执行其他程序,提高了 CPU 的利用率。中断过程大致分为:中断请求:由需要提供中断服务程序的设备提出;中断响应: CPU给设备发出一个中断应答信号;现场保护:保护执行中断服务程序前的各种信息;执行中断服务程序:完成特定的操作;退出中断服务程序:恢复现场。

Page 31: 第 七 章  输入输出接口

中断传送方式的特点中断传送是一种效率更高的程序传送方式进行传送的中断服务程序是预先设计好的中断请求是外设随机向 CPU 提出的CPU 对请求的检测是有规律的:一般是在

每条指令的最后一个时钟周期采样中断请求输入引脚

Page 32: 第 七 章  输入输出接口

7.4.4 DMA7.4.4 DMA 传送方式传送方式前面三种 I/O 方式都需要 CPU 作为中介: 外设 CPU 内存

两个含义:1)软件:外设与内存之间的数据传送是通过 CPU执行程序来完成的( PIO方式);2)硬件: I/O接口和存储器的读写控制信号、地址信号都是由 CPU发出的(总线由 CPU控制)。 缺点:程序的执行速度限定了传送的最大速度(约为几十 KB/秒)—解决: DMA 传输

Page 33: 第 七 章  输入输出接口

DMA : Direct Memory Access—— 直接存储器访问DMA 传输 : 外设 内存外设直接与存储器进行数据交换 , CPU 不再担当数据

传输的中介者;总线由 DMA 控制器( DMAC )进行控制( CPU 要放弃总线控制权),内存 / 外设的地址和读写控制信号均由 DMAC 提供。

优点:数据传输由 DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几 MB/秒)

Page 34: 第 七 章  输入输出接口

系统总线

CPU DMAC

存储器

外设接口

AENIOW

MEMW MEMR

IORMEMW MEMR IOW IORAEN

HO

LD

HL

DA

DR

QD

AC

K

③ ④

AENIOW IORMEMW MEMR

① 外设发出 DMA 请求② DMAC 向 CPU 申请总线③ CPU 完成当前总线周期后响应,并释放总线控制权④ DMAC 得到总线控制权,并发出 DMA 响应信号⑤ 由 DMAC 发出各种控制信号,控制外设与存储器之 间的数据传送⑥ 数据传送完后, DMAC 撤销 HOLD 信号⑦ CPU 释放 HLDA 信号,并重新控制总线

DMADMA 传送原理示意图 传送原理示意图

Page 35: 第 七 章  输入输出接口

DMA 控制器的工作过程1 )当外设准备好,可以进行 DMA 传送时,外设

向 DMA 控制器发出“ DMA 传送请求”信号( DRQ );

2 ) DMA 控制器收到请求后,向 CPU 发出“总线请求”信号 HOLD ,表示希望占用总线;

3 ) CPU 在完成当前总线周期后会立即对 HOLD信号进行响应。响应包括两个动作:一是 CPU 将数据总线、地址总线和相应的控制信号线均置为高阻态,由此放弃对总线的控制权。另一方面, CPU 向DMA 控制器发出“总线响应”信号( HLDA )。

4 ) DMA 控制器收到 HLDA 信号后,就开始控制总线,并向外设发出 DMA响应信号 DACK ;

Page 36: 第 七 章  输入输出接口

DMA 控制器的工作过程(续)5 ) DMA 控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送;

例如,向 I/O接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和 AEN信号,即可从外设向内存传送一个字节。

6 ) DMA 控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据传送完后, DMA 控制器就撤销发往 CPU 的 HOLD 信号。 CPU检测到 HOLD失效后,紧接着撤销 HLDA信号,并在下一时钟周期重新开始控制总线。

Page 37: 第 七 章  输入输出接口

几种数据传送方式特点?几种数据传送方式特点?无条件传送:慢速外设需与 CPU保持同步查询传送: 简单实用,效率较低,硬件开销小中断传送:外设主动,可与 CPU 并行工作,但中断服务保护现场等需要额外时间开销,需要硬件开销进行中断管理DMA 传送: DMAC 控制,外设直接和存储器进行数据传送,适合大量、快速数据传送,需要硬件开销

Page 38: 第 七 章  输入输出接口

19 1820 16 1517 14

2 31 5 64 7

1G 1A0 2Y3 1A1 2Y2 1A2

2A21Y1 1Y21Y0

2Y1

2A32GVcc

8

1A3

132A1

9

2Y0

10

GND

121Y3

112A0

74LS244 是一种三态输出缓冲器,无锁存功能。 74LS244 的内部驱动器分为两组,分别为 4 个输入端( 1A1~1A4 , 2A1~2A4 )、 4 个输出端( 1Y1~1Y4 , 2Y1~2Y4 ),他们分别由使能 1G# ,当 2G# 控制。当 1G#= 0 时,( 1Y1~1Y4 )与( 1A1~1A4 )的电平相同;当 2G#= 0 时,( 2Y1~2Y4 )与( 2A1~2A4 )的电平相同;当 1G#= 1 (或 2G#= 1 )时, 1Y1~1Y4

(或 2Y1~2Y4 )输出为高阻态。

7.5 7.5 简单简单 I/OI/O 接口芯片接口芯片

Page 39: 第 七 章  输入输出接口

19 1820 16 1517 14

2 31 5 64 7Êä³ö¿ØÖÆ1Q 1D 2D 2Q 3Q

6Q7Q 6D8D

3D

7D8QVcc

84D

135D

94Q

10GND

125Q

11ʹÄÜG

D QG

OE

DQG

OE

D QG

OE

DQG

OE

D QG

OE

DQG

OE

D QG

OE

DQG

OE

数据锁存器 74LS373使能端 G有效时(高电平有效),输入端( D 端)数据进入锁存器;输出允许端 OE#有效时(低电平有效),将锁存器中锁存的数据送到输出端 Q ; OE#=1 时输出为高阻态。

Page 40: 第 七 章  输入输出接口

74LS245 是一种三态输出数据收发器,当使能端 G#有效(低电平有效),且方向控制端 DIR=0 时,信号由 B 端向A 端传输;当使能端 G#=0,方向控制端 DIR=1时,信号由A端向 B端传输;当使能端 C#=1时, A、 B端均为高阻态。

19 1820 16 1517 14

2 31 5 64 7DIR A1 A2 A3 A4 A5

B4B3 B5B1

A6

B2Vcc

8A7

13B6

9A8

10GND

12B7

11B8G

Page 41: 第 七 章  输入输出接口

7.6 7.6 输入输入 // 输出接口综合应用例子输出接口综合应用例子根据开关状态在 7段数码管上显示数字或符号共阳极 7段数码管见教材 P191用 74LS273 作为输出接口,把数据送到 7段数码管

74LS273 的地址假设为 F0H

用 74LS244 作为输入口,读入开关 K0~ K3 的状态74LS244 的地址假设为 F1H

当开关的状态分别为 0000~ 1111 时,在 7段数码管上对应显示’ 0’~’ F’

(7段码表见下页 )

Page 42: 第 七 章  输入输出接口

符号 形状 7段码.gfedcba 符号 形状 7段码

.gfedcba

’0’ 00111111 ’8’ 01111111

’1’ 00000110 ’9’ 01100111

’2’ 01011011 ’A’ 01110111

’3’ 01001111 ’B’ 01111100

’4’ 01100110 ’C’ 00111001

’5’ 01101101 ’D’ 01011110

’6’ 01111101 ’E’ 01111001

’7’ 00000111 ’F’ 01110001

Page 43: 第 七 章  输入输出接口

O1 I1

O2 I2

O3 I3

O4 I4#E1

K0~K3

+5V

G

G2A

G2B

CBA

≥1

74LS244

D0 Q0

| Q1

D7 Q2

Q3

Q4

CP Q5

Q6

Q7

abcdefgDP

7406

8 个反相器

74LS273 Rx8

≥1

74LS138

D0~D7

IOW#

IOR#

Y0

Y1

写地址: F0H = 0000 0000 1111 0000读地址: F1H = 0000 0000 1111 0001

&

≥1

A7~A4

A15~A8

A3A2A1

A0

D0

D1

D2

D3

译码电路

Page 44: 第 七 章  输入输出接口

相应程序段如下:……

Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,67H,77H,7CH,39H,5EH,79H,71H……LEA BX, Seg7 ;取 7段码表基地址MOV AH, 0

GO: MOV DX, 0F1H ;开关接口的地址为 F1HIN AL, DX ;读入开关状态AND AL, 0FH ;保留低 4 位MOV SI, AX ;作为 7段码表的表内位移量

MOV AL, [ BX+SI];取 7段码MOV DX, 0F0H ; 7段数码管接口的地址为 F0HOUT DX, ALJMP GO