微机原理(第六章 输入输出控制)

上传人:ji****72 文档编号:48550428 上传时间:2018-07-17 格式:PPT 页数:155 大小:1.81MB
返回 下载 相关 举报
微机原理(第六章 输入输出控制)_第1页
第1页 / 共155页
微机原理(第六章 输入输出控制)_第2页
第2页 / 共155页
微机原理(第六章 输入输出控制)_第3页
第3页 / 共155页
微机原理(第六章 输入输出控制)_第4页
第4页 / 共155页
微机原理(第六章 输入输出控制)_第5页
第5页 / 共155页
点击查看更多>>
资源描述

《微机原理(第六章 输入输出控制)》由会员分享,可在线阅读,更多相关《微机原理(第六章 输入输出控制)(155页珍藏版)》请在金锄头文库上搜索。

1、南京理工大学自动化学院2010年11月 *Date1输入输出操作对一台计算机来讲是必不可少的。由于外设的工作速度相差很大,对接口的要求也不尽相同,因此,输入输出数据的传输控制方式对CPU来讲就是一个较复杂的问题,应根据不同的外设要求选择不同的传输控制方式以满足数据传输的要求。6.1 输入/输出数据的传输控制方式CPU与外设之间传输数据的控制方式有三种:程序方式中断方式DMA方式Date2程序方式就是指用程序来控制进行信息传输的方式。很显然,这是一种软件控制方式。6.1.1 程序方式根据程序控制的方法不同,又可分为:无条件传送方式条件传送方式(查询方式) Date31无条件传送方式 在CPU与慢

2、速变化的设备交换数据时,可以 认为它们总是处于“就绪”状态,随时可以进 行数据传送,这就是无条件传送,或称立即传 送、同步传送 适合于简单设备,如LED数码管、按键或按 纽及拨码开关等 无条件传送的接口和操作均十分简单 这种传送有前提:外设必须随时就绪Date4无条件传送:输入示例MOV DX, 160H IN AL, DX输入接口通常采用三态缓冲器如:74LS244等当地址译码选择和I/O读信号 同时有效时打开三态缓冲器外设数据准备好外设数据送上数据总线Date5MOV DX, 160HIN AL, DX74LS244+5V10k8G1 G2数据总线CS RD拨码开关直接读取按键则需消颤去抖

3、释放双四位单向缓冲器8位拨码开关上拉电阻Date6无条件传送:输出示例MOV DX, 160H MOV AL, BX OUT DX, AL输出接口通常采用数据锁存器如:74LS273,373等CPU把数据输出到接口的数据锁存器外设从接口接收数据Date7MOV DX, 160H MOV AL, BX OUT DX, AL+5V74LS373300 x 8LE OE数据总线CS WR共阳a bcdefg.hh g f e d c b a十几毫安电流通常用于驱动发光二极管 状态指示灯或八段数码管限流电阻Date8;显示数字2 MOV DX, 160H MOV AL, 5BH OUT DX, AL7

4、4LS373300 x 8LE OE数据总线CS WR共阴a bcdefg.h0 1 0 1 1 0 1 1GNDh g f e d c b a Date9无条件传送:输入输出接口K7K1K0+5VD0D7A0A15CLK LS06 反相 驱动器LS273 8D 锁存器LS244 三态 缓冲器8000H译码+5VLED0LED7GIOWIORnext:mov dx,8000h ;DX指向数据端口in al,dx ;从输入端口读开关状态 not al ;反相out dx,al;送输出端口显示call delay ;调子程序延时jmp next;重复从输入口读入开关状态,从输出口显示开关状态输入和

5、输出占用同一端口地址Date102条件传送方式 CPU需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况 下(就绪)实现数据输入或输出。 对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将 优先进行数据交换。 查询传送的特点是:工作可靠,适用 面宽,但传送效率低。Date111)查询传送的两个环节 查询环节寻址状态口 读取状态寄存器的标志位 若不就绪就继续查询,直至就 绪 传送环节寻址数据口 是输入,通过输入指令从数据 端口读入数据 是输出,通过输出指令向数据 端口输出数据输入状态就绪?数据交换YNDate122)查询输入接口IOR +5V8D 锁存器8位 三态

