第 7 章 i/o 接口和总线

41
7.1 I/O 接接 7.2 接接 第7第 I/O 第第第第第

Upload: illiana-douglas

Post on 03-Jan-2016

101 views

Category:

Documents


1 download

DESCRIPTION

第 7 章 I/O 接口和总线. 7.1 I/O 接口 7.2 总线. 7.1 I/O 接口. 接口 指 CPU 、存储器、外设之间通过总线进行连接的电路部分, 是 CPU 与外界进行信息交换的中转站。. 接口技术 是研究 CPU 如何与外部世界进行最佳耦合与匹配, 实现双方高效、可靠地交换信息的一门技术, 是软件、硬件结合的体现,是微机应用的关键。. 一 、接口和接口技术. 为什么要用 接口 电路?. 外设是用来实现人机交互的一些机电设备。 外设处理信息的类型、速度、信号电平、通信方式与 CPU 不匹配 , - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 7 章    I/O 接口和总线

7.1 I/O接口

7.2 总线

第 7 章 I/O 接口和总线

Page 2: 第 7 章    I/O 接口和总线

一、接口和接口技术接口 指 CPU 、存储器、外设之间通过总线进行连接的电路部分,是 CPU 与外界进行信息交换的中转站。

接口技术 是研究 CPU 如何与外部世界进行最佳耦合与匹配,实现双方高效、可靠地交换信息的一门技术,是软件、硬件结合的体现,是微机应用的关键。

7.1 I/O 接口

Page 3: 第 7 章    I/O 接口和总线

CPU 接口作用 外设模/数转换(A/ D)

数/模转换(D/ A)模拟量信息类型 数字量

三态缓冲、锁存 数字量工作速度 快 解决传送方式 慢

串/并转换

并/串转换串行通信方式 并行

三态缓冲、锁存 并行

为什么要用接口电路?

外设是用来实现人机交互的一些机电设备。外设处理信息的类型、速度、信号电平、通信方式与 CPU 不匹配 , 不能直接挂在总线上,必须通过接口和系统相连。

Page 4: 第 7 章    I/O 接口和总线

1 、 CPU 使用的信号是 TTL 电平,而外设大多是复杂的机电设备,往往不能用 TTL 电平驱动,一般都有自己的电源系统和信号电平。

2、 I/O 接口电路必须具有的基本功能是:输入有缓冲功能(避免多个外设引起总线竞争);输出有锁存功能(解决快速 CUP 和慢速外设之间的不协调问题)。

如下图所示

两点说明:

Page 5: 第 7 章    I/O 接口和总线

在总线结构的微机系统中,• 任一时刻只能有一个设备利用总线进行数据传送,• 输入设备的数据线应通过三态门与系统相连。

当设备 1 与 CPU 进行数据传送时,设备 2 的数据信号应处于三态当设备 2 与 CPU 进行数据传送时,设备 1 的数据信号应处于三态

总线

CPU

输入设备 1

EN1

EN2

输入设备 2

Page 6: 第 7 章    I/O 接口和总线

多个输入设备连在总线上时,只有进行数据传送设备的数据线处于工作状态,而未进行数据传送设备的数据线应处于高阻态。

总线

CPU

输入设备 1

EN1

EN2

输入设备 2

输入设备 3

EN3 ...

Page 7: 第 7 章    I/O 接口和总线

在总线结构的微机系统中, CPU 送出的数据以广播的形式在数据线上传出。

CPU

总线 输出设备 1

输出设备 2

输出设备 3

输出设备 4

1. 数据传送给哪个输出设备?2. CPU 要利用总线不停的传送数据 , 总线上的数据变化快, 如何使慢速设备有足够的时间处理数据?

Page 8: 第 7 章    I/O 接口和总线

输出设备利用锁存器接受 CPU 输出的数据。

