第6章中断系统_第1页
第6章中断系统_第2页
第6章中断系统_第3页
第6章中断系统_第4页
第6章中断系统_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

第六章中断系统1第六章中断系统1、中断概述1.1中断及中断源1.2中断处理过程1.3中断系统的结构1.4中断优先权管理2、8086/8088的中断系统3、8259A中断控制器21、中断概述中断及中断源CPU工作过程:程序存储,顺序执行;有条件、无条件跳转-分支执行子程序调用与返回。宏功能。如果在执行程序时,要获得一些外部信息(比如键盘输入的数据),CPU必须等待键盘输入,(显示器提示)。查询:CPU主动,外设被动。速度匹配问题。CPU效率低。中断:外设主动,CPU被动。31、中断概述中断及中断源早期的计算机没有中断系统,工作过程是根据预先设计好的流程,顺序执行。当需要与外界交换信息时,计算机查询外部设备的状态,若外设已准备好,则进行信息交换;若外设未准备好,则等待外设,直到可以进行信息交换。这种计算机和外设之间的信息交换方式称为查询方式。查询方式:容易实现,方便。矛盾:CPU与外设工作速度不匹配,浪费了宝贵的CPU的工作效率。41、中断概述中断及中断源解决问题的途径:提高外设的工作速度。对外部设备进行改造或重新设计,代价很高;许多外部设备是其它工程系统,它们有自己的工作特点和要求,不可能。此外,还有些事情不定期发生,但要求CPU尽快处理。对这些事情,尽管没有发生,为了处理及时,也必须经常查询。CPU负担重。2.改变CPU工作方式,以适应外部设备的慢速特性和应对突发警急事情,中断技术。51、中断概述中断及中断源所谓中断,是指计算机在正常运行时,由于某种原因,迫使计算机暂时停止当前工作,而转向处理临时发生的事件;处理完毕后,再返回去继续执行暂停的工作的过程。中断技术:使得CPU从主动为外设服务(查询)变成被动为外设服务(外设申请)。大大提高了CPU的效率。为实现中断功能而设置的各种硬件和软件,统称为中断系统。中断源:引起中断的原因或发出中断申请的来源称为中断源。61、中断概述中断及中断源随着计算机技术的发展,中断技术不断被赋予新的功能,不仅有外部来的中断,还有内部产生的中断;不仅有硬件引起的中断,还有软件引起的中断。

1)输入、输出设备,如键盘、打印机等;

2)定时时钟;

3)软件设置中断、软件陷阱(故障);

4)程序调试过程等。71、中断概述中断系统的功能(1)实现中断及返回(2)实现优先权排队,以确定优先处理的中断源。(3)能屏蔽某些中断8(1)实现中断及返回1、中断概述中断系统的功能当有一中断源提出中断请求时,CPU首先判断是否响应该中断?如果CPU正在执行的是重要的程序,可以暂不响应,即关中断;当CPU完成了当前的重要程序后,开中断予以响应,同时,保存断点,转入中断处理;当中断处理完后,恢复断点从而回到被中断运行的原程序继续执行;9通过设置CPU内部的中断允许触发器,开关中断。8086/8088中,中断标志位IF当IF=1,使中断允许(开中断);当IF=0,使中断不允许(关中断)。注意:不可屏蔽中断,要求CPU立即处理。不受中断标志位IF的控制。可屏蔽中断,受中断允许标志位IF的控制。(1)实现中断及返回1、中断概述中断系统的功能101、中断概述中断系统的功能(2)实现优先权排队,以确定优先处理的中断源一个系统中有多个中断源,存在着几个中断源同时请求的可能;因此,必须事先根据中断源的重要性,给每个中断源确定一个中断优先级别——优先权。中断响应时,CPU应能首先响应优先权级别高的中断源。111、中断概述中断系统的功能在中断服务处理过程中:若新的中断申请其优先级别更高,则CPU应再一次中断,转去优先权更高的中断源服务。处理完后,再回到原来的中断服务中,这也称为中断嵌套。若新的中断源优先权级别为同级或低级,则CPU暂不理会,继续正在处理的中断服务,直到当前中断处理结束后再去处理新的中断申请。由中断允许触发器决定是否响应中断请求。8086/8088中,当中断标志位IF=1时,才允许响应可屏蔽中断INTR。(3)能屏蔽某些中断121、中断概述中断过程一个完整的中断响应过程分中断处理和中断服务两个阶段。中断处理:1.中断请求。2.中断源仲裁。3.中断点信息的保护:IP、CS、FR、CPU中的寄存器。3.查找中断源,并转向中断服务程序。4.中断返回。中断服务:对每一中断源特制的服务程序。131、中断概述中断系统的结构中断请求触发器:每一个中断源有一个中断请求触发器,用来指示中断源。

中断屏蔽触发器:对每一个中断请求电路(中断源),都有一个中断屏蔽触发器,用来禁止该中断源的请求。

