您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 微型计算机原理及其应用第七章:微型计算机的中断系统
1微型计算机原理及其应用——第七章:微型计算机的中断系统2第七章:微型计算机的中断系统1.中断的概念及处理过程2.8086中断系统3.中断控制器8259A3第七章:微型计算机的中断系统1.中断的概念及处理过程2.8086中断系统3.中断控制器8259A4第七章:微型计算机的中断系统——概念及处理过程什么是中断?在CPU执行程序的过程中,由于某种突发事件的发生,强迫CPU暂时停止正在执行的程序,转向对该突发事件进行处理,对这个事件处理结束后又能回到原中止的程序,接着中止前的状态继续执行原来的程序,这一个过程就称为中断。把引起中断的原因或触发中断请求的来源称为中断源。5第七章:微型计算机的中断系统——概念及处理过程中断请求信号的产生中断方式提高了CPU的工作效率,但是它同时也提高了系统的硬件开销。因为系统需增加含有中断功能接口电路,用来产生中断请求信号。以输入方式为例,接口电路如图所示。外设发STB→数据入锁存器,中断请求触发器置1→若没有屏蔽则产生INTR→CPU满足条件(允许中断;指令执行完)发→(进入中断服务子程序)读数据,发,和地址→清中断请求触发器,数据送D0~D7。6第七章:微型计算机的中断系统——概念及处理过程中断优先级中断优先级(1)如果有多个不同优先级的中断源同时提出中断请求时,CPU应当先响应最高优先级的中断源。(2)如果CPU正在对某一中断源服务时,比它优先级更高的中断源提出中断请求时,CPU能够暂停正在执行的中断服务程序转向对优先级高的中断源进行服务,当服务结束后再返回原优先级较低的中断服务程序继续执行。中断嵌套正在运行的中断处理程序,被优先级高的中断源中断,从而转入新的中断处理程序,当新的中断处理程序执行完再回到原来的中断处理程序,这一现象称为中断嵌套。7第七章:微型计算机的中断系统——概念及处理过程中断优先级当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。软件查询方法只需有简单的硬件电路,如将A、B、C三台设备的中断请求信号“或”后作为系统INTR,这时,A、B、C三台设备中只要至少有一台设备提出中断请求,都可以向CPU发中断请求。进入中断服务子程序后,再用软件查询的方式分别对不同的设备的服务,查询程序的设计思想同查询式,查询的前后顺序就给出了设备的优先级。8第七章:微型计算机的中断系统——概念及处理过程中断优先级——简单硬件方法将所有的设备连成一条链,靠近CPU的设备优先级最高,越远的设备优先级别越低,则发出中断响应信号,若级别高的设备发出了中断请求,在它接到中断响应信号的同时,封锁其后的较低级设备使得它们的中断请求不能响应,只有等它的中断服务结束以后才开放,允许为低级的设备服务。9第七章:微型计算机的中断系统——概念及处理过程中断优先级——专用硬件方法采用可编程的中断控制器芯片,如Intel8259A。10第七章:微型计算机的中断系统——概念及处理过程中断过程是指中断请求、中断响应、中断处理、中断返回这四个过程。中段请求、中断响应由硬件完成,中断处理、中断返回由软件完成。中断请求1)外部设备发中断请求的条件:当外设准备就绪或本身工作已经完成时,才向CPU提出中断请求。2)外部设备中断请求的标志:当外设要求和CPU进行数据交换时,将中断请求信号送往中断请求触发器或中断控制器,经它们处理后,向CPU发出中断请求。中断响应如果CPU处于开中断状态,经判优后响应其中最高优先级的中断请求,关中断,将断点压入堆栈中(有的微机还将程序状态字和相关寄存器的内容压入堆栈)保存,以备返回原程序,紧接着将相应的中断处理程序入口地址或中断向量送CPU,转入中断服务程序。11第七章:微型计算机的中断系统——概念及处理过程中断过程中断处理保护现场。将在中断处理程序中使用的有关寄存器的内容压入堆栈保护起来。在现场保护的过程中,绝对不允许被中断(应禁止中断),否则现场将被破坏。当现场保护好后应开中断。中断服务。即该中断所要执行的具体指令内容。恢复现场。当中断服务结束后,应用中断结束命令清除中断标志,立即关中断,以保证恢复现场的过程不受干扰。恢复现场就是把原来压入堆栈的有关寄存器的内容弹出。现场恢复后应开中断,以便CPU响应更高级的中断请求。中断返回将压入的断点地址弹出,保证被中断的程序按原来状态执行下去。12第七章:微型计算机的中断系统——概念及处理过程中断过程中断处理和中断返回中的所有内容,也叫做中断服务程序。即:13第七章:微型计算机的中断系统1.中断的概念及处理过程2.8086中断系统3.中断控制器8259A14第七章:微型计算机的中断系统——8086的中断系统中断分类及中断类型码中断源可以分为两大类,即外部(硬件)中断和内部(软件)中断。硬件中断:即通过外部的硬件产生的中断,如打印机、键盘等。硬件中断又可分为:可屏蔽中断和不可屏蔽中断。不可屏蔽中断:由NMI引脚引入,它不受中断允许标志的影响,每个系统中仅允许有一个,都是用来处理紧急情况的,如掉电处理。这种中断一旦发生,系统会立即响应。可屏蔽中断:由INTR引脚引入,它受中断允许标志的影响,也就是说,只有当IF=1时,可屏蔽中断才能进入,反之则不允许进入,可屏蔽中断可有多个,一般是通过优先级排队,从多个中断源中选出一个进行处理。软件中断:即根据某条指令或者对标志寄存器中某个标志的设置而产生,它与硬件电路无关,常见的如除数为0,或用INTn指令产生。15第七章:微型计算机的中断系统——8086的中断系统中断分类及中断类型码8086/8088系统最多可处理256级不同类型的中断。中断分类外部中断(硬件中断)内部中断(软件中断)可屏蔽中断(INTR)非屏蔽中断(NMI,中断类型码2)单步中断(中断类型码1)断点中断(中断类型码3)溢出中断(中断类型码4)Intn中断16第七章:微型计算机的中断系统——8086的中断系统中断分类及中断类型码INT n指令中 断 逻 辑INTO指令单步中断INT3指令除数为0中断非屏蔽中断请求中断控制系统(8259A)。。。可屏蔽中断请求NMIINTR软件中断硬件中断17第七章:微型计算机的中断系统——8086的中断系统中断分类及中断类型码中断类型码:8086为每个中断源分配了一个中断类型码,其取值范围为0~255,即可处理256种中断。其中包括软件中断,系统占用的中断以及开放给用户使用的中断。中断类型码或者包含在指令中,或者预先规定;所有内部中断和NMI中断都不执行INTA总线周期;除单步中断外,任何内部中断都无法禁止且都比外部中断优先级高;中断优先级内中断(除法错,INTO,INT)最高最低非屏蔽中断NMI可屏蔽中断INTR单步中断18第七章:微型计算机的中断系统——8086的中断系统中断向量和中断向量表中断向量:把各个中断服务子程序的入口都称为一个中断向量;中断向量表:将这些中断向量按一定的规律排列成一个表,就是所谓的中断向量表,当中断源发出中断请求时,即可查找该表,找出其中断向量,就可转入相应的中断服务子程序。向量表地址:中断向量在中断向量表中的位置。8086中断系统中的中断向量表是位于0段的0~3FFFH的存贮区内,每个中断向量占四个单元,其中前两个单元存放中断处理子程序的入口地址的偏移量(IP),低位在前,高位在后;后两个单元存放中断处理子程序入口地址的段地址(CS),也是低位在前,高位在后,整个中断向量的排列是按中断类型号进行的。19第七章:微型计算机的中断系统——8086的中断系统中断向量和中断向量表000H004H008H00CH014H080H3FFHIP偏移地址CS段基地址IP偏移地址CS段基地址IP偏移地址CS段基地址······中断类型码0(除法错)中断类型码1(单步中断)中断类型码2(NMI中断)中断类型码3(断点中断)中断类型码4(溢出中断)中断类型码5(保留)系统保留中断用户自定义中断20第七章:微型计算机的中断系统——8086的中断系统中断向量和中断向量表00H~04H----系统专用10H~1FH----BIOS用40H~FFH----用户用08H~0FH----硬件中断20H~3FH----DOS用21第七章:微型计算机的中断系统——8086的中断系统中断响应过程与时序22第七章:微型计算机的中断系统——8086的中断系统中断响应过程与时序23第七章:微型计算机的中断系统1.中断的概念及处理过程2.8086中断系统3.中断控制器8259A24第七章:微型计算机的中断系统——中断控制器8059A8259A性能概述1.具有8级中断优先控制,通过级连可以扩展至64级优先权控制;2.每一级中断都可以通过初始设置为允许或屏蔽状态;3.8259A的工作方式,可以通过编程进行设置,因此,使用非常灵活;4.8259A采用NMOS制造工艺,只需要单一的+5V电源。25第七章:微型计算机的中断系统——中断控制器8059A8259A的内部结构和工作原理26第七章:微型计算机的中断系统——中断控制器8059A8259A的内部结构和工作原理数据总线缓冲器:它是8259A与系统数据总线的接口,是8位双向三态缓冲器。CPU与8259A之间的控制命令信息、状态信息以及中断类型信息,都是通过该缓冲器传送的。读/写控制逻辑:CPU通过它实现对8259A的读/写操作。级连缓冲器:用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至64级。控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。中断请求寄存器IRR:8位,用以分别保存8个中断请求信号,当相应的中断请求输入引脚有中断请求时,该寄存器的相应位置1。中断屏蔽寄存器IMR:8位,相应位用以对8个中断源的中断请求信号进行屏蔽控制。当其中某位置”0”时,则相应的中断请求可以向CPU提出;否则,相应的中断请求被屏蔽,即不允许向CPU提出中断请求。该寄存器的内容为8259A的操作命令字OCW1,可以由程序设置或改变。中断服务寄存器ISR:8位,当CPU正在处理某个中断源的中断请求时,ISR寄存器中的相应位置1。优先级比较器PR:用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定是否产生多重中断或中断嵌套。27第七章:微型计算机的中断系统——中断控制器8059A8259A的外部引脚28第七章:微型计算机的中断系统——中断控制器8059A8259A的外部引脚D7-D0:双向数据输入/输出引脚,用以与CPU进行信息交换。IR7-IR0:8级中断请求信号输入引脚。INT:中断请求信号输出引脚,高电平有效,用以向CPU发中断请求,应接在CPU的INTR输入端。INTA#:中断响应应答信号输入引脚,低电平有效,接在CPU的中断应答信号输出端。RD#、WR#:读/写控制信号输入引脚,低电平有效,实现对8259A内部有关寄存器内容的读操作。CS#:片选信号输入引脚,低电平有效,决定了8259A的端口地址范围。A0:8259A两组内部寄存器的选择信号输入引脚,决定8259A的端口地址。CAS2-CAS0:级连信号引脚,当8259A为主片时,为输出;否则为输入,与信号配合,实现芯片的级连,这三个引脚信号的不同组合000~111,刚好对应于8个从片。SP#/EN#:为级连管理信号输入引脚,在非缓冲方式下,若8259A在系统中作从片使用,则SP=1;否则SP=0;在缓冲方式下,用作8259A外部数据总线缓冲器的启动信号。+5V、GND:电源和接地引脚。29第七章:微型计算机的中断系统——中断控制器8059A8259A的工作过程1.当有一条或若干条中断请求输入(IR7-IR0)有效时,则使中断请求寄存器的IRR的相应位置位。2.若CPU处于开中断状态,则在当前指令执行完之后,响应中断,并且发应答信号(两个连续的INTA#负脉冲)。3.第一个INTA#负脉冲到达时,IRR的锁存功能失效,对于IR7-IR0上发来的中断请求信
本文标题:微型计算机原理及其应用第七章:微型计算机的中断系统
链接地址:https://www.777doc.com/doc-3178114 .html