第3章中断(精品).ppt

上传人:hwp****526 文档编号:84708304 上传时间:2023-04-07 格式:PPT 页数:91 大小:935.50KB
返回 下载 相关 举报
第3章中断(精品).ppt_第1页
第1页 / 共91页
第3章中断(精品).ppt_第2页
第2页 / 共91页
点击查看更多>>
资源描述

《第3章中断(精品).ppt》由会员分享,可在线阅读,更多相关《第3章中断(精品).ppt(91页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、COMPUTER SCIENCE AND TECHNOLOGY1第第3章章 中中 断断 3.1 概述 3.1.1 中断的基本概念 1中断和中断源中断描述了一种CPU处理程序的过程。CPU在正常执行当前程序时,由某个事件引起CPU暂时停止正在执行的程序,进而转去执行请求CPU暂时停止的相应事件的服务程序,待该服务程序处理完毕后又返回继续执行被暂时停止的程序,这一过程称为中断。常将为实现中断功能而采取的硬件和软件措施,称为中断系统。COMPUTER SCIENCE AND TECHNOLOGY2中断的应用中断的应用(1)实现主机与I/O设备的并行工作(2)利用中断进行实时处理当微机用于实时控制时,

2、中断是一个十分重要的功能。所谓实时处理,是指在现场的某个事件或现象出现的实际时间内及时进行处理。如微机在过程控制系统中,监测到压力过大或温度过高时,微机应立即响应并及时处理。防止偶然事故的发生。(3)利用中断方式进行人机对话某些程序的执行需要操作人员从键盘或某终端设备提供信息以进行控制。这些信息何时由键盘发出是随机的,因此,可以利用中断方式将信息提供给微机以实现人机对话。(4)故障处理微机在运行过程中,往往会出现事先预料不到的情况或出现一些故障:如电源掉电、存储校验出错、运算溢出等等。微机就可以利用中断技术自行处理,而不必停机或报告工作人员。(5)多处理机系统中各处理机之间的协调工作在多机系统

3、与计算机网络中,各节点之间需要通信,以交换信息或协同工作。当一个节点要和其它节点通信时,便向它提出中断请求,对方转入中断服务程序,实现通信。COMPUTER SCIENCE AND TECHNOLOGY33.1.2 中断接口电路中断接口电路 1最简单的中断接口电路 一个最简单的中断接口电路包含三个输入设备(A、B、C)和一个电源掉电中断源,CPU中设有一个中断允许触发器,三个可屏蔽中断请求输入端INTR0、INTR1、INTR2和一个非屏蔽中断请求输入端NMI。它们的作用如下。(1)中断请求触发器(2)中断允许触发器(3)可屏蔽中断与非屏蔽中断(4)中断请求与撤消(5)中断请求输入线 COMP

4、UTER SCIENCE AND TECHNOLOGY4最简单的中断接口电路最简单的中断接口电路 COMPUTER SCIENCE AND TECHNOLOGY52中断优先级中断优先级 在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。通常采用中断优先排队的处理方法解决这一问题。这就是根据中断源要求的轻重缓急,排好中断处理的优先次序,即优先级(又称优先权)。先响应优先级最高的中断请求。有的微处理器有两条或更多的中断请求线,而且CPU已经安排好中断的优先级,如图3.1.1中的INTR0为最高优先级、INTR1为次高优先级、INTR2为最

5、低优先级。但有的微处理器只有一条中断请求线。凡是遇到中断源的数目多于CPU的中断请求线的情况时,就需要采取适当的方法来解决中断优先级的问题。另外,当CPU正在处理中断时,也要能响应优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,即所谓多重中断的问题。COMPUTER SCIENCE AND TECHNOLOGY6(1)软件查询确定优先级)软件查询确定优先级 COMPUTER SCIENCE AND TECHNOLOGY7(2)硬件优先级排队电路确定优先级)硬件优先级排队电路确定优先级 COMPUTER SCIENCE AND TECHNOLOGY8菊花链逻辑电路菊花链逻辑电路 COMPU

