第8章微型计算机中断系统_第1页
第8章微型计算机中断系统_第2页
第8章微型计算机中断系统_第3页
第8章微型计算机中断系统_第4页
第8章微型计算机中断系统_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章第八章 微型计算机中断系统微型计算机中断系统 本章内容本章内容 8.1 中断概述中断概述 8.2 8086的中断处理过程的中断处理过程 8.3 中断优先级和中断嵌套中断优先级和中断嵌套 8.4 可编程中断控制器可编程中断控制器8259A 8.5 PC机中断程序设计机中断程序设计 8.1 中断概述中断概述 一、一、 中断的引入中断的引入 中断中断与生活场景的比较与生活场景的比较正在看书正在看书电话铃响电话铃响接电话接电话继续看书继续看书执行程序执行程序事件发生事件发生事件处理事件处理继续执行程序继续执行程序中断处理中断处理中断请求及响应中断请求及响应实际场景实际场景计算机计算机中断返回中断

2、返回中断的定义中断的定义 CPU执行程序时,由于发生了某种随机的事件执行程序时,由于发生了某种随机的事件(外部或外部或内部内部),引起,引起CPU暂时中断正在运行的程序,转去执行暂时中断正在运行的程序,转去执行一段特殊的服务程序一段特殊的服务程序(称为中断服务程序或中断处理程称为中断服务程序或中断处理程序序),以处理该事件,该事件处理完后又返回被中断的,以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。程序继续执行,这一过程称为中断。 为何计算机中要引入中断?为何计算机中要引入中断? # # 避免了避免了CPU不断检测外设状态的过程,提高了不断检测外设状态的过程,提高了

3、CPU的利率。的利率。 # # 实现对特殊事件的实时响应。如多任务操作系统中:实现对特殊事件的实时响应。如多任务操作系统中: 缺页中断缺页中断设备中断设备中断各类异常各类异常实时钟,。等实时钟,。等二、二、 中断的基本概念中断的基本概念 1 1、中断源、中断源 引起引起CPUCPU中断的事件。例如:中断的事件。例如: 外设外设请求输入输出数据,报告故障等请求输入输出数据,报告故障等 事件事件掉电、硬件故障、软件错误、非法操作、掉电、硬件故障、软件错误、非法操作、定时时间到等定时时间到等 中断源分为:外部中断、内部中断中断源分为:外部中断、内部中断 内部中断:由程序预先安排的中断指令(内部中断:

4、由程序预先安排的中断指令(INT n) 引起,或由运算出错(如:除法出错,溢出)引引起,或由运算出错(如:除法出错,溢出)引 起。起。 外部中断:外部中断:CPU以外的设备或协处理器向以外的设备或协处理器向CPU发发 出的中断。出的中断。 内部中断内部中断外部中断外部中断除法错中断除法错中断-类型号类型号0单步中断单步中断-类型号类型号1断点中断断点中断-类型号类型号3溢出中断溢出中断-类型号类型号4软件中断软件中断-类型号类型号n(0-255)非屏蔽中断非屏蔽中断-类型号类型号2可屏蔽中断可屏蔽中断-类型号由类型号由PIC提供提供256个中个中断源断源 8086/8088系统的中断源系统的中

5、断源 内部中断内部中断 除法溢出:类型号除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。,商大于目的操作数所能表达的范围时产生。 单步中断:类型号单步中断:类型号1,TF=1时产生(当前指令需执行完)时产生(当前指令需执行完) 断点中断:类型号断点中断:类型号3,这是一个软件中断,即,这是一个软件中断,即INT 3指令。指令。 溢出中断:类型号溢出中断:类型号4,这是一个软件中断,即,这是一个软件中断,即INTO指令。指令。 软件中断:即软件中断:即INT n指令,类型号指令,类型号n(0-255) 外部中断外部中断 非屏蔽中断非屏蔽中断NMI:类型号:类型号2,不可用软件屏蔽,不可

6、用软件屏蔽,CPU必须响应它。必须响应它。 可屏蔽中断可屏蔽中断INTR:类型号由:类型号由PIC提供。提供。IF=1时时CPU才能响应。才能响应。 8086/8088的外部中断信号:的外部中断信号:INTR、NMIINTR可屏蔽中断请求,高电平有效,受可屏蔽中断请求,高电平有效,受IF标志的控制。标志的控制。IF=1时,执行完当前指令后时,执行完当前指令后CPU对它作出响应。对它作出响应。 NMI非屏蔽中断请求,上升沿有效,任非屏蔽中断请求,上升沿有效,任何时候何时候CPU都要响应此中断请求信号。都要响应此中断请求信号。2 2、中断子程序、中断子程序 CPU响应中断源的申请后执行的一响应中断

7、源的申请后执行的一段程序通常称为中断子程序,这个过程可段程序通常称为中断子程序,这个过程可以理解称为以理解称为CPU暂停正在执行的程序转向暂停正在执行的程序转向中断源为其服务的过程,该过程如同各个中断源为其服务的过程,该过程如同各个政府用提前做预案来应付突发事件一样。政府用提前做预案来应付突发事件一样。3 3、中断类型号、中断类型号 为了区别不同的中断服务子程序,在微为了区别不同的中断服务子程序,在微型计算机中给每个中断服务子程序都编有一个型计算机中给每个中断服务子程序都编有一个唯一编号,即中断类型号。用户自己编写的中唯一编号,即中断类型号。用户自己编写的中断服务子程序也需要一个唯一的中断类型