6、缓冲器译码1位 三态 缓冲器RQA0A158000H8001HD0D7D0D输入 设备IORSTBa.输入设备准备好数据后送上端口数据线add.如满则从数据端口8001H读取数据同时复位满标志cc.CPU通过读取状态端口8000H查询满标志bb.外设发出STB*,将数据锁存并置输入锁存器满标志对应外设至少应有两个端口地址状态端口 数据端口1mov dx,8000h;DX指向状态端口status:in al,dx;读状态端口test al,01h;测试标志位D0jz status;D00,未就绪,继续查询inc dx;D01,就绪,DX指向数据端口in al,dx;从数据端口输入数据Date13

7、8D 锁存器译码1位 三态 缓冲器RQA0A158000H8001HD0D7D7D+5V输出 设备ACKIOWIOR03)查询输出接口CPU读取状态端口8000H查询输出数据锁存器是否“空” 若空则向输出数据锁存器输出一个数据,同时将输出数据锁存器标志置为满当外设不忙时,将数据取走,同时发ACK*将“满”标志复位 。1mov dx,8000h;DX指向状态端口 status:in al,dx;读取状态端口的状态数据test al,80h;测试标志位D7jnz status;D71,未就绪,继续查询inc dx;D70,就绪,DX指向数据端口mov al,buf;变量buf送ALout dx,a

8、l;将数据输出给数据端口Date143)优先级问题当系统较大时,CPU需对多台设备进行查询服务,就出现了设备的优先级的问题,即究竟先为哪台设备服务。 为了保证每台设备都有被查询服务的可能,系统可以采用轮流查询的方法来解决。先查询的设备具有较高的优先级,可以得到较早的服务,而后查询到的设备则具有较低的优先级。 Date156.1.2 中断方式断点主程序中断服务程序中断请求对外设 进行处理继续执行返回断点 CPU在执行程 序中,被内部或 外部的事件所打 断,转去执行一 段预先安排好的 中断服务程序; 服务结束后,又 返回原来的断点 ,继续执行原来 的程序Date161.中断传送与接口 中断传送是一

9、种效率更高的程序传送方式 进行传送的中断服务程序是预先设计好的 中断请求是外设随机向CPU提出的 CPU对请求的检测是有规律的:一般是在每条指 令的最后一个时钟周期采样中断请求输入引脚加入中断系统以后,CPU不需花大量的时间去查询 外设的工作状态,只需根据外设的中断请求,进行 中断响应,并能正确中断返回就行了。CPU与外设 处在并行工作的情况,大大提高了CPU的工作效率 Date17(1)中断输入接口aa.输入设备准备好数据后送上端口数据线bb.外设发出STB*,将数据锁存并置位中断请求 触发器cc.当中断允许时向CPU提出中断请求dd.CPU响应中断回INTA*,获取中断向量号ee.CPU执

10、行中断服务 程序读取数据同时 清除中断请求11D0D7+5V8D 锁存器8位 三态 缓冲器三态缓冲器RQ译码8001H中断向量号D0D7INTRD输入 设备中断允许触发器A0A15中断请求触发器IORINTASTB0Date18(2)中断工作过程n中断请求n中断响应n关中断n断点保护n中断识别n现场保护n中断服务n恢复现场n开中断n中断返回中断服务是进行数据交换的实质性环节Date19 (1) 中断请求 (2) 中断响应 (3) 关中断 (4) 断点保护 (5) 中断源识别 (6) 现场保护 (7) 中断服务 (8) 恢复现场 (9) 开中断 (10) 中断返回CPU完成中断服务在每个指令周