6、TER SCIENCE AND TECHNOLOGY9(3)具有中断屏蔽的接口电路)具有中断屏蔽的接口电路 软件查询确定优先级的优点是,各中断源的优先级灵活,但其缺点是在中断源较多的情况下,由询问到转至相应的中断服务程序的入口时间较长。硬件优先级排队电路确定优先级的优点是速度快,但其缺点是各个中断源的优先级固定不变。在实际系统中,往往有多个中断源。为了增加控制的灵活性,通常采用一种折衷方案,即在图3.1.3菊花链确定优先级的中断接口电路的基础上,在每一个外设的接口电路中增加一个中断屏蔽触发器。只有当此触发器为“1”时,外设的中断请求才能通过与门送出。把4个外设的中断屏蔽触发器组成一个端口(即中

7、断屏蔽寄存器),用输出指令来控制它们的状态。COMPUTER SCIENCE AND TECHNOLOGY10具有中断屏蔽的接口电路具有中断屏蔽的接口电路 COMPUTER SCIENCE AND TECHNOLOGY113.1.3 中断处理过程中断处理过程 1单重中断处理过程如果响应某个中断请求后,CPU只能为该请求源服务处理,不被其它中断请求所打断,只有本次中断服务全部完成并返回原程序后,CPU才能响应新的中断请求,这种情况称为单重中断。(1)CPU响应中断的条件一条指令执行结束后,CPU检测中断请求输入端INTR是否有中断请求信号,若无中断请求信号,则转取下一条指令,若有中断请求信号,则

8、检测中断允许触发器的状态,若为关中断,则转取下一条指令,若为开中断,则进行中断处理。COMPUTER SCIENCE AND TECHNOLOGY12(2)中断处理1)关中断。CPU在响应中断后,发出中断响应信号,同时内部自动地关中断,以禁止接受其他的中断请求。2)保护现场。为了使中断处理程序不影响主程序的运行,故要把断点处的有关各个状态寄存器的内容和标志位的状态,推入堆栈保护起来。3)保护断点。把断点处的程序计数器PC的内容压入堆栈,以备中断处理完后能正确地返回主程序断点。4)形成中断服务程序入口地址。CPU要对中断请求进行处理,必须要找到相应的中断服务程序的入口地址。不同类型的微机的中断处

9、理过程基本相似,但主要在形成中断服务程序入口地址方式上有所区别。5)转入中断服务程序。将中断服务程序入口地址送入程序计数器PC。需要说明的是,上述过程是微机硬件自动完成的。COMPUTER SCIENCE AND TECHNOLOGY13(3)中断服务程序1)保护现场。中断服务程序像子程序一样,在执行过程中,要使用CPU中的寄存器。所以,就应该将中断服务程序中要使用的各个寄存器的内容保护起来,即保护现场。2)中断处理。这是中断服务程序的核心部分,为中断源完成特定的功能。3)恢复现场。在中断服务程序结束之前,应恢复现场,即把保护现场时所保存的各个寄存器的内容从堆栈弹出,送回原各个寄存器中。4)开

10、中断。通过指令开中断,在中断服务程序结束时,要开中断,以便CPU能响应新的中断请求。5)返回断点。在中断服务程序结束的最后要安排一条中断返回指令,将在中断处理中压入堆栈内的保护现场和保护断点的内容弹出,即返回断点执行主程序并能继续准备响应新的中断请求。COMPUTER SCIENCE AND TECHNOLOGY14可屏蔽多重中断处理过程流程图可屏蔽多重中断处理过程流程图 COMPUTER SCIENCE AND TECHNOLOGY152多重中断处理过程多重中断处理过程 多重中断方式允许在中断服务程序处理过程中响应优先级别更高的中断请求。当正在执行中断服务程序时,又产生了优先级较高的中断请求

11、,这时CPU挂起正在处理的优先级较低的中断,转而响应优先级较高的中断,待具有较高优先级的中断处理完毕后,返回执行优先级较低的中断服务程序。这种处理过程叫做多重中断,也叫做中断嵌套。例如在图3.1.5中,假定CPU在执行主程序第K条指令时接到设备C的中断请求,经中断处理将断点K1压栈保存,然后转入设备C的中断服务程序。在执行设备C的中断服务程序第J条指令时,又接到优先级更高的设备B的中断请求,于是CPU暂停执行设备C的中断服务程序,经中断处理将断点J1压栈保存后,转入设备B的中断服务程序。当执行完设备B的中断服务程序时,从栈中取出返回地址J+1,返回设备C的中断服务程序。在执行完设备C的中断服务

12、程序之后,从栈中取出返回地址K+1返回主程序。COMPUTER SCIENCE AND TECHNOLOGY16(1)CPU响应中断的条件与单重中断相同。(2)中断处理与单重中断相同。COMPUTER SCIENCE AND TECHNOLOGY17(3)中断服务程序1)保护现场。与单重中断相同。2)保护原中断屏蔽字。保护本次中断的屏蔽字,以便返回主程序时恢复之。3)送新中断屏蔽字。该屏蔽字将屏蔽掉与本次中断请求同一优先级别以及更低级别的其它请求。例如,在图3.1.5设备C中断服务程序中,其新中断屏蔽字对应A、B、C、D的输出状态为1、1、0、0。4)开中断。通过指令开中断,因在中断处理中已由