1. 使某输出设备锁存器的控制端处于触发状态,数据通过该锁存器。2. 当触发信号消失,数据锁存在锁存器中,外设侧数据不随总线侧数据的变化而变化, 使 慢速的外设有足够的时间处理数据。

CPU

总线

输出设备 1

CP1

锁存器 1

输出设备 2

CP2

锁存器 2

输出设备 3

CP3

锁存器 3

Page 9: 第 7 章    I/O 接口和总线

输入设备的 I/O 接口要起到三态门的作用 输出设备的 I/O 接口要起到锁存的作用

数据总线 DB

控制总线 CB

地址总线 AB

存储器

I/O接口

输入设备

I/O接口

输出设备

CPU

Page 10: 第 7 章    I/O 接口和总线

二、简单的输入输出接口芯片

最常用的简单的输入输出接口芯片主要有缓冲器和锁存器

1、缓冲器 74LS244 和 74LS245

2 、锁存器 74LS273 和 74LS373

Page 11: 第 7 章    I/O 接口和总线

1G

2G

Y3~Y0

Y7~Y4

A3~A0

A7~A4

含两个 4 位三态驱动器

功能表

1G A3~0 Y3~0

0 0 0 0 1 1 1 0 高阻 1 1 高阻

2G A7~4 Y7~4

0 0 0 0 1 1 1 0 高阻 1 1 高阻

单向三态驱动器 74LS244

Page 12: 第 7 章    I/O 接口和总线

GDIR

双向三态驱动器 74LS245

Y7~Y0A7~A0

功能表

G DIR 0 0 A Y 0 1 A Y 1 0 高阻 1 1 高阻

Page 13: 第 7 章    I/O 接口和总线

三态锁存器 74LS373 (具有三态和锁存功能的驱动器)

D0 Q0D7 Q7

OE

G

功能表

OE G D Q 0 1 0 0 0 1 1 1 0 其它 × Q0( 不变) 1 × × 高阻

OE 高阻(三态)控制

G 触发(锁存)控制

* 74LS273 是不含三态门的 8D 锁存器

Page 14: 第 7 章    I/O 接口和总线

数据信息是 CPU 和 I/O 设备交换的基本信息,通常是 8位或 16位。 状态信息反映了当前外设的工作状态,它是由外设通过接口送入 CPU 的。 控制信息是 CPU 通过接口送给外设的。 CPU 通过发送控制信息控制外设的工作。外设种类不同,控制信息也各不相同。

CPU 通过接口与外部设备连接,接口中有 :

数据端口 (双向 ) 状态端口 (输入 ) 命令(控制)端口(输出 )

三、 输入 / 输出端口及其寻址方式1 、 CPU 与外部设备之间的接口信息

Page 15: 第 7 章    I/O 接口和总线

Êý¾Ý¶Ë¿Ú

״̬¶Ë¿Ú

¿ØÖƶ˿Ú

CPU ÍâÉè

DB

AB

CB

I/O½Ó¿Ú Êý¾ÝÐÅÏ¢

״̬ÐÅÏ¢

¿ØÖÆÐÅÏ¢

简单的外设接口

Page 16: 第 7 章    I/O 接口和总线

每一个 I/O 端口对应一个 I/O 地址, CPU 由端口地址区分 I/O 端口,从硬件角度看,端口可以理解为寄存器。

在 I/O 操作中,主要有三类信息:数据信息、状态信息和控制信息,分别存放于相应的端口。

CPU 对外设输入 / 输出的控制,是通过对接口电路中各 I/O 端口的读 / 写操作完成的。

总结:

Page 17: 第 7 章    I/O 接口和总线

在微型计算机系统中,端口的编址通常有两种不同的方式,一是 I/O 端口与存储器单元统一编址;二是 I/O 端口独立编址。

1 ) . I/O 端口与存储器单元统一编址

该方式也称为存储器映像 (Memory Mapped)I/O 方式。

把每个 I/O 端口都当作一个存储器单元看待, I/O 端口与存储器单元在同一个地址空间中进行统一编址。

