微机原理第九章课件.ppt

上传人:牧羊曲112 文档编号:1525371 上传时间:2022-12-03 格式:PPT 页数:63 大小:3.02MB
返回 下载 相关 举报
微机原理第九章课件.ppt_第1页
第1页 / 共63页
微机原理第九章课件.ppt_第2页
第2页 / 共63页
微机原理第九章课件.ppt_第3页
第3页 / 共63页
微机原理第九章课件.ppt_第4页
第4页 / 共63页
微机原理第九章课件.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《微机原理第九章课件.ppt》由会员分享,可在线阅读,更多相关《微机原理第九章课件.ppt(63页珍藏版)》请在三一办公上搜索。

1、4.4.3 中断操作,1956年,美国IBM公司在IBM 7049机上首先使用了中断处理技术,并开始使用“中断”(interrupt)这一术语。 计算机在程序执行过程中,当出现硬件或软件请求时,处理器暂时停止正在执行的程序,转去对请求进行处理,处理完后,回到程序断点位置继续执行。 8086/8088是16位微处理器,中断系统可以处理256种不同类型的中断。,4.4.3 中断操作,4.4.3 中断操作,中断请求的发生时间是随机的,因此在执行程序的过程中中断程序的插入也是随机的。这是子程序和中断处理程序的重要区别。,4.4.3 中断操作,采用中断技术的原因,当CPU和外设进行数据传送时,必须测试并

2、确认外设处于准备好的状态才能够进行数据传送。在早期的计算机中,CPU和外设处于串行工作状态,快速的CPU和慢速的外设在传递数据的速度上存在很大矛盾,大大降低了CPU的工作效率。引入中断技术以后,可以使CPU和外设在大部分时间里并行工作。,中断最初是为了提高处理器的使用效率和提高计算机的工作速度而引进的。中断技术可用于:保证外设和CPU同步、实时处理、故障处理等。,4.4.3 中断操作,1. 8086/8088的中断分类硬件中断:通过外部的硬件( I/O设备等)产生的,也叫外部中断。非屏蔽中断:通过CPU的NMI引脚进入,不受IF的屏蔽。整个系统中只能有一个非屏蔽中断。可屏蔽中断:通过CPU的I

3、NTR引脚进入,当IF为1时中断才能进入。整个系统中可以有多个非屏蔽中断。软件中断:程序中断指令,TF设定,指令运行出错等。 这256种中断对应着类型码0-255。,4.4.3 中断操作,图4-19 8086/8088的中断分类,4.4.3 中断操作,中断标志1、中断允许标志 在CPU的标志寄存器中的IF标志。表示是否可以响应外设的中断请求。“1”来表示允许。 在8086/8088系统中可以用CLI和STI指令来设置IF,禁止或允许来自INTR可屏蔽中断请求引脚的中断申请。2、中断请求标志 对应每个外设有一位,用来纪录外设的中断请求状态。有请求时置1,中断处理完后清0。 在8086中,用825

4、9A来管理外设的中断请求,而在8051系列的单片机中,该标志在CPU内部。,4.4.3 中断操作,中断屏蔽:选择性的将某些中断源的请求忽略,即不响应该中断请求。 有些硬件中断源的请求可以根据IF标志决定是否响应,而有些硬件中断源的请求需要一定被响应。在8086/8088系统中,INTR是可屏蔽中断请求引脚;NMI是不可屏蔽的中断请求引脚。 在PC机系统中,通过8259A管理的外设中断源连在CPU的INTR引脚上。在8259A内部有8位的中断申请寄存器和8位的中断屏蔽寄存器,可以对应于8个外设的中断申请和中断屏蔽。,4.4.3 中断操作,中断优先级:当系统具有多个中断源时,有可能同时发出请求,由

5、CPU按照重要性和急迫性(中断优先级别)择优响应。一般的处理原则:1、不同优先级同时请求,按优先级别处理。2、低优先级中断正在处理,出现高优先级请求,转去处理高优先级请求。3、高优先级中断正在处理,出现低优先级请求,暂不响应。4、中断处理时,出现同级别请求,当前中断处理完以后再处理新的请求。,4.4.3 中断操作,中断嵌套:在CPU的处理外部中断的时候,如果有更高优先级的中断请求,再转去处理高优先级的中断。这种低级中断中套着高级中断称为中断嵌套。断点:CPU在每条指令执行的最后一个时钟周期检测中断请求,如果响应中断的话,转去执行中断处理程序,程序被中断的地方称为“断点”。具体地址是响应中断时,