中断允许触发器:在CPU内部有一个中断允许触发器(CPU状态字的IF位),它相当于中断源的总开关,当IF=0时,所有外部中断全被禁止。

CPU的NMI中断:不可屏蔽中断。141、中断概述中断系统的结构—中断请求触发器中断源向CPU发出中断请求是随机的。大多数CPU都是在当前指令周期结束时,检测有无中断请求。因此必须在当前指令执行期间,将随机到来的中断请求保存起来,直到CPU响应中断后才可以清除。当有多个中断源时,为了区别中断来源,要求每一个中断源有一个中断请求触发器。

15左图为两个外部设备中断请求电路。PS外部设备选择信号INTR1、2分别为向CPU中断请求信号。只要有需要,就可以向CPU请求,CPU无法阻止。1、中断概述中断系统的结构—中断请求触发器161、中断概述中断系统的结构—中断屏蔽触发器当有多个中断源时,某些情况下,不希望响应某个中断。又要求能响应有些中断请求。此时要将不希望响应的中断源关闭(中断屏蔽)。为达此目的,在每一个中断请求电路中,增加一个中断屏蔽触发器。通过设置中断屏蔽触发器的状态,可允许或禁止该中断源向CPU发中断。根据外部事件的紧急程度,中断源可以有不同的优先级。一般情况下,高优先级的中断可以中断低优先级中断的服务过程;当服务完成后,再返回被中断低优先级,继续完成服务过程。中断嵌套。中断屏蔽触发器也用于中断逻辑中,高低优先级别仲裁。171、中断概述中断系统的结构—中断屏蔽触发器CPU通过中断屏蔽触发器,控制该外部设备的中断请求。对每一外部设备,可根据需要,允许其通过中断,请求CPU服务;或不允许请求CPU服务。每一中断请求源,都有一中断屏蔽触发器。181、中断概述中断系统的结构—中断允许触发器中断屏蔽触发器是针对各个中断源的,在CPU内部还有一个中断允许触发器(8086/8088CPU状态字的IF位),它相当于中断的总开关。只有当其为“1”(即开中断)时,CPU才能响应外部中断(通过INTR线来的);当为“0”(即关中断)时,即使CPU的INTR线上有中断请求,CPU也不会响应中断请求。当CPU复位时,中断允许触发器总为“0”,即处于“关中断”状态。所以必须在程序中用STI指令来开中断。并且,CPU一旦响应中断后,CPU内部逻辑会自动关中断,使得CPU不再响应中断。因此,若要允许中断嵌套,必需在中断服务程序中用STI指令再次开中断。

191、中断概述中断优先权管理中断优先权判别方法有软件和硬件两种方法。中断优先权是事先根据中断源的重要性给每个中断源确定一个中断优先级别——优先权。中断优先权管理就是判别和确定各个中断源的中断优先权。8086/8088只有一根外部中断申请引脚INTR。对同时产生的中断:

首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则对非同时产生的中断:

低优先级的中断程序允许被高优先级的中断源所中断此外,有时为了均衡对相同性质的外部设备提供相同级别的服务,要求动态更改中断优先级。201、中断概述中断优先权管理----软件查询

软件法是在CPU响应中断后,用软件查询确定哪个中断源申请中断,先被查询的先响应。查询次序决定了中断优先权次序,最先被查询的中断源具有最高的优先权。211、中断概述中断优先权管理----软件查询软件查询程序:INAL,80H;端口读入状态TESTAL,80H;JNZSERVE_ATESTAL,40HJNZSERVE_B……TESTAL,01HJNZSERVE_HHLT221、中断概述中断优先权管理----软件查询软件查询次序就是优先权高低的次序;软件确定中断优先权不需复杂的硬件电路,简单易实现;中断源较多时,查询时间较长,中断响应较慢。231、中断概述中断优先权管理----硬件确定优先权由硬件实现中断优先权的判别。常用的硬件电路有:中断向量法,链式优先权排队电路及专用硬件电路等。中断向量法:利用一个中断优先级判别器来判断中断请求优先级的高低,获得中断类型码并由此获得中断服务程序入口地址;如利用中断控制器8259A,它具有8个优先权控制,可以通过级联,扩展至64级优先权控制,且每级中断都可设置为允许或屏蔽。241、中断概述中断优先权管理----硬件确定优先权链式优先权排队电路每个外设都有一个中断逻辑电路,CPU响应中断时发出INTA信号沿这些逻辑电路串接成菊花链从前先后传递251、中断概述中断优先权管理----硬件确定优先权262、8086/8088的中断系统8086/8088CPU具有一个功能很强、管理高效且简便灵活的中断系统,可以处理多达256种中断源。采用向量中断方法,对256种中断只需一次间接访问就可获得任一中断源的中断服务程序的入口地址,中断响应快速。8086/8088CPU有两类中断:内部中断由执行中断指令或特殊事件引起;外部中断由外围设备接口向CPU的中断请求引脚INTR和NMI发出中断请求信号而引起的。272、8086/8088的中断系统8086/8088的中断分类