常在整个地址空间中划分出一小块连续的地址分配给 I/O端口。被分配给 I/O 端口的地址,存储器不能再使用。如下页图所示。

2 、 输入 / 输出端口的寻址方式

Page 18: 第 7 章    I/O 接口和总线

内存映射与 I/O 映射编址(a) 统一编址; (b) 独立编址

I/O¶Ë¿ÚN

I/O¶Ë¿Ú2

I/O¶Ë¿Ú1

I/O¶Ë¿Ú0

I/O¶Ë¿ÚN

I/O¶Ë¿Ú2

I/O¶Ë¿Ú1

I/O¶Ë¿Ú0

ÄÚ´æ¿Õ¼äFFFFFH

¹©I/O½Ó¿ÚʹÓÃ

000000H

I/O¿Õ¼ä

ϵͳ¸÷I/O¶Ë¿ÚÅäÖõØÖ·

¡

64 KB

(a)

ÄÚ´æ¿Õ¼äFFFFFH

00000H

1 MBFFFFH

0000H

I/O¿Õ¼ä

ϵͳ¸÷I/O¶Ë¿ÚÅäÖõØÖ·

¡

64 KB

(b)

Page 19: 第 7 章    I/O 接口和总线

统一编址方式的优点:

简化指令系统的设计, I/O 控制信号与存储器的控制信号共用,给应用带来极大的方便。

访问存储器的指令种类多、寻址方式多样化。对 I/O 设备可以使用功能强大且像访问存储器那样的指令,带来了很大的灵活性。

统一编址方式的缺点:

外设占用了一部分内存地址空间,减少了内存可用的地址范围。

从指令上不易区分当前指令是对内存进行操作还是对外设进行操作。

Page 20: 第 7 章    I/O 接口和总线

2 ) . I/O 端口独立编址 (I/O Mapped)

该方式也称为 I/O隔离编址或 I/O 指令寻址方式。

I/O 端口地址区域和存储器地址区域,分别各自独立编址。访问 I/O 端口使用专门的 I/O 指令,而访问内存则使用 MOV 等指令。

CPU 在寻址内存和外设时,使用不同的控制信号来区分当前是对内存操作还是对 I/O 操作。如 8086 最小系统的 M/IO 信号。

Page 21: 第 7 章    I/O 接口和总线

单独编址的优点:

I/O 端口不占用存储器的地址空间,使用专门的 I/O 指

令对端口进行访问,具有 I/O 指令短、执行速度快、译码简单。

单独编址的缺点:

专门的 I/O 指令功能相对较弱,一般只有传送功能,而

没有运算功能。

Intel 80x86 CPU 中, I/O 端口和存储器是单独编址的,

采用专用的输入 /输出指令访问端口。

Page 22: 第 7 章    I/O 接口和总线

3 ) . 输入 /输出指令

1) 8086/8088采用的 IN和 OUT 指令 I/O 指令可以采用 8位 (单字节 ) 或 16 位 (双字节 ) 地址两种寻址方式。用 8位端口地址,则最多可以有 256 个端口(端口地址号从 00H ~ FFH) ,并且是直接寻址 (直接端口寻址 )方式,指令格式如下:输入 : IN AX, Port ;从 Port端口输入 16位数据到 AX

IN AL , Port ;从 Port端口输入 8位数据到 AL输出 : OUT Port, AX ;从 AX输出 16位数据到 Port端口

OUT Port, AL ;从 AL 输出 8 位数据到 Port端口

* Port是一个单字节的 8位地址。

Page 23: 第 7 章    I/O 接口和总线

用 16 位端口地址,则最多可以有 64 K个端口 (端口地址号从 0000H ~ FFFFH) ,并且是间接寻址方式,即把端口地址放在 DX寄存器内 ( 间接端口寻址 )。其指令格式如下:

输入: MOV DX, XXXXH ; 16位地址

IN AX, DX ; 16位传送