13、硬件关中断,为了能响应新的更高级别请求,中断服务程序需执行开中断指令。5)中断处理。与单重中断相同,若有新的更高级别的中断请求就在此程序段内响应。6)关中断。通过指令关中断,在恢复现场和恢复原屏蔽字时不允许被干扰,CPU应处于关中断的状态。7)恢复原屏蔽字。在中断服务程序结束时,需要恢复原屏蔽字。8)恢复现场。与单重中断相同。9)开中断。10)返回断点。COMPUTER SCIENCE AND TECHNOLOGY183.2 Pentium的中断机制的中断机制 Pentium的中断机制最多能处理256个中断源,每个中断源都有一个8位二进制数的中断类型码(0255),以供CPU进行识别。Pent

14、ium的256个中断源可分成四类,即可屏蔽中断(INTR)、非屏蔽中断(NMI)、软件中断(执行INTO、INT3、INT n、BOUND指令引起的中断)、异常。COMPUTER SCIENCE AND TECHNOLOGY19Pentium的中断机制示意图的中断机制示意图 COMPUTER SCIENCE AND TECHNOLOGY203.2.1 中断向量表中断向量表 中断类型码通过一个地址指针表与中断服务程序入口地址相联。在实模式下,该表称为中断向量表。在保护模式下,该表称为中断描述符表。中断向量就是中断服务程序的入口地址,而中断向量表则是存放中断服务程序入口地址的表格。中断向量表位于存

15、储器地址空间的低地址端,共1K个字节,地址为00000H003FFH,每4个字节存放一个中断服务程序的入口地址(一共可存放256个中断服务程序的入口地址)。较高地址的两个字节存放中断服务程序入口的段地址,较低地址的两个字节存放入口地址的段内偏移量,这4个单元的最低地址称为向量地址,其值为对应的中断类型码乘4。COMPUTER SCIENCE AND TECHNOLOGY21中断向量表中断向量表 COMPUTER SCIENCE AND TECHNOLOGY223.2.2 可屏蔽中断可屏蔽中断INTR 可屏蔽中断请求线INTR通常由Intel 8259A中断控制器驱动,该控制器可由软件命令来控制

16、其工作方式。8259A的主要任务是:接收与其相连的外部设备的中断请求,确定优先级,向INTR引脚发中断请求,通过数据总线向CPU发中断类型码。当CPU在INTR引脚上接收到一个高电平的中断请求信号,并且当前的中断允许标志位IF为1时,CPU就会在当前指令执行结束后,响应INTR引脚的中断请求。Pentium要求可屏蔽中断请求信号是一个高电平信号,并且,INTR信号的高电平必须维持到CPU响应中断后才结束。COMPUTER SCIENCE AND TECHNOLOGY23中断响应总线周期中断响应总线周期 COMPUTER SCIENCE AND TECHNOLOGY243.2.4 软件中断软件中

17、断 软件中断包括INTO、INT3、INT n、BOUND指令。软件中断的特点是:(1)软件中断指令是程序员人为设置在程序中的。(2)中断类型码包含在指令中,所以不执行中断响应总线周期。(3)除BOUND指令外,中断返回地址指向软件中断指令的下一条指令。COMPUTER SCIENCE AND TECHNOLOGY251INT n中断指令执行INT n指令时(n取值为0255),将使CPU进入中断类型码n所对应的中断服务程序。2INT3中断指令INT3是一个单字节的断点中断指令,执行INT3指令时,将使CPU进入类型为3的中断服务程序。3INTO中断指令INTO溢出中断指令也是一个单字节的指令

18、。INTO指令通常是跟在有符号数的加法运算或减法运算指令的后面。当运算指令使溢出标志OF为1时,执行INTO指令就会进入类型为4的溢出中断服务程序,此时中断服务程序给出出错标志。如果运算指令使OF为0,那么,接着执行INTO指令时,也会进入中断服务程序,但此时中断处理程序仅仅是对标志进行测试,然后很快返回主程序。4BOUND中断指令COMPUTER SCIENCE AND TECHNOLOGY263.2.5 异常简介异常简介异常既不是外部硬件产生的,也不是用软件指令产生的,而是在CPU执行一条指令过程中出现的错误或检测到的异常情况自动产生的。除单步(陷阱)中断外,异常中断返回地址指向程序中发生