6、主程序中当前指令下面的一条指令的地址,包括CS和IP的值。断点在中断前要入栈保护。,4.4.3 中断操作,2. 中断向量 中断向量是中断处理子程序的入口地址,每个中断类型对应一个中断向量。8086中,把内存第0段的000003FF区域设置为一个中断向量表。每个中断向量占4个存储单元。前两个单元存放中断子程序入口地址的偏移量IP,后两个单元存放段基址CS,低位在前,高位在后。,图4-20 8086/8088中断向量表,4.4.3 中断操作,例:类型号为03H的中断处理子程序放在2345:7890H开始的内存区域中,而03H中断对应的中断向量存放在0000:000CH处,所以,0段000CH、00

7、0DH、000EH、000FH这4个单元中的值分别为90H、78H、45H、23H。,4.4.3 中断操作,3. 硬件中断 8086/8088为外部设备提供了NMI和INTR引脚来送入中断请求信号。 NMI:不受IF的影响。中断优先级非常高。一般用来处理重大故障。掉电故障:电源系统通过NMI发出非屏蔽中断请求,CPU马上停止当前任务,立即转到非屏蔽中断处理程序,保护现场,启动备用电源。 INTR:当IF为1时,执行完当前指令后响应中断请求,IF的设置和清除可以通过指令和调试工具来完成。,4.4.3 中断操作,4. 可屏蔽中断的响应过程 当CPU在INTR引脚上接收到一个高电平的中断请求信号,并

8、且当IF=1时,CPU执行完当前指令之后,响应外部中断请求,往INTA引脚上发两个负脉冲,外设接到第二个负脉冲之后,立即通过数据线给CPU送中断类型码。,4.4.3 中断操作,CPU中断响应流程:1. 从数据总线读取中断类型 码,存入内部暂存器。2. 将标志寄存器压栈。3. IF和TF清零。避免被其他中断请求打断,避免单步方式执行中断处理子程序。4. 将断点压栈。5. 根据中断类型码查中断向量表,根据找到的中断向量载入CS和IP,转入相应的中断处理子程序。,4.4.3 中断操作,4.4.3 中断操作,5. 中断处理子程序的结构模式 中断处理子程序的开始必须通过一系列推入堆栈指令来进一步保护中断

9、时的现场,即保护CPU各寄存器的值。 (2) 设置中断允许标志IF来开放中断,以允许级别较高的中断请求进入。(STI)(3) 中断处理的具体内容是中断处理子程序的主要部分。 (4) 中断处理子程序的尾部则是一系列弹出堆栈指令,使得各寄存器恢复进入中断处理时的值。(恢复现场)(5) 最后是中断返回指令IRET,中断返回指令的执行会使堆栈中保存的断点值和标志值分别装入IP,CS和标志寄存器。,中断处理子程序在位置上也必须是固定装配的,而不是浮动的。装配的起始地址由中断向量表给出。,4.4.3 中断操作,6. 软件中断:利用一条指令来使CPU进入中断处理程序。 不需要执行中断响应总线周期,不需要读取

10、中断类型码,不受IF影响。若TF=1,则执行单步中断。 若有非屏蔽中断请求、可屏蔽中断请求(当IF=1时),则在当前指令执行完毕之后响应。,9.1 可编程中断控制器8259A,可用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断。8259A的基本功能: 一片8259A可以管理8级中断,可扩展至64级 每一级中断都可单独被允许响应或被屏蔽 在中断响应周期,可提供相应的中断向量号 8259A设计有多种工作方式,可通过编程选择,9.1.1 8259A芯片内部结构,图9-1 8259A内部结构流程图,9.1.1 8259A芯片内部结构,图9-2 8259A芯

11、片引脚信号,9.1.1 8259A芯片内部结构,1. 数据总线缓冲器 双向三态8位缓冲器,构成8259A和CPU之间的数据接口。2. 读/写控制电路 接收来自CPU的读/写控制命令和片选控制信息。用末尾地址A0来选择端口,往8259A写控制字,读8259A内部寄存器的内容。3. 级联缓冲/比较器 一片8259A可接收8级中断,从IR0IR7输入,中断超过8级时,允许多片8259A级联使用,构成主从关系。非缓冲状态:SP=1:主8259A ; SP=0:从8259A 。缓冲状态:EN=1:CPU写8259A;EN=0:允许8259A通过缓冲存储器输出。,9.1.1 8259A芯片内部结构,4.