或 IN AL , DX ; 8位传送

输出: MOV DX, XXXXH

OUT DX, AX ; 16位传送

或 OUT DX, AL ; 8位传送

* XXXXH为两字节地址信息。

Page 24: 第 7 章    I/O 接口和总线

(1) 无条件传送 (同步传送方式 )

无条件传送是一种最简单的输入 /输出控制方法,一般用于控制 CPU 与低速(或不需查询工作状态)的 I/O 接口之间的信息交换,例如,开关、扬声器。

四、 CPU 与外设间的数据传送方式

CPU 与外设的工作速度不一致,如何使两者高效、可靠地进行数据传送,是本节讨论的问题。

1. 程序控制方式

Page 25: 第 7 章    I/O 接口和总线

实现方法: CPU 不查询外设工作状态, 与外设速度的匹配通过在软件上延时完成, 在程序中直接用 I/O 指令,完成与外设的数据传送。

特点: 1. 适用于外设动作时间已知,在 CPU 与外设进行数据传送时,外设保证已准备好的情况。 2. 软硬件十分简单。

Page 26: 第 7 章    I/O 接口和总线

例:简单输入端口,输入按键状态。

Page 27: 第 7 章    I/O 接口和总线

例:简单输出端口,控制 LED 显示器的点燃和熄灭。

Page 28: 第 7 章    I/O 接口和总线

(2) 条件传送 (查询传送方式 )

实现方法: 在与外设进行传送数据前, CPU先查询外设状态, 当外设准备好后,才执行 I/O 指令,实现数据传送。

特点:1. CPU 通过不断查询外设状态,实现与外设的速度匹配,能较好地协调外设与 CPU 之间的定时关系。2. CPU需要不断查询标志位的状态,这将占用 CPU较多的时间,工作效率低。

Page 29: 第 7 章    I/O 接口和总线

条件传送示意图

¶ÁÈëÉ豸״̬

×¼±¸ºÃ£¿

´«ËÍÊý¾Ý

N

Y

Page 30: 第 7 章    I/O 接口和总线

查询输入接口电路(组成) IN AL , DATA_PORT

工作原理 IN AL , STATUS_PORT

输入装置

锁存器

D R Q

三态缓冲

三态缓冲

地址译码

AB

数据端口

状态端口

D7

数据

选通

DB

Ready

RD

M/ IO

RD

+5V

M/ IO

Page 31: 第 7 章    I/O 接口和总线

1 、数据准备好,选通信号输出正跳变将数据锁存器 D 触发器置 1 ,作为 Ready 信号, D7=1 。2 、查询状态信号,执行 IN AL ,状态口 ; Ready(bit7) AL 3 、若 Ready=1 ,执行 IN AL ,数据口 ; 输入数据 AL,D 触发器复位, Ready=0

设状态口地址: STATUS_PORT设数据口地址: DATA_PORT查询式输入数据的程序段为:

MOV BX,0MOV CX,COUNT_1

READ_S1: IN AL, STATUS_PORTTEST AL,80HJZ READ_S1IN AL, DATA_PORTMOV [BX],ALINC BXLOOP READ_S1:

查询输入的编程

Page 32: 第 7 章    I/O 接口和总线

IN AL , STATUS_PORT

OUT

DATA_PORT , AL 查询输出接口电路(组成)

工作原理

锁存器输

出装置

Q DR

三态缓冲

地址译码

器AB

数据端口

状态端口

D7

数据

启动

DB

ACKBusy

VCC

M/IO

RD

WR

M/IO

Page 33: 第 7 章    I/O 接口和总线

1 、上一数据处理结束, ACK 的负跳变 ( 恢复 ) 使 D 触发器复“ 0” 输出装置,启动信号= 0( 恢复 ) 缓冲器输出 Busy=0 ;2 、查询状态信号,执行 指令 IN AL ,状态口 ; Busy(bit7) AL3 、若 Busy =0 ,执行指令 OUT 数据口, AL; 输出数据 AL DB 锁存器 输出装置; D 触发器置 1 ,启动输出装置 Busy=1 ,禁止输出

