您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 第七章 微型计算机中断系统
98-1301第七章微型计算机中断系统有关中断的基本概念8259A可编程中断控制器8086中断系统输入/输出及8259A应用举例8086CPU中断响应流程本章内容掌握中断技术的基本概念了解8086中断系统及其对各种类型中断的响应流程了解8259A中涉及到的有关概念掌握8259A的编程应用学习目的98-13047.1中断的基本概念一、什么叫中断?中断申请主程序中断服务程序返回中断示意图所谓中断,是指这样一个过程:当CPU正在执行程序过程中,由于某一突然事件的发生,暂时中止正在执行的程序,转去处理突然发生的事件(执行中断服务程序),处理完毕,再返回原来被中止的程序继续运行。98-1305日常生活中类似“中断”的例子:例1:门铃响时,放下手中正在做的事情,跑去开门,招待客人;客人走后,接着做原来的事情。例2:教师讲课过程中,同学遇有疑问,不同理解之处,随时向老师提问。问题:请同学们列举类似“中断”的例子。二、应用中断技术的优点1.实现CPU与外设的并行工作,提高了CPU的效率。NYREADY?输入状态信息输入数据查询方式的数据输入中断方式的数据输入外设请求中断INTR有效主程序中断服务程序输入数据外设准备数据98-1307二、应用中断技术的优点1.实现CPU与外设的并行工作,提高了CPU的效率。2.实现实时处理。3.实现故障处理。98-1308三、中断源引起中断的原因,产生中断请求的来源。通常有以下几种:1.一般的I/O设备,如键盘、打印机等。2.实时时钟。3.故障源。4.为了调试程序而设置的中断。(例如设置断点,单步运行等)98-1309四、中断系统的功能计算机系统中,用于实现中断功能的硬件和软件的集合,称为中断系统。中断系统应解决如下问题:1.中断请求信号的产生(中断源如何申请中断?)2.CPU如何响应?(如何知道有中断请求?是否有求必应?响应后的处理过程?)3.中断优先权问题4.中断的具体服务5.中断服务完毕,如何返回原程序?98-13010五、实现中断优先权的方法判断和确定中断源的中断优先权,可以采用软件和硬件两种方法。当系统中有多个中断源存在时,若有几个中断源同时提出申请,CPU先响应谁?当CPU正响应某一中断过程中,又有另外的中断源提出中断请求,CPU是否响应?为此提出了中断优先权的概念。98-130111.用软件确定中断优先权优先权管理电路三态缓冲器译码锁存器GINTRD7~D0A15~A0RD中断源A中断源B中断源C………M/IO1.用软件确定中断优先权软件查询流程图优先权管理电路三态缓冲器译码锁存器GINTRD7~D0A15~A0RD中断源A中断源B中断源C………IOM在中断服务中读入请求状态A申请?B申请?中断返回为中断源A服务的程序段YC申请?为中断源B服务的程序段为中断源C服务的程序段……YY98-13013采用软件查询方式的特点:询问的次序,即为优先权的次序。硬件简单。由查询转至相应的服务程序的时间长,尤其在中断源较多的情况。2.硬件方式(1)若CPU未处理任何中断,则“优先权失效”信号为高,当任一中断源请求中断时,通过门2发出INTR信号。128-3优先权编码器优先权寄存器AB比较器A2A1A0B2B1B0比较失效中断请求0中断请求1中断请求2…………7D7~D0INTR编码器和比较器的优先权排队电路在图中,当8个中断源中某一个有中断请求时,便在其中断请求线上产生“1”,并在“或”门的输出端形成一个中断请求信号,但它能否送至CPU的中断请求线INTR,还受到比较器的控制。8条中断输入线的任一条,经过编码器可以产生三位二进制优先权编码A2A1A0,编码范围为000~111,其中111优先权最高,000优先权最低。而且,当有多个中断源同时产生中断请求时,编码器只输出优先权最高的编码。(2)若CPU正在进行中断处理,当某一中断源请求中断时,能否向CPU发出INTR信号,受比较器的控制。2.硬件方式128-3优先权编码器优先权寄存器AB比较器A2A1A0B2B1B0比较失效中断请求0中断请求1中断请求2…………7D7~D0INTR编码器和比较器的优先权排队电路×××1优先权寄存器中存放的是CPU正在服务的中断编码,将其输出至比较器即B2B1B0。A2A1A0与B2B1B0在比较器中进行比较,如果A2A1A0级别较低或与B2B1B0相同,则比较器输出为“0”,与门1被封锁;如果A2A1A0级别较高,比较器输出为“1”,则与门1打开,中断请求就被送至CPU的INTR输入端。此时,CPU将中断正在进行的中断服务程序,转去响应更高级别的中断。如果CPU正在进行中断服务,则“优先权无效”信号为“0”;反之,则为“1”。因此,与门2保证当CPU没有进行中断服务时,只要有中断请求,则中断请求信号都能被送到CPU的INTR请求端。2.硬件方式128-3优先权编码器优先权寄存器AB比较器A2A1A0B2B1B0比较失效中断请求0中断请求1中断请求2…………7D7~D0INTR编码器和比较器的优先权排队电路思考题:与软件查询方式比较,采用硬件方式有何特点?98-13017六、8086CPU响应外部中断的过程CPU在每一个指令周期的最后一个总线周期的最后一个T状态采样INTR或NMI信号线。下面以INTR为例,说明8086CPU响应中断的过程。执行一条指令最后一个总线周期的最后一个T状态?有INTR?中断开放?(FR中的IF=1?)关中断(置FR中IF=0)信号发INTA断号地址(CS.IP)入栈FR入栈识别中断源,转入相应中断服务程序保护现场中断服务处理恢复现场开中断STI(置FR中IF=1)中断返回IRET取下一条指令NoNoNoYesYesYes98-13019讨论:1.为什么要在中断服务程序中执行STI指令?2.STI指令在中断服务程序中的不同位置时,对CPU处理中断有何影响?七、小结1.实现断点地址的保护与恢复。2.实现现状信息的保护。3.实现中断优先权的排队。4.实现中断的嵌套。中断服务2(高优先级)主程序中断服务1中断过程由计算机的中断系统,配合用户设计的中断服务程序来实现。中断应具备以下功能:INTn指令中断逻辑非屏蔽中断请求中断控制系统(8259A)INT3指令INTO指令单步中断除数为0中断…可屏蔽中断请求NMIINTR硬件中断软件中断7.28086的中断系统一、中断类型8086能处理256种中断,分为两大类:外部中断和内部中断。其中断分类如右图8086的中断分类98-130221.外部中断(硬件中断)(1)非屏蔽中断NMI(类型号为2)有效,不受FR中IF的影响,常用于处理系统的重大故障。98-13023(2)可屏蔽的中断INTR高有效,CPU是否响应,取决于FR中IF的状态。常用于各种外设的中断。98-130242.内部中断(软件中断)通常由三种情况引起:(1)INTn指令中断(n为中断类型号)(2)处理CPU某些错误的中断除法错中断(中断类型号为0)溢出中断(INTO)(中断类型号为4)98-13025(3)为调试程序设置的中断a单步中断当FR中TF=1时,每执行一条指令,CPU产生类型为1的单步中断。b断点中断设置断点实际上是把指令“INT3”插入到程序中,CPU每执行到断点处的“INT3”指令,便产生类型为3的中断。98-13026二、中断优先级8086系统中,中断优先级的次序为:高低内部中断(除法错、INTO、INTn)NMIINTR单步中断98-13027三、中断向量表CPU响应中断后,如何得到中断服务程序的入口地址(中断向量),转入到中断服务程序?8086CPU通过建立中断向量表的方法解决。中断向量(中断服务程序入口地址)在表中的地址=中断类型号×4中断向量表溢出中断0000:0014H0000:0013H0000:0010H0000:000FH0000:000CH0000:000BH0000:0008H0000:0007H0000:0004H0000:0003H0000:0000H类型5类型255供用户定义的中断(共224个)0000:007FH0000:007EH0000:03FFHCSIPCSIPCSIPCSIPCSIPCSIPCSIP专用的中断(共5个)保留的中断(共27个)类型32类型31类型0类型4类型3类型2类型1除数为0中断非屏蔽中断单步中断断点中断98-13029四、中断向量的装入BIOS负责0~1FH共32个中断向量的装入。用户若想装入自己的中断向量到向量表中的,可用以下方法:1.用STOS指令填空中断向量表假设类型号为60H的中断向量为CLICLDMOVAX,0MOVES,AXMOVDI,460H;DI指向表中对应位置MOVAX,OFFSET_INTR;取偏移地址STOSW;AL[DI],AH[DI+1];DI+2DIMOVAX,SEG_INTR;取段基址STOSWSTISEG_INTR:OFFSET_INTR。2.利用MOV指令写入中断向量CLIMOVAX,00HMOVES,AXMOVBX,460H;BX指向表中对应位置MOVAX,OFFSET_INTRMOVES:[BX],AX;装入编程地址MOVAX,SEG_INTRMOVES:[BX+2],AX;装入段基址方法1,2由用户直接操作中断向量表,因此,要熟悉中断向量表的具体组织。3.利用DOS功能调用“INT21H”的AH=25H装入中断向量MOVAL,60H;类型号ALMOVAH,25H;功能号25HAHMOVDX,SEG_INTRMOVDS,DXMOVDX,OFFSET_INTR;DS:DX=中断向量INT21H方法3由DOS功能调用具体实现,中断向量表对用户是透明的。98-130331.取类型号;2.计算向量地址;3.根据向量地址查表,将偏移地址送IP,段基址送CS;4.转入中断服务程序,进行中断处理。五、8086CPU转入中断服务程序的过程98-130348086转入中断处理程序的过程1800HF000H00H18H00HF0HPUSHIRET……………例:执行INT21H向量地址=21H4=84HCPUIPCSMEM(4)(1)(2)(3)0:0000H0:0084H0:0087H0:03FFHF000:1800H中断向量表2.计算向量地址;向量地址=21H4=84H3.根据向量地址查表,将偏移地址送IP,段基址送CS;4.转入中断服务程序,进行中断处理。1.取类型号;21H98-130357.38259A可编程中断控制器在微机系统中,可以使用8259A扩展外部中断,Intel8259A可编程中断控制器,主要有以下功能:98-130363.在中断响应周期,8259A可提供相应的中断类型号。1.1片8259A能管理8级中断,通过级联用9片8259A可以构成64级主从式中断系统。2.每一级中断可以屏蔽或允许。4.可编程使8259A工作在多种不同的方式。98-13037一、8259A的内部结构与引脚信号控制逻辑中断服务寄存器ISR优先权电路PR中断请求寄存器IRR中断屏蔽寄存器IMR读写控制逻辑级联缓冲比较器数据总线缓冲器D0~D7RDWRCSA0CAS0CAS1CAS2ENSPINTAINTIR0IR1IR7…8259A内部逻辑框图98-130381.数据总线缓冲器8位、双向、三态,是8259A与CPU之间的数据接口。D0~D7直接与CPU数据总线的低8位连结。98-130392.读/写控制逻辑。接高位地址的译码输出:CSA0:常常与地址信号线A0相连。相连。、的与、WRRDCPUWRRD8259A的两个端口地址CPU通常利用:OUT指令,。配合写入有关的控制字与A0,CSWRIN指令,有关寄存器的内容。内部配合读出与A8259A0,CSRD98-130403.中断请求寄存器IRR8位,若IRi有效(“1”,),对应位置“1”,直到IRi得到响应。因此,IRR记录外中断源IRi的请求信息。98-130414.中断服务寄存器ISR8
本文标题:第七章 微型计算机中断系统
链接地址:https://www.777doc.com/doc-3807900 .html