8086/8088的中断系统可以处理256种不同的中断。所有可能产生中断的中断源源有:可屏蔽中断INTR、非屏蔽中断NMI、指令中断INTn、特定条件下的中断分为两类:内部中断外部中断282、8086/8088的中断系统8086/8088的中断分类INTn指令中断逻辑INT3指令除数为0中断单步中断INT0指令

中断控制系统(8259A)非屏蔽中断请求…可屏蔽中断请求NMIINTR软件中断硬件中断292、8086/8088的中断系统内部中断(软件中断)软件中断是CPU根据软件中的某条指令或软件对标记寄存器中某个标志的设置而产生的中断。进入中断时,不需要执行中断响应周期,也不从数据总线读取中断类型码,不受中断允许标志位IF的影响,但是和TF的状态有关(只有TF为1才执行单步中断)。(1)除法出错中断(类型0);(2)单步中断(类型1);(3)断点中断(类型3);(4)溢出中断(类型4);(5)软件中断302、8086/8088的中断系统外部中断(硬件中断)硬件中断通过外部的硬件产生,由送至CPU引脚NMI和INTR上的信号引起中断。分为两类:

(1)非屏蔽中断(n=2)一旦在NMI引脚有中断请求,CPU立即响应。不受IF(中断允许标志位)的影响。系统内只有一个非屏蔽中断。312、8086/8088的中断系统(2)可屏蔽中断从INTR脚引入,必须满足IF=1,且没有非屏蔽中断,CPU可以响应中断。在中断控制器(如8259A)的配合下,一个系统可以有几十个可屏蔽中断中断请求信号是由电平触发,必须保存到CPU响应中断请求后才能撤除。中断允许标志IF的标志,可由指令设置:

STI——开中断,将IF置1CLI——关中断,将IF置0当系统复位,或CPU响应中断后,都使IF置0。外部中断(硬件中断)322、8086/8088的中断系统8086/8088的中断处理过程—不可屏蔽中断不可屏蔽中断(NMI)请求的响应不受IF标志的影响。也就是说,任何条件下CPU都会响应NMI。NMI为上升沿触发,CPU执行完当前指令后立即响应。最坏情况是正在执行乘、除指令和某些移位指令。NMI通常用于处理一些比INTR请求更紧急事件。对NMI中断请求,不判断IF是否为1,也不用给出中断矢量号,CPU响应时也不发中断响应周期,而是自动生成中断向量号为2,然后转入相应的中断服务入口。8086/8088要求NMI的脉冲宽度(高电平)至少应有两个CPU时钟周期,以便能使CPU内部的NMI触发器可靠置位。

同样,若系统不需要有NMI中断,应将该引脚接地,防止由于干扰引起误触发。332、8086/8088的中断系统8086/8088的中断处理过程—可屏蔽中断对INTR中断,若CPU处于允许中断状态,在当前指令运行到最后一个机器周期的最后一个T状态结束时,检测INTR线。若发现有中断请求,CPU就进入中断处理周期:1)响应中断,并发出中断响应信号;()2)在下一个总线周期发出第二个中断响应信号,读取中断向量号。3)保留断点:把标志寄存器FR、代码段寄存器CS、指令地址寄存器IP压入堆栈保存。并自动关中断(清IF位)。4)根据中断向量号,查找中断服务程序入口地址,并转移到该服务程序。上面4步是CPU硬件自动完成的----中断处理。342、8086/8088的中断系统8086/8088的中断处理过程—可屏蔽中断5)保护现场,6)执行中断服务程序,7)在中断服务程序的最后,恢复现场,上面三步要根据服务要求编程序。中断服务。8)中断返回。中断服务程序的最后一条指令必须为IRET(中断返回指令)。它将堆栈中保存的IP、CS、FR弹出,恢复被中断程序运行。并开放INTR(中断允许)。*CPU响应INTR中断时,自动将中断时FR、CS、IP寄存器内容压入堆栈,但对CPU中其它寄存器没有保护。它们的保护与恢复由中断服务程序负责。352、8086/8088的中断系统8086/8088的优先权的识别8086/8088只有一根外部中断申请引脚INTR。当有多个中断源时,必须要在CPU外部记录中断请求,并在外部辨别和比较它们的优先级,将级别最高的中断请求送CPU。有些时候要求当CPU正在进行中断服务时,除了要能屏蔽相同级或较低级的中断的能力外,还要允许更高级的中断请求的能力,并能暂停目前中断服务过程工作,对更高级中断服务(中断嵌套)。服务完成后,恢复被中断的中断服务,……此外,有时为了均衡对相同性质的外部设备提供相同级别的服务,要求动态更改中断优先级。362、8086/8088的中断系统8086/8088的优先权的识别----软件查询CPU响应中断后,通过中断查询程序,确定是哪些外设申请中断,并判断它们的优先级别。例如,从外设A到外设H共有8个中断源,把这8个外设的中断请求触发器组合起来,作为一个端口,如图6-3所示。把这8个外设的中断请求信号相“或”后,作为INTR信号。这样,任意一个外设有中断请求,都可以向CPU发INTR信号。当CPU响应中断后,通过I/O端口,将8个中断请求触发器的状态读入CPU,逐位检测它们的状态,若某一外设有中断请求,就转到相应的中断服务程序。中断处理的查询方式。372、8086/8088的中断系统8086/8088的优先权的识别----软件查询382、8086/8088的中断系统

