资源预览内容
第1页 / 共143页
第2页 / 共143页
第3页 / 共143页
第4页 / 共143页
第5页 / 共143页
第6页 / 共143页
第7页 / 共143页
第8页 / 共143页
第9页 / 共143页
第10页 / 共143页
亲,该文档总共143页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第7章 输入/输出与中断 第7章 输入/输出与中断 7.1 I/O接口概述 7.2 CPU与外设之间数据传送的方式 7.3 中断技术 7.4 8086/8088 中断系统 7.5 可编程中断控制器Intel 8259A 第7章 输入/输出与中断 7.1 I/O接口概述 7.1.1 I/O接口的作用主机与外界交换信息称为输入/输出(I/O)。主机与外界的信息交换是通过输入/输出设备进行的。一般的输入/输出设备都是机械的或机电相结合的产物,比如常规的外设有键盘、显示器、打印机、扫描仪、磁盘机、鼠标器等,它们相对于高速的中央处理器来说,速度要慢得多。此外,不同外设的信号形式、数据格式也各不相同 。因此,外部设备不能与CPU直接相连,需要通过相应的电路来完成它们之间的速度匹配、信号转换,并完成某些控制功能。通常把 介于主机和外设之间的一种缓冲电路称为I/O接口电路,简称I/O接口(Interface),如图7.1所示。对于主机,I/O接口提供了外部设备的工作状态及数据;对于外部设备,I/O接口记忆了主机送给外设的一切命令和数据,从而使主机与外设之间协调一致地工作。 第7章 输入/输出与中断 图7.1 主机与外设的连接第7章 输入/输出与中断 对于微型计算机来说,设计微处理器CPU时,并不设计它与外设之间的接口部分,而是将输入/输出设备的接口电路设计成相对独立的部件,通过它们将各种类型的外设与CPU连接起来,从而构成完整的微型计算机硬件系统。因此,一台微型计算机的输入/输出系统应该包括I/O接口、I/O设备及相关的控制软件。一个微机系统的综合处理能力,系统的可靠性、兼容性、性价比,甚至在某个场合能否使用都和I/O系统有着密切的关系。输入/输出系统是计算机系统的重要组成部分之一,任何一台高性能计算机,如果没有高质量的输入/输出系统与之配合工作,计算机的高性能便无法发挥出来。 第7章 输入/输出与中断 7.1.2 CPU与外设交换的信息主机与I/O设备之间交换的信息可分为数据信息、状态信息和控制信息三类。1数据信息数据信息又分为数字量、模拟量和开关量三种形式。1) 数字量数字量是计算机可以直接发送、接收和处理的数据。例如,由键盘、显示器、打印机及磁盘等I/O外设与 CPU交换的信息,它们是以二进制形式表示的数或以ASCII码表示的数符。 第7章 输入/输出与中断 2) 模拟量当计算机应用于控制系统中时,输入的信息一般为来自现场的连续变化的物理量,如温度、压力、流量、位移、湿度等,这些物理量通过传感器并经放大处理得到模拟电压或电流,这些模拟量必须先经过模拟量向数字量的转换(A/D转换)后才能输入计算机。反过来,计算机输出的控制信号都是数字量,也必须先经过数字量向模拟量的转换(D/A转换),把数字量转换成模拟量才能去控制现场。 第7章 输入/输出与中断 3) 开关量开关量可表示两个状态,如开关的断开和闭合,机器的运转与停止,阀门的打开与关闭等。这些开关量通常要经过相应的电平转换才能与计算机连接。开关量只要用一位二进制数即可表示。 第7章 输入/输出与中断 2. 状态信息状态信息作为CPU与外设之间交换数据时的联络信息,反映了当前外设所处的工作状态,是外设通过接口送往CPU的。CPU通过对外设状态信号的读取,可得知输入设备的数据是否准备好、输出设备是否空闲等情况。对于输入设备,一般用准备好(READY)信号的高低来表明待输入的数据是否准备就绪;对于输出设备,则用忙(BUSY)信号的高低表示输出设备是否处于空闲状态,如为空闲状态,则可接收CPU输出的信息,否则CPU要暂停送数。因此,状态信息能够保障CPU与外设正确地进行数据交换。 第7章 输入/输出与中断 3控制信息控制信息是CPU通过接口传送给外设的,CPU通过发送控制信息设置外设(包括接口)的工作模式、控制外设的工作。如外设的启动信号和停止信号就是常见的控制信息。实际上,控制信息往往随着外设的具体工作原理不同而含义不同。虽然数据信息、状态信息和控制信息含义各不相同,但在微型计算机系统中,CPU通过接口和外设交换信息时,只能用输入指令(IN)和输出指令 (OUT)传送数据,所以状态信息、控制信息也是被作为数据信息来传送的,即把状态信息作为一种输入数据,而把控制信息作为一种输出数据,这样,状态信息和控制信息也通过数据总线来传送。但在接口中,这三种信息是在不同的寄存器中分别存放的。 第7章 输入/输出与中断 7.1.3 I/O接口的基本结构I/O接口的基本结构如图7.2所示。每个接口电路中都包含一组寄存器,CPU与外设进行信息交换时,各类信息在接口中存入不同的寄存器,一般称这些寄存器为I/O端口,简称为口(Port)。用来保存CPU和外设之间传送的数据(如数字、字符及某种特定的编码等)、对输入/输出数据起缓冲作用的数据寄存器称为数据端口;用来存放外设或者接口部件本身状态的状态寄存器称为状态端口;用来存放CPU发往外设的控制命令的控制寄存器称为控制端口。 第7章 输入/输出与中断 图7.2 一个典型的I/O接口 第7章 输入/输出与中断 正如每个存储单元都有一个物理地址一样,每个端口也有一个地址与之相对应,该地址称为端口地址。有了端口地址,CPU对外设的输入/输出操作实际上就是对I/O接口中各端口的读/写操作。数据端口一般是双向的,数据是输入还是输出,取决于对该端口地址进行操作时CPU发往接口电路的读/写控制信号。由于状态端口只做输入操作,控制端口只做输出操作,因此,有时为了节省系统地址空间,在设计接口时往往将这两个端口共用一个端口地址,再用读/写信号来分别选择访问。应该指出,输入/输出操作所用到的地址总是对端口而言,而不是对接口而言的。接口和端口是两个不同的概念,若干个端口加上相应的控制电路才构成接口。 第7章 输入/输出与中断 7.1.4 I/O端口的编址微型计算机系统中I/O端口编址方式有两种:I/O端口与内存单元统一编址和 I/O端口与内存单元独立编址。1I/O端口与内存单元统一编址这种编址方式是对I/O端口和存储单元按照存储单元的编址方法统一编排地址号,由I/O端口地址和存储单元地址共同构成一个统一的地址空间。例如,对于一个有16根地址线的微机系统,若采用统一编址方式,其地址空间的结构如图7.3所示。 第7章 输入/输出与中断 图7.3 I/O端口与内存单元统一编址第7章 输入/输出与中断 采用统一编址方式后,CPU对I/O端口的输入/输出操作如同对存储单元的读/写操作一样,所有访问内存的指令同样都可用于访问I/O端口,因此无需专门的I/O指令,从而简化了指令系统的设计;同时,对存储器的各种寻址方式也同样适用于对I/O端口的访问,给使用者提供了很大的方便。但由于I/O端口占用了一部分存储器地址空间,因而相对减少了内存的地址可用范围。 第7章 输入/输出与中断 2I/O端口与内存单元独立编址 在这种编址方式中,建立了两个地址空间,一个为内存地址空间,一个为I/O地址空间。内存地址空间和I/O地址空间是相对独立的,通过控制总线来确定CPU到底要访问内存还是I/O端口。为确保控制总线发出正确的信号,除了要有访问内存的指令之外,系统还要提供用于CPU与I/O端口之间进行数据传输的输入/输出指令。 第7章 输入/输出与中断 80x86 CPU组成的微机系统都采用独立编址方式。在8086/8088系统中,共有20根地址线对内存寻址,内存的地址范围是00000HFFFFFH;用地址总线的低16位对I/O端口寻址,所以I/O端口的地址范围是0000HFFFFH,如图7.4所示。CPU在访问内存和外设时,使用了不同的控制信号来加以区分。例如,当8086 CPU的M/IO信号为1时,表示地址总线上的地址是一个内存地址;为0时,则表示地址总线上的地址是一个端口地址。 第7章 输入/输出与中断 图7.4 I/O端口与内存单元独立编址 第7章 输入/输出与中断 采用独立编址方式后,存储器地址空间不受I/O端口地址空间的影响,专用的输入/输出指令与访问存储器指令有明显区别,便于理解和检查。但是,专用I/O指令增加了指令系统复杂性,且I/O指令类型少,程序设计灵活性较差;此外,还要求CPU提供专门的控制信号以区分对存储器和I/O端口的操作,增加了控制逻辑的复杂性。 第7章 输入/输出与中断 3I/O端口的地址译码微机系统常用的I/O接口电路一般都被设计成通用的I/O接口芯片,一个接口芯片内部可以有若干可寻址的端口。因此,所有接口芯片都有片选信号线和用于片内端口寻址的地址线。例如,某接口芯片内有四个端口地址,则该芯片外就会有两根地址线。本书第8章中将详细介绍几种常用的I/O接口芯片。 第7章 输入/输出与中断 I/O端口地址译码的方法有多种,一般的原则是把CPU用于I/O端口寻址的地址线分为高位地址线和低位地址线两部分,将低位地址线直接连到I/O接口芯片的相应地址引脚,实现片内寻址,即选中片内的端口;将高位地址线与CPU的控制信号组合,经地址译码电路产生I/O接口芯片的片选信号。 第7章 输入/输出与中断 7.2 CPU与外设之间数据传送的方式 7.2.1 程序传送方式1无条件传送方式微机系统中的一些简单的外设,如开关、继电器、数码管、发光二极管等,在它们工作时,可以认为输入设备已随时准备好向CPU提供数据,而输出设备也随时准备好接收CPU送来的数据,这样,在CPU需要同外设交换信息时,就能够用IN或OUT指令直接对这些外设进行输入/输出操作。由于在这种方式下CPU对外设进行输入/输出操作时无需考虑外设的状态,故称之为无条件传送方式。 第7章 输入/输出与中断 对于简单外设,若采用无条件传送方式,其接口电路也很简单。如简单外设作为输入设备时,输入数据保持时间相对于CPU的处理时间要长得多,所以可直接使用三态缓冲器和数据总线相连,如图7.5(a)所示。当执行输入的指令时,读信号有效,选择信号M/处于低电平,因而三态缓冲器被选通,使其中早已准备好的输入数据送到数据总线上,再到达CPU。所以要求CPU在执行输入指令时,外设的数据是准备好的,即数据已经存入三态缓冲器中。 第7章 输入/输出与中断 图7.5 无条件传送方式 (a) 无条件传送数据输入;(b) 无条件传送数据输出 第7章 输入/输出与中断 简单外设为输出设备时,由于外设取数的速度比较慢,要求CPU送出的数据在接口电路的输出端保持一段时间,因而一般都需要锁存器,如图7.5(b)所示。CPU执行输出指令时,M/IO和WR信号有效,于是,接口中的输出锁存器被选中,CPU输出的信息经过数据总线送入输出锁存器中,输出锁存器保持这个数据,直到外设取走。无条件传送方式下,程序设计和接口电路都很简单,但是为了保证每一次数据传送时外设都能处于就绪状态,传送不能太频繁。对少量的数据传送来说,无条件传送方式是最经济实用的一种传送方法。 第7章 输入/输出与中断 2查询传送方式查询传送也称为条件传送,是指在执行输入指令(IN)或输出指令(OUT)前,要先查询相应设备的状态,当输入设备处于准备好状态,输出设备处于空闲状态时,CPU才执行输入/输出指令与外设交换信息。为此,接口电路中既要有数据端口,还要有状态端口。查询传送方式的流程图见图7.6。从图中可以看出,采用查询方式完成一次数据传送要经历如下过程:(1) CPU从接口中读取状态字。(2) CPU检测相应的状态位是否满足“就绪”条件。(3) 如果不满足,则重复(1)、(2)步;若外设已处于“就绪”状态,则传送数据。 第7章 输入/输出与中断 图7.6 查询传送方式的流程图第7章 输入/输出与中断 图7.7给出的是采用查询传送方式进行输入操作的接口电路。输入设备在数据准备好之后向接口发选通信号,此信号有两个作用:一方面将外设中的数据送到接口的锁存器中;另一方面使接口中的一个D触发器输出“1”,从而使三态
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号