8、号。断服务子程序也需要一个唯一的中断类型号。有了中断类型号,当用户要调用某个中断服务有了中断类型号,当用户要调用某个中断服务子程序时,只需给出相应的中断类型号即可。子程序时,只需给出相应的中断类型号即可。例如例如Int 10H,调用,调用10H号中断服务程序。号中断服务程序。4 4、中断向量及中断向量表、中断向量及中断向量表 每一个中断都对应了一个中断服务子程序,每一个中断都对应了一个中断服务子程序,CPU要执行中断服务子程序就必须知道该子程要执行中断服务子程序就必须知道该子程序的地址,即该子程序第一条指令的地址,这序的地址,即该子程序第一条指令的地址,这个地址也就是中断服务子程序的入口地址,

9、称个地址也就是中断服务子程序的入口地址,称为该中断服务程序的中断向量或中断矢量。为该中断服务程序的中断向量或中断矢量。 中断矢量表分为三部分:中断矢量表分为三部分: (1)专用中断:类型)专用中断:类型0类型类型4,共有,共有5种类型。种类型。专用中断的中断服务程序的入口地址由系统负责专用中断的中断服务程序的入口地址由系统负责装入,用户不能随意修改。装入,用户不能随意修改。 (2)备用中断:类型)备用中断:类型5类型类型3FH,这是,这是Intel公公司为软、硬件开发保留的中断类型,一般不允许司为软、硬件开发保留的中断类型,一般不允许用户改作其他用途,是为系统预留的中断。用户改作其他用途,是为

10、系统预留的中断。 (3)用户中断:类型)用户中断:类型40H类型类型FFH,为用户可,为用户可用中断,其中断服务程序的入口地址由用户程序用中断,其中断服务程序的入口地址由用户程序负责装入。负责装入。 8086CPU可管理可管理256种中断。每种中断都指定一个种中断。每种中断都指定一个 中断矢量号(中断矢量号(类型号类型号),每一种中断矢量号都与一个),每一种中断矢量号都与一个 中断源相对应。中断服务程序的入口地址存放在内存中断源相对应。中断服务程序的入口地址存放在内存 储器的中断矢量表内。储器的中断矢量表内。 80868086以中断矢量号为索引号,以中断矢量号为索引号, 从中断矢量表中取得中断

11、服务程序的入口地址。从中断矢量表中取得中断服务程序的入口地址。 每个中断矢量(每个中断矢量(入口地址入口地址)占)占4 4个字节,高个字节,高2 2字节放字节放 段地址,低段地址,低2 2字节放偏移地址。字节放偏移地址。 存放中断矢量的地址存放中断矢量的地址= =类型号类型号n x 4n x 4, 4n+1,4n IP4n+1,4n IP 4n+3,4n+2 CS 4n+3,4n+2 CS 即可转入中断服务程序。即可转入中断服务程序。 空单元中中断断矢矢量量表表区区003FFH 00000H (=1K) (=1K)40H4=100H1 5 0 0 0 0 2 0 2000:(CS : 假设假设

12、cpu从外设读得的中断类型码从外设读得的中断类型码N=40H,CPU将将N4=100H.100H就是中断矢量表的首地址。就是中断矢量表的首地址。假定在假定在100H 为首地址的为首地址的4个单个单元中,低地址的元中,低地址的2个字节中已个字节中已放入放入1500H,高地址的高地址的2个字节个字节中已放入中已放入2000H. 这就是说这就是说中断中断服务程序入口地址,服务程序入口地址,它的代码它的代码段段地址段段地址= 2000H,它的偏移它的偏移地址地址= 1500H。CPU把低地址一个字取出送入指把低地址一个字取出送入指令指针令指针IP,把高地址一个字取出送把高地址一个字取出送入代码段寄存器

13、入代码段寄存器CS,程序就转入逻程序就转入逻辑地址为辑地址为2000:1500H的入口去执的入口去执行中断服务程序。行中断服务程序。中断服务程序中断服务程序从这里开始!从这里开始!1500 IP) )返回返回目录目录 8.2 8086的中断处理过程的中断处理过程 一、中断请求一、中断请求 外设接口(中断源)发出中断请求信号,送到外设接口(中断源)发出中断请求信号,送到CPU的的INTR或或NMI引脚;引脚;中断请求信号:边沿请求,电平请求中断请求信号:边沿请求,电平请求例如,例如,NMI为边沿请求,为边沿请求,INTR为电平请求为电平请求 中断请求信号应保持到中断被处理为止;中断请求信号应保持

14、到中断被处理为止; CPU响应中断后,中断请求信号应及时撤销。响应中断后,中断请求信号应及时撤销。 在在8086/8088系统中,外设的中断要经过系统中,外设的中断要经过8259A可编程可编程中断控制器中断控制器(PIC)的排队判优后向的排队判优后向CPU发出:发出: (I/O接口接口) PIC CPU二、中断响应二、中断响应 对非屏蔽中断(即从对非屏蔽中断(即从NMI脚来的申请),脚来的申请),CPU执行执行完当前指令后若无总线请求即予以响应;完当前指令后若无总线请求即予以响应; 对可屏蔽中断(从对可屏蔽中断(从INTR脚来的申请),脚来的申请),CPU必须必须在以下四个条件同时被满足时才能

15、响应:在以下四个条件同时被满足时才能响应: 无总线请求。系统中若有其他总线设备,例如无总线请求。系统中若有其他总线设备,例如别的微处理器或别的微处理器或DMA控制器,它们必须没有发出控制器,它们必须没有发出总线请求信号;总线请求信号; 无非屏蔽中断请求;无非屏蔽中断请求; CPU允许中断。即允许中断。即CPU内部的中断允许寄存器内部的中断允许寄存器置置1。对。对8086/8088来说,来说,IF=1; CPU执行完现行指令。执行完现行指令。 CPU在响应中断后,在进入中断处理之前还要在响应中断后,在进入中断处理之前还要自动完成自动完成3项工作。项工作。 将将CS、IP以及标志寄存器的内容压入堆

