《第2章输入输出技术教材课程》由会员分享,可在线阅读,更多相关《第2章输入输出技术教材课程(61页珍藏版)》请在金锄头文库上搜索。
1、第2章 输入输出技术,2.1 概述 在微型计算机系统的应用中,CPU除与内存交换信息外,还必然要经常与各种外部设备交换信息。主机与外设进行信息交换过程主要是完成数据输入或输出的传送操作。输入或输出操作的确切含义是有选择地启动被微处理器选中的外部设备,以便使其接收来自CPU的数据或向CPU送入数据。 数据传送的方向标准通常以微处理器为中心,当数据是由外部设备,如键盘、纸带读入机、光笔等设备向CPU送入时,称为输入传送;而当数据自CPU送到如发光二极管、七段显示器、CRT显示器、点阵打印机、绘图仪等设备时,称为输出传送。 当实现一个数据的输入输出操作时,CPU必须在众多的外部设备中寻找一个确定的设
2、备,而如何寻找这一特定的外部设备就是输入输出寻址方式所解决的问题。当找到一个确定的外部设备以后,接下来的问题就是如何同它进行信息交换,这就是输入输出控制方式所解决的问题。,2.2 输入输出的寻址方式,1 存储器映象寻址方式 存储器映象寻址方式的主要优点是: (1)指令丰富。所有存储器访问指令都可以用来处理I/O操作,而不使用专用的I/0指令。在微型机的指令系统中,存储器操作指令数量多,功能强,寻址方式灵活,这给程序设计带来了方便,同时也大大增强了系统的I/0功能,使I/0端口不仅能完成数据的传送,还能对端口的内容进行算术逻辑运算或移位等。 (2)I/O端口空间大。由于在存储器空间中划出一个区域
3、作为I/O端口地址空间,所以系统中的I/O端口数目几乎不受限制,其最大数目只受系统的存储容量的限制。这对大型控制或数据通讯系统等一些特殊场合是很有用处的。 (3)寻址的控制逻辑比较简单。 这种寻址方式的主要缺点是: (1)I/O端口占用了一部分存储器地址空间,使可用的内存空间相对减少。另外,当所有地址都必须做为存储器单元使用时,则不能采用这种方法。 (2)对外设的访问和对存储器的访问一样,必须对全部地址线译码,因而地址译码电路比较复杂。 (3)存储器操作指令字节长,需要较长的执行时间,降低了I/O操作速度。 (4)用存储器指令来处理输入/输出,在程序清单中不易区别,给程序的设计,分析和调试带来
4、一定的困难。,输入输出的寻址方式,2 I/O映象寻址方式 I/O映象寻址方式的主要优点是: (1)I/O空间与存储器空间各自独立,可分开设计。 (2)由于采用单独的I/O指令,其助记符与存储器指令明显不同,因而使程序编制清晰,易于理解。 (3)I/O地址线较少,所以译码电路简单。 (4)I/O指令格式短,执行时间快。 这种寻址方式的主要缺点是: (1)需要专门的I/O指令,且这些指令一般不如存储器访问指令丰富,程序设计灵活性较差。 (2)参加译码的地址线较少,使外设端口数目受到限制。 (3)采用专用的I/O周期和专用的I/O控制线,这不仅使微处理器有限的引脚更加紧张,而且也增加了控制逻辑的复杂
5、性。最小模式下的8088则用M/IO信号来区分存储器或I/O端口的访问。最大模式下的8088与协处理器8087连接,引脚更为紧张,只有通过输出三个总线周期信号,再由8288总线控制器解读后生成存储器读/写、I/O读/写的控制信号。,8088专用I/O指令,对于采用直接寻址方式,其指令格式为: 输入指令:IN AL,n和IN AX,n 输出指令:OUT n,AL和OUT n,AX 对于采用间接寻址方式,其指令格式为: 输入指令:IN AL,DX和IN AX,DX 输出指令:0UT DX,AL和OUT DX,AX,译码器译码法,这是最常用的一种方法,就是利用译码器芯片对地址进行译码。 PC/XT微
6、型机系统板上接口芯片的端口地址译码采样了一个74LS138译码电路。这些芯片也都有片选信号,74LSl38译码器的输出与这些芯片的片选信号连接。各接口芯片内部有多个寄存器,因而应有多个端口地址。译码器只直接使用A9A5,其余的低5位地址A4A0末接,留给各接口芯片自行内部译码,以便寻址多个寄存器。显然,由于A4A0未接到译码器,所以每个译码器的输出端对应25=32个端口地址,其地址范围依次是: 8237 000H 01FH 8259 020H 03FH 8253 040H 05FH 8255 060H 07FH DMA页面寄存器 080H 09FH NMI屏蔽寄存器 0A0H 0BFH 保留的
7、 0C0H 0DFH 保留的 0E0H 0FFH 系统为每个接口芯片预留出32个端口地址,至于每个接口芯片用多少,则视接口芯片内部寄存器的数目而定。 译码器译码法可以方便地对多个地址进行译码,适合于多个端口的电路。常用的译码器有74139/74155(双2线-4线译码器)、74138(3线-8线译码器)、74154(4线-16线译码器)。,比较器比较法,这是比较灵活的一种方法,就是利用数码比较器把地址线上的地址同预定的地址相比较,进而确定地址是否相符。如果比较后两个地址相等,则表示地址总线送来的端口地址就是该端口的地址。 用比较器比较法进行端口地址译码不仅原理直观,方法简便,更主要的是通过改变
8、预设置,就能够很容易地改变接口电路中端口的地址,而不需要改变线路,使用非常灵活。在一些通用接口模板中,这一方法已得到广泛的应用。 常用的比较器有7485(4位数字比较器)、74688(8位数字比较器)。,2.3 输入输出控制方式,I/O设备与存储器区别: 1存储器的工作速度几乎和中央处理机一样,而大多数I/O设备工作较慢,且不同的I/O设备又有不同的工作速度。 2存储器的字长一般是以字节为单位或等于机器字长,而I/O设备传送的过程中可能是8位数据,也可能是1位,2位不等的状态或控制信息。 3存储器中的信号形式与CPU相同,而I/O设备可能是数字信号也可能是模拟信号,可能是电压信号也可能是电流信
9、号,可能是并行的也可能是串行的等等。 4存储器的控制信号主要是读/写信号,而I/O设备一般有多种控制信号,如设备工作,空闲等状态信号,设备的启动,清除等控制信号。 这些差异都使得I/O数据传送过程较为复杂,随之而来的就是根据不同设备需采用不同的传送方式,相应的也就要采用不同的控制方式。,I/O控制方式,CPU对I/O控制方式,就微机系统而言有四种基本方式,即无条件传送控制方式,程序查询传送控制方式,中断传送控制方式和DMA控制方式。 无条件传送方式,CPU可在任何时刻与I/O设备交换数据,对CPU而言,I/O设备总是处于准备就绪状态。 程序查询方式,CPU通过查询I/O设备的状态,断定哪个设备
10、需要服务,然后转入相应的服务程序。 中断方式,当I/O设备需要CPU为其服务时,可以发生中断请求信号INTR,CPU接到请求信号后,中断正在执行的程序,转去为该设备服务,服务完毕,返回原来被中断的程序并继续执行。 直接存储器存取(DMA)方式,采用这种方式时,在DMA控制器的管理下,I/O设备和存储器直接交换信息,而不需要CPU介入。,无条件传送控制方式,无条件传送方式又称同步方式,是最简单的一种I/O控制方式,多用于CPU与低速接口之间的信息交换。如开关、继电器、LED显示器,它们总是被认为处于“待命”状态(即总是处于准备就绪或闲置状态),CPU可在任何时候执行I/O指令,无条件地与外部设备
11、进行信息交换,而不必考虑外部设备的状态。,程序查询传送控制方式,程序查询方式是有条件的传送控制方式,在这种方式中,CPU对I/O设备的控制(调度)全部由程序来实现,所有的输入输出操作都处于正在被执行的程序的控制下,I/O设备完全处于被动地位。 所谓查询,就是询问外部设备的工作状态,通过这一状态来判定外设是否已具备了与CPU交换数据的条件,即外设是否已准备好与CPU交换数据。 对输入设备而言,这个状态指示输入设备的数据是否已经准备就绪,CPU是否可以随时来读取这个数据。对输出设备而言,这个状态指示输出设备的数据接收寄存器是否已空,是否可以随时接受CPU送来的数据。 程序查询是最常用的I/O控制方
12、式,其特点是I/O操作由CPU启动,即CPU是主动的而I/O是被动的,所有的传送都是与程序的执行同步的。它的优点是能较好地协调外设与CPU之间定时的差别,并且用于接口的硬件较少,也不需要专门的硬件。 它的主要缺点有两个:一个是因它需踏步检测某设备状态或周期性检查所有设备状态,所以影响微机系统的效率。二是系统所接入的设备越多,查询的周期就越长,因此对工作速度较快的I/O设备会因服务不及时而丢失数据。,中断传送控制方式,程序查询方式独占CPU,而通常外设的输入输出速度很慢,浪费了大量的CPU时间,它使得CPU在查询过程中除了检测外设状态以外,不能做任何其他事情。 在中断传送控制方式中,CPU执行功
13、能程序与外部设备工作,二者是并行进行的,它改变了CPU主动查询外设状态的情况,而是当外设一切准备就绪后,主动向CPU提出进行数据传输的请求。 中断过程就是CPU对一个随机的请求进行处理的过程,它一般包括五个方面,即中断申请、中断排队、中断响应、中断服务和中断返回。,中断申请,中断源就是指能够发出中断请求信号的来源。 中断源能够产生中断申请信号有两个条件: (l)中断源自身工作已经“准备就绪”。比如对于输入设备,“准备就绪”就是指它已经准备好数据,CPU可以随时来读取这个数据;对于输出设备,“准备就绪”就是指它已经准备好随时接收CPU送来的数据。 (2)CPU允许该中断源申请中断。一般来说,CP
14、U本身有一个中断允许触发器,而每一个中断源也有一个中断允许触发器(或称之为中断屏蔽寄存器),如果CPU本身禁止中断(即其中断允许触发器处于禁止状态),那么即使外部有中断请求信号,CPU也不会响应。如果CPU本身允许中断,它就可以接受(响应)中断源发出的中断请求信号。此时,哪一个中断源可能发出中断请求信号,就要看CPU使哪一个中断源的中断允许触发器处于允许状态(即该中断源所属的中断屏蔽寄存器处于非屏蔽状态)。如果CPU禁止某个中断源申请中断,那么即使这个中断源自身工作已经准备就绪,它也不可能向CPU提出中断请求。,中断排队,解决中断优先权排队一般有两种方法,即软件查询法和硬件排队法。 (l)软件
15、查询法 基本思想:用软件查询中断源,根据查询的顺序先后来确定中断源的优先级。先查询的优先级就高,后查询的优先级就低,只要改变查询次序,就可以改变中断源的中断优先级。 软件查询法的主要优点是节省硬件,电路简单,程序设计灵活,优先级调整方便,缺点是每次响应中断后,都要从优先权最高的中断开始询问,外设中断源越多,查询的时间就越长,而且各个中断源的服务响应时间也是不同的,造成优先级别低的中断源实时处理性差。 (2)硬件排队法 基本思想:用硬件判优逻辑电路来确定申请中断中的最高优先级,系统中各中断源的优先级别是由它们在判优电路中的位置决定的。 硬件排队法的优点在于中断响应速度炔,并且各不同设备,无论它排
16、在链头还是链尾,它的响应时间是相同的。缺点是增加了硬设备,电路设计复杂。,中断响应,响应中断条件: (l)外部设备有中断请求。 (2)CPU自身允许中断。 (3)没有更高级的中断正在被服务。CPU对有些事情的处理是禁止被打扰的,比如DMA操作等。 (4)CPU在每条指令结束后响应中断。CPU不能在指令执行的中间响应中断,而是在每条指令的最后一个T状态采样中断请求线,如果有中断请求并且满足响应条件的话,将发出中断响应信号。 CPU一旦响应中断,将在中断响应周期中完成一些必要的操作,这些工作是由硬件自动完成的,无需人工介入。 (1)关中断。内部自动实现关中断,禁止在中断响应期间受到外部干扰。 (2)保护断点。是指保护断点的地址,也就是中断发生时在程序计数器中保存的下一条指令的地址。保护断点的目的是执行完中断服务程序后能返回到该地址继续运行原程序。 (3)将中断服务程序的入口地址送入程序计数器,从而实现转入相应的中断服务程序。不同的CPU有不同的转入方法。,中断服务,中断服务就是指执行中断服务程序,包括三个部分:保护现场、中断处理和恢复现场。 保护现场是