
微机原理与接口技术_06IO接口与中断.ppt
38页单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,*,*,*,无忧,PPT,整理发布,单击此处编辑母版标题样式,,*,*,*,单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,*,*,*,第,6,章,I/O,接口与中断,本章主要内容,,,,,,,,,,6.1 I/O,接口概念,,6.2 I/O,端口编址方式,,6.3 CPU,与,I/O,接口之间数据传送方式,,6.4,中 断,,,,6.5 8086,中断系统,6.1 I/O接口概念,,6.1.1 I/O,接口的基本功能,为了协调,CPU,与外设之间的数据读写矛盾,实现,CPU,和外设之间高效可靠的信息交换,,I/O,接口应具备以下功能1,.数据缓冲功能,,2,.信号转换功能,,3,.端口选择功能,,4,.接收和执行,CPU,命令的功能,,5,.中断管理功能,,6,.可编程功能,,6.1.2 I/O,接口的基本组成,I/O,接口的基本结构如下图所示1,.,CPU,和,I/O,设备之间交换的信息有数据信息、状态信息和控制信息,,1,)数据信息,,CPU,与外设交换的基本信息是数据信息(,data,),大致可以分为下面三种类型。
1,)数字量,,(,2,)模拟量,,(,3,)开关量,2,)状态信息,,状态信息(,status,)反映的是当前外设所处的工作状态,外设通过,I/O,接口将状态信息送往,CPU,,,CPU,接收到这些信息就可以了解到外设的工作情况,从而准确适时地进行数据的传送3,)控制信息,,控制信息(,control,)是,CPU,通过接口传送给外设的,,CPU,通过发送控制信息来控制外设的暂停,启动等2,.端口地址译码,,地址译码是,I/O,接口的基本功能之一,微处理器在执行输入,/,输出指令时需要向地址总线发送外部设备的端口地址,译码电路收到与本接口有关的地址后产生相应的选通信号,对相关端口进行数据、命令或状态的传输,完成一次,I/O,操作3,.数据缓冲,/,锁存器,,在,CPU,与,I/O,设备之间进行输入,/,输出操作时,输入需要缓冲,输出需要锁存6.2 I/O端口编址方式,,6.2.1,统一编址,这种编址方式又称为存储器映射编址方式,是从存储器空间划出一部分地址给,I/O,端口,即把每个,I/O,端口当作一个存储单元,,I/O,端口与内存单元被安排在同一个地址空间中,,CPU,与外设的数据交换,相当于对存储器的读,/,写操作,不设置专门的,I/O,指令。
使用这种编址方式的优点如下1,)可以用访问内存的方式来访问,I/O,端口2,)外设数目或,I/O,寄存器数目几乎不受限制3,)微机系统读写控制逻辑较简单使用这种编址方式的缺点如下1,),I/O,端口占用部分内存空间,减少了内存可用的地址范围,因此对内存容量有 影响2,)访问,I/O,端口和访问内存一样,由于访问内存时地址较长,指令的机器码也长,执行时间显然会增加3,)从指令上不易区分当前是对内存进行操作还是对外设进行操作6.2.2,独立编址,这种编址方式称为,I/O,映射编址方式,内存和,I/O,端口有各自独立的地址空间使用这种编址方式的优点如下1,)内存地址空间不受,I/O,端口地址空间影响2,)地址译码简单,速度较快3,),I/O,指令简短,执行速度快4,)使用专用,I/O,命令,与内存访问命令有明显区别,便于理解和检查6.3 CPU,与,I/O,接口之间数据传送方式,6.3.1,程序控制方式,1,.无条件传送方式,,在该方式中,外设总被认为已处于准备就绪或准备接收状态,程序不必查询外设的状态,当需要与之交换数据时,直接执行输入、输出指令,就开始发送或接收数据2,.条件传送方式,,条件传送方式也称为程序查询方式,在传送数据之前,,CPU,要执行查询程序去查询外设的当前状态,只有当外设处于准备就绪(输入设备)或空闲状态(输出设备)时,才执行输入或输出指令进行数据传送,否则,,CPU,循环等待,直到外设准备就绪为止。
6.3.2,中断控制方式,中断传送方式的特点是,改,CPU,的主动查询为被动响应,当输入设备准备好数据或输出设备处于空闲时向,CPU,发出中断申请信号,请求,CPU,为它们服务(输出数据或从接口读取数据)这时,,CPU,暂时中断当前正在执行的程序(即主程序)转去执行为输入,/,输出设备服务的中断处理程序,服务完毕,又返回到被中断的程序处继续执行这样,,CPU,就不用花大量时间查询外设状态,而使,CPU,和外设并行工作,只是当外设状态就绪或准备好时,用很短时间去处理一下,处理完毕又继续回到主程序执行,大大提高了,CPU,的工作效率6.3.3 DMA,方式,该方法的基本思路是:外设与内存间的数据传送不经过,CPU,,传送过程也不需要,CPU,干预,在外设和内存间开设直接通道,由一个专门的硬件控制电路来直接控制外设与内存间的数据交换,从而提高传送速度和,CPU,的效率1,.,DMA,控制器的基本功能及组成,,DMA,控制器应具有以下基本功能1,)能接收外设的,DMA,请求,并向,CPU,发出总线请求,以便取得总线使用权2,)能接收,CPU,的总线允许信号,控制总线3,)在获得总线控制权后,能提供访问存储器和,I/O,端口的地址,并在数据传送过程中能自动修改地址指针,以指向下一个要传送的数据。
4,)在,DMA,传送期间向存储器和,I/O,设备发出所需要的控制信号(主要是读,/,写控制信号)5,)能控制数据传送过程的进行和结束,有一个字节计数器以控制传送何时结束6,)当,DMA,传送结束时,能向,CPU,发,DMA,结束信号,以便,CPU,恢复对总线的 控制根据,DMA,控制器应具有的基本功能,确定,DMA,控制器在硬件结构上应该具有以下基本部件1,)地址寄存器:接收,CPU,预置的存储器起始地址,以及在传送过程中自动修改地址,以指出下一个要访问的存储单元2,)字节计数器:接收,CPU,预置的数据传送的总字节数,以及在传送过程中控制传送过程何时结束,该字节计数器应具有自动减,1,功能3,)控制寄存器:接收,CPU,的命令,决定,DMA,传送方向及传送方式,是输出(从内存到外设备)还是输入(从外设到内存),是传送一个数据还是一批数据4,)状态寄存器:用来反映,DMA,控制器及外设当前的工作状态5,)内部定时与控制逻辑:用来产生一些接口电路内部的控制信号2,.,DMA,控制器的工作模式,,DMA,传送通常用于高速外设与存储器间的大批量数据传送,,DMA,控制器可以有以下几种工作模式。
1,)单字节传送模式,,2,)成批传送模式,,3,)请求传送模式,,4,)级联传送模式,3,.,DMA,操作过程,,一个完整的,DMA,操作过程大致可分三个阶段:准备阶段(初始化)、数据传送阶段和传送结束阶段准备阶段是,DMA,控制器接受,CPU,对其进行初始化,初始化的内容包括设置存储器的地址、传送的数据字节数,决定,DMA,控制器工作模式和传送方向等的控制字,以及对相关接口电路的初始化设置传送结束阶段是,DMA,控制器在传送完成后向,CPU,发出结束信号,以便,CPU,撤销总线允许信号,收回总线控制权6.4,中 断,6.4.1,中断的概念与特点,所谓中断,是指对现行程序的“中断”,即指,CPU,暂时停止现行程序的执行,转去处理突然发生的随机事件,处理完毕后又自动恢复原来程序的执行中断方式带有随机性,这是中断区别于其他程序切换过程(如转子与返回)的主要特点什么时候转子,在程序中是事先安排好了的,而什么时候转去执行中断处理程序则不是由程序预先安排6.4.2,中断源的概念,能够引起中断的事件称为中断源,亦即能够向,CPU,发出中断请求的中断来源常见的中断源如下1,),I/O,设备,例如键盘、打印机等。
2,)故障信号,例如硬件损坏、电源掉电等3,)实时时钟,例如外部硬件时钟电路定时到等4,)软件中断,如软中断指令、调试指令等在微型计算机系统中,中断源有两类,即内部中断和外部中断1,)内部中断,,由处理器内部产生的中断事件2,)外部中断,,由处理器以外的设备产生的中断事件按照中断请求信号接入引脚的不同,外部中断又可分为可屏蔽中断和非屏蔽中断6.4.3,中断处理过程,一个完整的中断处理过程主要包括三个方面:中断请求、中断承认、中断响应中断和中断过程如下图所示6.4.4,中断优先级及中断嵌套,1,.中断优先级,,按照中断源的重要性和实时性要求来安排中断响应的次序,这个中断响应次序就称为中断优先级中断优先级的控制原则如下:,,(,1,)同时有多个中断请求时,先响应高优先级中断,再响应低优先级中断2,)当,CPU,执行某个中断服务子程序时,出现新的高优先级中断源请求中断,则暂停正在执行的低优先级中断服务子程序,先去执行高优先级中断服务子程序,高优先级中断服务结束后,再返回到低优先级中断服务程序继续执行一般情况下,我们采用软件查询或者专业芯片管理两种方式实现中断优先级控制2,.中断嵌套,,在中断优先级确定的条件下,,CPU,总是先响应优先级最高的中断请求。
当,CPU,正在执行优先级相对较低的中断服务子程序时,又有优先级更高的中断请求,,CPU,会将正在处理的低优先级中断暂停,转去处理优先级更高的中断,即去执行高级中断的服务子程序,这就是中断嵌套6.5 8086中断系统,,6.5.1,中断源类型,1,.内部中断,,内部中断是,CPU,在执行指令过程中产生的中断,如执行软中断指令,INT,,调试程序时设置的中断,以及,CPU,在执行常规指令时产生的异常状态主要包括除法错中断、单步中断、断点中断、溢出中断以及软中断,这些中断源都来自,CPU,内部2,.外部中断,,外部中断是指外部设备通过,CPU,引脚接入的中断,,8006 CPU,有两条专门的中断请求信号接入引脚,INTR,和,NMI,,所以外部中断包括可屏蔽中断(,INTR,)和非屏蔽中断(,NMI,)6.5.2,中断优先级,在,8086,系统中,内部中断的优先级最高(除单步中断),接下来就是,NMI,,其次是,INTR,,优先级最低的是单步中断8086,系统各类中断的优先级,如下表所示中断源,优先级,除法错、,INTn,、,INTO,最高,,NMI,次之,INTR,较低,单步中断,最低,6.5.3,中断向量法,1,.中断向量表,,CPU,响应中断,最终目的是执行中断服务子程序,完成对中断事件的服务。
由于中断源和中断类型码一一对应,所以,6.5.1,节,CPU,获取中断类型码后,也就确定了中断源剩下的关键问题就是怎样找到该中断源中断服务子程序的入口地址,从而转向中断服务程序8086,系统采用的方法是为,256,个中断源的中断服务程序的入口地址建立一张表格,——,中断向量表2,.中断向量表初始化,,一般,8086,系统已将专用中断和系统保留中断的中断向量存入中断向量表,但用户定义的中断尚未存入,所以用户在实际使用时如果自定义并使用了其他中断,必须事先将自定义的中断源的中断向量自行存入中断向量表,这就是中断向量表初始化中断向量表初始化采用编程方法实现,用户应在主程序的初始化部分编写程序段,将中断向量依次写入中断向量表6.5.4,中断响应过程,8086,系统对一个中断的处理过程主要包括中断请求、中断承认、中断响应三个环节在这个中断处理过程中,不同中断有一些区别1,.可屏蔽中断(,INTR,),,这一中断响应过程中,,CPU,主要完成以下工作1,)执行两个中断响应周期2,)执行一个总线写周期,将标志寄存器的内容压入堆栈3,)执行两个写总线周期4,)执行两个读总线周期5,)由,CS,寄存器和,IP,寄存器得到中断服务子程序的物理地址,,CPU,自动转向中断服务子程序。
6,)中断服务子程序执行完毕,返回原程序断点处继续执行2,.非屏蔽中断(,NMI,),,与可屏蔽中断相比,非屏蔽中断的处理过程主要有以下区别1,)在中断请求环节,非屏蔽中断请求信号为上升沿有效2,)在中断承认环节,它不受中断允许标志位,IF,的控制,并且优先级高于,INTR,3,)在中断响应环节,由于非屏蔽中断请求的中断类型码是固定的,所以就不执行可屏蔽中断的步骤(,1,),而直接执行步骤(,2,)~(,6,)3,.内部中断,,与可屏蔽中断相比,内部中断的处理过程主要有以下区别1,)在中断请求环节,内部中断请求信号直接由,CPU,内部产生2,)在中断承认环节,它不受中断允许标志位,IF,的控制,并且除单步中断外优先级均高于,INTR,3,)在中断响应环节,由于内部中断的中断类型码或者是固定的,或者可直接从指令操作数获得,所以就不执行可屏蔽中断的步骤(,1,),而直接执行步骤(,2,)~(,6,)6.5.5,中断与中断返回指令,1,.中断指令,,8086,系统中有两条中断指令,分别是,INTO,和,INT n,1,),INTO,:,CPU,测试中断标志位,OF,,若,OF,=,1,,执行中断,否则不执行中断。
2,),INT n,:执行中断类型号为,n,的中断,其中,n,的取值范围为,00H,~,FFH,2,.中断返回指令,IRET,,在中断服务子程序中,最后一条指令必须是,IRET,CPU,遇到此命令,自动恢复断点,把,[SP,+,1],:,[SP]→IP,,,SP,+,2→SP,;然后,[SP,+,1],:,[SP]→CS,,,SP,+,2→SP,;最后,[SP,+,1],:,[SP]→PSW,,,SP,+,2→SP,程序将跳转至原来的断点,CS,:,IP,处继续执行原程序。