16、栈;以及标志寄存器的内容压入堆栈; 关闭中断;关闭中断; 转入中断服务程序进行中断处理。这就是转入中断服务程序进行中断处理。这就是将中断服务程序的段地址送将中断服务程序的段地址送CS,偏移地址送,偏移地址送IP。三、中断处理三、中断处理 1. 保护现场保护现场 CPU响应中断时自动保护了响应中断时自动保护了CS、IP和和F1ag寄存寄存器。在中断服务程序中会用到另一些寄存器,为器。在中断服务程序中会用到另一些寄存器,为了保证中断返回后主程序能继续正确执行,必须了保证中断返回后主程序能继续正确执行,必须把这些寄存器内容压入堆栈保护起来,称为保护把这些寄存器内容压入堆栈保护起来,称为保护现场。现场

17、。 2. 如允许中断嵌套需打开中断如允许中断嵌套需打开中断 CPU在响应中断时已自动关闭中断,不允许其他在响应中断时已自动关闭中断,不允许其他的中断来打断它。如果允许比它优先权更高的中的中断来打断它。如果允许比它优先权更高的中断来打断,则需要用断来打断,则需要用STI指令打开中断。若没有更指令打开中断。若没有更高级别的中断,则无此必要。高级别的中断,则无此必要。 3. 中断服务中断服务 执行中断服务程序。若在中断处理过程中曾开中执行中断服务程序。若在中断处理过程中曾开中断,则此时要关中断。关中断的目的是让恢复现断,则此时要关中断。关中断的目的是让恢复现场的工作顺利进行而不被中断。场的工作顺利进

18、行而不被中断。 4. 恢复现场恢复现场 在中断返回前要把保护现场时压入堆栈的寄存器在中断返回前要把保护现场时压入堆栈的寄存器内容恢复。恢复现场用内容恢复。恢复现场用POP指令。需要注意的是,指令。需要注意的是,弹出的顺序应与压入的顺序相反。弹出的顺序应与压入的顺序相反。5. 中断返回中断返回 执行中断返回指令执行中断返回指令IRETIRET指令将使指令将使CPU把堆栈内保存的断点信息弹把堆栈内保存的断点信息弹出到出到IP、CS和和FLAG中,保证被中断的程序从断中,保证被中断的程序从断点处能够继续往下执行。点处能够继续往下执行。IPLIPHCSLCSHFLAGLFLAGHSPIPLIPHCSL

19、CSHFLAGLFLAGHSPIPCSFLAG进入中断服进入中断服务程序时务程序时中断返回后中断返回后返回返回目录目录8.3 中断优先级和中断嵌套中断优先级和中断嵌套一、一、 中断优先级概述中断优先级概述 多个中断源产生中断,多个中断源产生中断,CPU首先为谁服务?首先为谁服务?中断优先级排队问题。中断优先级排队问题。 中断优先级控制要处理两种情况:中断优先级控制要处理两种情况:对同时产生的中断:应首先处理优先级别较高的中断;若优对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;先级别相同,则按先来先服务的原则处理;对非同时产生的中断:低优先级别的中断处

20、理程序允许被高对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断优先级别的中断源所中断即允许中断嵌套。即允许中断嵌套。 中断优先级的控制方法中断优先级的控制方法硬件判优硬件判优链式判优、并行判优(中断向量法)链式判优、并行判优(中断向量法)软件判优软件判优顺序查询中断请求,先查询的先服务(即先查顺序查询中断请求,先查询的先服务(即先查询的优先级别高)询的优先级别高) 通常将通常将中断判优中断判优与与中断源识别中断源识别合并在一起进行处理。合并在一起进行处理。80 x86系统中,这项任务由系统中,这项任务由PIC和和CPU共同完成。共同完成。二、用软件查询方法确定中断优先

21、权二、用软件查询方法确定中断优先权 采用软件查询中断方式时,中断优先权由查采用软件查询中断方式时,中断优先权由查询顺序决定,先查询的中断源具有最高的优先权。询顺序决定,先查询的中断源具有最高的优先权。 8086 CPUINTRM/IORD输入端口EN中断1(自A设备)中断2(自B设备)中断3(自C设备)中断4(自D设备)11译码器输出YiD7D6D5D4INTR中断入口保护现场,读中断位状态是A设备?设备A的中断服务程序是B设备?设备B的中断服务程序是C设备?设备C的中断服务程序YYYNN错误出口N恢复现场、中断返回优点:优点:电路简单。软件查询的顺序就是中断优先电路简单。软件查询的顺序就是中

22、断优先权的顺序,不需要专门的优先权排队电路,可权的顺序,不需要专门的优先权排队电路,可以直接修改软件查询顺序来修改中断优先权,以直接修改软件查询顺序来修改中断优先权,不必更改硬件。不必更改硬件。缺点:缺点:当中断源个数较多时,由逐位检测查询到当中断源个数较多时,由逐位检测查询到转入相应的中断服务程序所耗费的时间较长,转入相应的中断服务程序所耗费的时间较长,中断响应速度慢,服务效率低。中断响应速度慢,服务效率低。三、硬件优先权排队电路三、硬件优先权排队电路 硬件优先权排队电路又称菊花环式优先权排队电硬件优先权排队电路又称菊花环式优先权排队电路。它是利用外设连接在排队电路的物理位置来路。它是利用外