中断向量即中断服务程序的入口地址,用两个字表示,低字是IP,高字是CS。它和断点不同。所谓断点就是指响应中断时,主程序中当前指令下面的一个指令地址。中断向量表

是指根据中断类型和中断服务子程序对应关系建立的列表。8086/8088的中断类型码用8位二进制表示,共有从n=0~FFh,256个中断向量;每一个中断向量占4个存储单元。

中断向量表建立在内存空间最低1K地址;地址范围:00000H—003FFH(即CS=0000H)。注意:中断类型码只能决定存放中断向量的地址,并不能决定中断向量本身和中断服务程序的功能。8086/8088的优先权的识别----向量中断392、8086/8088的中断系统8086/8088的优先权的识别----向量中断每个中断源设备都预先规定一个中断向量,这些中断向量组成一表格形式,中断向量表。在8086/8088中每个中断向量为四个字节(双字)。其中,低两字节存中断服务程序的IP,高两字节存CS。CPU响应中断时,中断控制逻辑就将该中断源设备的代号----中断向量号(类型码),从数据总线送到CPU。CPU根据中断向量号直接从中断向量表中,查得中断服务程序的入口地址,并转向中断服务程序。这种确定中断源的方法是由硬件来实现的。速度快,实现过程复杂。

402、8086/8088的中断系统8086/8088的中断向量表CSIPCSIPCSIPCSIPCSIPCSIPCSIP0000:0000H0000:0003H0000:0004H0000:0007H0000:0008H0000:000BH0000:000CH0000:000FH0000:0010H0000:0013H0000:0014H0000:007EH0000:007FH0000:03FFH除数为0的中断单步中断非屏蔽中断断点中断溢出中断类型0类型1类型2类型4类型3类型5类型31类型32类型255(十进制)(十进制)专用中断(共5个)保留中断(共27个)供用户定义的中断(共256个)412、8086/8088的中断系统8086/8088的中断向量表已知类型号为17H的中断子程序放在2345:7890H开始的内存区域中,问向量表中如何存放该地址?计算17H型中断向量17H=00010111B17H×4=01011100=005CH地址存放90H=>0000:005CH78H=>0000:005DH45H=>0000:005EH23H=>0000:005FH422、8086/8088的中断系统8086/8088可屏蔽中断处理过程(1)CPU接到外部设备发出中断申请INTR后,在当前指令执行完后,开始响应中断请求,发,(2)然后CPU发第二个,取中断类型码(向量号)。外设(8259)接到第一个后,准备中断类型码。在CPU发第二个时,将它送到数据总线。(3)CPU从数据总线读取中断类型码,在中断向量表中查找中断入口,装入IP,CS。(4)CPU完成:将FR,CS,IP压入堆栈,关中断允许IF。保护断点,开始执行中断服务程序。432、8086/8088的中断系统8086/8088可屏蔽中断处理过程(5)保护其它的信息。(6)执行中断服务程序,(7)恢复保护的其它的信息。准备退出中断服务。(8)中断服务程序的最后一条指令为IRET。执行IRET指令,将IP,CS,FR从堆栈中弹出。

返回到被中断的程序处,继续执行。标志寄存器恢复到中断前状态。(允许中断)。442、8086/8088的中断系统8086/8088可屏蔽中断响应时序中断程序执行与其它程序不同,在主程序中没有入口,因此中断程序调试必须用断点。1、在中断服务程序中设断点2、将光标置在中断服务程序中,按F4键执行运行后,程序连续执行,直到有中断事件发生。LA0:INTR,LA1:452、8086/8088的中断系统8086/8088可屏蔽中断响应时序462、8086/8088的中断系统8086/8088可屏蔽中断响应时序472、8086/8088的中断系统8086/8088可屏蔽中断响应时序482、8086/8088的中断系统8086/8088可屏蔽中断响应时序492、8086/8088的中断系统8086/8088可屏蔽中断返回时序502、8086/8088的中断系统8086/8088可屏蔽中断返回时序512、8086/8088的中断系统8086/8088可屏蔽中断返回时序522、8086/8088的中断系统8086/8088可屏蔽中断返回时序532、8086/8088的中断系统关于中断嵌套CPU在响应中断过程中,自动将中断允许标志IF清0,禁止在中断处理过程中再次发生的中断申请。此时,即使有更高级中断也不能得到服务。若系统有多个外部设备,它们都能申请中断,并且外部设备按其重要程度分为几种级别。在CPU对某外设进行服务时,允许更重要的外设得到优先服务。中断嵌套。若允许中断嵌套,中断服务程序中必须将IF置1。8088、8086只有一根可屏蔽中断申请线INTR,中断优先级别控制由8259A实现。542、8086/8088的中断系统小结8086CPU中断请求中断响应中断矢量中断允许断点保护有关引脚及作用553、