12、中断请求寄存器 IRR 8位寄存器,保存由外部输入的8条中断请求信号IR0IR7。某一个IRi为1表示IRi引脚有中断请求;为0表示无请求。5. 中断服务寄存器 ISR 8位寄存器,记录正在处理中的中断请求。某一位为1表示中断正在服务中;为0表示没有被服务。6. 中断屏蔽寄存器 IMR 8位寄存器,保存对各级中断请求的屏蔽信息。某一位为1表示相应级中断被屏蔽(禁止);为0表示允许。7. 优先权判别器 PR 识别各个中断请求信号的优先级别,找出最高优先级别的中断请求,系统优先响应。,9.1.2 8259A芯片的工作方式,8259A工作示意图,9.1.2 8259A芯片的工作方式,8259A有两种

13、中断触发方式:边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号电平触发方式中断请求端出现的高电平是有效的中断请求信号在第1个INTA结束前,IRi必须保持高电平,9.1.2 8259A芯片的工作方式,图9-3 中断类型码形成,在中断响应周期的第2个INTA信号有效期间,8259A应该将当前被响应的中断的中断类型码n通过数据总线D7D0传送给CPU。,一片8259A引入的8级中断请求的中断类型码肯定是连续的。中断类型码由软件定义的D7D3决定。当D7D3=10001时,8级中断的类型码为88H8FH。,9.1.2 8259A芯片的工作方式,中断优先权管理是中断管理的核心问题,8

14、259A可以采用优先权级别固定分配和循环设置两种方式。 各中断源的优先级确定之后,一般的处理原则只允许高级中断打断低级中断,禁止低级打断高级和同级中断相互打断。中断优先权管理方式:1. 完全嵌套方式2. 自动循环方式3. 中断屏蔽方式,9.1.2 8259A芯片的工作方式,1. 完全嵌套方式(默认方式)8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、IR7中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,直到中断结束(ISR的Di位复位)在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允

15、许高级优先权中断的嵌套要求CPU每响应一次中断进入中断服务程序后,应该安排开中断指令(STI)将IF置1,否则其他高级中断无法进入。处理完,CPU应向8259A回送结束命令(EOI),将ISR相应位清零,标志着一级中断处理过程完全结束。,9.1.2 8259A芯片的工作方式,图9-4 8259A中断控制器8级中断嵌套过程,9.1.2 8259A芯片的工作方式,在完全嵌套方式下,可采用以下3种中断结束方式:普通EOI方式当任何一级中断服务程序结束时,只给8259A发送一个EOI命令时,8259A收到后,自动将ISR寄存器中级别最高的置1位清零。特殊EOI方式不但发送EOI,还发送当前结束的中断级

16、别,即指出了要清除哪个ISR位。自动EOI方式自动将ISR寄存器相应位清零,不用发送任何消息,简单。,9.1.2 8259A芯片的工作方式,2. 自动循环方式 优先级动态排序某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级,IR7,IR6,IR5,IR4,IR3,IR2,IR1,IR0,7,6,5,4,3,2,1,0,2,1,0,7,6,5,4,3,最低级,最高级,最高级,最低级,ISR内容,IR7,IR6,IR5,IR4,IR3,IR2,IR1,IR0,IR4的服务结束以前,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,IR4的服务结束以后

17、,ISRi,9.1.2 8259A芯片的工作方式,实现自动循环方式,可采用以下3种EOI循环方式:普通EOI循环方式当任何一级中断服务程序结束时,只给8259A发送EOI命令,8259A收到后,自动将ISR寄存器中级别最高的置1位清零,并赋予最低优先级,原来比它低一级的中断赋予最高级,其他类推。特殊EOI循环方式不但发送EOI,还可以根据用户的需要将最低优先级赋给指定的中断源,即指出了要清除哪个ISR位。表9-2自动EOI循环方式自动将ISR寄存器中相应位清零,并改变各级中断的优先级,不用发送任何消息,简单。,9.1.2 8259A芯片的工作方式,3. 中断屏蔽方式 CPU在任何时候都可以用清

18、除中断标志指令(CLI),将中断标志清零,从而禁止由INTR端引入的可屏蔽中断请求。 普通屏蔽方式:可屏蔽多级中断请求。将中断屏蔽器IMR的Di位置1,则对应的中断IRi被屏蔽,该中断请求不能从8259A送到CPU如果IMR的Di位置0,则允许IRi中断产生 特殊屏蔽方式当CPU正在处理某级中断时,仅仅对本级中断进行屏蔽,允许其他高级和低级中断请求进入系统。将IMR的Di位置1,对应的中断IRi被屏蔽的同时,使ISR的Di位置0,9.1.3 8259A芯片的级联使用,单片8259A可以支持8级中断,在多于8级中断的系统中,必须将多片8259A级联使用;级连时只能有一片8259A为主片,其余的均