23、设连接在排队电路的物理位置来决定其中断优先权的,排在最前面的优先权最高,决定其中断优先权的,排在最前面的优先权最高,排在最后面的优先权最低。排在最后面的优先权最低。 INTAinCPUINTAINTR外设外设1 1外设外设2 2外设接口外设接口1 1菊花链菊花链逻辑电路逻辑电路外设接口外设接口2 2外设外设3 3外设接口外设接口3 311菊花链菊花链逻辑电路逻辑电路菊花链菊花链逻辑电路逻辑电路IREQIREQIREQ中断确认中断确认链式判优电路原理图链式判优电路原理图-菊花链法菊花链法 INTAinINTAin中断确认中断确认中断确认中断确认菊花链逻辑电路原理菊花链逻辑电路原理说明:说明: 当

24、任一外设申请当任一外设申请中断后,中断请求中断后,中断请求IREQ送到送到CPU的的INTR端,端,CPU发出发出INTA中断响应。中断响应。当前一组外设没有当前一组外设没有发出中断申请时,发出中断申请时,INTA会沿着会沿着菊花链往后传。当菊花链往后传。当某一级外设发出了某一级外设发出了中断申中断申请时,此级的请时,此级的逻辑电路就逻辑电路就阻塞了阻塞了INTA的通路。的通路。此级的外设接口收到此级的外设接口收到INTA后,向总线发出后,向总线发出中断类型号,撤销中断类型号,撤销中断请求中断请求IREQ,从而,从而CPU转入相应中断服务转入相应中断服务程序程序 。菊花链逻辑电路菊花链逻辑电路

25、INTAinIREQINTR&=1 1INTAoutDB三态门中断向量码E外设接口外设接口中断确认中断确认菊花链菊花链逻辑电路逻辑电路当前一组外设没有当前一组外设没有发出中断申请时,发出中断申请时,INTA会会沿着沿着菊花链往后传。当某一菊花链往后传。当某一级外设发出了级外设发出了中断申请时,中断申请时,此级的此级的逻辑电路就阻塞了逻辑电路就阻塞了INTA的通路。的通路。此级的外设接口此级的外设接口收到收到INTA后,向后,向总线发出中断类型总线发出中断类型号,撤销中断请号,撤销中断请IREQ,从而,从而CPU转入相应中断服务转入相应中断服务程序程序 。 四、中断嵌套四、中断嵌套 优先

26、权高的中断首先得到响应,并且可以中断优先权高的中断首先得到响应,并且可以中断正在被响应处理的优先权低的中断,这种一个正在被响应处理的优先权低的中断,这种一个中断服务程序在执行过程中又被另一个中断服中断服务程序在执行过程中又被另一个中断服务程序中断的现象称为中断嵌套务程序中断的现象称为中断嵌套五、中断响应时序五、中断响应时序 CPU对可屏蔽中断请求的响应过程要执行两个对可屏蔽中断请求的响应过程要执行两个连续的中断响应连续的中断响应 总线周期,每个周期包括总线周期,每个周期包括4个个时钟周期时钟周期T1T4。第一个周期通知外设。第一个周期通知外设CPU接收到中断请求信号,准备响应中断,外设要接收到

27、中断请求信号,准备响应中断,外设要把对应的中断类型号准备好;第二个周期把对应的中断类型号准备好;第二个周期CPU接受外设的中断类型号。接受外设的中断类型号。第一个第一个INTA中断响应周期中断响应周期 :T1状态状态开始,开始,地址地址/数据总线数据总线置于浮空状态;置于浮空状态;LOCKT2,T3状态状态:发出中断响应信号:发出中断响应信号 INTA给给8259A,通知外设准备好中断类型号,通知外设准备好中断类型号 ;在最大模式时,在最大模式时,LOCK有效,禁止其有效,禁止其它总线控制器的总线请求。它总线控制器的总线请求。第二个第二个INTA中断响中断响应周期:应周期: 8259A在在T2

28、,T3状态状态,将一个字节的将一个字节的中断类型中断类型N送到数送到数据总线低据总线低8位,位,CPU读入后,读入后,N4得到得到中断矢量表地址,中断矢量表地址,继而找到服务程序继而找到服务程序的入口地址。的入口地址。返回返回目录目录8.4 可编程中断控制器可编程中断控制器8259A由于由于CPU只有一个可屏蔽中断引脚,一次只能连接只有一个可屏蔽中断引脚,一次只能连接一个中断源,当需要同时连接多个中断源时就需要一个中断源,当需要同时连接多个中断源时就需要一个中断控制器。中断控制器的功能就是连接多个一个中断控制器。中断控制器的功能就是连接多个中断源,当有多个中断源提出中断请求时,进行优中断源,当

29、有多个中断源提出中断请求时,进行优先级判别,决定响应哪一个中断源,并将选出的中先级判别,决定响应哪一个中断源,并将选出的中断类型号送断类型号送CPU进行处理。进行处理。可编程中断控制器可编程中断控制器Intel 8259A是微型计算机中常用是微型计算机中常用的一种中断控制器芯片,其主要功能:的一种中断控制器芯片,其主要功能:记录各级中断源的中断请求。判优,确定是否响应记录各级中断源的中断请求。判优,确定是否响应中断请求和响应哪一级中断请求。响应中断时向中断请求和响应哪一级中断请求。响应中断时向CPU传送中断类型号。传送中断类型号。NMIINTR中断逻辑中断逻辑软件中断指令软件中断指令溢出中断溢