8259A中断控制器1、8259A基本构成与引脚信号2、8259A工作过程3、8259A的工作方式4、8259A编程方法5、中断程序设计563、

8259A中断控制器3.18259A的基本构成和引脚信号

Intel8259A是8080/8085序列,以及80x86序列CPU兼容的可编程中断控制器,PC机采用它来管理中断。每一片8259A具有8级优先权控制,并可级联工作,采用一级级联时最多可扩展至64级硬件优先权控制。每一级中断都可以单独屏蔽或允许。8259A可提供相应的中断向量,从而能迅速地转至中断服务程序。8259A也具有软件查询的能力。573、

8259A中断控制器3.18259A的基本构成和引脚信号

每一片有8个中断输入口允许级联扩充,两级级联最多可有64个中断入口。还可以进一步接8259583、

8259A中断控制器3.18259A的基本构成----IRR IRR是一个8位寄存器,用于锁存所有从IRi引脚输入的中断请求信号。输入线IR7—IR0分别连接8个中断源的中断请求信号,当中断源有中断请求时,在相应的IR引脚上送入有效信号,IRR中相应的位就置位,以锁存该中断请求信号。

中断请求寄存器IRR中断源593、

8259A中断控制器3.18259A的基本构成----PR 中断源PR用于识别各中断请求的优先权级别,并进行优先权管理。各中断请求的优先权级别可以由CPU定义或修改。若IRR有几位被置位,且未被屏蔽,表明有多个中断源同时申请中断。则由PR经过判断确定最高优先权的中断请求,并在CPU响应周期内,将它送入ISR中相应的位。优先权判别器PR603、

8259A中断控制器3.18259A的基本构成----ISR 中断源中断服务寄存器ISR中断服务寄存器ISR为8位寄存器,用于记录已被CPU响应的中断。在中断响应周期里,由PR根据IRR和IMR的状态,确定先被响应的中断请求,送至ISR,使相应的位被置位,并一直保持(自动EOI方式例外)。由EOI命令复位。613、

8259A中断控制器3.18259A的基本构成----IMR 中断源中断屏蔽寄存器IMR中断屏蔽寄存器IMR也是8位寄存器,用于存放对中断请求的屏蔽信息,其内容可编程设定。IMR中的8个位对应IR7—IR0这8个中断请求,当IMR中某位被置位,对应的中断请求就被屏蔽。

IRR对应的位虽被置位,但不能送出它的中断请求信号给CPU,由此实现对各中断有选择的屏蔽。623、

8259A中断控制器3.18259A的基本构成----数据总线缓冲器

数据总线缓冲器数据总线缓冲器为8位双向三态缓冲器,是8259A与CPU间数据传输的通道。CPU通过数据总线缓冲器向8259A送初始化命令和操作命令字,或是读取状态信息。在中断响应周期,8259A通过数据总线缓冲器向CPU送出中断类型码。633、

8259A中断控制器3.18259A的基本构成----读/写控制逻辑

读/写控制逻辑读/写控制电路的逻辑功能就是负责接收CPU发来的控制信号,完成规定的写入命令操作以及读IRR、ISR和IMR的操作。该片8259A的操作过程中,片选CS必须有效。643、

8259A中断控制器3.18259A的基本构成----级联缓冲/比较器

级联缓冲/比较器级联缓冲/比较器用于实现8259A的级联,构成主从式中断管理系统,使中断源由8级扩展到64级。级联线CAS2—CAS0在主从式中断管理系统中,全部8259A对应相连;主片8259A,其为输出线,CPU响应中断时,输出级联设备编码,选中对应的从片;从片的8259A,其为输入线,接收来自主片的设备编码。653、

8259A中断控制器3.18259A的基本构成----级联缓冲/比较器

控制电路控制电路逻辑根据CPU编程设定的工作方式产生片内控制信号,控制片内的工作;同时,根据IRR、IMR的内容和PR判断结果,向CPU发出中断请求,接受来自CPU的中断响应信号。663、

8259A中断控制器3.18259A的引脚图673、

8259A中断控制器3.18259A的引脚功能

中断请求输入线IR7—IR0接受来自外设或8259A从片的中断请求信号。可设置为上升沿触发或高电平触发。中断请求输入线

683、

8259A中断控制器3.18259A的引脚功能双向三态数据线

双向三态数据线D7—D0可与系统数据总线直接相连,称为非缓冲方式工作;也可通过总线缓冲器与系统数据总线相连,称为缓冲方式工作。693、