设状态口地址: STATUS_PORT设数据口地址: DATA_PORT查询式输出数据的程序段为:

MOV CX,COUNT_2READ_S2: IN AL, STATUS_PORT

TEST AL,80HJNZ READ_S2MOV AL,xxHOUT DATA_PORT,AL LOOP READ_S2:

查询输出的编程

Page 34: 第 7 章    I/O 接口和总线

查询方式的缺点除了占用 CPU较多的工作时间外,还难以满足实时控制系统对 I/O 工作的要求。

查询方式中, CPU 处于主动地位,而外设接口处于消极被查询的被动地位。

实时系统中,多个外设要求 CPU 为它服务是随机的,且希望 CPU 以最快的速度响应其请求。

因此要求系统中的外设,具有主动申请 CPU 为其服务的权利。

* 提出中断控制方式

2. 中断控制方式

Page 35: 第 7 章    I/O 接口和总线

中断控制实现方法:

1. 当外设准备好,向 CPU 发出中断请求;

2. CPU执行完每一条指令后,都会去查询外部是否有中断请求,在满足响应中断的条件下,发出中断响应信号;

3. CPU暂停当前的程序,转去执行中断服务程序,完成与外设的数据传送;

4. CPU 从中断服务程序返回,继续执行被中断的程序。

* 8086/8088CPU 的中断结构灵活,功能很强。 (有关中断的详细讨论参见第 8章 )

Page 36: 第 7 章    I/O 接口和总线

中断服务程序发申请

中断服务程序发申请

中断方式下CPU执行程序流程

外设

Page 37: 第 7 章    I/O 接口和总线

中断传送方式的特点:

1. CPU 和外设大部分时间处在并行工作状态 ,只在 CPU响应外设的中断申请后,进入数据传送的过程。

2. 中断传送方式提高了 CPU 的效率。

Page 38: 第 7 章    I/O 接口和总线

采用中断方式传送数据,仍需要 CPU执行程序才能完成。 *中断服务程序需要有保护现场和恢复现场的操作 *I/O 操作都是通过 CPU 来进行的。

3. 直接存储器存取 (DMA) 控制方式

对于一些高速外设,如高速磁盘控制器,中断方式往往满足不了它们的需要。 为此,提出了数据在 I/O 接口与存储器之间的传送,不经CPU 的干预,而是在专用硬件电路的控制下直接传送。这种方法称为直接存储器存取 (Direct Memory Access,缩写为 DMA) 。 此时,数据传送速度仅受存储器的存取速度和外部设备传输特性的限制。

Page 39: 第 7 章    I/O 接口和总线

实现方法: 1. 由专用接口芯片 DMA控制器 (称 DMAC) 控制传送过程,

2. 当外设需传送数据时,通过 DMAC 向 CPU 发出总线请求信号 HOLD,申请占用总线 ;

3. CPU 发出总线响应信号 HLDA ,释放总线;

4. DMAC 接管总线,控制外设、内存之间直接数据传送。

* 注意: AEN信号

* 专用 DMA控制器 (DMAC) 接口电路如 Intel 公司的 8257 、 8237等。

Page 40: 第 7 章    I/O 接口和总线

DMA 传送方式过程

CPU

DMAC

内存

外设

总线响应

总线请求

Page 41: 第 7 章    I/O 接口和总线

DMA传送方式的特点: 1. 外设和内存之间,直接进行数据传送,不通过 CPU 。

2. 进入 DMA方式时不必保护 CPU 的现场。 3.传送数据方式由硬件代替软件,因而提高了数据传送的速度,缩短了数据传送的响应时间,传送效率高。适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。 4. 电路结构复杂,硬件开销较大,提高了系统的成本。因此,只要 CPU 来得及处理的数据传送,就不必采用 DMA方式。