30、出中断除法错除法错单步中断单步中断非屏蔽中断请求非屏蔽中断请求中断控中断控制器制器8259APIC8086/8088CPU8086/8088CPU内部逻辑内部逻辑断点中断断点中断可可屏屏蔽蔽中中断断请请求求n430128 15一、功能和引脚一、功能和引脚 主要功能主要功能 : 据有据有8级优先级控制,通过级联可扩展到级优先级控制,通过级联可扩展到64级优级优先先 级控制。级控制。 每一级中断可由程序单独屏蔽或允许。每一级中断可由程序单独屏蔽或允许。 根据中断源向根据中断源向80 x86提供不同中断类型码提供不同中断类型码 可编程设置不同工作方式可编程设置不同工作方式 A0:选择选择8259A的

31、的2个端口,输个端口,输入,连低位地址线。入,连低位地址线。 INTA:CPU给给8259A的中断响应信号,输的中断响应信号,输入。入。8259A要求要求2个负脉冲的中断响应信号,个负脉冲的中断响应信号,第一个是第一个是CPU响应中断的信号,响应中断的信号,8259A响应响应第二个第二个INTA,在在T3、T4把把1个字节的中断类个字节的中断类型号型号 n 送到送到DB的低的低8位。位。 IR7 IR0:外设中断请求,输入,可外设中断请求,输入,可以是电平触发或边沿触发。以是电平触发或边沿触发。 INT:向向CPU发出的中断请求信号,发出的中断请求信号,输出,与输出,与CPU的的 INTR相连

32、。相连。 CAS2 CAS0:双向级联信号。双向级联信号。8259A作主片时,为输出;作从片时为输入。作主片时,为输出;作从片时为输入。与与SP/EN配合实现级联。配合实现级联。 SP/EN:编程编程/双向使能缓冲。作输入时,双向使能缓冲。作输入时,SP/EN=1,为主片;为主片;SP/EN=0,为从片。作输出时,为从片。作输出时,启动启动8259A到到CPU之间的数据总线驱动器。之间的数据总线驱动器。数据总线缓冲器读/写逻辑级连缓冲/比较器中断服务寄存器(ISR)中断请求寄存器(IRR)优先权电路IR7IR0IR1IR2IR3IR4IR5IR6中断屏蔽寄存器(IMR)D7-D0控 制 逻 辑

33、CAS0CAS1CAS2SP/ENRDWRCSA0内部总线INTAINT二、二、8259A的内部结构的内部结构( PR ) 中断请求寄存器中断请求寄存器IRR IRR是一个是一个8位寄存器,位寄存器,保存从保存从IR0IR7来的中来的中断请求信号,某位断请求信号,某位 =1,表示表示Iri 有中断请求有中断请求 。中中断请求断请求 被响应时,被响应时,IRR相应位复位。相应位复位。 中断服务寄存器中断服务寄存器ISR 保存所有正在服务的中保存所有正在服务的中断源,某位断源,某位=1表示对应表示对应的的IRi中断正在被服务。中断正在被服务。CPU发出第一个发出第一个INTA时,时,相应位置相应位

34、置1,一直保,一直保持到该级中断处理结束。持到该级中断处理结束。 中断屏蔽寄存器中断屏蔽寄存器IMR 存放中断屏蔽字。编程存放中断屏蔽字。编程使某位使某位=1,表示,表示IRR寄寄存器对应位的中断请求存器对应位的中断请求被被 屏蔽;编程使某位屏蔽;编程使某位=0,则允许则允许IRR寄存器对应寄存器对应位的中断请求进入优先位的中断请求进入优先级级 判别器。判别器。 中断优先权判别电路中断优先权判别电路 PR 确定保存在确定保存在IRR中的中断中的中断申请的优先级别,送出最高申请的优先级别,送出最高优先级中断请求到优先级中断请求到 ISR。当出现多重中断时,当出现多重中断时,PR判判定是否允许所出

35、现的中断去定是否允许所出现的中断去打断正在处理的中断,让优打断正在处理的中断,让优先级更高的中断优先处理。先级更高的中断优先处理。 控制电路控制电路 向向8259A内部部件发出控制信号,并向内部部件发出控制信号,并向CPU发出中断请求信号发出中断请求信号INT,接受接受CPU的中断响应信的中断响应信号号INTA. 8259A接收到接收到CPU的第一个的第一个INTA后,后,使使ISRi置置1,IRRi置置0,当第二个当第二个INTA到到来,控制来,控制8259A送出中断类型号。如果方式控送出中断类型号。如果方式控制字制字ICW4的的AEOI=1,则第二个则第二个INTA结束结束时时,ISRi清

36、零。清零。数据总线缓冲器读/写逻辑级连缓冲/比较器中断服务寄存器(ISR)中断请求寄存器(IRR)优先权电路IR7IR0IR1IR2IR3IR4IR5IR6中断屏蔽寄存器(IMR)D7-D0控 制 逻 辑CAS0CAS1CAS2SP/ENRDWRCSA0内部总线INTAINT 读写控制电路读写控制电路 PC/XT机中机中A9 A1译码产生译码产生CS, 8259A只取只取2个端口个端口编程使用:编程使用:20H(A0=0),21H(A0=1). 8088的的A0连接连接8259A的的A0。而。而8086的的A1连接连接8259A的的A0, 8086的的A0=0,这样对于这样对于CPU来说,来说