19、中断的地方,而不是指向产生中断指令的下一条指令。COMPUTER SCIENCE AND TECHNOLOGY271类型类型0除法出错除法出错 在执行除法指令后结果溢出或遇到除数为0的情况,则CPU会自动产生类型为0的中断,转入相应的中断处理程序。COMPUTER SCIENCE AND TECHNOLOGY282类型类型1单步(陷阱)单步(陷阱)当标志寄存器中的陷阱标志位TF为1时,每执行一条指令后,就进入一次类型1的中断服务程序,此中断服务程序用来显示出一系列寄存器的值,并且告示一些附带的信息。因此,单步中断一般用在调试程序中逐条执行用户程序。Pentium没有直接对TF标志置“1”或置“

20、0”的指令,可以通过修改存放在堆栈中标志的内容或其他间接方法来改变TF之值。COMPUTER SCIENCE AND TECHNOLOGY293类型类型6无效操作码无效操作码 在程序中遇到未定义的操作码时发生此中断。COMPUTER SCIENCE AND TECHNOLOGY304类型类型7设备不可用设备不可用 设备不可用故障会在以下两种条件下产生:(1)Pentium微处理机执行了一条ESC(处理机脱离)指令,且控制寄存器CR0中的EM(模拟协处理器)位被置成“1”。(2)Pentium微处理机执行了一条WAIT指令,且控制寄存器CR0中的(监控协处理器位)MP=1,或执行了一条ESC指令

21、,且控制寄存器CR0的TS(任务切换)位被置为“1”。COMPUTER SCIENCE AND TECHNOLOGY315类型类型8双故障双故障 一般情况下,若Pentium微处理机在调用一个异常处理程序时又检测到了一个异常,则对这两个异常可以进行串行处理。但是,如果处理机不能对它们实施串行处理,则它将发出一个双故障异常信息。COMPUTER SCIENCE AND TECHNOLOGY326类型类型10无效任务状态段无效任务状态段 试图把任务转换到一个具有无效任务状态段的段内时,就会产生无效任务状态段故障。COMPUTER SCIENCE AND TECHNOLOGY337类型类型11段不存

22、在段不存在 当描述符中的P位(P=0)指示段不存在或无效时发生该中断。COMPUTER SCIENCE AND TECHNOLOGY348类型类型12堆栈段超限堆栈段超限 如果堆栈段不存在(P=0)或堆栈段超限,则发生该中断。COMPUTER SCIENCE AND TECHNOLOGY359类型类型13一般保护一般保护 在保护模式下,不会引起另一个异常的发生但却违背了保护规则的所有动作都将引起一个一般保护异常。下面列出一些违背保护规则的情况(不是全部):(1)描述符表边界超出。(2)违反特权规则。(3)在使用代码段CS、数据段DS、附加数据段ES、FS或GS时超出了段界限。(4)对被保护代码

23、段的写操作。(5)从只能执行的代码段读取数据。COMPUTER SCIENCE AND TECHNOLOGY3610类型类型14页面出错页面出错 访问页面出错的存储器时发生此中断。COMPUTER SCIENCE AND TECHNOLOGY3711类型类型16浮点错浮点错 浮点错故障是由浮点算术运算指令产生的一种错误信号,只有当控制寄存器CR0中的NE(数值异常事故)位被置成1时,才可能出现浮点错中断。COMPUTER SCIENCE AND TECHNOLOGY3812类型类型17对准检查对准检查 对准检查故障是在对非对准的操作数进行访问时产生的。例如,一个存储在奇数字节地址上的字以及一个

24、存储在非4的整数倍的地址上的双字等就是非对准的数。COMPUTER SCIENCE AND TECHNOLOGY3913类型类型18机器检查机器检查 在PentiumPentium微处理器中激活一个系统存储器管理模式中断。COMPUTER SCIENCE AND TECHNOLOGY403.2.6 实模式中断处理过程实模式中断处理过程 COMPUTER SCIENCE AND TECHNOLOGY413.2.6 实模式中断处理过程实模式中断处理过程 COMPUTER SCIENCE AND TECHNOLOGY423.2.7 保护模式中断操作保护模式中断操作 保护模式下的中断与实模式几乎完全相

25、同,但在保护模式下,用中断描述符表IDT来替代中断向量表。中断描述符表由中断描述符表地址寄存器IDTR定位于系统中任一存储单元。中断描述符表包含的是门描述符,而不是向量。从图3.2.5中可以看到该表最多包含256个门描述符。这些门描述符分别与中断类型码0255相对应。门描述符可定义为陷阱门、中断门或者任务门。当Pentium响应一个异常或中断时,以其类型码为依据,指向IDT中的一个门描述符。如果被寻址的门描述符是任务门,则它将以一种与用CALL指令调用一个任务门相同的方式引起一次任务的转换。若是索引指向一个中断门或自陷门,则它将以一种与用CALL指令调用一个调用门相同的方式调用异常或中断服务程

