Download presentation
Presentation is loading. Please wait.
1
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线
2
7.1 I/O接口 一、接口和接口技术 接口 指CPU、存储器、外设之间通过总线进行连接的电路部分, 是CPU与外界进行信息交换的中转站。
实现双方高效、可靠地交换信息的一门技术, 是软件、硬件结合的体现,是微机应用的关键。
3
为什么要用接口电路? 外设是用来实现人机交互的一些机电设备。 外设处理信息的类型、速度、信号电平、通信方式与CPU不匹配, 不能直接挂在总线上,必须通过接口和系统相连。
4
两点说明: 1、CPU使用的信号是TTL电平,而外设大多是复杂的机电设备,往往不能用TTL电平驱动,一般都有自己的电源系统和信号电平。
2、I/O接口电路必须具有的基本功能是:输入有缓冲功能(避免多个外设引起总线竞争);输出有锁存功能(解决快速CUP和慢速外设之间的不协调问题)。 如下图所示
5
CPU 在总线结构的微机系统中, 任一时刻只能有一个设备利用总线进行数据传送, 输入设备的数据线应通过三态门与系统相连。 总线 输入设备1
EN1 EN2 输入设备2 当设备1与CPU进行数据传送时,设备2的数据信号应处于三态 当设备2与CPU进行数据传送时,设备1的数据信号应处于三态
6
. CPU 总线 输入设备1 输入设备2 输入设备3 多个输入设备连在总线上时, 只有进行数据传送设备的数据线处于工作状态,
而未进行数据传送设备的数据线应处于高阻态。 总线 CPU 输入设备1 EN1 EN2 输入设备2 输入设备3 EN3 .
7
总线 CPU 在总线结构的微机系统中, CPU送出的数据以广播的形式在数据线上传出。 输出设备1 输出设备2 输出设备3 输出设备4
1. 数据传送给哪个输出设备? 2. CPU要利用总线不停的传送数据, 总线上的数据变化快, 如何使慢速设备有足够的时间处理数据?
8
总线 CPU 输出设备利用锁存器接受CPU输出的数据。 锁存器1 输出设备1 CP1 锁存器2 输出设备2 CP2 锁存器3 输出设备3
1. 使某输出设备锁存器的控制端处于触发状态,数据通过该锁存器。 2. 当触发信号消失,数据锁存在锁存器中,外设侧数据不随总线侧数据的变化而变化, 使 慢速的外设有足够的时间处理数据。
9
CPU 地址总线 AB 输 I/O 输 存 I/O 出 接 入 储 接 设 设 器 口 口 备 备 数据总线 DB 控制总线 CB
10
二、简单的输入输出接口芯片 最常用的简单的输入输出接口芯片主要有缓冲器和锁存器 1、缓冲器74LS244 和 74LS245
11
功能表 单向三态驱动器74LS244 1G A3~0 Y3~0 0 0 0 0 1 1 1 0 高阻 1 1 高阻 1G 2G
高阻 高阻 2G A7~ Y7~4 单向三态驱动器74LS244 A3~A0 Y3~Y0 1G 2G A7~A4 Y7~Y4 含两个4位三态驱动器
12
双向三态驱动器74LS245 功能表 G DIR 0 0 A Y 0 1 A Y G 1 0 高阻 DIR 1 1 高阻 A7~A0
Y7~Y0 A7~A0 功能表 G DIR A Y A Y 高阻 高阻
13
三态锁存器74LS373(具有三态和锁存功能的驱动器)
功能表 D0 Q0 D7 Q7 OE G OE G D Q 其它 × Q0(不变) × × 高阻 OE 高阻(三态)控制 G 触发(锁存)控制 * 74LS273是不含三态门的8D锁存器
14
三、 输入/输出端口及其寻址方式 1 、 CPU与外部设备之间的接口信息
数据端口(双向) 状态端口(输入) 命令(控制)端口(输出) 数据信息是CPU和I/O设备交换的基本信息,通常是8位或16位。 状态信息反映了当前外设的工作状态,它是由外设通过接口送入CPU的。 控制信息是CPU通过接口送给外设的。CPU通过发送控制信息控制外设的工作。外设种类不同,控制信息也各不相同。
15
简单的外设接口
16
总结: 每一个I/O端口对应一个I/O地址,CPU由端口地址区分I/O端口,从硬件角度看,端口可以理解为寄存器。 在I/O操作中,主要有三类信息:数据信息、状态信息和控制信息,分别存放于相应的端口。 CPU对外设输入/输出的控制,是通过对接口电路中各I/O端口的读/写操作完成的。
17
2、 输入/输出端口的寻址方式 在微型计算机系统中,端口的编址通常有两种不同的方式,一是I/O端口与存储器单元统一编址;二是I/O端口独立编址。 1). I/O端口与存储器单元统一编址 该方式也称为存储器映像(Memory Mapped)I/O方式。 把每个I/O端口都当作一个存储器单元看待,I/O端口与存储器单元在同一个地址空间中进行统一编址。 常在整个地址空间中划分出一小块连续的地址分配给I/O端口。被分配给I/O端口的地址,存储器不能再使用。如下页图所示。
18
内存映射与I/O映射编址 (a) 统一编址;(b) 独立编址
19
统一编址方式的优点: 简化指令系统的设计,I/O控制信号与存储器的控制信号共用,给应用带来极大的方便。 访问存储器的指令种类多、寻址方式多样化。对I/O设备可以使用功能强大且像访问存储器那样的指令,带来了很大的灵活性。 统一编址方式的缺点: 外设占用了一部分内存地址空间,减少了内存可用的地址范围。 从指令上不易区分当前指令是对内存进行操作还是对外设进行操作。
20
2). I/O端口独立编址(I/O Mapped)
I/O端口地址区域和存储器地址区域,分别各自独立编址。访问I/O端口使用专门的I/O指令,而访问内存则使用MOV等指令。 CPU在寻址内存和外设时,使用不同的控制信号来区分当前是对内存操作还是对I/O操作。如8086最小系统的M/IO信号。
21
单独编址的优点: I/O端口不占用存储器的地址空间,使用专门的I/O指令对端口进行访问,具有I/O指令短、执行速度快、译码简单。 单独编址的缺点: 专门的I/O指令功能相对较弱,一般只有传送功能,而没有运算功能。 Intel 80x86 CPU中,I/O端口和存储器是单独编址的,采用专用的输入/输出指令访问端口。
22
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位地址。
23
用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为两字节地址信息。
24
四、 CPU与外设间的数据传送方式 CPU与外设的工作速度不一致,如何使两者高效、可靠地进行数据传送,是本节讨论的问题。 1. 程序控制方式
(1) 无条件传送(同步传送方式) 无条件传送是一种最简单的输入/输出控制方法,一般用于控制CPU与低速(或不需查询工作状态)的 I/O接口之间的信息交换,例如,开关、扬声器。
25
实现方法: 特点: CPU不查询外设工作状态, 与外设速度的匹配通过在软件上延时完成, 在程序中直接用I/O指令,完成与外设的数据传送。
2. 软硬件十分简单。
26
例:简单输入端口,输入按键状态。
27
例:简单输出端口,控制LED显示器的点燃和熄灭。
28
实现方法: 特点: (2) 条件传送 (查询传送方式) 在与外设进行传送数据前,CPU先查询外设状态,
当外设准备好后,才执行I/O指令,实现数据传送。 特点: 1. CPU通过不断查询外设状态,实现与外设的速度匹配,能较好地协调外设与CPU之间的定时关系。 2. CPU需要不断查询标志位的状态,这将占用CPU较多的时间,工作效率低。
29
条件传送示意图
30
查询输入接口电路(组成) 输 入 装 置 地址 译码
IN AL, DATA_PORT 输 入 装 置 锁 存 器 D R Q 三态 缓冲 地址 译码 AB 数据端口 状态端口 D7 数据 选通 DB Ready RD M/ IO +5V IN AL, STATUS_PORT 工作原理
31
查询输入的编程 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,0 MOV CX,COUNT_1 READ_S1: IN AL, STATUS_PORT TEST AL,80H JZ READ_S1 IN AL, DATA_PORT MOV [BX],AL INC BX LOOP READ_S1 : 查询输入的编程
32
查询输出接口电路(组成) 输 出 装 置 工作原理 OUT DATA_PORT, AL 锁 存 器 Q D R 三态 缓冲 地址 译码 AB
数据端口 状态端口 D7 数据 启动 DB ACK Busy VCC M/IO RD WR IN AL, STATUS_PORT
33
查询输出的编程 1、上一数据处理结束,ACK的负跳变(恢复)使D触发器复“0” 输出装置,启动信号=0(恢复)缓冲器输出 Busy=0;
2、查询状态信号,执行 指令 IN AL,状态口; Busy(bit7) AL 3、若Busy =0,执行指令 OUT 数据口,AL; 输出数据AL DB 锁存器 输出装置; D触发器置1,启动输出装置Busy=1,禁止输出 设状态口地址: STATUS_PORT 设数据口地址: DATA_PORT 查询式输出数据的程序段为: MOV CX,COUNT_2 READ_S2: IN AL, STATUS_PORT TEST AL,80H JNZ READ_S2 MOV AL,xxH OUT DATA_PORT,AL LOOP READ_S2 :
34
2. 中断控制方式 查询方式的缺点除了占用CPU较多的工作时间外,还难以满足实时控制系统对I/O工作的要求。 查询方式中,CPU处于主动地位,而外设接口处于消极被查询的被动地位。 实时系统中,多个外设要求CPU为它服务是随机的,且希望CPU以最快的速度响应其请求。 因此要求系统中的外设,具有主动申请CPU为其服务的权利。 * 提出中断控制方式
35
中断控制实现方法: 1. 当外设准备好,向CPU发出中断请求;
36
中断方式下 CPU执行程序流程 外 设 中断服务程序 发申请 发申请 中断服务程序
37
中断传送方式的特点: CPU和外设大部分时间处在并行工作状态,只在CPU响应外设的中断申请后,进入数据传送的过程。
38
3. 直接存储器存取(DMA)控制方式 采用中断方式传送数据,仍需要CPU执行程序才能完成。 *中断服务程序需要有保护现场和恢复现场的操作 *I/O操作都是通过CPU来进行的。 对于一些高速外设,如高速磁盘控制器,中断方式往往满足不了它们的需要。 为此,提出了数据在I/O接口与存储器之间的传送,不经CPU的干预,而是在专用硬件电路的控制下直接传送。这种方法称为直接存储器存取(Direct Memory Access,缩写为DMA)。 此时,数据传送速度仅受存储器的存取速度和外部设备传输特性的限制。
39
实现方法: * 专用DMA控制器(DMAC)接口电路如Intel公司的8257、8237等。
2. 当外设需传送数据时,通过 DMAC向CPU发出总线请求信号HOLD,申请占用总线 ; 3. CPU发出总线响应信号 HLDA ,释放总线; 4. DMAC接管总线,控制外设、内存之间直接数据传送。 * 注意:AEN信号
40
DMA 传送方式过程 CPU DMAC 内存 外设 总线 响应 请求
41
1. 外设和内存之间,直接进行数据传送,不通过CPU。
DMA传送方式的特点: 1. 外设和内存之间,直接进行数据传送,不通过CPU。 2. 进入DMA方式时不必保护CPU的现场。 3.传送数据方式由硬件代替软件,因而提高了数据传送的速度,缩短了数据传送的响应时间,传送效率高。适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。 4. 电路结构复杂,硬件开销较大,提高了系统的成本。因此,只要CPU来得及处理的数据传送,就不必采用DMA方式。
Similar presentations