微机原理与接口 第7章_可编程中断控制器intel 8259a

上传人:kms****20 文档编号:56897223 上传时间:2018-10-16 格式:PPT 页数:68 大小:667.50KB
返回 下载 相关 举报
微机原理与接口 第7章_可编程中断控制器intel 8259a_第1页
第1页 / 共68页
微机原理与接口 第7章_可编程中断控制器intel 8259a_第2页
第2页 / 共68页
微机原理与接口 第7章_可编程中断控制器intel 8259a_第3页
第3页 / 共68页
微机原理与接口 第7章_可编程中断控制器intel 8259a_第4页
第4页 / 共68页
微机原理与接口 第7章_可编程中断控制器intel 8259a_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《微机原理与接口 第7章_可编程中断控制器intel 8259a》由会员分享,可在线阅读,更多相关《微机原理与接口 第7章_可编程中断控制器intel 8259a(68页珍藏版)》请在金锄头文库上搜索。

1、1,7.5 8259A中断控制器,Intel 8259A是可编程中断控制器PIC 用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断 8259A的基本功能 一片8259A可以管理8级中断,可扩展至64级 每一级中断都可单独被屏蔽或允许 在中断响应周期,可提供相应的中断向量号 8259A设计有多种工作方式,可通过编程选择,2,可编程中断控制器8259A,8259A的引脚:如图所示,它有28个引脚,为标准芯片,即左下角为地,右上角为电源,3,第4章:例7.1的中断服务程序(2),mov si,dx new1: mov al,si ;读取欲一个显示字符cm

2、p al,0 ;为结尾“0”,则结束jz new2mov bx,0 ;采用ROM-BIOS功能调用mov ah,0ehint 10hinc si ;准备显示下一个字符jmp new1,4,7.5.1 8259A的内部结构,5,7.5.2 组成说明,1、数据总线缓冲器2、读写控制电路,一片8259A只占用两个端口地址,由A0来选择,其它高位地址译码输出作为片选信号CS。WRRD分别为写信号和读信号。 、级联缓冲器/比较器,扩充中断用。 、中断请求寄存器IRR,位寄存器,每一位对应IR0-IR7, 某根线上有中断请求,则IRR中对应位置。 、中断服务寄存器ISR,CPU当前正处理的IRi中断请求时

3、,该寄存器i位置1(i = 0- 7)。 6、中断屏蔽寄存器IMR,当IMR的第i位为1时,禁止IRi来的中断请求。 7、优先级判别器PR,当有多个中断同时请求中断时,判别当前优先级最高的中断请求进入系统。8、控制电路,控制芯片内个部件协调一致地工作。,6,8259A的内部寄存器,中断请求寄存器IRR(Interrupt request register) 保存8条外界中断请求信号IR0IR7的请求状态 Di位为1表示IRi引脚有中断请求; 为0表示无请求 中断服务寄存器ISR(Interrupt service register) 保存正在被8259A服务着的中断状态 Di位为1表示IRi中

4、断正在服务中; 为0表示没有被服务 中断屏蔽寄存器IMR(Interrupt mask register) 保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止); 为0表示允许,7,第4章:4.4 8259A在IBM PC系列机上的应用,图 8259A的级联使用,INT,8,7.5.3 8259A的工作原理,8259A是一个可编程的中断控制器,对它进行初始化以后,芯片便可按照控制设定的要求进行工作。其工作流程如下说明:,9,首先由IRR接收外部的中断请求,并将中断请求信号送入PR中。 由IMR提供各中断的屏蔽位状态(高屏蔽),在PR内首先进行中断的屏蔽过滤。 经过滤后的中断

5、请求在PR裁决器中进行优先级裁决如下:a) 当只有一个中断时,则该中断源向CPU发出中断请求INTR。b) 当同时有两个以上中断时,根据编程设定的优先级确定中断优先级最高的中断向CPU发出中断请求INTR。,工作流程:,10,当CPU响应中断后,需要向8259A发出两个中断响应负脉冲信号INTA 。在第一个中断响应负脉冲到来时,中断控制器内部逻辑电路将这个中断请求写入ISR中的相位(高电平),在第二个中断响应负脉冲到来时,由ISR中的最高优先级选定的中断矢量类型码被输出到数据总线上,由CPU读取。,CPU响应过程:,11,5) 当CPU正在执行中断服务程序时,如有新的中断请求时,PR需要对该中