19、为从片(最多8片从8259A);级联时,主8259A的三条级连线CAS0CAS2作为输出线,连至每个从8259A的CAS0CAS2;每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IRi;主8259A的INT线连至CPU的中断请求输入端;SP/EN在非缓冲方式下,规定该8259A是主片(SP1)还是从片(SP0),9.1.2 8259A芯片的级联使用,图9-5 8259A级联方式连接,9.1.3 8259A芯片的级联使用,9.1.3 8259A芯片的级联使用,特殊全嵌套方式 一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。 特殊全嵌套仅

20、用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。,D.,主8259A,IR0IR1IR2IR3IR4IR5IR6IR7,一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应,特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被从片封锁),C.,假定IR3发生中断,并获得服务,一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。,B.,特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。,A.,INT,E.,从8259A,INT,IR0IR1IR2IR3IR4IR5IR6

21、IR7,一般全嵌套方式与特殊全嵌套方式的区别,去CPU,9.1.4 8259A芯片的控制字及其工作方式,初始化编程8259A开始工作前,必须进行初始化编程给8259A写入预置命令字ICW( ICW1 ICW4) 中断操作编程 在8259A工作期间可以写入操作命令字OCW ( OCW1 OCW3)将选定的操作传送给8259A,使之按新的要求工作还可以读取8259A的信息,以便了解它的工作状态 8259只有一根地址线A0,所以每片8259有2个片内地址A0=0和A0=1,所有的命令都是通过访问这两个端口来实现的。,9.1.4 8259A芯片的控制字及其工作方式,1. 预置命令字初始化命令字ICW最

22、多有4个8259A在开始工作前必须写入必须按照ICW1ICW4顺序写入ICW1和ICW2是必须的ICW3在级联使用时需要设置ICW4在8086/8088-8259A配置 系统中需要设置,写ICW1,写ICW2,级连?,写ICW3,需ICW4?,写ICW4,N,N,Y,Y,8259的初始化流程如图,注意次序不可颠倒。,9.1.4 8259A芯片的控制字及其工作方式,(1)ICW1 初始化8259A必须从ICW1开始写ICW1意味着重新初始化8259A写入ICW1后,8259A的状态如下:清除ISR和IMR(全0);将中断优先级设成初始状态:IR0最高,IR7最低;设定为一般屏蔽方式;采用非自动中

23、断结束方式;状态读出逻辑预置为读IRR。,9.1.4 8259A芯片的控制字及其工作方式,图9-9 8259A ICW1格式,9.1.4 8259A芯片的控制字及其工作方式,(2)ICW2 定义中断类型码的高5位。低3位取决于当前的中断请求是由IR7IR0中哪一个引脚输入。由此可确定当前中断请求的中断类型码。,图9-10 8259A ICW2格式,ICW2=18H,中断类型码?,18H1FH,9.1.4 8259A芯片的控制字及其工作方式,(3)ICW3 只对级联方式有效,ID2ID0表示从8259A连接在主8259A的哪个IR端上。,图9-11 8259A ICW3格式,9.1.4 8259

24、A芯片的控制字及其工作方式,中断响应时,主片通过级连线CAS2CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2CAS0比较,二者一致的从片才可发送中断向量码。ICW3在定义的时候,必须与主从片的连接关系一致:例: 主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。,9.1.4 8259A芯片的控制字及其工作方式,(4)ICW4 对于8086/8088系统,是必须设置的预置命令字。,图9-11 8259A ICW4格式,0,初始化流程,奇地址,偶地址,9.1.4 8259A芯片的控制字及其工作方式,例:当8086系统中8259A单级使用,其端

25、口地址为80H和81H,可用如下的初始化程序段写入预置命令字。MOV AL,13H;定义ICW1OUT 80H,AL;MOV AL,18H;定义ICW2,中断类型码OUT 81H,AL;MOV AL,01H;定义ICW4OUT 81H,AL; 由ICW2可确定该8259A引入的8级中断的中断类型码为18H1FH。,9.1.4 8259A芯片的控制字及其工作方式,图9-13 8259A ICW控制字应用举例,9.1.4 8259A芯片的控制字及其工作方式,2. 操作命令字OCW1OCW3用于设置8259的工作状态在初始化后写入OCW1OCW3的写入顺序可任意写入地址要求:OCW1必须写入奇地址端