8259A中断控制器3.18259A的引脚功能3.18259A的引脚功能片选信号线由CPU的高位地址线控制,低电平时,表示8259A被选中,允许CPU对8259A进行读或写操作;高电平时,表示未选中该片。703、

8259A中断控制器3.18259A的引脚功能地址线

地址线A0用以选择8259A内部不同寄存器。在8088系统中,A0与CPU的A0相连;在8086系统中,8259A的D7—D0与系统数据线低8位相连,而CPU与偶地址传递低8位数据信息,所以A0应与8086CPU的A1相连。713、

8259A中断控制器3.18259A的引脚功能读信号当读信号低电平时,允许8259A将中断请求寄存器IRR、中断服务寄存器ISR、中断屏蔽寄存器IMR的内容送上数据总线,供CPU读取。723、

8259A中断控制器3.18259A的引脚功能写信号写信号低电平时,允许CPU将命令字写入8259A。733、

8259A中断控制器3.18259A与CPU的接口

数据总线D7~D0与系统数据总线连接(8086为与低字节数据总线),读信号线

、写信号线

分别与CPU对应的信号线相连,地址线A0与系统地址总线的A0相连,片选线

一般与译码电路输出相连,确定8259A芯片在系统中的地址。743、

8259A中断控制器3.18259A的引脚功能中断请求线INT,输出信号,通常与CPU的可屏蔽中断输入端INTR相连,向CPU发送中断请求信号。中断请求线

753、

8259A中断控制器3.18259A的引脚功能中断响应线

接收CPU在中断响应周期发来的中断响应信号,8259A接到此信号后,送上中断类型码;中断类型码由编程设定。763、

8259A中断控制器3.18259A的引脚功能级联线级联线CAS2—CAS0在主从式中断管理系统中,全部8259A的CAS2—CAS0与对应端相连。作为主片的8259A,其CAS2—CAS0为输出线,在CPU响应中断时,用来输出级联设备编码,选中对应的从片;作为从片的8259A,其CAS2—CAS0为输入线,接收来自主片的设备编码。773、

8259A中断控制器3.18259A的引脚功能从片编程/缓冲使能非缓冲方式工作时,作为输入线,*高电平时,表示该8259A为主片;*低电平时,表示该8259A为从片。缓冲方式下工作时,作为输出线,用于控制缓冲器接收和发送。从片编程/缓冲使能与CAS2-CAS0实现8259A的级联78主、从8259A及与8086/8088连接3、

8259A中断控制器3.18259A的连接793、

8259A中断控制器3.28259A的工作过程系统通电后,先对8259进行初始化(CPU执行一段程序,向8259写入控制字,使其处于制定的工作方式)初始化完成后,当外设发出中断请求时,8259A处理过程:

(1)当中断请求输入线(IR0-IR7)上有一个或多个中断请求信号有效时,则中断请求寄存器IRR相应位置1。当中断屏蔽寄存器IMR为0时,则中断请求进入优先权判别器PR,由PR判断是否当前优先权最高?如果是,则8259A通过INT引脚向CPU的INTR发出中断请求INTR;803、

8259A中断控制器3.28259A的工作过程

(2)当CPU的中断允许标志IF=1(处于开中断状态),CPU响应中断,发回信号;

8259A在接受到CPU发出的第一个脉冲后,并将中断请求寄存器IRR的相应位清零。

在第二个中断响应总线周期中,8259A在接受到CPU发出的第二个脉冲后,使中断服务寄存器ISR的相应位置1,将送出中断类型码放到数据总线上,并以此求得中断服务程序的入口地址并执行。813、

8259A中断控制器3.28259A的工作过程

(3)若允许中断嵌套,则由8259A的PR依据ISR中的状态,判断新的中断请求优先权是否高于正在服务的中断。若是,则送出INT=1,向CPU的INTR发中断请求信号,从而实现中断嵌套。(4)当中断服务结束时,CPU送出中断结束命令(EOI命令),使8259A清除ISR的相应位,从而结束一个中断服务。823、

8259A中断控制器3.28259A的工作时序833、

8259A中断控制器3.38259A的工作方式

8259A具有十分灵活的运行方式,,可以通过编程设定工作方式,满足用户对中断管理的不同要求。

主要工作方式:

(1)中断请求触发方式 (2)屏蔽中断源方式 (3)中断优先方式与中断嵌套 (4)中断结束(EOI)方式

(5)连接系统总线方式

843、

8259A中断控制器3.38259A的工作方式—中断请求触发方式

8259A将中断请求输入线上出现高电平作为有效的中断请求信号。

注意:当中断请求输入端出现一个高电平并得到CPU响应时,应及时撤消信号。否则,在CPU进入中断处理过程,开放中断后,会引起错误的第二次中断。电平触发限定中断源产生的中断请求触发电平的时间,持续至CPU响应它的第一个INTA脉冲的下降沿。边沿触发8259A将中断请求输入线出现的上升沿作为中断请求信号。上升沿触发后,可一直保持高电平,而不会产生重复触发。通常用负脉冲的后沿实现边沿触发。853、