6、断请求和ISR中的中断响应两者的优先级进行比较,(1) 若正在服务的中断优先级高,则该中断请求不能通过8259A向CPU产生中断请求,即需要执行完当前的服务程序后,方可由该中断向CPU产生中断请求INTR。(2) 若新中断请求优先级高,则通过8259A向CPU发出中断请求INTR,此时CPU会暂停当前的中断服务程序转而响应这个新中断请求,当此中断服务结束后,又返回到刚才暂停的中断服务程序继续执行。,正在执行中断过程中出现新中断如何处理?,12,7.5.4 8259A的工作方式,8259A是一个可编程中断控制器,通过编程可设定其工作方式:1) 优先级管理方式 2) 屏蔽中断源的方式3) 中断结束

7、的处理方式4) 中断请求的触发方式5) 连接系统总线的方式6) 8259A的多片级连方式每一种工作方式都有其工作特点和不同,我们分别加以介绍。,13,1、 优先级管理方式,全嵌套方式: 是8259A最普通和常用的一种工作方式,是默认执行方式,其中断请求优先级是固定的,从IR0到IR7按顺序排列,IR0优先级最高。 特殊嵌套方式:一般用在8259A的级连系统中,它和全嵌套方式功能基本相同,因为有级连存在,所以它允许出现同级中断请求和响应,这是其仅有的一点差别。 3) 自动循环方式:其优先级初始状态为IR0IR7,每执行一次中断,则优先级发生一次变化,被执行的中断变为最低级,优先级自动调整,其顺序

8、不变。 4) 特殊循环方式:与自动循环方式不同之处是其优先级由控制字编程设定当前最低优先级。,14,2、 屏蔽中断源的方式,普通屏蔽方式: 通过写操作命令字OCW1设置中断屏蔽寄存器IMR中的位,来屏蔽对应中断源的中断请求。设置为“1”屏蔽该位,设置为“0”取消屏蔽。 特殊屏蔽方式:在执行中断服务程序时,能够动态地改变系统的优先级结构,通过此方式实现低优先级的中断源能够中断当前较高优先级的中断服务。两种基本相同,但后者能即时清除ISR中的响应位,现实真正的“低”中断“高”,15,3、 中断结束的处理方式,自动结束方式(AEOI): 当某一中断发生后,CPU一旦响应该中断,8259A在第一个IN

9、TA脉冲将ISR相应位置为1,在第二个INTA脉冲由8259A的IVR寄存器输出中断向量类型码到数据总线上由CPU读取,同时8259A自动清除ISR中的相应位,这种方式通常用于非中断嵌套方式的单片系统中。(进入中断程序后自动清除) 非自动结束方式(EOI):在非自动结束中断方式下,必须在中断服务程序返回之前,向8259A发出中断结束命令EOI,使得ISR中的当前服务位清除“0”。a) 一般中断结束方式(全嵌套)非自动结束方式b) 特殊中断结束方式(特殊嵌套),16,一般中断结束方式:当8259A工作在全嵌套方式时采用此结束方式,即CPU中断服务结束时,向8259A输出一条一般中断结束方式命令,

10、8259A会自动清除ISR中的最高级位。(OCW2) 特殊中断结束方式:它用于特殊嵌套方式中,由于此时 优先级结构在变化,无法确定正在响应的是哪一级中断,所以给8259A发一个特殊中断结束命令,该命令指明要清除当前中断服务寄存器ISR中的哪一位。当8259A工作在级连方式时,一般采用非自动结束方式,但需发两个EOI命令,第一个给从片8259A,并且读取从片的ISR值,确认从片ISR没有信的中断后,发第二个给主片8259A。(OCW2),17,例1:普通EOI循环方式举例,某系统中原来定义的是IR0为最高级, IR7为最低级,当前正在处理IR2和IR6引入的中断请求,因此ISR寄存器中第2位和第

11、6位置1,待第2级中断处理完,CPU向8259A发回普通EOI命令,ISR中级别高的第2位清0,并将优先级由原定义的第2级改为最低级(第7级),而将最高级(第0级)赋给原来的第3级(IR3),其它级的优先权按循环方式依次改变级别。待第6级中断处理完后也如此处理。,18,例2:特殊EOI循环方式举例,当前正在处理第2级和第6级中断,它们以嵌套方式引入系统。如果当前CPU正在执行优先级高的第2级中断服务程序,用户在该中断服务程序中安排了一条优先权置位命令,将最低级优先权赋给IR4,那么待这条指令执行完,各中断源的优先级便发生变化,IR4具有最低优先级 ,但这时第2级中断服务程序并没有结束,因此IS