11、期的最后一个T 状态采样INTR 若有效且IF=1 则进入中断响 应周期在中断响应周期CPU完成在中断服务程序CPU完成Date20中断源的识别2.中断优先权问题1:系统有多个中断请求, CPU如何识别中断源?解答1:向量中断 解答2:中断查询系统设计者事先根据轻重缓急,给每个中断源 确定的优先服务的级别-中断优先权Date21(1)中断查询接口A0A15锁 存 器INTR三态 缓冲器译码8001HD0D7中断A 中断B 中断CIOR多个中断源通过同一引脚 向CPU申请中断CPU响应中断后进入中断服务程序, 首先读取中断请求状态口,依次查 询,先查到的将首先得到服务。中断请求寄存器中断源有中断

12、请求 置位中断请求寄存器Date22中断查询软件查询法只需有简单的硬件电路。可以将多台设备的中断请求信号相或作为中断请求发向CPU,当CPU进入中断服务子程序后首先读取中断请求寄存器,然后用逐位查询的方式来确定哪个中断源提出了中断请求,并提供 相应的服务。 Date23中断优先权排队(2)中断优先权问题2:有多个中断同时请求,CPU如何应对?解答1:链式优先权排队电路解答2:优先权编码电路Date24中断嵌套 CPU正在执行低优先级的服务程序,又有高优先问题3:中断处理过程中,又有中断提出请求,怎么办?解答1:链式优先权排队电路解答2:优先权编码电路Date25当CPU正在为一个中断源服务时,

13、又有一个高优先级 的中断请求打断当前的中断服务,从而CPU进入一个 新的中断服务的情况。Date26(3)链式优先权排队电路D0D7INTR每个中断源都有一个中断请求 触发器和一个中断矢量寄存器将所有的中断 源排成一个链 。各中断源在 链中的前后顺 序是根据中断 源优先级别的 高低来排列。 排在链前面的 优先级最高。 abcde若中断源A有中断请求则对应触发器输出 为1,同时封锁与门A2、B2、C2、D2 通过或门向CPU提出中断请求CPU响应中断回INTA*获得中断源A的中断向量 由于与门A2被封锁所以后面 的中断向量不会送出若中断源A没有 中断请求则对 应触发器输出 为0, 与门A2开 放

14、中断向量ADate27可编程中断控制器作为专用的中断优先权管理芯片,可以接收多级中断请求,并对多级中断 请求的优先权进行排队,从中选出级别最高的中 断请求,将其传给CPU。 可编程中断控制器设有中断屏蔽字寄存器,用户可以通过编程设置中断屏蔽字,从而改变原有的中断优先级。中断控制器还支持中断的嵌套。中断的嵌套是指,当CPU正在为一个中断源服务时,又有一个高优先级的中断请求打断当前的中断服务,从而CPU进入一个新的中断服务的情况。 (4)专用硬件方式Date28系统中采用可编程中断控制器以后,硬件的连线也发生了改变。这时,CPU的INT和引脚不再与中断接口电路相连,而是与中断控制器相连,来自外设的

15、中断请求信号通过中断控制器的中断请求输入引脚IRi进入中断控制器。CPU发出信号以后,由中断控制器将送出的级别最高的中断请求的中断类型码送出,使CPU可以转向相应的中断服务子程序。图6-11 中断控制器的系统连接Date29(5)中断优先权编码电路正在服务的中断源编码当CPU正在执行中断服务程序时,正在服务的中断 源的优先权编码存于优先权寄存器,比较器失效 信号为“0”,封锁与门2若有新中断源提出请求其优先权编码与优先权寄存器比较,若比其少则比较器输出为“1”经与门2向CPU申请中断CPU执行主程序时,优 先权寄存器各位为0, 比较器失效信号输出 为“1”中断请求经与 门2向CPU申请中断0 0 0 0 0 0 0 1中断请求0正在服务 优先权寄存器B2B1B0=000中断控制器8259A中断服务寄存器Date30中断方式的工作是通过中断源发中断请求信号进行联系的。中断请求中断判优中断响应中断服务中断返回中断的工作过程可分为五大步骤:Date31DMA即存储器直接存取,外部设备利用专门的接口电路直接和存储器进行高速数 据传送,不需经过CPU,不必进行现场保护 等一系列额外操作,数据传输的速度基本 上取决于外

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号