8259A中断控制器3.38259A的工作方式—中断优先方式和嵌套

中断优先权设置方式固定优先级方式 优先权自动循环方式

中断嵌套方式普通全嵌套方式 特殊全嵌套方式在这两种全嵌套方式中,中断优先级是固定的,IR0优先级最高,IR7优先级最低863、

8259A中断控制器3.38259A的工作方式—中断优先方式和嵌套固定优先级方式在此方式下,只要不重新设置优先级,所有的中断请求的中断优先级就是固定不变的。8259A加电后就处于这种状态。8259A加电后,默认IR0优先级最高,IR7优先级最低。这种优先顺序可以通过编程来改变,例如通过程序可初始优先权顺序由高至低为:IR5、IR6、IR7、IR0、IRl、IR2、IR3、IR4。873、

8259A中断控制器3.38259A的工作方式—中断优先方式和嵌套3.38259A的工作方式—中断优先方式和嵌套优先级自动循环方式上方式中,优先权是固定的。这样优先级别高的设备,获得服务的机会多,而优先级别低的设备,获得服务的机会少。在中断源较多时,且若中断事件也较多时,优先权低的设备可能得不到及时服务。当一个系统的几个中断源的重要性差别不大时,并不希望它的优先权是固定不变的。优先权自动循环方式下,优先权顺序是在变化的:初始时,IR0为最高优先权,IR7为最低优先权;当一个中断被CPU响应后,它的优先权自动降为最低的;原在其下一级的中断升为最高优先权,其余循环类推。假设,初始时有IR3中断请求,且被CPU响应,当IR3的中断服务结束后,IR3降为最低优先权。此时的优先权顺序变为:IR4、IR5、IR6、IR7、IR0、IRl、IR2、IR3。883、

8259A中断控制器3.38259A的工作方式—中断优先方式和嵌套3.38259A的工作方式—中断优先方式和嵌套优先级特殊循环方式这种方式特殊在初始最低优先权是由编程确定的,其它与自动循环方式相同。其排列仍为按IR0、IR1、……IR7的循环。指定某一IRi为最低后,它后面的为最高,依此循环。

893、

8259A中断控制器3.38259A的工作方式—屏蔽中断源方式普通屏蔽方式特殊屏蔽方式

在中断服务程序中使用,用于中断嵌套,实现在高优先权的中断服务程序中开放低优先权的中断请求。实现:在中断服务程序中,用命令字OCW1对中断屏蔽寄存器IMR中相应的位置1,且清除当前中断服务寄存器ISR对应的位,从而开放低优先权的中断请求。CPU对8259A的中断屏蔽寄存器IMR写入命令字,使IMR中的某个位或几个位置1,对应的中断请求就被屏蔽,从而不能被8259A送到CPU。而IMR中被置0的那些位对应的中断请求允许从8259A送到CPU。对中断屏蔽可以随时修改,即通过对命令字OCWl的重新设置,实现对某些中断的屏蔽。903、

8259A中断控制器普通全嵌套方式8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、……IR7。当外设请求后,8259A对当前优先权最高的请求中断IRi予以响应,(当CPU响应时)将其向量号送数据总线,对应ISR的Di位置位,直到中断结束(CPU发来EOI命令),ISR的Di位复位。在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断(8259A嵌套)。

全嵌套方式是8259A初始化后默认的工作方式,也是最常用的工作方式。

3.38259A的工作方式—中断优先方式和嵌套913、

8259A中断控制器3.38259A的工作方式—中断优先方式和嵌套特殊全嵌套方式这种方式特殊在当处理某一级中断时,允许相同级别的中断源再次申请中断(嵌套),其它与普通全嵌套方式相同。特殊全嵌套方式用在8259A级连系统。当接有从片时,从片通过主片向CPU请求中断服务。若主8259设为全嵌套方式,当从片中某一中断请求中断后,主8259将屏蔽该中断源,实际上屏蔽了从片所有中断。此时无论从8259的中断优先级如何设置,都被屏蔽。因此,要对主片采用特殊全嵌套方式,允许从片中断。923、

8259A中断控制器3.38259A的工作方式—中断优先方式和嵌套两种嵌套方式比较933、

8259A中断控制器3.38259A的工作方式—中断结束方式

当一个中断请求被响应,8259A在中断服务寄存器ISR的相应位置l。当中断服务结束时,必须将ISR中相应的位清0,进行中断结束操作,否则该中断源无法第二次进入中断。

EOI自动中断结束方式非自动中断结束方式普通中断结束方式特殊中断结束方式943、