37、,A0=0,A1可以为可以为“1”也可为也可为“0” ,保证了保证了CPU读写始终是偶地址,用偶地址(即低读写始终是偶地址,用偶地址(即低8位数位数据线)传送数据。据线)传送数据。 。对。对8259A来说,来说,A0可以为可以为“1”也也可为可为“0” ,给,给8259A分配分配2个端口地址个端口地址 ,一个偶地址,一个偶地址,一个奇地址,符合一个奇地址,符合8259A编程要求。编程要求。二、二、8259A的内部结构的内部结构( PR ) 级联缓冲级联缓冲/比较器比较器 (1)缓冲方式:在缓冲方式下,)缓冲方式:在缓冲方式下,SP/EN端与总线驱动端与总线驱动器的允许端相连,控制总线驱动器的数

38、据方向。器的允许端相连,控制总线驱动器的数据方向。 SP/EN作为输出端。当作为输出端。当EN=0时,数据方向是:时,数据方向是: 8259A CPU,当当EN=1时,数据方向是:时,数据方向是:8259A CPU. (2) 非缓冲方式:在非缓冲方式下,非缓冲方式:在非缓冲方式下, 8259A直接与数直接与数据总线相连,据总线相连, SP/EN作为输入端,在级连时控制作为输入端,在级连时控制8259A作为主片还是从片,作为主片还是从片,SP=1,表示表示8259A为主片,为主片, SP=0,表表示示8259A为从片。为从片。 (3)比较器:级联时,主片的)比较器:级联时,主片的CAS2 CAS

39、0作为输作为输出,从片的出,从片的CAS2 CAS0作为输入,二者相连。作为输入,二者相连。 关于主片级联地址与从片级联地址的比较,在关于主片级联地址与从片级联地址的比较,在“8259A的中断级联的中断级联”一节讲述。一节讲述。ISR及及ISR编码编码 PRIR1111假设中断请求假设中断请求IR0,IR1,IR7送入送入中断请求寄存器中断请求寄存器,IRR相应位被相应位被置置1,申请中,申请中断。断。假如已对屏蔽假如已对屏蔽寄存器编程,使寄存器编程,使D7=1,其余位其余位=0。这样连接这样连接IR7的与门被关闭。的与门被关闭。0 0 0 0 0 0 0 1 IR7的中断申请被的中断申请被屏

40、蔽掉。屏蔽掉。而而IR0,IR1的中断申的中断申请被激活,送到中断请被激活,送到中断优先级判别器优先级判别器PR .优先级判别器优先级判别器PR 找出最高优先找出最高优先级的中断申请级的中断申请IR0,将其中断级转,将其中断级转换成三位码(换成三位码(111)送到比较器和中)送到比较器和中断服务寄存器断服务寄存器ISR .如果这时没有中断如果这时没有中断服务正在执行,优先服务正在执行,优先级控制器就向级控制器就向CPU发发出中断请求信号出中断请求信号INT。假如这时正在假如这时正在执行执行IR3中断服中断服务程序。由于务程序。由于IR0优先级编码优先级编码IR3优先级编优先级编码,码, 允许允

41、许IR0的的中断打断正在处中断打断正在处理的理的IR3中断而中断而得到服务。得到服务。中断请求中断请求被响应,被响应,CPU发出第发出第一个一个INTA时时,ISR0被置被置1,IRR0被被清清0。111100ISR01如果是多如果是多重中断,重中断,ISR多位被多位被置置1 。ISR3 10INT8259A内部寄存器的寻址方法内部寄存器的寻址方法CS# RD# WR#A0D4D3读写操作010000写写OCW2写写OCW3写写ICW1写写ICW2,ICW3,ICW4,OCW1(顺序写入顺序写入)00101x1xx00101xx读出读出IRR、ISR读出读出IMRn需要需要CS、A0、RD、W

42、R和和D4、D3的配合的配合n内部寄存器的访问方法如下表:内部寄存器的访问方法如下表: 三、三、 8259A的中断管理方式的中断管理方式1. 8259A的编程结构的编程结构初始化命令字初始化命令字写入寄存器写入寄存器ICW1 ICW4,一经设定,在系一经设定,在系统运行中不再改变;统运行中不再改变;操作命令字操作命令字写入寄存写入寄存器器OCW1 OCW3,由应用程序设定。由应用程序设定。用设定以上用设定以上寄存器寄存器来管来管理理8259A的的中断方式。中断方式。2.优先级设置方式优先级设置方式(1)完全嵌套方式)完全嵌套方式 8259A初始化后,自动进入完全嵌套方式:初始化后,自动进入完全