26、口(A0=1)OCW2,OCW3必须写入偶地址端口(A0=0),9.1.4 8259A芯片的控制字及其工作方式,(1)OCW1 用来实现中断屏蔽功能,OCW1的内容被直接置入中断屏蔽寄存器IMR中。,9.1.4 8259A芯片的控制字及其工作方式,(2)OCW2:定义中断结束方式。,图9-14 8259A OCW2格式,0 1,将最低优先级赋给IRi,9.1.4 8259A芯片的控制字及其工作方式,图9-15 8259A OCW3格式,(3) OCW3:设置对内部寄存器的读出命令设置中断查询方式设置和撤销特殊屏蔽方式,9.1.4 8259A芯片的控制字及其工作方式,P位置1后,表示向8259A

27、发出查询命令,查询当前是否有中断请求正在被处理,若有,则给出当前处理的最高优先级是哪一级。 CPU先写一个D2=1的OCW3,再对同一地址读入,即可得到如下状态字节: 1 x x x x 0 1 0 IR=1表示有中断请求,当前处理的最高级中断为IR2。,图9-16 8259A 中断状态字的格式,9.1.4 8259A芯片的控制字及其工作方式,CPU可读出IRR、ISR、IMR和查询字偶地址:由OCW3中RR和RIS位设定读取IRR或ISR,由OCW3中P位设定读取查询字(反映8259A是否有中断请求)奇地址时读取的都是IMR(随时),9.1.4 8259A芯片的控制字及其工作方式,只有两个地

28、址,如何区分?,9.1.4 8259A芯片的控制字及其工作方式,注意的几个问题:系统进入中断会自动使IF=0,在中断子程序中可以人为的加入STI(开中断)指令,使系统能够相应更高级的中断,形成中断嵌套每个中断处理子程序结束之前必须执行中断结束命令EOI,清除对应的ISn位,并执行中断返回指令(IRET),初始化,开中断,开中断,关中断,中断结束命令,中断返回,开中断,关中断,中断结束命令,中断返回,IR3请求中断,IR2中断处理程序,主程序,IR2请求中断,中断全嵌套方式的流程,清除IS2,清除IS3,IR3中断处理程序,9.1.4 8259A芯片的控制字及其工作方式,3. 8259A级联使用

29、的初始化程序举例 某系统中设置两片8259A实现中断控制,他们之间采用级联方式连接。从8259A的INT端和主8259A的IR3端相连。主8259A的IR0和IR5端上分别引入两个中断请求,从8259A的IR2和IR3端上也分别引入两个中断请求。,9.1.4 8259A芯片的控制字及其工作方式,主8259A引入的中断类型码分别为40H和45H,他们的中断服务程序在同一段中,其段基址为1000H,偏移地址分别为1050H和2060H从8259A的IR2和IR3的中断类型码为32H和33H,中断服务程序的段基址为2000H,偏移地址分别为5440H和3620H首先应将4个中断入口写入中断入口地址表

30、中,从:IR2:32H 2000H:5440HIR3:33H 2000H:3620H主:IR0:40H 1000H:1050HIR3:45H 1000H:2060H,主8259A的初始化:MOV AL, 11H ;定义ICW1,级联使用方式,边沿触发MOV DX, 0FFE8HOUT DX, ALMOV AL, 40H ;定义ICW2,中断类型码为40H47HMOV DX, 0FFE9HOUT定义OCW1, DX, ALMOV AL, 08H ;定义ICW3,IR3接从片OUT DX, AL;MOV AL, 11H ;定义ICW4,特殊完全嵌套,非自动EOI结束,OUT DX, AL非缓冲,由

31、SP=1确定为主8259AMOV AL, 0D6H ;定义OCW1,屏蔽IR0、IR3和IR5以外的中断源OUT DX, ALMOV AL, 20H ;定义OCW2,普通EOI结束方式MOV DX, 0FFE8HOUT DX, AL,主8259A的端口地址为FFE8H和FFE9H从8259A的端口地址为FFFAH和FFFBH,9.1.4 8259A芯片的控制字及其工作方式,从8259A的初始化MOV AL, 11H ;定义ICW1,级联使用方式,边沿触发方式MOV DX, 0FFFAHOUT DX, ALMOV AL, 30H ;定义ICW2,中断类型码为30H37HMOV DX, 0FFFBHOUT DX, ALMOV AL, 03 ;定义ICW3,接在主8259A的IR3OUT DX, ALMOV AL, 01H ;定义ICW4,特殊完全嵌套方式,非自动EOI结束,OUT DX, AL ;非缓冲方式,由SP=0确定为从8259AMOV AL, 0F3H ;定义OCW1,屏蔽IR2和IR3以外的其他中断源OUT DX, ALMOV AL, 20H ;定义OCW2,普通EOI结束方式MOV DX, 0FFFAHOUT DX, AL,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号