8259A中断控制器3.38259A的工作方式—中断结束方式自动中断结束方式CPU一旦进入中断响应周期,在第二个响应周期的INTA信号的后沿,8259A就自动将当前中断服务寄存器ISR中相应的位清0。这时,尽管CPU正在为某个中断源服务,但在8259A的ISR中没有对应位置1,优先权判别器PR不能依据ISR正确判别是否接收新的中断请求,就会出现低优先权中断打断高优先权中断的情况。自动中断结束方式通常用在不允许中断嵌套的场合。953、

8259A中断控制器3.38259A的工作方式—中断结束方式普通中断结束方式

普通中断结束方式用在普通全嵌套情况下。在中断服务结束时,必须由CPU用OUT指令发来一个普通EOI命令,8259A收到后,将当前中断服务寄存器ISR中的已置1的最高优先权的位复位。特殊中断结束方式特殊中断结束方式多用于优先权循环情况下。由CPU在中断服务结束时,发出一条特殊EOI命令,指明要清除ISR中的哪一位。注意:在级联方式下,一般不用自动EOI方式,而用普通中断结束或特殊中断结束方式。而且在级联方式下,一个中断结束可能要发两次EOI命令,一次对主片,一次对从片,分别清除主、从片的ISR中相应位。963、

8259A中断控制器3.38259A的工作方式—连接总线方式缓冲方式非缓冲方式8259A通过总线缓冲器和系统数据总线相连。8259A的端和总线缓冲器的允许端相连。输出的低电平作为总线缓冲器的启动信号。

8259A直接与数据总线相连。作为输入端。单片的8259A系统,接高电平;多片8259A的级联系统,主片接高电平,从片接低电平。973、

8259A中断控制器3.38259A的工作方式总结983、

8259A中断控制器3.48259A的编程方法8259A为可编程的中断控制器,它的工作状态和操作是由接收CPU的命令而确定的。8259A在开始使用前,首先写入初始化命令字,使其处于预定的初始状态;初始化命令字设定后,在整个系统工作过程中保持不变;

操作命令字用来控制8259A执行不同的操作方式。初始化命令字设置后,在8259A工作期间的任何时刻都可设置操作命令字,且允许重置操作命令字动态地改变8259A的操作方式。 998259内部有4个初始化命令字和3个操作命令字。8259要能正常工作,必须对这些字设置正确的值----编程。8259只有一根地址线A0,因此必须根据规定顺序编程。其中4个初始化命令字在程序启动时设置,工作中不再改变。3个操作命令字在工作时可根据需要随时修改。3、

8259A中断控制器3.48259A的编程方法1001013、

8259A中断控制器3.48259A的编程方法上述各种工作方式中

(1)全嵌套方式,自动中断结束方式,中断请求触发方式,缓冲器方式,特殊全嵌套方式和级联方式是由初始化命令字确定的

(2)循环优先级方式,特殊屏蔽,查询,手动中断结束方式由操作命令字确定3、

8259A中断控制器3.48259A的编程方法—初始化命令初始化命令字有4个:

①ICW1(初始化字)格式②ICW2(中断向量码)格式③ICW3(级联控制字)格式④ICW4(中断结束方式字)格式8259A在使用前首先必须对它进行初始化,使其处于预定的初始状态,初始化命令字设定后,整个工作过程中保持不变。1023、

8259A中断控制器ICW1D4=1,A0=0表示设置的是ICW1注意:A0=0,表示输入8259A低地址端口;3.48259A的编程方法—初始化命令1033、

8259A中断控制器3.48259A的编程方法ICW2ICW2用于设置中断类型码。注意:A0=1,表示输入8259A高地址端口。3.48259A的编程方法—初始化命令1043、

8259A中断控制器ICW3ICW3是在级联方式下设置的初始化命令字。当ICW1中D1=1,单片使用,不需要ICW3;当ICW1中D1=0,表示8259A工作于级联方式,必须设置ICW3。3.48259A的编程方法—初始化命令1053、

8259A中断控制器ICW4当ICW1的D0=1,需要设置ICW4。D7D6D5=000ICW4的标志SFNM=1,用于指明是否选择特殊全嵌套方式,一般在使用多片8259A中使用,主片即选用特殊全嵌套方式。3.48259A的编程方法—初始化命令1063、

8259A中断控制器3.48259A的编程方法—操作命令

向8259A写入初始化命令字后,8259A就处于设定的工作状态,随时准备接受中断请求信号,按要求管理中断;自动进入操作命令状态,在任何时刻都可以设置操作命令字,选择其不同的操作方式;操作命令字用于规定中断屏蔽、中断结束、优先权循环和中断状态的读出和查询等等。操作命令字有三个,根据需要输入,无需按顺序。

①OCW1(中断屏蔽字) ②OCW2(中断结束和优先级循环) ③OCW3(屏蔽方式和状态读出控制字)

1073、

8259A中断控制器3.48259A的编程方法—操作命令OCW1OCW1的功能用来动态地设置中断源的屏蔽状态。CPU也可以从8259A的高地址端口读取中断屏蔽寄存器

温馨提示

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

评论

0/150

提交评论