您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 微机接口_第七章中断系统
有关中断的基本概念8259A可编程中断控制器8086中断系统8086CPU中断响应流程本章内容掌握中断技术的基本概念了解8086中断系统及其对各种类型中断的响应流程了解8259A中涉及到的有关概念掌握8259A的编程应用学习目的7.1中断系统的基本概念一、什么叫中断?中断申请主程序中断服务程序返回中断示意图所谓中断,是指这样一个过程:当CPU正在执行程序过程中,由于某一突然事件的发生,暂时中止正在执行的程序,转去处理突然发生的事件(执行中断服务程序),处理完毕,再返回原来被中止的程序继续运行。日常生活中类似“中断”的例子:例1:门铃响时,放下手中正在做的事情,跑去开门,招待客人;客人走后,接着做原来的事情。例2:教师讲课过程中,同学遇有疑问,不同理解之处,随时向老师提问。问题:请同学们列举类似“中断”的例子。二、应用中断技术的优点1.实现CPU与外设的并行工作,提高了CPU的效率。NYREADY?输入状态信息输入数据查询方式的数据输入中断方式的数据输入外设请求中断INTR有效主程序中断服务程序输入数据外设准备数据二、应用中断技术的优点1.实现CPU与外设的并行工作,提高了CPU的效率。2.实现实时处理。3.实现故障处理。三、中断源引起中断的原因,产生中断请求的来源。通常有以下几种:1.一般的I/O设备,如键盘、打印机等。2.实时时钟。3.故障源。4.为了调试程序而设置的中断。(例如设置断点,单步运行等)四、中断系统的功能计算机系统中,用于实现中断功能的硬件和软件的集合,称为中断系统。中断系统应解决如下问题:1.中断请求信号的产生(中断源如何申请中断?)2.CPU如何响应?(如何知道有中断请求?是否有求必应?响应后的处理过程?)3.中断优先权问题4.中断的具体服务5.中断服务完毕,如何返回原程序?五、实现中断优先权的方法判断和确定中断源的中断优先权,可以采用软件和硬件两种方法。当系统中有多个中断源存在时,若有几个中断源同时提出申请,CPU先响应谁?当CPU正响应某一中断过程中,又有另外的中断源提出中断请求,CPU是否响应?为此提出了中断优先权的概念。1.用软件确定中断优先权优先权管理电路三态缓冲器译码锁存器GINTRD7~D0A15~A0RD中断源A中断源B中断源C………M/IO1.用软件确定中断优先权软件查询流程图优先权管理电路三态缓冲器译码锁存器GINTRD7~D0A15~A0RD中断源A中断源B中断源C………IOM在中断服务中读入请求状态A申请?B申请?中断返回为中断源A服务的程序段YC申请?为中断源B服务的程序段为中断源C服务的程序段……YY采用软件查询方式的特点:询问的次序,即为优先权的次序。硬件简单。由查询转至相应的服务程序的时间长,尤其在中断源较多的情况。2.硬件方式(1)若CPU未处理任何中断,则“优先权失效”信号为高,当任一中断源请求中断时,通过门2发出INTR信号。128-3优先权编码器优先权寄存器AB比较器A2A1A0B2B1B0比较失效中断请求0中断请求1中断请求2…………7D7~D0INTR编码器和比较器的优先权排队电路(2)若CPU正在进行中断处理,当某一中断源请求中断时,能否向CPU发出INTR信号,受比较器的控制。2.硬件方式128-3优先权编码器优先权寄存器AB比较器A2A1A0B2B1B0比较失效中断请求0中断请求1中断请求2…………7D7~D0INTR编码器和比较器的优先权排队电路×××12.硬件方式128-3优先权编码器优先权寄存器AB比较器A2A1A0B2B1B0比较失效中断请求0中断请求1中断请求2…………7D7~D0INTR编码器和比较器的优先权排队电路思考题:与软件查询方式比较,采用硬件方式有何特点?六、8086CPU响应外部中断的过程CPU在每一个指令周期的最后一个总线周期的最后一个T状态采样INTR或NMI信号线。下面以INTR为例,说明8086CPU响应中断的过程。执行一条指令最后一个总线周期的最后一个T状态?有INTR?中断开放?(FR中的IF=1?)关中断(置FR中IF=0)信号发INTA断点地址(CS.IP)入栈FR入栈识别中断源,转入相应中断服务程序保护现场中断服务处理恢复现场开中断STI(置FR中IF=1)中断返回IRET取下一条指令NoNoNoYesYesYes讨论:1.为什么要在中断服务程序中执行STI指令?2.STI指令在中断服务程序中的不同位置时,对CPU处理中断有何影响?七、小结1.实现断点地址的保护与恢复。2.实现现状信息的保护。3.实现中断优先权的排队。4.实现中断的嵌套。中断服务2(高优先级)主程序中断服务1中断过程由计算机的中断系统,配合用户设计的中断服务程序来实现。中断应具备以下功能:INTn指令中断逻辑非屏蔽中断请求中断控制系统(8257A)INT3指令INTO指令单步中断除数为0中断…可屏蔽中断请求NMIINTR硬件中断软件中断7.28086CPU的中断系统一、中断类型8086能处理256种中断,分为两大类:外部中断和内部中断。其中断分类如右图8086的中断分类1.外部中断(硬件中断)(1)非屏蔽中断NMI(类型号为2)有效,不受FR中IF的影响,常用于处理系统的重大故障。(2)可屏蔽的中断INTR高电平有效,CPU是否响应,取决于FR中IF的状态。常用于各种外设的中断。2.内部中断(软件中断)通常由三种情况引起:(1)INTn指令中断(n为中断类型号)(2)处理CPU某些错误的中断除法错中断(中断类型号为0)溢出中断(INTO)(中断类型号为4)(3)为调试程序设置的中断a单步中断当FR中TF=1时,每执行一条指令,CPU产生类型为1的单步中断。b断点中断设置断点实际上是把指令“INT3”插入到程序中,CPU每执行到断点处的“INT3”指令,便产生类型为3的中断。二、中断优先级8086系统中,中断优先级的次序为:高低内部中断(除法错、INTO、INTn)NMIINTR单步中断三、中断向量表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中断非屏蔽中断单步中断断点中断四、中断向量的装入BIOS负责0~1FH共32个中断向量的装入。用户若想装入自己的中断向量到向量表中的,可用以下方法:1.用STOS指令填空中断向量表假设类型号为60H的中断向量为CLICLDMOVAX,0MOVES,AXMOVDI,4*60H;DI指向表中对应位置MOVAX,OFFSET_INTR;取偏移地址STOSW;AL[DI],AH[DI+1];DI+2DIMOVAX,SEG_INTR;取段基址STOSWSTISEG_INTR:OFFSET_INTR。2.利用MOV指令写入中断向量CLIMOVAX,00HMOVES,AXMOVBX,4*60H;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功能调用具体实现,中断向量表对用户是透明的。1.取类型号;2.计算向量地址;3.根据向量地址查表,将偏移地址送IP,段基址送CS;4.转入中断服务程序,进行中断处理。五、8086CPU转入中断服务程序的过程8086转入中断处理程序的过程1800HF000H00H18H00HF0HPUSHIRET……………例:执行INT21H向量地址=21H4=84HCPUIPCSMEM(4)(1)(2)(3)0:0000H0:0084H0:0087H0:03FFHF000:1800H中断向量表2.计算向量地址;向量地址=21H4=84H3.根据向量地址查表,将偏移地址送IP,段基址送CS;4.转入中断服务程序,进行中断处理。1.取类型号;21H六、8086CPU中断响应流程内部中断?NMI?INTR?TF=0?执行下条指令完成当前指令IF=1?标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回中断响应流程第一个中断响应周期AD7~AD0浮空第二个响应周期,取中断类型码YYYYNNNNYN内部中断?NMI?INTR?TF=0?执行下条指令完成当前指令IF=1?第一个中断响应周期AD7~AD0浮空第二个响应周期,取中断类型码AYYYYYNNNNNY标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回A内部中断服务程序•编写内部中断服务程序与编写子程序类似–利用过程定义伪指令PROC/ENDP–第1条指令通常为开中断指令STI–最后用中断返回指令IRET–通常采用寄存器传递参数•主程序需要调用中断服务程序–调用前,需要设置中断向量–利用INTn指令调用中断服务程序1.8086CPU各种类型中断的优先级;2.CPU响应INTR的条件;3.INTR与其它类型中断响应过程的异同。请同学们总结:内部中断?NMI?INTR?TF=0?执行下条指令完成当前指令IF=1?标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回中断响应流程第一个中断响应周期AD7~AD0浮空第二个响应周期,取中断类型码YNYNYYNNYN7.38259A可编程中断控制器在微机系统中,可以使用8259A扩展外部中断,Intel8259A可编程中断控制器,主要有以下功能:3.在中断响应周期,8259A可提供相应的中断类型号。1.1片8259A能管理8级中断,通过级联用9片8259A可以构成64级主从式中断系统。2.每一级中断可以屏蔽或允许。4.可编程使8259A工作在多种不同的方式。一、8259A的内部结构与引脚信号控制逻辑中断服务寄存器ISR优先权电路PR中断请求寄存器IRR中断屏蔽寄存器IMR读写控制逻辑级联缓冲比较器数据总线缓冲器D0~D7RDWRCSA0CAS0CAS1CAS2ENSPINTAINTIR0IR1IR7…8259A内部逻辑框图1.数据总线缓冲器8位、双向、三态,是8259A与CPU之间的数据接口。D0~D7直接与CPU数据总线的低8位连结。2.读/写控制逻辑。接高位地址的译码输出:CSA0:常常与地址信号线A0相连。相连。、的与、WRRDCPUWRRD8259A的两个端口地址CPU通常利用:OUT指令、。配合写入有关的控制字与A0,CSWRIN指令、有关寄存器的内容。内部配合读出与A8259A0,CSRD3.中断请求寄存器IRR8位,若IRi有效(“1”,),对应位置“1”,直到IRi得到响应。因此,IRR记录外中断源IRi的请求信息。4.中断服务寄存器ISR8位,当IRi得到响应时,对应位置“1”。ISR记录正在处理的IRi,当中断嵌套时,可能多位置“1”。因此,ISR记录CPU对IRi的响应情况。5.中断屏蔽寄
本文标题:微机接口_第七章中断系统
链接地址:https://www.777doc.com/doc-3613940 .html