26、序。但对于中断门而言,进入中断服务程序之前会将IF复位为0,陷阱门则不理睬IF标志。COMPUTER SCIENCE AND TECHNOLOGY43Pentium在保护模式下中断转移的过程示意图在保护模式下中断转移的过程示意图 COMPUTER SCIENCE AND TECHNOLOGY443.3 可编程中断控制器可编程中断控制器8259A 在中断控制过程中,中断源的识别和优先权的确定可以用硬件排队电路等实现,Inter 8259A可编程中断控制器就是为完成这些任务而设计的一种器件。它不是I/O接口,而是一种中断管理芯片,筒称PIC(Programmable Interrupt Contr

27、oller)。8259A可编程中断控制器用来管理8级优先中断,并可将多个8259A级联起来,构成64级中断优先级管理系统,而无须外加电路,它具有多种工作方式,CPU可以通过编程设定或改变它的工作方式,CPU响应中断时,8259A能自动提供中断入口地址,而使CPU转向相应的中断处理程序。COMPUTER SCIENCE AND TECHNOLOGY458259A的主要功能的主要功能(1)每片8259A可管理8级优先权中断源,在基本不增加其他电路的情况下,通过8259A的级联,最多可管理64级优先权的中断源。(2)对任何一个级别的中断源都可单独进行屏蔽,使该级中断请求暂时被禁止,直到取消屏蔽时为止

28、。(3)向CPU提供可编程的标识码,对于8086Pentium的CPU来说就是中断类型码。(4)有多种工作方式,可通过编程选择。(5)可与8086Pentium的CPU直接连接,不需外加硬件电路。COMPUTER SCIENCE AND TECHNOLOGY463.3.1 8259A的内部结构及引脚功能的内部结构及引脚功能 COMPUTER SCIENCE AND TECHNOLOGY471中断请求寄存器中断请求寄存器IRR 中断请求寄存器IRR用于寄存所有IR输入线输入的中断请求信号,即保存正在请求服务的中断级。中断请求寄存器IRR接收外部的中断请求,IRR有8位,它们分别和引脚IR0-IR

29、7相对应。接收来自某一引脚的中断请求后,IRR寄存器中的对应位置1,也就是对这一中断请求作了锁存。8259A有边沿触发和高电平触发两种触发方式。在边沿触发方式下,8259A将中断请求输入端出现的上升沿作为中断请求信号。中断请求输入端出现上升沿触发信号以后,可以一直保持高电平。在高电平触发方式下,8259A把中断请求输入端出现的高电平作为中断请求信号。在高电平触发方式下,当第一个中断响应信号变为有效之后,输入端必须及时撤除高电平,避免引起不应该有的第二次中断请求。COMPUTER SCIENCE AND TECHNOLOGY482中断服务寄存器中断服务寄存器ISR 中断服务寄存器ISR的主要作用

30、是保存当前被CPU服务的中断级,也就是记录正在被处理的中断请求。8位中断服务寄存器ISR用来记忆正在处理中的中断级别,它的每位分别与IRR寄存器中的各位相对应。当CPU正为某个中断源服务时,8259A则使ISR中的相应位置1。当ISR为全“0”时,表示无任何中断服务。COMPUTER SCIENCE AND TECHNOLOGY493优先级分辨器优先级分辨器PR 优先级分辨器PR的主要作用是确定中断请求寄存器IRR中各位的优先等级,并确定能否向CPU申请中断。优先级分辨器PR也称优先级裁决器,用来管理和识别各个中断源的优先级别。中断优先级裁决器把新进入的中断请求和当前正在处理的(即中断服务寄存

31、器ISR中的内容)中断进行比较,从而决定哪一个优先级更高。如果判断出新进入的中断请求具有足够高的优先级,那么,中断裁决器会通过相应的逻辑电路要求控制逻辑向CPU发出一个中断请求。COMPUTER SCIENCE AND TECHNOLOGY504控制逻辑控制逻辑 控制逻辑将根据优先级裁决器的请求向CPU发出一个中断请求信号,即输出引脚INT为1。如果CPU的中断允许标志IF为1,那么,CPU执行完当前指令后,就可以响应中断。这时,CPU从 线上往8259A回送两个负脉冲。第一个负脉冲到达时,8259A完成以下3个动作:(1)使IRR的锁存功能失效。这样,在IR0-IR7线上的中断请求信号就不予

32、接收,直到第二个负脉冲到达时,才又使IRR的锁存功能有效。(2)使当前中断服务寄存器ISR中的相应位置1,以便为中断优先级裁决器以后的工作提供判断依据。(3)使IRR寄存器中的相应位(即刚才设置ISR为1所对应的IRR中的位)清0。第二个负脉冲到达时,8259A完成下列动作:(1)将中断类型码寄存器ICW2中的内容送到数据总线的D7-D0,CPU将此作为中断类型码。(2)如果ICW4(方式控制字)中的中断自动结束位为1,那么,在第二个 脉冲结束时,8259A会将第一个 脉冲到来时设置的当前中断服务寄存器ISR的相应位清0。INT:中断请求信号,输出。只要8259A的中断逻辑判定中断请求信号有效