12、R寄存器中仍保持第2位和第6位置1,只是它们的优先级别已经分别被改变为第5级和第1级,,19,4、 中断请求的触发方式,电平触发方式: IR0IR7以高电平方式作为中断请求的有效信号。 边沿触发方式: IR0IR7以上升延跳变方式作为中断请求的有效信号。 3) 查询方式:在此方式下,外设仍需通过IR0IR7向8259A发送中断信号,但与上两种方式不同是,8259A不向CPU发中断INTR信号,而是通过CPU向8259A发查询命令(OCW3的D2)后,读取查询字来确定是否有外设请求中断服务。,20,5、 连接系统总线的方式,缓冲方式: 该方式下8259A的总线不是直接与系统相连,而是通过总线控制

13、器(8288)和系统总线相连,此时SP/EN端接到总线控制器8288的OE端。 2) 非缓冲方式:是指8259A直接与系统总线相连,此时SP/EN作为输入端(当主片时接高电平,当从片时接低电平)。,21,6、 8259A的多片级连方式,过程:8259A中断控制器支持级连工作方式,在级连的系统中,由一个主片和若干个从片组成(最大9片可构成64级中断源)。当从片中产生中断请求时,CPU响应中断后, 在第一个中断响应负脉冲,由主片通过CASx向从片发出相对应的中断源位置号, 在第二个中断响应负脉冲,由被选中的从片向数据总线输出中断类型码。,22,8259A工作方式(小结),23,中断请求方式:初始化

14、设置,边沿触发、电平触发、查询中断方式。,连接总线与级联方式:初始化设置,24,屏蔽方式:缺省值:正常屏蔽,内部特性:自动屏蔽低于自己优先级的IR。,正常屏蔽:IMR中相应位置位;,特定屏蔽:开放比自己优先级低的IR。,优先级管理方式:固定优先权,内部特性:IR0IR7的优先级为一循环队列。,固定优先权:从IR0IR7降序;,轮转优先权:,自动轮转:刚被服务的IR的优先级降至最低;,指定轮转:指定的IR的优先级降至最低。,25,嵌套方式:全嵌套,全嵌套:禁止同优先级或低优先级请求发生;,特殊全嵌套:禁止低优先级请求发生。,应用:级联时主片特殊全嵌套,从片全嵌套。,结束方式:自动,自动:中断响应

15、后ISR中最高优先级位自动复位;,手工:手工对ISR中相应位复位;,不指定方式:ISR中最高优先级位复位;,指定方式:ISR中指定的位复位。,26,7.5.5 8259A的编程,8259A是可编程的中断控制器,它的工作状态和操作方式是由CPU通过命令字进行控制的。 8259A有两类命令字初始化命令字ICW(Initialization Command Words)操作命令字OCW(Operation Command Words)。 初始化命令字ICW,当计算机刚启动时,由CPU按次序发送24个不同格式的ICW,用来建立起8259A操作的初始状态,此后的整个工作过程中该状态保持不变。 操作命令字

16、(OCW)用于动态控制中断处理,是在需要改变或控制8259A操作时随时发送的。每片8259A有2个片内地址A0=0和A0=1,所有的命令字都是通过这两个端口来发送的。,27,8259A的初始化编程,命令:初始化-ICW1ICW4,操 作-OCW1OCW3。,状态:IRR、ISR、IMR、查询字。,I/O端口操作冲突时解决方法:,信息字中有空闲位时:特征位方法;,信息字中无空闲位时:时序方法,按顺序执行,如ICW14。,I/O端口地址:只提供二个端口(使用A0);,28,29,ICW1: ICW1主要用于设置工作方式,其格式及各位的定义下图所示。功能:规定了单片多片、触发方式及是否使用ICW4。

17、,1初始化命令字,30,2) ICW2 (A0=1,奇地址端口)设置中断类型码ICW2用于设置中断类型号,写入A0=1的端口,其格式如图所示。功能:提供给CPU的中断类型号的高5位地址码。,31,在8086/8088系统中,只设置D7D3,即只需设置中断类型号的高5位,编程时D2D0的值可任意设定(通常设为0),D2D0的实际内容由8259A根据中断请求来自IR0IR7的哪一个输入端,自动填充为000111中的某一组编码,与高5位一同构成8位的中断类型号。 例如,在PC/XT中ICW2为00001000B,则对于从IR0、IR1、IR2、IR3、IR4、IR5、IR6和IR7上引入的各中断请求,其相应的中断类型号为08H、09H、0AH、0BH、0CH、0DH、0EH和0FH。 例如:ICW2=0010000B,则8259A的IR0-IR7的中断类型码依次为20H、21H、27H。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号