版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理及应用,2020/7/21,微机原理及应用,2,第7(9)章 中断系统和中断控制器8259A,一、中断的基本概念 二、8086/8088的中断系统 三、中断控制器8259A,2020/7/21,微机原理及应用,3,一、中断的基本概念,1、中断及中断源 2、中断处理过程 3、中断优先权管理,2020/7/21,微机原理及应用,4,1、中断及中断源,中断是一种让CPU挂起正在执行的程序而转去处理特殊事件的操作。 CPU暂时停止执行原来的程序而转去中断处理,处理好中断服务后再返回继续执行原来的程序,这样一个过程就是一个中断过程 。 能够引起CPU中断的事件称为中断源 。 CPU中断系统的基本
2、功能 。,2020/7/21,微机原理及应用,5,中断源,(1)一般的输入输出设备。如键盘,打印机等; (2)数据通道中断源。如磁盘,光驱等直接与存储器交换数据所要求的中断; (3)实时时钟。在控制系统中使用外部硬件电路实现时间控制,当定时时间到时向CPU发出中断申请; (4)故障引起的中断。如电源掉电等; (5)由中断指令或软件故障引起的中断。如系统功能调用,除数为0,或者在程序调试时设置断点等引起的中断。,2020/7/21,微机原理及应用,6,中断分类,根据中断与CPU的相对关系,中断分为内部中断和外部中断。 内部中断可以是中断指令设置的中断,调试程序时设置的中断,或是程序运行过程中发生
3、的非预期情况而产生的中断; 外部中断则是由直接连到CPU引脚上的信号引起的中断,如外部设备请求服务中断,实时时钟定时到中断,电源掉电等等。,2020/7/21,微机原理及应用,7,CPU中断系统的功能,(1)实现中断及返回 (2)实现优先权排队,以确定优先处理的中断源。 (3)优先权高的中断源能中断优先权低的中断处理,2020/7/21,微机原理及应用,8,(1)实现中断及返回,当有一中断源提出中断请求时,CPU首先判断是否响应该中断? * 如果CPU正在执行的是重要的程序,可以暂不响应,即关中断; *当CPU完成了当前的重要程序后,开中断予以响应,同时,保存断点,转入中断处理; * 当中断处
4、理完后,恢复断点从而回到被中断运行的原程序继续执行;,2020/7/21,微机原理及应用,9,(1)实现中断及返回,* 通过设置CPU内部的中断允许触发器(IFF),开关中断 。 当IFF1,使中断允许(开中断); 当IFF0,使中断不允许(关中断)。 注意: 不可屏蔽中断,要求CPU立即处理。不受中断允许触发器(IFF)的控制。 可屏蔽中断,受中断允许触发器(IFF)的控制。,2020/7/21,微机原理及应用,10,(2)实现优先权排队,以确定优先处理的中断源,一个系统中有多个中断源,存在着几个中断源同时请求的可能; 因此,必须事先根据中断源的重要性,给每个中断源确定一个中断优先级别优先权
5、。 中断响应时,CPU应能首先响应优先权级别高的中断源。,2020/7/21,微机原理及应用,11,在中断服务处理过程中: 若新的中断申请其优先级别更高,则CPU应再一次中断,转去优先权更高的中断源服务。处理完后,再回到原来的中断服务中,这也称为中断嵌套。 若新的中断源优先权级别为同级或低级,则CPU暂不理会,继续正在处理的中断服务,直到当前中断处理结束后再去处理新的中断申请。,(3)优先权高的中断源能中断优先权低的中断处理,2020/7/21,微机原理及应用,12,2、中断处理过程,一个中断过程应该包含以下五个过程: (1)中断请求 (2)中断排队 (3)中断响应 (4)中断服务 (5)中断
6、返回,2020/7/21,微机原理及应用,13,(1)中断请求,当中断源需要CPU为其服务时,首先送出中断请求信号。 中断信号可以由中断指令或是某些特定条件产生,也可以是通过CPU引脚(INTR)向CPU发出中断请求信号而产生。 实际系统中一般都有多个中断源, 为了增加控制的灵活性,每个中断源接口电路中,设置一个中断请求触发器和一个中断屏蔽触发器。,2020/7/21,微机原理及应用,14,(1)中断请求,当中断源有请求时,将中断请求触发器置1: * 若中断屏蔽触发器为“0”状态,表示允许该中断源向CPU发出中断请求“信号”; * 若中断屏蔽触发器为“1”状态,表示禁止该中断源向CPU发出中断
7、请求“信号”。 尽管该中断源有中断请求,也不能被送出,称该中断请求被屏蔽了。,2020/7/21,微机原理及应用,15,(2)中断排队和(3)中断响应,中断排队是确定当前所有中断请求中优先级最高的那个中断源。 因为CPU一次只能响应一个中断,所以必须首先处理最紧急最重要的中断。 根据中断源的轻重缓急给予一个中断优先权级别,优先权级别最高的中断源将首先得到响应。,2020/7/21,微机原理及应用,16,(2)中断排队和(3)中断响应,CPU通过中断排队确定了要响应的中断源后,进入中断响应,自动完成以下步骤: 关中断; 保护断点,将正在执行的程序地址(断点)入栈; 保护现场,标志寄存器FR自动入
8、栈; 形成中断服务程序入口地址。,2020/7/21,微机原理及应用,17,(4)中断服务和(5)中断返回,中断服务是指CPU执行中断服务程序。 中断服务程序应包括: 保护现场,CPU响应中断时自动保护断点,寄存器则由程序员决定是否要入栈; 开中断,CPU响应中断时,自动执行关中断操作。要实现中断嵌套,必须在中断服务程序中开中断;,2020/7/21,微机原理及应用,18,(4)中断服务和(5)中断返回,中断处理,对中断源作相应的处理,是中断服务程序的核心; 关中断,若中断服务程序设置了开中断,则此时应该关中断,以保证恢复现场的操作不被打断; 恢复现场,按后进先出的原则,PUSH和POP应配对
9、使用; 中断返回,从堆栈中弹出断点,返回主程序。,2020/7/21,微机原理及应用,19,3、中断优先权管理,中断优先权是事先根据中断源的重要性给每个中断源确定一个中断优先级别优先权。 中断优先权管理就是判别和确定各个中断源的中断优先权。 中断优先权判别方法有软件和硬件两种方法。,2020/7/21,微机原理及应用,20,3、中断优先权管理,(1)软件确定中断优先权 软件法是在CPU响应中断后,用软件查询确定哪个中断源申请中断,先被查询的先响应。 查询次序决定了中断优先权次序,最先被查询的中断源具有最高的优先权。,2020/7/21,微机原理及应用,21,3、中断优先权管理,如图,8个外设只
10、要有中断请求,CPU检测到中断请求信号,响应中断;,读入端口80H的内容,逐位判别确定当前申请中断的优先权最高的中断源,从而进入相应的中断服务程序。,2020/7/21,微机原理及应用,22,3、中断优先权管理,(1)软件确定中断优先权,软件查询流程图,软件查询程序: IN AL,80H ;端口读入状态 TEST AL,80H; JNZ SERVE_A TEST AL,40H JNZ SERVE_B TEST AL,01H JNZ SERVE_H HLT,* 软件查询次序就是优先权高低的次序; * 软件确定中断优先权不需复杂的硬件电路,简单易实现; * 中断源较多时,查询时间较长,中断响应较慢
11、。,2020/7/21,微机原理及应用,23,3、中断优先权管理,(2)硬件确定中断优先权 由硬件实现中断优先权的判别。 * 常用的硬件电路有:中断优先权编码电路,链式优先权排队电路及专用硬件电路等。 * 利用中断控制器8259A,它具有8个优先权控制,可以通过级联,扩展至64级优先权控制,且每级中断都可设置为允许或屏蔽 。,2020/7/21,微机原理及应用,24,二、8086/8088的中断系统,8086/8088CPU具有一个功能很强、管理高效且简便灵活的中断系统,可以处理多达256种中断源。 采用向量中断方法,对256种中断只需一次间接访问就可获得任一中断源的中断服务程序的入口地址,中
12、断响应快速。 8086/8088CPU有两类中断: * 内部中断 由执行中断指令或特殊事件引起; * 外部中断 由外围设备接口向CPU的中断请求引脚INTR和NMI发出中断请求信号而引起的。,2020/7/21,微机原理及应用,25,二、8086/8088的中断系统,1、8086/8088的中断指令 2、8086/8088的中断分类 3、中断向量表 4、8086/8088中断处理过程,2020/7/21,微机原理及应用,26,1、8086/8088的中断指令,(1)中断指令 指令格式: INT n ;n=0255,中断类型码 指令操作: SP2 SP(修改堆栈指针), FR入栈, IF=0(中
13、断标志置0,关中断,CPU不响应可屏蔽中断) , TF=0(陷阱标志,TF0,CPU正常执行程序) , SP2 SP (修改堆栈指针), CS入栈 SP2 SP (修改堆栈指针),IP入栈 n4 IP n4+2 CS,2020/7/21,微机原理及应用,27,1、8086/8088的中断指令,中断向量就是中断服务程序的入口地址; 中断类型码 n4 即为该中断向量的存放地址; 低字是IP,高字是CS,CPU取出CS和IP,转去执行中断服务程序。 INT n 指令除了使IF0和TF0,对其他标志位没有影响; INT指令(即n=3),称为断点中断指令,用于软件调试。,2020/7/21,微机原理及应
14、用,28,1、8086/8088的中断指令,(2)溢出中断指令 指令格式:INTO;与INT 4等价 指令操作: 溢出中断指令用于带符号数加减法运算后,由于运算溢出而产生中断。 通常,写在一条算术运算指令后: 若运算结果使OF=1,进入中断类型码为4的中断; 否则,按顺序执行下一条指令。,n4 0010H,中断向量存放地址为:,2020/7/21,微机原理及应用,29,1、8086/8088的中断指令,(3)中断返回指令 指令格式:IRET 指令操作:IP,CS,FR依此出栈,SP+6SP 所有中断服务程序,无论是软件中断,还是硬件中断,最后执行的指令一定是IRET,用以退出中断,返回断点。,
15、2020/7/21,微机原理及应用,30,2、8086/8088的中断分类,8086/8088的中断系统可以处理256种不同的中断。 所有可能产生的中断源有:可屏蔽中断INTR、非屏蔽中断NMI、指令中断INT n和特定条件下的中断,分为两类:,内部中断,外部中断,2020/7/21,微机原理及应用,31,2、8086/8088的中断分类,内部中断 CPU不是通过外部中断请求而是通过内部逻辑进入中断,调用相应的中断服务程序,是CPU自启动的中断。 除单步中断外,所有内部中断为非屏蔽型的。 内部中断主要用于解决程序运行中发生的一些意外情况、程序调试、用户定义的中断或者调用系统提供的一些标准中断服
16、务程序。 (1)除法出错中断 (类型0) ; (2)单步中断(类型1); (3)断点中断(类型3); (4)溢出中断(类型4); (5)软件中断,返回,2020/7/21,微机原理及应用,32,2、8086/8088的中断分类,内部中断,(1)除法出错中断 (类型0) CPU在执行触发指令DIV和IDIV时,若发现除数为0,或商超过了寄存器所能表达的范围,就立即产生一个类型为0的内部中断,CPU转入除法错误中断处理程序。 注意:此中断是由CPU自身产生,并没有对应的中断指令。,2020/7/21,微机原理及应用,33,2、8086/8088的中断分类,内部中断,(2)单步中断 (类型1) 此中
17、断也是由CPU自身产生,没有对应的中断指令,它是由CPU对状态标志寄存器中的陷阱标志TF的测试而引起的。 TF1,自动单步中断,用于程序调试。,2020/7/21,微机原理及应用,34,2、8086/8088的中断分类,内部中断,(3)断点中断 (类型3) 执行INT指令就产生一个类型为3的内部中断,称为断点中断 。 和单步中断类似,用于程序调试。,2020/7/21,微机原理及应用,35,2、8086/8088的中断分类,内部中断,(4)溢出中断 (类型4) 溢出中断是由CPU执行一条INTO指令实现的: 当OF1时,执行INTO就会进入类型码为4的内部中断; 否则,按顺序执行。,2020/
18、7/21,微机原理及应用,36,2、8086/8088的中断分类,内部中断,(5)软件中断 当执行INT n指令时,形成中断,类型码由指令提供。 从功能上来说,类似于调用子程序,但入口地址在中断向量表里。,2020/7/21,微机原理及应用,37,2、8086/8088的中断分类,外部中断 通过外部的硬件产生,由送至CPU引脚NMI和INTR上的信号引起中断。 分为两类: (1)非屏蔽中断(n=2) 一旦在NMI引脚有中断请求,CPU立即响应。,返回,2020/7/21,微机原理及应用,38,2、8086/8088的中断分类,(2)可屏蔽中断, 从INTR脚引入,必须满足IF=1,且没有非屏蔽
19、中断,CPU可以响应中断。 中断请求信号是由电平触发,必须保存到CPU响应中断请求后才能撤除。 中断允许标志IF的标志,可由指令设置: STI 开中断,将IF置1; CLI 关中断,将IF置0 。 当系统复位,或CPU响应中断后,都使IF置0。,2020/7/21,微机原理及应用,39,3、中断向量表,中断向量即中断服务程序的入口地址,用两个字表示,低字是IP,高字是CS。 将所有中断源的中断向量集中存储在内存的指定空间内,这样一个指定的存储区称为中断向量表; 8086/8088的中断类型码用8位二进制表示,共有从n=0FFh, 256个中断向量; 中断向量表建立在内存空间最低1K地址; 地址
20、范围:00000H 003FFH(即CS=0000H)。 注意:中断类型码只能决定存放中断向量的地址,并不能决定中断向量本身和中断服务程序的功能。,2020/7/21,微机原理及应用,40,3、中断向量表,在IBMPC/XT机中,n=40H0FFH,可以供用户设置中断向量。 向中断向量表中写入中断向量,就是中断向量表的设置。 (1)使用INT 21H (2)用传送指令,2020/7/21,微机原理及应用,41,(1)使用INT 21H,设置中断向量,操作步骤: AH中预置功能号, AH=25H; AL中预置要设置的中断类型码; DS:DX中预置中断服务程序的入口地址; (DS内是段地址,DX内
21、是偏移地址) 执行INT 21H 例题,2020/7/21,微机原理及应用,42,使用INT 21H,设置中断向量,设中断服务程序的入口地址标号为INTSUB,中断类型码为40H, 编写程序段设置中断向量。 解: PUSH DS ;将DS入栈,保存DS MOV DX, OFFSET INTSUB;取INTSUB的偏移地址 MOV AX,SEG INTSUB;取INTSUB的段基址 MOV DS,AX;段基址送DS MOV AL, 40H;送中断类型码 MOV AH, 25H;送功能号 INT 21H;系统功能调用 POP DS;恢复DS ,2020/7/21,微机原理及应用,43,用传送指令设
22、置中断向量,设中断服务程序的入口地址标号为INTSUB,中断类型码为40H, 编写程序段设置中断向量。 解: 数据段 DATA SEGMENT AT 0000 ;设置数据段DATA段 ;从最低内存开始 ORG 100H;确定中断向量的位置在 ;40H4=100H INT_SUB DW 2DUP(?) ;预留两字内存 DATA ENDS,2020/7/21,微机原理及应用,44,用传送指令设置中断向量代码段,CODE SEGMENT CLI ;设置IF=0, 关中断 PUSH DS ;DS入栈 MOV AX, DATA MOV DS, AX ;取DATA的段基址 MOV INT_SUB ,OFF
23、SET INTSUB ;取INTSUB的偏移 ;地址送到INT_SUB MOV INT_SUB+2,SEG INTSUB ;取INTSUB的段基址 ;送到INT_SUB+2 POP DS ;恢复DS STI ;设置IF=1, 开中断 CODE ENDS,2020/7/21,微机原理及应用,45,4、8086/8088的中断处理过程,8086/8088中断处理过程包含: 中断请求、中断排队、中断响应、中断服务和中断返回。 讨论: (1)中断响应条件 (2)中断处理顺序 (3)中断类型码的获取 (4)中断响应过程,2020/7/21,微机原理及应用,46,(1)中断响应条件,任何一种中断,都要待C
24、PU执行完当前指令后方能响应中断。 当CPU执行LOCK时,要等后面的指令完成后才能响应中断; 设置段寄存器内容的指令和下条指令之间不允许中断; 在等待指令和重复串操作指令执行过程中,可响应中断,但必须在一个基本操作完成以后。 当上述情况满足后,有内部中断、NMI、INTR(且IF1),CPU将暂时终止现行程序,进入中断响应。,2020/7/21,微机原理及应用,47,(2)中断处理顺序,中断处理顺序即按中断优先权从高到低的排队顺序对中断源进行响应。 8086/8088系统的中断处理次序如下: 除法错误中断、溢出中断、INT n; NMI(非屏蔽中断); INTR(可屏蔽中断,需判断IF1?)
25、; 单步中断。,2020/7/21,微机原理及应用,48,(2)中断处理顺序,当CPU进入中断响应时,保护FR,TF送暂存TEMP,然后清除IF和TF,以保护本中断服务不被可屏蔽中断打断;中断返回时,FR恢复; NMI的请求拥有最高优先权,需要立即处理; 没有NMI,查看TEMP,以确定是否单步执行? 一个中断被响应,CPU进入中断服务程序; 在中断服务程序中,设置了开中断,即设置IF1,则不但可以响应NMI,也可响应优先权更高的INTR; 多个中断同时发生,按优先权从高到低响应。,2020/7/21,微机原理及应用,49,(3)中断类型码的获取,8086/8088的中断系统是根据中断类型码从
26、中断向量表中取得中断服务程序的入口地址的。 专用中断0 4,由硬件逻辑电路自动提供; INT n指令的第二字节为中断类型码,因而软件中断指令是从指令中直接获得; 外部可屏蔽中断由外部硬件电路在中断响应时向CPU提供中断类型码。,2020/7/21,微机原理及应用,50,(4)中断响应过程,2020/7/21,微机原理及应用,51,(4)中断响应过程,INTR被响应时,CPU实际执行的过程如下: CPU取得中断类型码后,左移两位,存入内部暂存器; FR入栈; IF置零,TF置零; CS入栈; IP入栈; 中断向量低字送IP; 中断向量高字送CS。,2020/7/21,微机原理及应用,52,三、中
27、断控制器8259A,1、8259A基本构成与引脚信号 2、8259A工作过程 3、8259A的工作方式 4、8259A编程方法,2020/7/21,微机原理及应用,53,1、8259A基本构成与引脚信号,(1)8259A是一种功能很强的可编程中断控制器,是28脚芯片,具有很强的功能。 (2)8259A的基本构成和引脚功能,2020/7/21,微机原理及应用,54,8259A的基本构成,IRR是一个8位寄存器,用于锁存所有从IRi引脚输入的中断请求信号。 输入线IR7IR0 分别连接8个中断源的中断请求信号,当中断源有中断请求时,在相应的IR引脚上送入有效信号,IRR中相应的位就置位,以锁存该中
28、断请求信号。,中断请求 寄存器IRR,中断源,2020/7/21,微机原理及应用,55,8259A的基本构成,* PR用于识别各中断请求的优先权级别,并进行优先权管理。 * 各中断请求的优先权级别可以由CPU定义或修改。 * 若IRR有几位被置位,且未被屏蔽,表明有多个中断源同时申请中断。则由PR经过判断确定最高优先权的中断请求,并在CPU响应周期内,将它送入ISR中相应的位。,优先权 判别器PR,中断源,2020/7/21,微机原理及应用,56,8259A的基本构成,*中断服务寄存器ISR为8位寄存器,用于记录已被CPU响应的中断。 *在中断响应周期里,由PR根据IRR和IMR的状态,确定先
29、被响应的中断请求,送至ISR,使相应的位被置位,并一直保持(自动EOI方式例外)。由EOI命令复位。,中断服务 寄存器ISR,中断源,若ISR中有多个位被置位,是什么原因?,2020/7/21,微机原理及应用,57,8259A的基本构成,*中断屏蔽寄存器IMR也是8位寄存器,用于存放对中断请求的屏蔽信息,其内容可编程设定。 *IMR中的8个位对应IR7IR0这8个中断请求,当IMR中某位被置位,对应的中断请求就被屏蔽。 则,IRR对应的位虽被置位,但不能送出它的中断请求信号给CPU,由此实现对各中断有选择的屏蔽。,中断屏蔽 寄存器IMR,中断源,2020/7/21,微机原理及应用,58,825
30、9A的基本构成,*数据总线缓冲器为8位双向三态缓冲器,是8259A与CPU间数据传输的通道。 *CPU通过数据总线缓冲器向8259A送初始化命令和操作命令字,或是读取状态信息。 *在中断响应周期,8259A通过数据总线缓冲器向CPU送出中断类型码。,数据总线缓冲器,2020/7/21,微机原理及应用,59,8259A的基本构成,*读/写控制电路的逻辑功能就是负责接收CPU发来的控制信号,完成规定的写入命令操作以及读IRR、ISR和IMR的操作。 *该片8259A的操作过程中,片选CS必须有效。,读/写 控制逻辑,2020/7/21,微机原理及应用,60,8259A的基本构成,*级联缓冲/比较器
31、用于实现8259A的级联,构成主从式中断管理系统,使中断源由8级扩展到64级。 *级联线CAS2CAS0 在主从式中断管理系统中,全部8259A对应相连;主片8259A,其为输出线,CPU响应中断时,输出级联设备编码,选中对应的从片;从片的8259A,其为输入线,接收来自主片的设备编码。,级联缓冲/比较器,2020/7/21,微机原理及应用,61,8259A的基本构成,*控制电路逻辑根据CPU编程设定的工作方式产生片内控制信号,控制片内的工作; *同时,根据IRR、IMR的内容和PR判断结果,向CPU发出中断请求,接受来自CPU的中断响应信号。,控制逻辑,2020/7/21,微机原理及应用,6
32、2,引脚功能,1、中断请求输入线IR7IR0接受来自外设或8259A从片的中断请求信号。 可设置为上升沿触发或高电平触发。,中断请求输入线,2020/7/21,微机原理及应用,63,引脚功能,*双向三态数据线D7D0 可与系统数据总线直接相连,称为非缓冲方式工作; *也可通过总线缓冲器与系统数据总线相连,称为缓冲方式工作。,双向三态数据线,2020/7/21,微机原理及应用,64,引脚功能,中断请求线INT,输出信号,通常与CPU的可屏蔽中断输入端INTR相连,向CPU发送中断请求信号。,中断请求线,2020/7/21,微机原理及应用,65,引脚功能,*接收CPU在中断响应周期发来的中断响应信
33、号,8259A接到此信号后,送上中断类型码; *中断类型码由编程设定。,中断响应线,中断响应线,2020/7/21,微机原理及应用,66,引脚功能,*由CPU的高位地址线控制,低电平时,表示8259A被选中,允许CPU对8259A进行读或写操作; *高电平时,表示未选中该片。,片选信号线,片选线,2020/7/21,微机原理及应用,67,引脚功能,地址线A0用以选择8259A内部不同寄存器。 *在8088系统中,A0与CPU的A0相连; *在8086系统中,8259A的D7D0与系统数据线低8位相连,而CPU与偶地址传递低8位数据信息,所以A0应与8086 CPU的A1相连。,地址线,2020
34、/7/21,微机原理及应用,68,引脚功能,当读信号低电平时,允许8259A将中断请求寄存器IRR、中断服务寄存器ISR、中断屏蔽寄存器IMR的内容送上数据总线,供CPU读取。,读信号,读信号,2020/7/21,微机原理及应用,69,引脚功能,写信号低电平时,允许CPU将命令字写入8259A。,写信号,写信号,2020/7/21,微机原理及应用,70,引脚功能,*级联线CAS2CAS0 在主从式中断管理系统中,全部8259A的CAS2CAS0与对应端相连。 *作为主片的8259A,其CAS2CAS0为输出线,在CPU响应中断时,用来输出级联设备编码,选中对应的从片; *作为从片的8259A,
35、其CAS2CAS0为输入线,接收来自主片的设备编码。,级联线,2020/7/21,微机原理及应用,71,引脚功能,非缓冲方式工作时,作为输入线, *高电平时,表示该8259A为主片; *低电平时,表示该8259A为从片。 缓冲方式下工作时,作为输出线,用于控制缓冲器接收和发送。,从片编程/ 缓冲使能,2020/7/21,微机原理及应用,72,8259A的主要功能,(1) 每一片8259A可管理8级中断,通过级联, 最多可以管理64级中断; (2)每级中断源都可单独进行屏蔽或允许; (3) 在中断响应周期,能向CPU提供中断类型码,从而使CPU获得相应的中断向量; (4) 允许多级中断嵌套; (
36、5) 可设置多种中断优先权管理方式, (6) 8259A是可编程芯片,用户可通过编程选择不同的工作方式; (7) 具有中断查询方式功能,使CPU以查询方式与各外设进行I/O操作。,2020/7/21,微机原理及应用,73,2、8259A工作过程,当有外部中断请求时,8259A处理过程: (1)中断请求寄存器IRR接受外部中断请求并锁存,当中断屏蔽寄存器IMR为0时,则中断请求进入优先权判别器PR,由PR判断是否当前优先权最高? 如果是,则8259A的INT为1,向CPU的INTR发出中断请求;,2020/7/21,微机原理及应用,74,2、8259A工作过程,8259A使中断服务寄存器ISR的
37、相应位置1,并将中断请求寄存器IRR的相应位清零,再送出中断类型码;,2020/7/21,微机原理及应用,75,2、8259A工作过程,(3)若允许中断嵌套,则由8259A的PR依据ISR中的状态,判断新的中断请求优先权是否高于正在服务的中断。 若是,则送出INT=1,向CPU的INTR发中断请求信号,从而实现中断嵌套。 (4)当中断服务结束时,CPU送出中断结束命令,使8259A清除ISR的相应位,从而结束一个中断服务。,2020/7/21,微机原理及应用,76,3、8259A的工作方式,8259A具有十分灵活的运行方式,可以通过编程设定工作方式,满足用户对中断管理的不同要求。 主要工作方式
38、: (1)中断请求触发方式 (2)屏蔽中断源方式 (3)中断优先权设置方式 (4)中断结束(EOI)方式 (5)连接系统总线方式 (6)中断查询方式 (7)级联方式,2020/7/21,微机原理及应用,77,(1)中断请求触发方式,*电平触发 *边沿触发,2020/7/21,微机原理及应用,78,电平触发,8259A将中断请求输入线上出现高电平作为有效的中断请求信号。 注意:当中断请求输入端出现一个高电平并得到CPU响应时,应及时撤消信号。 否则,在CPU进入中断处理过程,开放中断后,会引起错误的第二次中断。,2020/7/21,微机原理及应用,79,边沿触发,8259A将中断请求输入线出现的
39、上升沿作为中断请求信号。上升沿触发后,可一直保持高电平,而不会产生重复触发。 通常用负脉冲的后沿实现边沿触发。,2020/7/21,微机原理及应用,80,(2)屏蔽中断源方式,*普通屏蔽方式 *特殊屏蔽方式,2020/7/21,微机原理及应用,81,普通屏蔽方式,CPU对8259A的中断屏蔽寄存器IMR写入命令字OCWl,使IMR中的某个位或几个位置1,对应的中断请求就被屏蔽,从而不能被8259A送到CPU。 而IMR中被置0的那些位对应的中断请求允许从8259A送到CPU。 对中断屏蔽可以随时修改,即通过对命令字OCWl的重新设置,实现对某些中断的屏蔽。,2020/7/21,微机原理及应用,
40、82,特殊屏蔽方式,是在中断服务程序中使用,用于中断嵌套,实现在高优先权的中断服务程序中开放低优先权的中断请求。 实现:在中断服务程序中,用命令字OCW1对中断屏蔽寄存器IMR中相应的位置1,且清除当前中断服务寄存器ISR对应的位,从而开放低优先权的中断请求。,2020/7/21,微机原理及应用,83,(3)中断优先权设置方式,*普通全嵌套方式 *特殊全嵌套方式 *优先权自动循环方式 *优先权特殊循环方式,2020/7/21,微机原理及应用,84,普通全嵌套方式,这是8259A最基本、最常用的工作方式,若对8259A初始化后没有设置其它优先权方式,则默认为此方式。 普通全嵌套方式中,8259A
41、的8个中断源请求的优先权级别,按照IR0优先权最高、IR7优先权最低的固定优先权顺序。 当一个中断被响应后,只有比它高优先权的中断请求才会被响应。,2020/7/21,微机原理及应用,85,特殊全嵌套方式,与普通全嵌套方式基本相同,优先权顺序按照IR0优先权最高、IR7优先权最低的固定顺序。 唯一不同在于:若CPU正在处理某一级中断时,如果有同级的中断请求,8259A也会送出中断请求给CPU。 特殊全嵌套方式是对同级中断的一种中断嵌套。 一般用在8259A级联的系统中,设定主片为特殊全嵌套方式。 当某一从片的中断请求正在被处理时,既开放主片上其他优先权高的中断请求,同时也开放了同一从片上的较高
42、优先权的中断请求。,2020/7/21,微机原理及应用,86,优先权自动循环方式,一个系统的几个中断源的重要性差别不大,因而希望它的优先权不是固定不变的。 优先权自动循环方式下,优先权顺序是在变化的: 初始时,IR0为最高优先权,IR7为最低优先权; 当一个中断被CPU响应后,它的优先权自动降为最低的; 原在其下一级的中断升为最高优先权,其余循环类推。 假设,初始时有IR3中断请求,且被CPU响应,当IR3的中断服务结束后,IR3降为最低优先权。 此时的优先权顺序变为:IR4、IR5、IR6、IR7、IR0、IRl、IR2、IR3。,2020/7/21,微机原理及应用,87,优先权特殊循环方式
43、,与优先权自动循环方式相似,优先权的顺序是变化的,当一个中断被CPU响应,它的优先权自动降为最低。 优先权特殊循环方式中,初始最低优先权是由编程设定的。 设编程时设定IR4为最低,则初始优先权顺序由高至低为:IR5、IR6、IR7、IR0、IRl、IR2、IR3、IR4。 优先权顺序还可在执行EOI命令时指明最低优先权。,2020/7/21,微机原理及应用,88,(4)中断结束(EOI)方式,当一个中断请求被响应,8259A在中断服务寄存器ISR的相应位置l。 当中断服务结束时,必须将ISR中相应的位清0,进行中断结束操作。 * 自动中断结束方式 * 普通中断结束方式 * 特殊中断结束方式,2
44、020/7/21,微机原理及应用,89,自动中断结束方式,CPU一旦进入中断响应周期,8259A就自动将当前中断服务寄存器ISR中相应的位清0。 这时,尽管CPU正在为某个中断源服务,但在8259A的ISR中没有对应位置1,优先权判别器PR不能依据ISR正确判别是否接收新的中断请求,就会出现低优先权中断打断高优先权中断的情况。 自动中断结束方式通常用在不允许中断嵌套的场合。,2020/7/21,微机原理及应用,90,普通中断结束方式,普通中断结束方式用在普通全嵌套情况下。 在中断服务结束时,必须由CPU用OUT指令发来一个普通EOI命令,8259A收到后,将当前中断服务寄存器ISR中的已置1的
45、最高优先权的位复位。,2020/7/21,微机原理及应用,91,特殊中断结束方式,特殊中断结束方式多用于优先权循环情况下。 由CPU在中断服务结束时,发出一条特殊EOI命令,指明要清除ISR中的哪一位。 注意:在级联方式下,一般不用自动EOI方式,而用普通中断结束或特殊中断结束方式。 一个中断结束可能要发两次EOI命令,一次对主片,一次对从片,分别清除主、从片的ISR中相应位。,2020/7/21,微机原理及应用,92,(5)连接系统总线方式,2020/7/21,微机原理及应用,93,(6)中断查询方式,8259A提供了中断查询方式。 这种方式下,外设仍然靠中断请求要求服务,但CPU不是通过对
46、中断请求的响应,而是靠主动查询实现对外设的服务。 在CPU为关中断情况下,外设的中断请求信号不被响应,但CPU可以通过查询方式检查请求中断的外设,获取中断请求信号,从而进入中断服务。,2020/7/21,微机原理及应用,94,(7)级联方式,8259A可以级联使用,一个主8259A可以最多带8个从8259A,将中断源扩展到64级。,2020/7/21,微机原理及应用,95,(7)级联方式,通常主片采用特殊全嵌套方式,允许同一从片上优先权高的中断请求打断优先权低的中断请求。 其余的工作方式、寄存器读取方法与单片系统基本相同。,2020/7/21,微机原理及应用,96,4、8259A编程方法,82
47、59A为可编程的中断控制器,它的工作状态和操作是由接收CPU的命令而确定的。 8259A在开始使用前,首先写入 初始化命令字,使其处于预定的初始状态;初始化命令字设定后,在整个系统工作过程中保持不变; 操作命令字用来控制8259A执行不同的操作方式。初始化命令字设置后,在8259A工作期间的任何时刻都可设置操作命令字,且允许重置操作命令字动态地改变8259A的操作方式。,2020/7/21,微机原理及应用,97,初始化命令字,初始化命令字有4个 : ICW1格式 ICW2格式 ICW3格式 ICW4格式,8259A在使用前首先必须对它进行初始化,使其处于预定的初始状态,初始化命令字设定后,整个
48、工作过程中保持不变。,例题,2020/7/21,微机原理及应用,98,ICW1格式,D41,A00表示设置的是ICW1 注意: A00,表示输入8259A低地址端口;,2020/7/21,微机原理及应用,99,ICW2格式,ICW2用于设置中断类型码。 注意: A01,表示输入8259A高地址端口。,2020/7/21,微机原理及应用,100,ICW3格式,ICW3是在级联方式下设置的初始化命令字。 当ICW1中D11,单片使用,不需要ICW3; 当ICW1中D10 ,表示8259A工作于级联方式,必须设置ICW3。,2020/7/21,微机原理及应用,101,ICW3格式,* 假设,主片IC
49、W30101 0011,,表示该从片的INT连至主片的IR7,表示IR6、 IR4、 IR1、 IR0上接有从片,* 假设,从片ICW30000 0111,,2020/7/21,微机原理及应用,102,ICW4格式,当ICW1的D0 =1,需要设置ICW4。,D7 D6 D5 = 000 ICW4的标志,SFNM1,用于指明是否选择特殊全嵌套方式,一般在使用多片8259A中使用,主片即选用特殊全嵌套方式。,2020/7/21,微机原理及应用,103,例题,解:其初始化程序如下: MOV AL,13H;设置ICW1=0001 0011,即采用边沿 ;触发,单片,需要ICW4 OUT 80H,AL
50、;ICW1写入地址A0=0 MOV AL,18H;ICW2=0001 1000,确定ICW2的高5位 OUT 81H,AL;ICW2写入地址A0 =1 MOV AL,0DH;ICW4=0000 1101,即普通嵌套方式, ;缓冲方式,非自动中断结束方式,用 ;于8086/8088 OUT 81H,AL;ICW4写入地址A0 =1 ,单片8259A的端口地址是80H和81H,采用边沿触发,普通嵌套方式,缓冲方式,非自动中断结束方式,需要ICW4,中断类型码是18H1FH,请对8259A进行初始化。,2020/7/21,微机原理及应用,104,操作命令字,向8259A写入初始化命令字后,8259A
51、就处于设定的工作状态,随时准备接受中断请求信号,按要求管理中断; 自动进入操作命令状态,在任何时刻都可以设置操作命令字,选择其不同的操作方式; 操作命令字用于规定中断屏蔽、中断结束、优先权循环和中断状态的读出和查询等等。 操作命令字有三个,根据需要输入,无需按顺序。 OCW1 OCW2 OCW3,例题,2020/7/21,微机原理及应用,105,OCW1,OCW1的功能用来动态地设置中断源的屏蔽状态。,CPU也可以从8259A的高地址端口读取中断屏蔽寄存器IMR的内容。,假设,OCW133H, 表示IR5、 IR4、 IR1、 IR0引脚上的中断被屏蔽,其余中断请求允许;,2020/7/21,
52、微机原理及应用,106,OCW2,D4D300:可作为OCW2的标志位。 D5: 即EOI,中断结束命令位。,OCW2的功能 就是用于控制中断结束,优先权循环等操作方式。,2020/7/21,微机原理及应用,107,OCW2,若ICW4中AEOI0,表明设置非自动中断结束方式,则在中断服务程序最后中断返回前必须设置中断结束(EOI)命令。 EOI置1为一个EOI命令,执行此命令将清除8259A的中断服务寄存器ISR具有最高优先权的位或由L2L0指定的位; R、SL、EOI三位配合使用选择中断结束和优先权循环的操作方式。,2020/7/21,微机原理及应用,108,OCW2,假设,OCW2011
53、0 0011, 是特殊EOI命令,清除ISR指定的位(即D3); OCW21000 0000, 设置为工作于中断优先权自动循环方式。优先权初始次序由高至低为IR0IR7,当一个中断被处理返回后,自动降为最低级,其下一级作为最高级,其余依次类推。 OCW21110 0010, 清除ISR中当前中断对应的位,指定当前系统的最低优先权级(IR2 ) 。中断返回后,优先权次序改为IR3、IR4、IR5、IR6、IR7、IR0、IRl、IR2。,2020/7/21,微机原理及应用,109,OCW3,OCW3用于控制8259A的运行方式。 包括设置或撤销特殊屏蔽方式和查询方式, 可读出8259A的中断请求
54、寄存器IRR ,中断服务寄存器ISR等。,P1,查询,D4D301 OCW3的标志,2020/7/21,微机原理及应用,110,OCW3,当CPU发来一个OCW3查询命令(P1): 假设,此时优先权次序为IR3、IR4、IR5、IR6、IR7、IR0、IRl、IR2 ,且IR5、IRl有中断请求。 随后,CPU执行一条输入指令,便可得到查询字: 85H,查询字格式,1, 有中断请求,优先权 最高位,2020/7/21,微机原理及应用,111,OCW3,CPU不必设置OCW3,可随时在高地址读取IMR的值; 而读取IRR和ISR之前,必须先发一个OCW3命令字。,D1D0:读取8259A 的IR
55、R或ISR的值,2020/7/21,微机原理及应用,112,OCW3,假设,8259A的端口地址为20H,21H, MOV AL,0AH; 设置OCW3,其中D1D0=10 OUT 20H,AL;从低端口输出 NOP;等待 IN AL,20H;读入IRR的内容,如果需要读入ISR的内容,如何修改?,2020/7/21,微机原理及应用,113,R、SL、EOI组合,注:有信号的组合,OCW2的L2L0有效,2020/7/21,微机原理及应用,114,例题(1),1、已知8259A的端口地址是20H,21H,读取其中断请求寄存器IRR和中断服务寄存器ISR的内容。 解: MOV AL,0AH;OC
56、W3=0000 1010,读IRR寄存器 OUT 20H,AL;OCW3输出到8259A的低地址 NOP;空操作,等待3个时钟周期 IN AL,20H;从低地址读入IRR的内容 ,2020/7/21,微机原理及应用,115,例题(2),2、修改中断屏蔽寄存器IMR内容,使IR5的中断请求被屏蔽,开放IR3的中断请求,其余不变,8259A的端口地址60H,62H。 解:OCW1对应位为0,开中断;对应位为1,禁止中断;CPU从8259A高地址读取的内容就是中断屏蔽寄存器IMR的内容。 IN AL,62H;从高地址读入IMR AND AL,0F7H;读入的IMR与1111 0111,即IR3置0
57、OR AL,20H;以上IMR的值或0010 0000,即IR5置1 OUT 62H,AL;从高地址写入IMR ,2020/7/21,微机原理及应用,116,例题(3),3、8259A当前中断服务寄存器ISR的内容代表什么?在中断嵌套和单个中断情况下,ISR的内容有什么不同? 解:中断服务寄存器ISR记录了正被CPU响应的中断(在非自动EOI方式下)。ISR是8位寄存器,8个位分别对应8个中断源IRi,若某个中断源的中断请求被CPU响应,则对应位置1。 单个中断被响应时,ISR中只有一个位为1。 中断嵌套时ISR中有两个以上的位为1,表明一个中断未处理结束,又转入更高优先权的中断处理中。所以I
58、SR表示当前有哪些正在响应的中断存在。,2020/7/21,微机原理及应用,117,例题(4),4、8259A按中断结束方式分有哪几种?若初始化时设置为非自动中断结束方式,则在中断服务程序未尾应设置什么操作命令?不设置将会对中断系统产生什么影响? 解:8259A按中断结束方式分有3种:自动中断结束方式、普通中断结束方式、特殊中断结束方式。 初始化时设置为非自动中断结束方式,则在中断服务程序末尾应设置中断结束命令即EOI命令(即写OCW2),将ISR中对应的置1位清0,表示该中断源的中断处理结束了。 若在中断服务程序末尾没有执行EOI命令,则ISR中对应的置1位一直保持。 当对应的中断源的中断处理结束,而ISR中仍记录该中断正在处理,因此,将影响优先权判别器PR的正确判别,导致比该中断源优先权低的中断请求不能被响应。,2020/7/21,微机原理及应用,118,例题(5),5、设目前系统的最高优先权为IR5,若执行OCW2命令,且命令中EOI0,R1,SL1,L2L1L0011。请指出OCW2命令执行后,8259A的优先权顺序。 解:因为OCW2命令中R1,SL1,EOI0,则该命令是指定优先权特殊循环方式的最低级; 由L2L1L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流园区智能化管理制度
- 油压式裁断机操作规程
- 办公区消防安全管理制度
- 湖北荆州市高职单招数学试题附答案
- 2025年山东(专升本)语文考试真题及答案
- 黑龙江省绥化市重点学校初一入学语文分班考试试题及答案
- 黑龙江省高职单招英语考试题库(含答案)
- 2026年福建三明社区工作者考试真题及答案
- 绿色建材检测技师(中级)考试试卷及答案
- 老年舞蹈考级指导师岗位招聘考试试卷及答案
- 七下语文《骆驼祥子》考点总结及练习题(附答案)
- 煲汤熬粥大全
- (二诊)绵阳市2023级高三第二次诊断考试语文试卷A卷+B卷(含答案)
- 2026年营口职业技术学院单招职业技能考试题库必考题
- 2025年度领导干部任前应知应会党内法规和法律知识考试题库及答案
- 2025上半年湖南省郴州市安仁县事业单位公开招聘工作人员考试试卷
- 强化训练苏科版九年级物理下册《电磁转换》专题练习试题(解析版)
- 慢阻肺全科医学管理
- 江苏省南京市2024年中考物理试卷(含答案)
- 柬埔寨施工合同模板
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
评论
0/150
提交评论