33、,就在这个引脚上产生一个高电平,可接到CPU的中断输入端。COMPUTER SCIENCE AND TECHNOLOGY515操作命令字寄存器操作命令字寄存器OCW1-OCW3 操作命令字寄存器OCW1-OCW3用于存放操作命令字。操作命令字由应用程序设定,用于对中断处理过程的动态控制。在一个系统运行过程中,操作命令字可以被多次设置。操作命令字寄存器中的OCW1是8位中断屏蔽寄存器IMR,用于存放CPU送来的中断屏蔽信号,它的每位分别与IRR寄存器中的各位相对应,对各中断源的中断请求信号(IR0-IR7)实现开关控制。当它的某位为“1”时,对应的中断请求就被屏蔽,即对该中断源的有效请求置之不理

34、。COMPUTER SCIENCE AND TECHNOLOGY526初始化命令字寄存器初始化命令字寄存器ICW1-ICW4 初始化命令字寄存器ICW1-ICW4是微机系统启动时由初始化程序设置的。初始化命令字一旦设定,一般在系统工作过程中就不再改变。因此,CPU对8259A编程时,首先要送入初始化命令字。初始化命令字送入8259A时,必须严格按着规定的顺序,因为8259A的内部控制电路,对命令字的识别除了依靠地址信号A0和某些特征位之外,还要根据它先后装入的顺序。ICW1和ICW2是必须设置的,而ICW3和ICW4是由工作方式来选择的。COMPUTER SCIENCE AND TECHNOL

35、OGY537数据总线缓冲器数据总线缓冲器 数据总线缓冲器是8位三态双向缓冲器,通常和CPU系统总线中的D7-D0相连接,在读/写逻辑的控制下实现CPU与8259A之间的信息交换。D7-D0:8位数据引脚,在系统中,它们和数据总线相连,从而实现和CPU的数据交换。在较大的系统中,一般使用总线驱动器(即缓冲方式),这时,D7-D0与总线驱动器相连。在小系统中,D7-D0直接与数据总线相连(即非缓冲方式)。COMPUTER SCIENCE AND TECHNOLOGY548读读/写逻辑写逻辑 读/写逻辑是根据CPU送来的读/写信号和地址信息,通过数据总线缓冲器有条不紊地完成CPU对8259A的所有写

36、操作和读操作。读出信号,低电平有效,通知8259A将某个内部寄存器的内容送到数据总线上。写入信号,低电平有效,通知8259A从数据线上接收数据。这些数据实际上就是CPU往8259A发送的命令字,也就是说,每当8259A接收一个数据,便设置一个命令字。芯片选通信号,低电平有效,通过地址译码逻辑电路与地址总线相连。A0:指出当前8259A的哪个端口被访问。1片8259A对应两个端口地址,其中一个为偶地址,一个为奇地址,并且要求偶地址较低,奇地址较高。COMPUTER SCIENCE AND TECHNOLOGY559级联控制级联控制 一片8259A最多构成8级中断(IR7-IR0),要想扩展中断源

37、,必须多片连在一起,叫级联方式。级联控制主要是为实现多片8259A的级联应用而设计的。级联缓冲/比较器的功能有两个,一是提供级联控制,二是提供缓冲控制。在级联应用中,只有一片8259A为主片,其他均为从片,从片最多不能超过8片。此时各从片8259A的INT将与主片8259A的IRx相连接,而它们的三个级联信号CAS2-CAS0将分别互连起来。此时,主8259A在第一个 响应周期内通过CAS2-CAS0送出三位识别码,而和此识别码相符的从8259A将在第二个 响应周期内释放中断类型码到数据总线上,使CPU进入相应的中断处理程序。COMPUTER SCIENCE AND TECHNOLOGY563

38、.3.2 8259A的工作方式的工作方式 8259A是可编程芯片,可以通过程序命令来确定8259A的工作方式。中断控制器8259A有10种工作方式。8259A有两种命令,一种是初始化命令,另一种是操作命令,它们用于控制8259A的中断管理。COMPUTER SCIENCE AND TECHNOLOGY571全嵌套方式全嵌套方式 这是一种最普通的工作方式。8259A在初始化工作完成后若未设定其它的工作方式,就自动进入全嵌套方式,这种方式的特点是:(1)中断请求的优先级固定,其顺序是IR0最高,逐次减小,IR7最低。(2)中断服务寄存器ISR保存优先权电路确定的优先级状态,相应位置“1”,并且一直