43、嵌套方式: 优先级分配固定级别,顺序从高到低为优先级分配固定级别,顺序从高到低为IR0IR7。 某一中断正被处理时,只有更高优先级的事件可某一中断正被处理时,只有更高优先级的事件可 以打断当前正在处理的中断过程而被服务。以打断当前正在处理的中断过程而被服务。 用初始化命令字用初始化命令字ICW4的(的(D4)SNFM=0,将将8259A 置于置于完全嵌套方式完全嵌套方式.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:从片的从片的INT被主片封被主片封锁,故更锁,故更高高级别的级别的IR0-IR2中断也无法中断也无法得到响应得到响应C. 假定此处假定此

44、处发生中断发生中断,并获得服并获得服务务(接接IR3)一般嵌套方式:一般嵌套方式:IR4的中断被服务时,的中断被服务时,这些中断将被封锁。这些中断将被封锁。B.A.INT从从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7去去CPU(主IR4连从INT)(2) 特殊特殊全嵌套方式全嵌套方式n什么是什么是特殊全特殊全嵌套嵌套方式方式昵?为什么要设置昵?为什么要设置特殊全特殊全嵌套嵌套方式方式昵?请看!昵?请看!一般全嵌套方式:一般全嵌套方式:级联时,级联时,从片从片8259A上有中断申上有中断申请进入并正在处理时请进入并正在处理时,同一从片上同一从片上又进入更高优先级中断请求又进

45、入更高优先级中断请求,但对但对主片主片8259A来说是同级中断申请。来说是同级中断申请。所以不能得到服务所以不能得到服务 当主片设置为特殊当主片设置为特殊全嵌套方式时,就能对来自从片的全嵌套方式时,就能对来自从片的 同级中断申请开放同级中断申请开放,从而从而实现实现了同级中断请求的特殊嵌了同级中断请求的特殊嵌 套。套。 设置方法:初始化主片的设置方法:初始化主片的 ICW4的(的(D4)SFNM=1,AEOI=0 特殊全嵌套仅用于特殊全嵌套仅用于多个多个8259A级连时的级连时的主片主片8259A, 而不能用于从属而不能用于从属8259A或单片或单片8259A系统。系统。 注意!注意!D.主主

46、8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:从片的从片的INT被主片封被主片封锁,故更锁,故更高高级别的级别的IR0-IR2中断也无法中断也无法得到响应得到响应特殊嵌套方式:特殊嵌套方式:因主片不封锁从片的因主片不封锁从片的INT,故级别高的,故级别高的IR0-IR2中断可以得到响应。中断可以得到响应。( (但但IR3-IR7仍被本从仍被本从片封锁片封锁) )C.假定此处发假定此处发生中断生中断,并获并获得得服务服务(接接IR3)一般嵌套方式:一般嵌套方式:IR4的中断被服务的中断被服务时,这些中断将时,这些中断将被封锁。被封锁。B.特殊嵌套方式:特殊

47、嵌套方式:IR4的中断被服的中断被服务 时 , 只 封 锁务 时 , 只 封 锁IR5-IR7。A.INTE.从从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7(主IR4连从INT)去去CPU(三)优先级自动循环方式(三)优先级自动循环方式 加电后加电后8259A8259A的默认优先级顺序从高到低为的默认优先级顺序从高到低为IRIR0 0IRIR7 7 中断源轮流处于最高优先级,即自动中断优先级循环中断源轮流处于最高优先级,即自动中断优先级循环 某中断请求某中断请求IRIRi i被处理后,其优先级别自动降为最低,被处理后,其优先级别自动降为最低, 原来比它低一级的中断上升为最

48、高级原来比它低一级的中断上升为最高级 设置方法:操作命令字设置方法:操作命令字OCW2OCW2的的 R R、SL=10SL=10? 优先级自动循环方式优先级自动循环方式,适合于多中断源优先级相等的场合适合于多中断源优先级相等的场合IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前的服务结束以前0101000001000000IR4的服务结束以后的服务结束以后ISRi(四四) 优先级特殊循环方式优先级特殊循环方式 优先级排列顺序可编程改变优先级排列顺序可编程改变

49、 最低优先级由程序规定,如设定最低优先级由程序规定,如设定IR3位最低,位最低,那末,比它低一级的那末,比它低一级的IR4为最高,其他顺序为最高,其他顺序依次类推。依次类推。 设置方法:设置方法:操作命令字操作命令字OCW2OCW2的的 R R、SL=11SL=11IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级默认优先级优先级可编程改变优先级可编程改变3.中断结束方式中断结束方式 当某一当某一IRi中断被服务时,中断被服务时,ISR中的相应位中的相应位ISRi=1。当

50、服务结束后,则必须清零该当服务结束后,则必须清零该ISRi位。位。CPU向向8259A发出中断结束命令(发出中断结束命令(EOI命令)使命令)使ISRi=0。 三种三种EOI命令命令 普通普通EOI方式方式(NSEOI) 特殊特殊EOI方式方式(SEOI)(指定指定EOI ) 自动自动EOI(AEOI) 普通普通EOI方式方式(NSEOI)由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。用于普通全嵌套方式。必须放在 IRET之前设置方法:OCW2的EOI位=1,即R、SL、EOI=001,往偶地址 送OCW2操作命令字。PC/XT机:发 EOI指令为: MO

51、V AL ,20H MOV 20H, AL ;8259A端口:20H,21 特殊特殊EOI方式方式(SEOI) 由CPU发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。 用于特殊屏蔽方式设置方法: OCW2的R、SL、EOI=011, L2 L1是ISR的位号。 自动自动EOI(AEOI) 在第在第2个个INTA结束时,由结束时,由8259A使使 ISRi自动复位。自动复位。 因不保留当前正在服务的中断的状态,因不保留当前正在服务的中断的状态, 故故AEOI不能用于中断嵌套方式。不能用于中断嵌套方式。 设置方法设置方法:初始化初始化ICW4的的AEOI=1 。 中断服务程序向

52、从PIC发EOI命令读从PIC的ISR全0?向主PIC发EOI命令YIRET恢复现场N特殊全嵌套方式下的特殊全嵌套方式下的EOI处理处理:只有当从只有当从PIC的中断全部处的中断全部处理完后,才能向主理完后,才能向主PIC发发EOI命令命令特殊全嵌套中断服务程序结束时特殊全嵌套中断服务程序结束时,先向从片发一个中断结束先向从片发一个中断结束EOI,清清除除ISR位;然后读出位;然后读出ISR,检查它检查它是否为是否为0,若为若为0,则向主片发一个则向主片发一个EOI命令命令,清除与从片对应的清除与从片对应的ISR位位,如果从片如果从片ISR 0,则不向主片发则不向主片发EOI命令。命令。4.中

53、断源屏蔽方式中断源屏蔽方式 普通屏蔽方式普通屏蔽方式 IMR屏蔽字决定了屏蔽字决定了允许或禁止允许或禁止某位某位IRi所对应的中断所对应的中断:IMi=1 禁止,禁止, IMi=0 允许。允许。 设置方法:设置方法:往奇地址送OCW1操作命令字。 例例 屏蔽屏蔽2、3、5、6位的中断请求,位的中断请求,pc/xt的的8259A端口地址为端口地址为20H,21H。 MOV AL , 01101100B MOV 21H , AL 特殊屏蔽方式:特殊屏蔽方式:提供了允许较低优先级的中断能够得到响应的特殊手段。提供了允许较低优先级的中断能够得到响应的特殊手段。原理原理:假定当前正在处理:假定当前正在处

54、理IR3,先,先进入特殊屏蔽方式,然后设置进入特殊屏蔽方式,然后设置IM3=1。这时,除这时,除IR3外的所有中断请求均能得到响应。外的所有中断请求均能得到响应。设置方法:设置操作命令字设置方法:设置操作命令字OCW3的的ESMM、SMM=11特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令结束中断。命令结束中断。 特殊屏蔽例:特殊屏蔽例: ;IR4中断处理程序中断处理程序CLI ; 关中断关中断MOV AL,68H ;OCW3:0 1 1 0 1 0 0 0OUT 0C0H,AL ;设置特殊屏蔽方式;设置特殊屏蔽方式IN AL,0C1H OR AL,10H ;屏蔽;屏蔽IR4OUT 0C

55、1H,AL STI ;开中断;开中断 ;IR7请求,响应,返回请求,响应,返回CLI ;为设命令字;为设命令字IN AL,0C1H ;读出屏蔽字;读出屏蔽字AND AL,0EFH ;清除;清除IMR4OUT 0C1H,ALMOV AL,48H ;OCW3:0 1 0 0 1 0 0 0OUT 0C0H,AL ;取消特殊屏蔽;取消特殊屏蔽STI ;继续;继续IR4中断服务中断服务MOV AL,20H ;OCW2:0 0 1 0 0 0 0 0 (EOI)OUT 0C0H,ALIRET 5.中断请求引入方式中断请求引入方式 边沿触发边沿触发IRi出现上升沿表示有中断请求出现上升沿表示有中断请求 ,

56、可以一直保持高电平可以一直保持高电平 电平触发电平触发IRi出现高电平表示有中断请求,在第出现高电平表示有中断请求,在第1个个INTA结束前,结束前,IRi必须保持高电平必须保持高电平 ,中断响应后必须撤出,中断响应后必须撤出高电平高电平 。设置方法:初始化设置方法:初始化ICW1的的LTIM, :LTIM=1, 电平触发电平触发 LTIM=0, 边沿触发边沿触发 查询方式查询方式 (请阅读请阅读 四、四、2 (3)8259A中断查询方式中断查询方式 编程方编程方法法) 四、四、 8259A的编程方法的编程方法CS# RD# WR#A0D4D3读写操作010000写写OCW2写写OCW3写写I

57、CW1写写ICW2,ICW3,ICW4,OCW1(顺序写入顺序写入)00101x1xx00101xx读出读出IRR、ISR读出读出IMR8259A内部寄存器的寻址方法内部寄存器的寻址方法(需要(需要CS、A0、RD、WR和和D4、D3的配合)的配合) 8259A的控制命令分为n初始化命令字初始化命令字 ICW1ICW4n操作命令字操作命令字 OCW1OCW38259A的初始化顺序的初始化顺序 8259的初始化流程的初始化流程写写ICW1写写ICW2级连?级连?写写ICW3需需ICW4?写写ICW4NNYY1.初始化命令字初始化命令字注意次序不可颠倒注意次序不可颠倒 ! 初始化8259A必须从I

58、CW1开始 写写ICW1意味着重新初始化意味着重新初始化8259A 写入写入ICW1后,后,8259A的状态如下:的状态如下:清除清除ISR和和IMR(全全0);将中断优先级设成初始状态:将中断优先级设成初始状态:IR0最高,最高,IR7最低;最低;设定为一般屏蔽方式;设定为一般屏蔽方式;采用非自动中断结束方式;采用非自动中断结束方式;状态读出逻辑预置为读状态读出逻辑预置为读IRR。(1) ICW1-芯片控制初始化命令字芯片控制初始化命令字ICW1初始化字初始化字 LTIM: 触发方式触发方式=1 高电平触发高电平触发=0 上升沿触发上升沿触发 SNGL: 级连控制级连控制=1 单片单片=0

59、级连级连 IC4: ICW4控制控制=1 需要设置需要设置ICW4=0 不需要设置不需要设置ICW4(默认(默认ICW4为全为全0)A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC4 偶地址偶地址 标致位标致位: 区别区别OCW1,OCW2的设置的设置(2) ICW2中断向量码中断向量码A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 0 0 0奇地址奇地址T7T3: 中断向量中断向量码的高码的高5位,由用户设位,由用户设定定最低最低3位为位为0,是中断类,是中断类型号基值,对应型号基值,对应IR0;000

60、111分别对应分别对应IR0IR7,由由8259A根据中断源的序号自根据中断源的序号自动填入动填入 例如:例如: 若若ICW2命令字为命令字为48H,则,则IR0的中断向量码为的中断向量码为48H,IR7的中断向量码为的中断向量码为4FH,等等。,等等。 1 对应IRi线上连接了从片Si= 0 对应IRi线上未接从片 ID2ID0 标识码,说明本从片连接到主片的哪个标识码,说明本从片连接到主片的哪个IR引脚上。引脚上。 000111分别对应分别对应IR0IR7。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID0 主片主片(3) ICW3级联主片级联主片

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论