您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 微机原理与汇编语言 第7章 输入输出与中断
西安邮电学院计算机系系统结构教研室2009.8教材及参考书《微型计算机原理》王忠民王钰王晓婕编著《微型计算机原理》学习与实验指导王钰王劲松刑高峰编著第7章输入/输出与中断主要内容:I/O接口概述CPU与外设之间数据传送的方式中断技术8086/8088的中断系统可编程中断控制器Intal8529A7.1I/O接口概述7.1.1I/O接口的作用1.I/O接口微处理器与存储器构成了微型计算机系统的主机部分,为了使微型计算机工作,还必须配上各种外部设备,简称外设,将外设中主要用来实现数据的输入/输出、实现人机联系的设备称为输入/输出设备,即I/O设备。当要把外设与微处理器相连时,往往需要配上相应的电路。通常把介于主机和外设之间的一种缓冲电路称为I/O接口电路,简称I/O接口。图7.1主机与外设的连接CPUI/O接口外设2.I/O接口的作用接口是主机和外设之间交换信息的桥梁。那么,主机与外设交换信息时为什么要通过接口电路呢?这主要有以下三个原因。①总线隔离作用数据总线是外设及存储器传送信息的公共线路,任何外设或存储器都不允许长期占用数据总线,而仅允许被选中的外设或存储器在读/写总线周期中享用数据总线。因此,大多数外设不能直接和CPU的数据总线相连,要借助与接口电路使外设与总线隔离,起缓冲、暂存数据的作用,使主机和外设协调一致的工作。②速度匹配作用接口电路可以提供握手信息给微处理器和外设,协调主机和外设间数据传送速度不匹配的矛盾。大多数外设输入输出信息的速度远远低于微处理器,为同步外设与主机的工作,在输入输出控制中,常需要接口电路提供外设的工作状态给微处理器,同时记忆主机下达给外设的命令,从而使主机与外设之间协调一致地工作。③信号变换作用外设的信息格式与微处理器不一致时,需要接口电路进行信息的变换。从本质上说,微处理器的信息格式是并行的数字信号,而外设由于其功能的多样性,信息格式也是多种多样的。这就需要进行:电平变换并串变换数模变换7.1.2CPU与外设交换的信息主机与I/O设备之间交换的信息可分为数据信息、状态信息和控制信息三种。(1)数据信息:它是CPU与外设之间传送的主要信息,可分为数字量、模拟量和开关量三种形式。(2)状态信息:是外设通过接口送往CPU的信息,作为外设与CPU之间交换数据的联络信号,反映了当前外设所处的工作状态。(3)控制信息:是CPU通过接口传送给外设的信息,用来设置外设(包括接口)的工作方式、控制外设的工作等。DBCPU外设图7.2CPU与外设交换的信息I/O接口数据信息状态信息控制信息7.1.3I/O接口的基本结构(接口与端口)接口(Interface):介与主机和外设之间的缓冲电路。端口(Port):接口中可以进行寻址读写的寄存器,简称口。一个接口往往含有几个端口,CPU通过输入输出指令向这些端口取或存信息。端口主要有三类:一类为状态口,一类为命令口(或控制口),一类是数据口。CPU通过输入指令从状态口获取外设的状态信息,通过输出指令从命令口发出控制命令,控制外设的工作。通过输入输出指令可以从数据端口与外设交换数据。因此说,计算机主机与外设之间交换信息都是通过接口中的端口来实现的。CBABDBCPU数据端口状态端口I/O设备译码控制端口图7.3I/O接口的基本结构I/O接口7.1.4I/O端口的编址微机系统中,I/O端口的编址方式分为统一编址和独立编址两大类。在Intel80x86系列微机中,采用独立编址方式。1.I/O端口的统一编址方式统一编址又称存储器映象编址(Memory-mappingAddressCoding),就是将I/O端口看成是存储器空间的一个组成部分,按照存储器单元的编址方法统一编排地址号,每个I/O端口占用一个地址。这样,CPU对I/O端口的输入/输出操作如同对存储单元的读/写操作一样,对存储器的各种寻址方式也同样适用于I/O端口。图7.4I/O端口与内存单元统一编址存储器I/O端口00000HXXXXXHFFFFFH整个地址空间(XXXXX+1)HI/O端口存储器空间I/O端口空间2.I/O端口的独立编址方式(IsolatedI/OAddressCoding)在独立编址方式下,I/O地址空间完全独立于存储器空间。在I/O地址空间中,每个端口有一个唯一的端口地址,CPU有专用的I/O指令,用于CPU与I/O端口之间的数据传输。Intel80x86系列CPU中设有IN、OUT指令作为专用的I/O指令和寻址方式。在直接寻址方式下,CPU只利用地址总线的低8位输出地址信息,所以只能寻址I/O地址空间的00HFFH地址,而在间接寻址方式下,CPU利用地址总线的低16位输出地址信息,可以寻址的I/O空间多达64K个端口。00000HFFFFFH存储器I/OFFFFH0000H图7.5I/O端口与内存单元独立编址7.2CPU与外设之间数据传送的方法各种外设的工作速度相差很大,有些相当高,如磁盘机的传送速度达0.26Mb/s,而有些外设的工作速度却相当低,如键盘是用于人工输入数据的,输入1个字符通常需几十毫秒。这里所说的输入/输出方法就是指CPU通过接口与外设之间数据传送的方式,一般有三种:程序控制的输入/输出方式、程序中断的输入/输出方式和直接存储器存取方式。7.2.1程序控制的输入/输出方式该方式完全通过执行程序来控制CPU与外设之间的数据交换,I/O指令序列事先就排在程序中所需要的位置。这种传送方式又分为无条件传送和有条件传送。1.无条件传送:程序中I/O指令的执行不需要事先测试外设的状态,而是直接执行。这种传送方式只适用于对简单外设的操作,这些外设始终处于就绪状态,典型的输入是开关,典型的输出是LED。(a)来自外设的数据数据总线(DB)地址译码器地址总线(AB)≥1三态缓冲器至CPURDIOM/(b)至外设数据总线(DB)地址总线(AB)锁存器来自CPU的数据地址译码器WRIOM/≥1图7.6无条件传送方式(a)无条件传送数据输入(b)无条件传送数据输出2.有条件传送:也称查询方式传送,程序中I/O指令的执行需要事先测试外设的状态,待外设准备就绪后,执行I/O指令进行数据传送,否则循环测试等待。例如,CPU向打印机送打印字符,就需要测试打印接口电路的BUSY信号。图7.7查询传送方式的流程图NYY取外设状态外设准备就绪?N开始传送数据传送完否?结束选通状态信息READY数据总线DB至CPU地址译码器&+5V锁存器数据缓冲器三态缓冲器QD输入设备数据状态端口译码输出数据端口译码输出RRD&IO/MRD地址总线AB图7.8查询式输入的接口电路去CPUDB输出设备&数据地址译码器数据端口译码输出地址总线DB状态端口译码输出状态寄存器BUSY+5V锁存器QD数据总线DB来自CPU选通信号ACKWRIO/MR&RDIO/M图7.9查询式输出的接口电路7.2.2程序中断的输入/输出方式该方式借助于CPU响应外部中断请求的能力,实现输入输出的控制。简单地说,就是外设将准备就绪的信号转换成有效的中断请求信号通知给CPU,CPU响应中断后,在中断服务子程序中执行I/O指令,进行数据传送。查询传送方式是由CPU来查询外设的状态,CPU处于主动地位,而外设处于被动地位。中断传送方式则是由外设主动向CPU发出请求,等候CPU处理,在没有发出请求时,CPU和外设都可以独立进行各自的工作。7.2.3直接存储器存取方式(DMA:DirectMemoryAccess)在DMA方式下,高速外部设备利用专用的接口电路直接和存储器进行高速数据交换,CPU暂停指令的执行并让出总线控制权。与前两种方式不同,在DMA方式下,数据的传送不依赖CPU执行I/O指令,而是直接由专用的接口电路DMA控制器来控制外设和内存之间的数据传送。7.3中断技术7.3.1.中断的基本概念1.中断的定义计算机在执行正常程序过程中,当出现某种异常事件或某种外部请求时,处理器就暂停执行当前的程序,而转去执行对异常事件或某种外部请求的处理操作。当处理完毕后,CPU再返回到被暂停执行的程序,继续执行,这个过程称为程序中断。图7.10中断过程示意图继续执行断点主程序中断服务程序有中断请求中断处理返回断点2.中断系统为实现中断功能而设置的硬件电路和与之相应的软件,称为中断系统。3.中断源所谓中断源,是指引起中断的原因或发出中断请求的来源。中断源可分为硬件中断源和软件中断源两类。4.中断处理过程对于一个中断源的中断处理过程应包括中断请求、中断响应、保护断点、中断处理和中断返回等五个过程。①中断请求:是中断源向CPU发出的请求中断的要求。软件中断源是在CPU内部有中断指令或程序出错直接发中断;而硬件中断源必须通过专门的电路将中断请求信号送给CPU,CPU也有专门的引脚接收中断请求信号。例如,8086/8088CPU用INTR引脚(可屏蔽中断请求)和NMI引脚(非屏蔽中断请求)接收硬件中断请求信号。一般外设发出的都是可屏蔽中断请求。&输入锁存器数据总线中断请求D端口译码地址总线Q中断屏蔽INT+5V输入设备三态缓冲器Q&RD图7.11中断请求与屏蔽接口电路②中断响应:是指当计算机系统接收到中断请求后应作出的反应。中断响应应具备两个条件:一是中断允许触发器的状态为1(即开中断),二是CPU在执行完现行指令之后。&R≥1允许中断开中断指令关中断指令CPUCPU响应中断信号INTRRESETSQ图7.12CPU内部设置中断允许触发器③保护断点:所谓断点是指处理完中断后返回主程序时执行的第一条指令的逻辑地址(即当时的CS和IP的值)。因此,CPU一旦响应中断,需要对其正在执行程序的断点信息进行保护(即将CS和IP的值压入堆栈),以便在中断处理结束后仍能回到该断点处继续执行。④中断处理:是指执行完成中断服务功能的处理程序。它主要包括保护现场(将中断服务程序中涉及到的寄存器内容压入堆栈)、中断服务(是中断服务的核心,可完成中断服务的功能)和恢复现场(将原先压入堆栈的寄存器内容再弹回到CPU相应的寄存器中)等。⑤中断返回:是指执行完中断服务程序后返回到原先被中断的程序。它是保护断点的逆过程,即将原先压入堆栈的断点值弹回到CS和IP中,继续执行程序。7.3.2中断优先级和中断的嵌套1.中断优先级中断请求是随机发生的,当系统具有多个中断源时,有时会同时出现多个中断请求,CPU只能按一定的次序予以响应和处理,这个响应的次序称为中断优先级。对于不同级别的中断请求,一般的处理原则是:(1)不同按高低。不同优先级的多个中断源同时发出中断请求,按优先级由高到低依次处理。(2)低级让高级。低优先级中断正在处理,出现高优先级请求,应转去处理高优先级请求,服务结束后再返回原优先级较低的中断服务程序继续执行。(3)高级封低级。高优先级中断正在处理,出现低优先级请求,可暂不响应。(4)同级等处理。中断处理时,出现同级别请求,应在当前中断处理结束以后再处理新的请求。中断优先级多个中断请求急,要分中断优先级。不同中断按高低,同级中断等处理,低级中断让高级,高级中断封低级。屏蔽中断要允许,等到最后一个T4。2.中断优先级的确定在微机系统中通常用三种方法来确定中断源的优先级别,即软件查询法硬件排队电路法专用中断控制芯片法1)软件查询法软件查询法需要简单的硬件电路支持。以8个中断源为例,其硬件电路如图7.13所示,将8个外设的中断请求组合起来作为一个端口(中断寄存器),并将各个外设的中断请求信号相或,产生一个总的INT信号。≥1CPUD7INTRINT1中断寄存器INTD0INT2…INT8……图7.13软件查询法的硬件电路任一个外设有中断请求,该电路都可向CPU发中断请求信号(INT),CPU响应后进入中断处理程序,在中断处理程序的开始先把中断寄存器的内容读入CPU,再对寄存器内容进行逐位查询,查到某位状态为1,表示与该位相连的外设有中断请求,于是转到与其相应的中断服务程序,同时该外设撤消其中断请求信号。软件查询方式的流程图如图7.14所示。对1号中断源服务NNNYYY断点保
本文标题:微机原理与汇编语言 第7章 输入输出与中断
链接地址:https://www.777doc.com/doc-3148582 .html