39、保持这个服务“记录”状态,直到CPU发出中断结束命令为止。(3)在ISR置位期间,不再响应同级及较低级的中断请求,而高级的中断请求如果CPU开放中断的话仍能够得到中断服务。(4)IR7-IR0的中断请求输入可分别由中断屏蔽寄存IMR的D7-D0的相应位屏蔽与允许,对某一位的屏蔽与允许操作不影响其它位的中断请求操作。全嵌套工作方式由ICW4的D4=0来确定。COMPUTER SCIENCE AND TECHNOLOGY582循环优先级方式循环优先级方式 循环优先级方式是8259A管理优先级相同的设备时采用的中断管理方式,它包括两种:自动循环优先级方式和特殊循环优先级方式。(1)自动循环各设备优先

40、级相同,当某一个设备受到服务之后,它的优先级就自动地排到最后。所谓各设备优先级相同,是指它们的地位相同,受服务的机会均等,但是必竟各中断源的优先级需要排出一个顺序,否则同时有多个中断源申请中断时计算机无法处理,于是排出这样一个优先级由高到低的顺序。(2)特殊循环特殊循环优先级方式与自动循环优先级方式的不同之处在于:在自动循环优先级方式中,某一设备在被服务之后被确定为最低优先权;而在特殊循环优先级方式中,是通过编程来确定某一设备为最低优先级。如IR5被指定为最低优先级,则IR6的优先级最高。COMPUTER SCIENCE AND TECHNOLOGY593特殊屏蔽方式特殊屏蔽方式 8259A的

41、每个中断请求输入信号都可由中断屏蔽寄存器IMR的相应位进行屏蔽,IMR的D0对应IR0,D1对应IR1,D7对应IR7,相应位为“1”则屏蔽中断输入,相应位为“0”则允许中断输入。IMR寄存器由操作命令OCW1进行设置。对中断请求输入信号的屏蔽方式一般有两种:正常屏蔽方式和特殊屏蔽方式。在正常屏蔽方式中,每一个屏蔽位对应一个中断请求输入信号,屏蔽某一个中断请求输入信号对其他请求信号没有影响。未被屏蔽的中断请求输入信号仍然按照设定的优先级顺序进行工作,而且保证当某一级中断请求被响应服务时,同级和低级的中断请求将被禁止,如果CPU允许中断,则高级的中断请求还会被响应,实现中断嵌套。COMPUTER

42、 SCIENCE AND TECHNOLOGY604程序查询方式程序查询方式 程序查询方式是不使用中断,用软件寻找中断源并为之服务的工作方式。在这种方式下,8259A不向CPU发送INT信号(实际上是8259A的INT信号不连到CPU的INTR信号上),或者CPU关闭自己的中断允许触发器,使IF=0,禁止中断输入。申请中断的优先级不是由8259A提供的中断类型码而是由CPU发出查询命令得到的。查询时,CPU先向8259A发出查询命令,8259A接到查询命令后,就把下一个IN指令(对偶地址端口的读指令)产生的脉冲作为中断响应信号,此时,若有中断请求信号,则在ISR中相应位置“1”,并把该优先级送

43、上数据总线。COMPUTER SCIENCE AND TECHNOLOGY615中断结束方式中断结束方式所谓中断结束方式是指中断如何结束的方法,这里的“结束”不是指中断服务程序的结束,中断服务程序的结束用IRET指令就可完成,这里的“结束”是指如何和何时使8259A中的ISR中的相应位清零。ISR中某位为“1”,表示CPU正在为之服务;某位为“0”表示CPU已经停止(结束)为之服务。而IRET指令主要是恢复程序的断点,它并不能使ISR的相应位清零。8259A的中断结束方式有两种:命令中断结束方式(EOI)和自动中断结束方式(AEOI)。COMPUTER SCIENCE AND TECHNOLO

44、GY62(l)自动结束)自动结束 在自动中断结束(AEOI)方式下,8259A自动地在最后一个 中断响应脉冲的后沿将中断服务寄存器ISR中的相应位清零。这种方式的过程是:中断请求,CPU响应,发第一个 ,ISR相应位置“1”,CPU发第二个 ,8259A提供中断类型码,ISR相应位清零,结束。显然,ISR的相应置“1”位在CPU中断响应周期内自生自灭,因此在ISR中不会有两个或两个以上的置“1”位。自动中断结束方式(AEOI)的应用场合一般是,8259A单片系统,或不需要嵌套的多级中断系统。AEOI方式只能用于主片8259A,不能用于从片8259A。自动中断结束方式由ICW4的AEOI=1确定

