微处理器与微型计算机第6章-中断技术课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微处理器与微型计算机第6章-中断技术课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微处理器 微型计算机 中断 技术 课件
- 资源描述:
-
1、第6章 中断技术18259A的应用举例48086/8088 微机中断系统28259A可编程中断控制器3中断技术概述1 6.1 中断技术概述中断是中断是CPU与外设间进行信息交换的一种形式。与外设间进行信息交换的一种形式。该形式下,CPU无需完全服务于某个外设,效率高。当出现某些异常情况或某个外设有请求时,CPU暂停暂停正在执行的程序,转去转去执行某一特定的程序,执行完后再返回返回原来被终止的程序处继续执行。2(1)中断的常用术语1.中断中断指CPU正在执行一个程序的过程中,由于出现了某些异常情况或外设提出了某种请求,CPU暂停暂停正在执行的程序,转去转去处理异常情况或执行外设请求的特定程序,执
2、行完后再返回返回原来被终止的程序处继续执行。这个过程(三部曲)称为中断。2.主程序主程序未发生中断时,CPU正在执行的程序称为主程序。33.中断服务程序中断服务程序处理中断事件的程序段称为中断服务程序(Interrupt Service Routine,ISR)或中断子程序。不同的中断对应不同的ISR。4.中断断点中断断点中断发生时,主程序中被终止的当前指令的下一条指下一条指令的地址令的地址称为断点。CPU转去执行ISR时,断点被压入栈压入栈中进行保护,等ISR执行完毕,CPU从栈顶获得中断断点(出栈出栈),确保能返回到主程序处继续执行。45.中断源中断源引起中断的事件或设备。内部中断内部中断
3、:在CPU的内部产生。例:CPU执行程序时遇到的特殊情况,如:除法错误等。外部中断外部中断:在CPU的外部产生。例:外设提出的中断,如电源故障等。6.中断类型号中断类型号微机系统中有多个中断源。为便于区分,为每个中断源分配一个编号编号,即中断类型号。57.中断接口中断接口当中断源向CPU发中断请求时,需由硬件电路来进行管理管理,如:屏蔽某中断请求、接受某中断请求、中断优先级排队、中断嵌套和中断结束等。实现以上中断管理的逻辑电路逻辑电路称为中断接口。本章使用8259A可编程中断控制器对系统的中断进行管理。68.中断识别中断识别指CPU确定确定哪一个中断源发出中断请求的过程。目的目的:最终形成该中
4、断源所对应的中断服务程序的入口地址入口地址,实现程序的转移。中断识别的2种方法:查询中断查询中断:采用软件或硬件查询技术来确定发出中断请求的中断源。向量中断向量中断:由中断向量指示中断服务程序的入口地址。79.中断向量和中断向量表中断向量和中断向量表中断向量:指中断服务程序的入口地址入口地址。每个中断服务程序都有一个确定确定的入口地址。包含段基址段基址CS和偏移地址偏移地址IP,共占4个字节。中断向量表:将系统中所有的中断向量集中起来,按中断类型号从小到大的顺序存放在内存某区域。这个存储区域称为中断向量表。PC机中共有256个中断(0255),每个中断向量占4个字节,共占1KB的存储区域。用
5、000003FFH 的内存单元存储中断向量表。8(2)中断过程 从中断源请求请求中断到完成中断服务程序后返回返回主程序的过程,称为中断过程。包含4个阶段。1.中断源请求中断中断源请求中断外设发出中断请求时,中断接口电路一般应设置中断中断请求触发器请求触发器,保持外设的中断请求信号保持外设的中断请求信号,直到CPU响应该中断后才清除它。中断接口电路应设置中断屏蔽寄存器中断屏蔽寄存器,CPU可通过对其进行设置,使得某些中断源的中断请求不能提交到CPU。92.中断判优中断判优由于同一时刻可能会有多个中断源同时请求中断服务,因此接口电路需对这些中断源进行优先级判别优先级判别和优先级排队优先级排队。这个
6、过程称为中断判优。CPU按照优先级的高低循序来响应中断。103.中断响应中断响应收到中断请求后,若CPU满足响应条件,则进入中断响应周期。CPU响应中断的条件如下:CPU当前指令执行结束。没有更高级的中断请求在执行。CPU处于开中断状态(IF=1)。可用指令改变IF的状态:STI开中断;CLI关中断。中断响应周期需完成的操作(CPU硬件自动完成硬件自动完成)清除中断允许标志位IF和单步陷阱标志位TF,以免在响应过响应过程中程中被新的中断源中断,破坏了当前中断处理的现场。将标志寄存器FLGAS和中断断点(CS、IP)压栈保存。查找中断向量表,获得ISR的入口地址,执行ISR。114.中断服务中断
7、服务CPU转入中断服务程序后,需做以下几件事情:保护现场保护现场:ISR将要用到的寄存器压栈,以免其数据破坏。开中断开中断:以便在执行ISR时,能响应更高级的中断请求。中断处理中断处理:处理中断请求所要求的操作。关中断关中断:保证在恢复现场时不被新的中断打断。恢复现场恢复现场:在ISR结束前,执行出栈操作,恢复各寄存器的内容,以便主程序正确执行。开中断开中断:保证返回主程序后仍能响应中断。中断返回中断返回:ISR的最后一条指令为IRET,它将IP、CS和FLAGS的内容依次弹出,以便恢复到主程序的断点处。1213中断响应及处理过程示意图中断响应及处理过程示意图(3)中断管理 中断管理包括中断源
8、识别、优先级排队和中断嵌套。1.中断源识别中断源识别PC机内有多个中断源,CPU收到中断请求后,需识别是哪一个中断源发出了中断请求信号,以便执行相应的中断服务程序。中断源识别的两种方法:软件查询软件查询:CPU逐个查询各中断源的状态,从而确定是哪个设备发出了中断请求。硬件处理硬件处理:中断接口电路将要响应的中断类型号中断类型号送给CPU。142.中断的优先级排队中断的优先级排队当有多个中断源同时请求中断时,由于CPU在同一时在同一时刻只能响应并处理一个中断请求刻只能响应并处理一个中断请求,因此,需根据中断的性质及轻重缓急对多个中断源进行优先级排队。CPU先响应优先级高的中断请求。高优先级的中断
9、请求可中断低优先级的中断服务。优先级排队的方法:软件查询法硬件菊花链排队法可编程中断控制器排队法15n软件查询法软件查询法16软件查询法的编程实现有2种方法:屏蔽法、移位法。屏蔽法屏蔽法17IN AL,20H ;读取中断请求触发器的内容TEST AL,80H JNE A_ISP ;外设A有请求,则转入A的服务程序TEST AL,40H JNE B_ISP ;外设B有请求,则转入B的服务程序TEST AL,20HJNE C_ISP ;外设C有请求,则转入C的服务程序移位法移位法18IN AL,20HSHL AL,1JC A_ISP ;外设A有请求,则转至A的服务程序SHL AL,1JC B_IS
10、P ;外设B有请求,则转至B的服务程序SHL AL,1JC C_ISP ;外设C有请求,则转至C的服务程序软件查询法的优缺点:l 优点:实现简单,节省硬件。l 缺点:中断源较多时,查询程序较长中断源较多时,查询程序较长,由查询转入相应的中断服务程序入口需要的时间较长。查询的先后顺序决定了中断的优先级顺序查询的先后顺序决定了中断的优先级顺序:先被查询的中断,优先级最高。19n硬件菊花链法硬件菊花链法 在每个外设的接口上接一个逻辑电路接一个逻辑电路,这些电路构成一个链来实现中断应答信号的控制中断应答信号的控制,称为菊花链。20(a)菊花链(b)菊花链逻辑电路 菊花链工作原理l中断请求中断请求:设备
11、A、B、C通过接口发出中断请求:1有请求,0无请求。只要有一个设备发出请求,则 INTR=1。l中断响应中断响应:若CPU允许中断,则发INTA中断响应信号。该信号先送给外设A的菊花链电路。若A没有请求,则它输出的INTA仍为0,继续往下传。若A有中断请求,则经过或门时,由于其中断请求为1,故输出的INTA为1,使得后继的中断得不到响应。21特点:越特点:越靠近靠近CPU的外设,优先级越高。的外设,优先级越高。n可编程控制器排队法可编程控制器排队法l早期的PC多采用软件查询或菊花链法。l目前的PC一般采用专用的可编程控制器芯片来完成中断优先级的排队管理,如8259A。223.中断嵌套中断嵌套C
12、PU正在处理某个中断的过程中,若出现了级别更高的中断请求,则CPU停止执行级别低的ISR,而转去处理级别更高的中断。等高级别的中断处理完后,再返回原来的低级中断继续执行,依次类推,直到返回主程序。这种方式称为多重中断多重中断或中断嵌套中断嵌套。23内容概要248259A的应用举例48086/8088 微机中断系统28259A可编程中断控制器3PC 机中的中断应用5中断技术概述1l 中断的常用术语:9个基本概念l 中断过程:申请、判优、响应、服务l 中断管理:判优、优先级、嵌套(1)中断的类型8086/8088用8位二进制数表示一个中断类型号,可区分256个中断源。8086/8088中断系统的结
13、构25n外部中断外部中断 由CPU外的硬件产生,又称硬件中断硬件中断。有以下2种:NMI(不可屏蔽中断)(不可屏蔽中断)上升沿触发,不受中断允许标志位不受中断允许标志位IF的控制的控制。无论IF如何,只要NMI信号有效,CPU在当前指令结束后,立刻响应该中断。(Sti 和 Cli 指令无效)中断类型号为中断类型号为2,CPU无需发中断响应即可立即进入2号中断服务程序执行。在外部中断中,NMI的优先级最高的优先级最高,用于电源掉电、时钟错误等紧急情况,一般用户不能使用用户不能使用。26 INTR(可屏蔽中断)(可屏蔽中断)高电平触发,必须保持到当前指令结束。受中断允许标志位受中断允许标志位IF控
14、制控制。Sti 指令允许中断,Cli 指令禁止中断。中断类型号为中断类型号为 080FH 和和 070H077H。当中断允许时,CPU发出中断响应信号INTA,并从8259A获得中断源的中断类型码。中断响应的条件:有中断请求信号系统处于开中断状态27n内部中断内部中断 由CPU执行指令产生的中断,又称软件中断软件中断。除法错除法错当除数为0,或对带符号数进行除法运算时所得结果超出规定的范围,则CPU自动产生该中断。中断类型号为0。28 单步中断单步中断CPU每执行一条指令,就进入一次单步中断。其ISR的功能是显示显示出CPU内部各寄存器的内容。单步中断在调试程序调试程序时非常有用。受标志寄存器
15、TF标志位控制。TF=1时,CPU自动产生单步中断。中断类型号为1。29 断点中断断点中断 INT单字节中断指令,默认中断类型号为3。调试时可在程序关键处程序关键处设置断点。当程序执行到该指令处,转去执行一个断点中断,其功能是显示CPU内部各寄存器的内容,并给出一些提示信息。30 溢出溢出中断中断 INTO单字节中断指令。CPU执行该指令时,产生类型号为4的内部中断。该指令总是跟在带符号数加、减法运算指令之后在带符号数加、减法运算指令之后。若标志寄存器的OF=1,执行溢出中断,其中断服务程序给出出错信息;若OF=0(无溢出),也进入该中断,但只对标志位进行测试,即返回原程序。用户定义的软件中断
16、用户定义的软件中断双字节中断指令INT n,由用户定义,类型号为n。软件中断不可被屏蔽。CPU不发响应信号,中断控制器不提供中断类型号。31n内、外中断的优先级次序内、外中断的优先级次序8086/8088系统中,除单步中断外,所有内部中断的优先内部中断的优先级均高于外部中断级均高于外部中断。除单步中断外,所有内部中断都不能被屏蔽。32中断名中断名中断类型号中断类型号优先级优先级除法出错类型0高低INT n类型nINTO类型4NMI类型2INTR外设送入单步类型1(2)中断向量表8086/8088系统支持256个中断源,各个中断源用不同的中断类型号中断类型号标识,即:0255。每个中断源都有相应
17、的中断服务程序,每个中断服务程序都有不同的入口地址入口地址(又称中断向量又称中断向量)。每个入口地址由4个字节标识:低2个字节:存放中断入口的偏移地址(偏移地址(IP)。高2个字节:存放中断入口的段基址(段基址(CS)。l系统各个中断入口地址的集合形成中断向量表中断向量表。共占1KB空间,地址范围 00000H003FFH。3334由于0255号中断的入口地址依次连续排列连续排列,故:已知某中断的类型号为n,可算出其对应的中断服务程序入口地址在中断向量表中存储的位置。方法方法:类型号 n4=中断向量在中断向量表中的首地址,然后顺序取出4个字节内存单元的内容,低2个字节送入偏移地址IP,高2个字
18、节送入段地址CS,即:(IP)(4n+1,4n)。(CS)(4n+3,4n+2)。l获得了中断的入口地址,即可转入相应的中断服务程序执行中断处理过程。35【例5-1】已知类型号为15H的中断,其中断服务子程序存放在内存的5678H:0100H 5678H:0123H单元。画出该中断的中断向量在中断向量表中的位置和内容。解:解:l中断服务程序的入口地址(起始地址)为5678H:0100H,其中偏移地址IP的内容为0100H,段地址的内容为5678H。l已知中断类型号为15H,n 4 =15H 4=0054H,故 0054H 和 0055H单元存放偏移地址0100H。0056H 和 0057H单元
19、存放段地址 5678H。由此可画出中断向量在中断向量表中的位置和内容。3637(3)中断向量的设置与修改中断向量表建立中断类型号中断类型号与中断向量中断向量(即中断服务程序)之间的对应关系。中断类型号固定不变,但其对应的中断向量(即存储单元中存储的内容)可以修改修改和变化。(注:系统中的一些专用中断专用中断不允许修改)设置或修改中断向量前,要关闭中断,避免在设置或修改过程中被中断。设置设置中断向量的2种方法:直接写入法利用DOS功能调用38 直接写入法直接写入法 直接使用数据传送指令数据传送指令或串操作指令串操作指令把中断向量写入向量表对应的单元中。【例5-2】设中断类型号为n,对应的中断服务
20、程序名为P1,则设置中断向量时需将P1程序的偏移地址偏移地址放到内存0000段的4n+1、4n单元中;将其段地址段地址放到 4n+3、4n+2单元中。3940CLI;关中断MOVAX,0MOVDS,AX;中断向量表段基址段基址为0MOVBX,n*4;中断类型号为nMOVAX,OFFSET P1MOVDS:BX,AX;偏移地址放入4n,4n+1单元MOV AX,SEG P1MOV DS:BX+2,AX;段地址写入4n+2,4n+3单元STI;开中断【例5-3】某外设的中断服务程序名为P1,中断类型号为5。请使用直接写入法设置其中断向量。41CLI ;关中断MOVAX,0MOVDS,AX ;中断向
21、量表段基址段基址为0MOVAX,OFFSET P1MOV0014H,AX ;4*5=0014HMOV AX,SEG P1MOV 0016H,AX ;段地址写入0016H,0017H单元STI ;开中断 DOS 功能调用写入法功能调用写入法 使用INT 21H中断的25H号功能调用号功能调用,设置中断向量。功能号:AH=25H 入口参数:DS=中断服务程序入口地址的段基址段基址 DX=中断服务程序入口地址的偏移量偏移量 AL=中断类型号中断类型号42【例5-4】某外设的中断服务程序名为P1,中断类型号为5。请使用DOS功能调用法设置其中断向量。43PUSH DS ;原 DS 入栈MOVAX,SE
22、G P1 ;段基址存入DS中MOVDS,AXMOV AX,OFFSET P1MOV DX,AX ;偏移地址存入DX中MOV AL,5 ;中断类型号在AL中MOV AH,25H ;DOS调用功能号INT 21HPOP DS ;DS出栈中断向量的修改中断向量的修改 中断类型号不变,但是其指向的中断服务程序(入口地址)改变,即中断向量改变。修改中断向量的步骤:1.利用35H号功能,获取原中断向量获取原中断向量,并保存。2.利用25H号功能,设置新的中断向量设置新的中断向量。3.新的中断服务程序服务完毕,利用25H号功能恢复恢复原中断向量原中断向量。4435H号功能号功能读取中断向量读取中断向量 入口
23、参数:AH=35H,AL=中断号 出口参数:ES=中断服务程序入口地址的段基址段基址 BX=中断服务程序入口地址的偏移地址偏移地址25H号功能号功能设置新的中断向量设置新的中断向量 入口参数:AH=25H,AL=中断号 DS=中断服务程序入口地址的段基址 DX=中断服务程序入口地址的偏移地址 出口参数:无45【例5-5】修改类型号为n的中断向量,使得新中断服务程序入口地址的段基址为SEG_INTR,偏移地址为OFFSET_INTR。对应的程序段为:46MOVAH,35H ;获取获取原中断向量MOVAL,nINT 21H ;保存在 ES:BX中MOV OLD_OFF,BX ;保存保存原中断向量的
24、偏移量MOV BX,ESMOV OLD_SEG,BX ;保存原中断向量的段基址47MOVAH,25H ;设置设置新的中断向量MOVAL,nMOV DX,SEG_INTRMOV DS,DX;DS=段基址MOV DX,OFFSET_INTR;DX=偏移地址INT 21HMOVAH,25H ;恢复恢复原中断向量MOVAL,nMOV DX,OLD_SEGMOV DS,DX;DS=段基址MOV DX,OLD_OFF;DX=偏移地址INT 21H内容概要488259A的应用举例48086/8088 微机中断系统28259A可编程中断控制器3PC 机中的中断应用5中断技术概述1l 中断的类型:外部中断与内部
25、中断l 中断向量表:中断入口地址的排列l 中断向量表的设置与修改 6.3 8259A可编程中断控制器Intel 8259A是一种可编程中断控制器,可协助CPU对系统的中断进行管理管理。8259A的功能:接受和扩充外设的中断请求中断优先级排队提供中断类型号屏蔽或打开中断接受CPU命令或返回当前工作状态一片8259A可直接管理8级中断,通过级联可扩展至64级中断。通过对8259A进行编程,可设置多种工作方式,以满足不同中断系统的需要。49(1)8259A 的内部结构501.数据总线缓冲器数据总线缓冲器8位的双向三态缓冲器,用来连接8259A与系统的数据总线。8259A通过它与CPU进行命令、状态和
展开阅读全文