45、。COMPUTER SCIENCE AND TECHNOLOGY63(2)命令结束)命令结束 命令中断结束方式(EOI)是在中断服务程序返回之前,向8259A发中断结束命令(EOI),使ISR中的相应位清零。它包括两种情况:1)非特殊EOI命令:全嵌套方式下的中断结束命令称为非特殊EOI命令,该命令能自动地把当前ISR中的最高优先级的那一位清“0”。非特殊EOI命令是由OCW2的R=0、SL=0、EOI=1确定的。2)特殊EOI命令:非全嵌套方式下的中断结束命令称为特殊EOI命令。在非全嵌套方式下,由于无法确定最后响应的是哪一级中断(非全嵌套方式各中断源没有固定的优先级别,因此也就不知道谁高谁

46、低),所以应向8259A发出特殊EOI命令,即指定哪一级中断返回,使其ISR中的相应位清“0”。COMPUTER SCIENCE AND TECHNOLOGY646读读8259A状态状态 读8259A的状态是指读8259A内部的IRR、ISR和IMR的内容。(1)读IRR。先发出OCW3命令(使RR=1、RIS=0,地址A0=0),在下一个 脉冲时可读出IRR,其中包含尚未被响应的中断源情况。(2)读ISR。先发出OCW3命令(使RR=1、RIS=1,地址A0=0),在下一个 脉冲时可读出ISR,其中包含正在服务的中断源情况,也可看中断嵌套情况。(3)读IMR。不必先发OCW3,只要读奇地址端

47、口(A0=l),则可读出IMR,其中包含设置的中断屏蔽情况。COMPUTER SCIENCE AND TECHNOLOGY657中断请求触发方式中断请求触发方式 8259A的中断请求寄存器IRR中有8个中断请求触发器,分别对应8个中断请求信号的输入端IR0-IR7,这些触发器的触发方式有两种,即边沿触发和电平触发。(1)边沿触发当输入端有从低电平到高电平的正跳变时,则产生中断请求(IRR中相应位的触发器被触发置“1”,而不是直接向CPU申请中断)。此后,即使输入端仍然保持高电平也不会再产生中断。也就是说,只有正跳沿才能产生中断。边沿触发方式由ICW1的LTIM=0确定。(2)电平触发当输入端产

48、生高电平时产生中断请求。只要高电平就可以,不需要脉冲跳变。但需要注意的是,在电平触发方式下,在发出EOI命令以前,必须去掉中断请求信号(使其变为低电平),否则将产生第二次中断。COMPUTER SCIENCE AND TECHNOLOGY668缓冲器方式缓冲器方式 所谓缓冲器方式就是在8259A和数据总线之间挂接总线驱动器的方式,在缓冲器方式下,引脚将使用功能,并使之输出一个有效低电平,开启缓冲器工作。该方式多用于级联的大系统。缓冲器方式由ICW4的BUF=1确定。COMPUTER SCIENCE AND TECHNOLOGY679特殊的全嵌套方式特殊的全嵌套方式 该方式适用于多片级连,且必须

49、将优先级保存在各从片8259A中的大系统。该方式与普通的全嵌套方式工作情况基本相同,区别在于两点:(1)当某从片的一个中断请求被CPU响应后,该从片的中断仍未被禁止(即没有被屏蔽),即该从片中的高级中断仍可提出申请(全嵌套方式中这样的中断是被屏蔽的,因为这种中断对从片而言后者是高级中断,可以嵌套,但对主片而言,由于它们来自于同一个从片,故中断优先级相同,而在全嵌套方式中,同级和低级中断是被禁止的)。(2)在某个中断源退出中断服务程序之前,CPU要用软件检查它是否是这个从片中的唯一中断。检查办法是:送一个非特殊中断结束命令(EOI)给这个从片,然后读它的ISR,检查是否为0,若为0则唯一,即只有

50、这一个中断在被服务,没有嵌套。若不为0则不唯一,说明还有其他的中断在被服务,该中断是嵌套在其他中断里的。只有唯一时,才能把另一个非特殊EOI命令送至主片,结束此从片的中断。否则,如果过早地结束主片的工作记载而从片尚有未处理完的嵌套中断的话,整个系统的中断嵌套环境就会混乱。COMPUTER SCIENCE AND TECHNOLOGY6810多片级联方式多片级联方式 在级联系统中,每个从片的中断请求输出线INT直接连到主片的某个中断请求输入线上,主片的CAS0-CAS2是输出线,输出被响应的从片代码,从片的CAS0-CAS2是输入线,接收主片发出的从片代码,以便与自身代码相比较。级联方式的要点如

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