中断技术PPT课件

上传人:仙*** 文档编号:189956730 上传时间:2023-02-24 格式:PPT 页数:138 大小:3.88MB
返回 下载 相关 举报
中断技术PPT课件_第1页
第1页 / 共138页
中断技术PPT课件_第2页
第2页 / 共138页
中断技术PPT课件_第3页
第3页 / 共138页
点击查看更多>>
资源描述
浙江工业大学计算机学院浙江工业大学计算机学院1内容回顾内容回顾nDMA传输基本概念传输基本概念lDMA的传送过程、传送方式和操作类型。nDMA控制器控制器8237Al8237A的内部结构和外部引脚。l8237A的内部寄存器(10种)及其地址分配。l8237A的编程步骤和工作时序。nPC中的中的DMA应用应用lDMA系统的组成。l单片DMA系统和双片DMA系统。lDMA系统的应用实例。23第五章第五章 中断技术中断技术8259A的应用举例48086/8088 微机中断系统28259A可编程中断控制器3PC 机中的中断应用5中断技术概述1中断方式下,CPU无需完全服务于某个外设,效率高。当出现某些异常或某外设有请求时,CPU暂停暂停正在执行的程序,转去转去执行某一特定的程序,执行完后再返回返回原来的程序处继续执行。5.1 中断技术概述中断技术概述41.中断中断指CPU正在执行某程序的过程中,由于出现了某些异常或外设提出了某种请求,CPU暂停暂停当前程序,转去转去处理异常或外设请求的程序,执行完后再返回返回原来被终止的程序处继续执行。该过程称为中断。2.主程序主程序未发生中断时,CPU正在执行的程序称为主程序。5(1)中断的常用术语中断的常用术语3.中断服务程序中断服务程序 ISR处理中断事件的程序,又称中断子程序。不同的中断对应不同的ISR。4.断点断点中断时,主程序中被终止指令的下一条指令的地址下一条指令的地址。CPU转去执行ISR时,断点被压入栈压入栈中进行保护;ISR执行完毕后,CPU通过出栈出栈操作从栈顶获得中断断点,确保能返回到主程序处继续执行。65.中断源中断源引起中断的事件或设备。内部中断内部中断:在CPU的内部产生。例:CPU执行程序时遇到的特殊情况,如:除法错。外部中断外部中断:在CPU的外部产生。例:外设提出的中断,如电源故障。6.中断类型号中断类型号微机系统中有多个中断源。为便于区分,为每个中断源分配一个编号编号,即中断类型号。77.中断接口中断接口当中断源向CPU发中断请求时,需由一个电路来进行管理管理,如:接收中断请求、屏蔽/打开中断请求、中断优先级排队、中断嵌套和中断结束等。实现中断管理的逻辑电路逻辑电路称为中断接口。本章使用8259A可编程中断控制器对系统的中断进行管理。88.中断识别中断识别指CPU确定确定哪一个中断源发出中断请求的过程。目的目的:最终形成该中断源所对应的中断服务程序的入口地址入口地址,实现程序的转移。中断识别的2种方法:查询法查询法:采用软件或硬件查询技术来确定发出中断请求的中断源。硬件法硬件法:由可编程中断控制器来提供中断类型号。99.中断向量和中断向量表中断向量和中断向量表中断向量:指中断服务程序的入口地址入口地址。每个ISR都有一个确定确定的入口地址。入口地址=段基址段基址CS:偏移地址偏移地址IP,共4个字节。中断向量表:将系统中所有的中断向量集中起来将系统中所有的中断向量集中起来,按中断类型号从小到大的顺序按中断类型号从小到大的顺序存放在内存某区域。该存储区域称为中断向量表。PC机中共有256个中断(0255),每个中断向量占4个字节,共占1KB的存储区域。用 000003FFH 的内存单元存储中断向量表。1011 从中断源请求请求中断到完成ISR后返回返回主程序的过程,称为中断过程。包含4个阶段。1.中断源请求中断中断源请求中断外设发出中断请求时,中断接口电路需设置中断请中断请求触发器求触发器,保持保持外设的中断请求信号,直到CPU响应该中断后才清除它。中断接口电路应设置中断屏蔽寄存器中断屏蔽寄存器,CPU可通过对其进行设置,使得某些中断源的中断请求不能提交到CPU。12(2)中断过程中断过程2.中断判优中断判优由于同一时刻可能会有多个中断源同时请求中断服务,因此接口电路需对这些中断源进行优先级判别优先级判别和优先级排队优先级排队。这个过程称为中断判优。CPU按照优先级的高低顺序来响应中断。133.中断响应中断响应收到中断请求后,若CPU满足响应条件,则进入中断响应周期。CPU响应中断的条件条件:CPU当前指令执行结束。没有更高级的中断请求在执行。CPU处于开中断状态(IF=1)。可用指令改变IF的状态:STI开中断;CLI关中断。1415中断响应及处理过程示意图中断响应及处理过程示意图中断响应周期需完成的操作(CPU硬件自动完成硬件自动完成)清IF和TF单步陷阱标志,以免在响应过程中响应过程中被新的中断源中断,破坏了当前中断处理的现场。将标志寄存器FLGAS和中断断点(CS:IP)压栈保存。查找中断向量表,获得ISR的入口地址,转去执行ISR。4.中断服务中断服务CPU转入ISR后,需做以下几件事情:保护现场保护现场:ISR将要用到的寄存器压栈压栈,以免其数据破坏。开中断开中断:以便在执行ISR时,能响应更高级的中断请求。中断处理中断处理:处理中断请求所要求的操作。关中断关中断:保证在恢复现场时不被新的中断打断。恢复现场恢复现场:在ISR结束前,执行出栈出栈操作,恢复各寄存器的内容,以便主程序正确执行。开中断开中断:保证返回主程序后仍能响应中断。中断返回中断返回:ISR的最后一条指令为IRET,它将IP、CS和FLAGS的内容依次弹出,以便恢复到主程序的断点处。16 中断管理包括中断源识别中断源识别、优先级排队优先级排队和中断嵌套中断嵌套。1.中断源识别中断源识别PC机内有多个中断源,CPU收到中断请求后,需识别是哪一个中断源发出了中断请求信号,以便执行相应的中断服务程序。中断源识别的两种方法:软件查询软件查询:CPU逐个查询各中断源的状态,从而确定是哪个设备发出了中断请求。硬件处理硬件处理:中断接口电路接口电路将要响应的中断类型号中断类型号送给CPU。17(3)中断管理中断管理2.中断的优先级排队中断的优先级排队当有多个中断源同时请求中断时,由于CPU在同一时在同一时刻只能响应并处理一个中断请求刻只能响应并处理一个中断请求,因此,需根据中断的性质及轻重缓急对中断源进行优先级排队。CPU先响应优先级高的中断请求。高优先级的中断请求可中断低优先级的中断服务。优先级排队的方法:软件查询法硬件菊花链排队法可编程中断控制器排队法18n软件查询法软件查询法19软件查询法的实现:屏蔽法屏蔽法20IN 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的服务程序移位法移位法21IN AL,20HSHL AL,1JC A_ISP ;外设A有请求,则转至A的服务程序SHL AL,1JC B_ISP ;外设B有请求,则转至B的服务程序SHL AL,1JC C_ISP ;外设C有请求,则转至C的服务程序软件查询法的优缺点:l 优点:实现简单,节省硬件。l 缺点:中断源较多时,查询程序较长中断源较多时,查询程序较长,由查询转入相应的中断服务程序入口需要的时间较长。查询的先后顺序决定了中断的优先级顺序查询的先后顺序决定了中断的优先级顺序:先被查询的中断,优先级最高。22n硬件菊花链法硬件菊花链法 在每个外设的接口上接一个逻辑电路接一个逻辑电路,这些电路构成一个链来实现中断应答信号的控制中断应答信号的控制,称为菊花链。23(a)菊花链(b)菊花链逻辑电路 菊花链工作原理l中断请求中断请求:设备A、B、C通过接口发出中断请求:1有请求,0无请求。只要有一个设备发出请求,则 INTR=1。l中断响应中断响应:若CPU允许中断,则发INTA中断响应信号。该信号先送给外设A的菊花链电路。若A没有请求,则它输出的INTA仍为0,继续往下传。若A有中断请求,则经过或门时,由于其中断请求为1,故输出的INTA为1,使得后继的中断得不到响应。24特点:越特点:越靠近靠近CPU的外设,优先级越高。的外设,优先级越高。n可编程控制器排队法可编程控制器排队法l早期的PC多采用软件查询或菊花链法。l目前的PC一般采用专用的可编程控制器芯片来完成中断优先级的排队管理,如8259A。253.中断嵌套中断嵌套CPU正在处理某个中断的过程中,若出现了更高级的中断请求,则CPU停止执行级别低的ISR,而转去处理级别更高的中断。等高级别的中断处理完后,再返回原来的低级中断继续执行,依次类推,直到返回主程序。这种方式称为多重中断多重中断或中断嵌套中断嵌套。2627内容概要内容概要8259A的应用举例48086/8088 微机中断系统28259A可编程中断控制器3PC 机中的中断应用5中断技术概述1l 中断的常用术语:9个基本概念l 中断过程:申请、判优、响应、服务l 中断管理:判优、优先级、嵌套l8086/8088用8位位二进制数表示一个中断类型号中断类型号,可区分256个中断源。l8086/8088中断系统的结构28(1)中断的类型中断的类型n外部中断外部中断 由CPU外的硬件产生,又称硬件中断硬件中断。有以下2种:NMI(不可屏蔽中断)(不可屏蔽中断)触发,不受不受IF标志位控制标志位控制。只要有NMI,CPU在当前指令结束后,立刻响应该中断。中断类型号为中断类型号为2,CPU无需发中断应答无需发中断应答即可立即执行2号中断的ISR。外部中断中,NMI的优先级最高的优先级最高,用于电源掉电、时钟错误等紧急情况,一般用户不能使用用户不能使用。29 INTR(可屏蔽中断)(可屏蔽中断)高电平触发,必须保持到当前指令结束。受受IF标志位控制标志位控制。STI:允许中断;CLI:禁止中断。中断类型号为中断类型号为 080FH 和和 070H077H。当中断允许时,CPU发出中断应答发出中断应答信号INTA,并从8259A获得中断源的中断类型码。中断响应的条件:有中断请求系统处于开中断状态(IF=1)30n内部中断内部中断 由CPU执行指令产生的中断,又称软件中断软件中断。除法错除法错当除数为0,或对带符号数进行除法运算时所得结果超出规定的范围,则CPU自动产生该中断。中断类型号为类型号为0。31 单步中断单步中断调试程序调试程序时用。CPU每执行一条指令,就进入一次中断。功能:显示显示出CPU内部各寄存器的内容。受TF标志位控制。TF=1时,时,CPU自动产生单步中断自动产生单步中断。中断类型号为1。32 断点中断断点中断 INT单字节中断指令,类型号为3。调试时可在程序关键处程序关键处设置断点。当程序执行到该指令处,转去执行一个断点中断。功能:显示显示CPU内部各寄存器的内容,并给出一些提示信息。33 溢出溢出中断中断 INTO单字节中断指令。类型号为4。该指令常跟在带符号数加、减法运算指令之后在带符号数加、减法运算指令之后。若标志寄存器的OF=1,则执行溢出中断,其中断服务程序给出出错信息出错信息。用户定义的软件中断用户定义的软件中断双字节中断指令INT n,由用户定义,类型号为n。不可被屏蔽不可被屏蔽。CPU不发响应不发响应信号,中断控制器不提供不提供中断类型号中断类型号。34n内、外中断的优先级次序内、外中断的优先级次序8086/8088系统中,除单步中断外,所有内部中断的内部中断的优先级均高于外部中断优先级均高于外部中断。除单步中断外,所有内部中断都不能被屏蔽。35中断名中断名中断类型号中断类型号优先级优先级除法出错类型0高低INT n类型nINTO类型4NMI类型2INTR外设送入单步类型1l8086/8088系统支持256个中断源,各个中断源用不同的中断类型号中断类型号标识,即:0255。l每个中断源都有相应的ISR,每个ISR都有不同的入口入口地址地址(又称中断向量又称中断向量)。l每个入口地址由4个字节标识:低2个字节:存放中断入口的偏移地址(偏移地址(IP)。高2个字节:存放中断入口的段基址(段基址(CS)。l系统各个中断入口地址的集合形成中断向量表中断向量表。共占1KB空间,地址范围 0000H03FFH(DS=0)。36(2)中断向量表中断向量表37l由于0255号中断的入口地址依次连续排列连续排列,故:已知某中断的类型号为n,则其对应的 ISR入口地址在中断向量表中的存储位置为4n。l依次从4n处取出4个字节的内容,低2个字节送入偏移地址IP,高2个字节送入段地址CS,即:(IP)(4n+1,4n)。(CS)(4n+3,4n+2)。l获得了中断的入口地址,即可转入相应的 ISR 执行中断处理过程。38【例5-1】已知类型号为15H的中断,其 ISR 存放在内存的5678H:0100H 5678H:0123H单元。画出该中断的中断向量在中断向量表中的位置和内容。解:解:lISR 的入口地址为 5678H:0100H,其中IP=0100H,CS=为5678H。l已知中断类型号n=15H,n4=15H4=0054H,故 0054H 和 0055H单元存放偏移地址0100H。0056H 和 0057H单元存放段地址 5678H。由此可画出中断向量在中断向量表中的位置和内容。3940l中断向量表建立中断类型号中断类型号与中断向量中断向量间的关系。l中断类型号固定不变,但其对应的中断向量(即存储的内容)可以修改修改和变化。(系统中的专用中断专用中断不允许修改)l设置或修改中断向量前,要关闭中断关闭中断,避免在设置或修改过程中被中断。l设置设置中断向量的2种方法:直接写入法利用DOS功能调用41(3)中断向量的设置与修改中断向量的设置与修改 直接写入法直接写入法 直接使用MOV指令指令把中断向量写入向量表对应的单元。方法:方法:设中断类型号为n,对应的中断服务程序名为P1,则将P1程序的偏移地址偏移地址放到内存0000数据段数据段的4n+1、4n单元中;将其段地址段地址放到 4n+3、4n+2单元中。4243CLI;关中断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-2】某外设的中断服务程序名为P1,中断类型号为5。请使用直接写入法设置其中断向量。44CLI ;关中断MOVAX,0MOVDS,AX ;中断向量表段基址段基址为0MOVAX,OFFSET P1MOVDS:0014H,AX;4*5=0014HMOV AX,SEG P1MOV DS:0016H,AX;段地址写入0016H,0017HSTI ;开中断 DOS 功能调用写入法功能调用写入法 使用INT 21H中断的25H号功能调用号功能调用,设置中断向量。功能号:AH=25H 入口参数:DS=中断服务程序入口地址的段基址段基址 DX=中断服务程序入口地址的偏移量偏移量 AL=中断类型号中断类型号45【例5-3】某外设的中断服务程序名为P1,中断类型号为5。请使用DOS功能调用法设置其中断向量。46PUSH DS ;原 DS 入栈MOVAX,SEG 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号功能恢复恢复原中断向量原中断向量。4735H号功能号功能读取中断向量读取中断向量 入口参数:AH=35H,AL=中断号 出口参数:ES=中断服务程序入口地址的段基址段基址 BX=中断服务程序入口地址的偏移地址偏移地址25H号功能号功能设置新的中断向量设置新的中断向量 入口参数:AH=25H,AL=中断号 DS=中断服务程序入口地址的段基址 DX=中断服务程序入口地址的偏移地址 出口参数:无48【例5-4】修改类型号为n的中断向量,使得新中断服务程序入口地址的段基址为SEG_INTR,偏移地址为OFFSET_INTR。对应的程序段为:49MOVAH,35H ;获取获取原中断向量MOVAL,nINT 21H ;保存在 ES:BX中MOV OLD_OFF,BX ;保存保存原中断向量的偏移量MOV BX,ESMOV OLD_SEG,BX ;保存原中断向量的段基址50MOVAH,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 21H51内容概要内容概要8259A的应用举例48086/8088 微机中断系统28259A可编程中断控制器3PC 机中的中断应用5中断技术概述1l 中断的类型:外部中断与内部中断l 中断向量表:中断入口地址的排列l 中断向量表的设置与修改lIntel 8259A是一种可编程中断控制器,可协助CPU进行中断管理管理。其功能:接受和扩充外设的中断请求中断优先级排队提供中断类型号屏蔽或打开中断接受CPU命令或返回当前工作状态l一片8259A可直接管理8级中断,通过级联可扩展至64级中断。l通过对8259A进行编程,可设置多种工作方式,以满足不同中断系统的需要。52 5.3 8259A可编程中断控制器可编程中断控制器53(1)8259A 的内部结构的内部结构1.数据总线缓冲器数据总线缓冲器8位的双向三态缓冲器,连接8259A与系统数据总线。用于在CPU与8259A间传送数据、命令和状态信息。2.读读/写控制逻辑写控制逻辑接收CPU命令,完成对8259A内部端口的读写操作。具体操作内容由CS、RD、WR 和 A0 信号来决定。543.级联缓冲级联缓冲/比较器比较器CAS0 CAS2 用于多块8259A的级联。4.中断请求寄存器中断请求寄存器(IRR)8位寄存器,通过引脚 IR0 IR7 与8个中断源相连。若IRi=1,表明对应的中断源有中断请求,则 IRR寄存器相应的第 i 位置1。5.中断屏蔽寄存器中断屏蔽寄存器(IMR)8位寄存器,第 i 位为1,表示屏蔽 IRi 的请求。其值可通过软件设置或改变。556.中断优先权判别电路中断优先权判别电路 PR对已进入IRR且未被IMR屏蔽的中断请求进行优先权判别,确定优先级最高的中断,向CPU发送中断请求信号INT。若8259A正在为某一中断服务时,又出现了新的中断请求,则PR判断新的中断请求新的中断请求优先级是否更高。若是,则进入中断嵌套中断嵌套。567.中断服务寄存器中断服务寄存器(ISR)8位,用来记录CPU当前正在为哪些中断源服务。当CPU响应响应 IRi 请求时,请求时,ISR中相应的位置中相应的位置1。当ISR中有多个1时,表明CPU处于 中断嵌套 中。当某个中断处理完毕,中断处理完毕,ISR相应的位复位相应的位复位。578.控制逻辑控制逻辑作用:根据IRR、IMR和PR的状态,通过INT信号向CPU发送中断请求。接受CPU的中断响应信号INTA,置置ISR相应的位,相应的位,且使且使 IRR相应的位清相应的位清0,避免该中断源的一次请求产生多次中断。内部包含7个寄存器:ICW1 ICW4 存放初始化命令字,用来设置8259A的工作方式和工作条件工作方式和工作条件等。OCW1 OCW3 存放操作命令字,用来对中断处理过程进行动态控制动态控制。58几个缩写字母的含义几个缩写字母的含义IRR:中断请求寄存器(Interrupt Request Register)IMR:中断屏蔽寄存器(Interrupt Mask Register)ISR:中断服务寄存器(In Service Register)PR:优先级裁决器(Priority Resolver)ICW:初始化命令字(Initialization Command Word)OCW:操作命令字(Operation Command Word)5960(2)8259A 外部引脚外部引脚61lD7 D0:双向三态数据线,与系统数据总线相连,在8259A与CPU间传送数据、命令和状态信息。lA0:选择8259A内寄存器的端口地址。2种端口地址:A0=0的端口为偶端口偶端口,A0=1的端口为奇端口奇端口。lWR、RD、CS:写、读、片选信号。lIR7 IR0:中断请求信号,高电平或上升沿有效。lINT:中断请求信号,高有效。向CPU发中断请求。lINTA:中断响应信号,为2个负脉冲。lCAS2 CAS0:级联信号线,双向。主片8259A的 CAS2 CAS0 为输出。从片8259A的 CAS2 CAS0 为输入。lSP/EN:主从片设定/允许缓冲信号,双向双功能。缓冲方式下,为输出信号,EN信号控制缓冲器信号控制缓冲器。非缓冲方式下,作为输入信号,表示8259A是主片主片(SP=1)还是从片从片(SP=0)。621.8259A 的工作过程的工作过程 单片8259A工作时,每次中断处理过程如下:当 IR7 IR0 上有中断请求,则 IRR 相应的位置1。对于已进入IRR且未被IMR屏蔽的中断请求,PR电路进行优先级判定,得到最高级的中断请求。控制逻辑接收中断请求,向CPU发 INT 信号。若CPU允许中断,则在当前指令结束后连续发出2个中断应答信号INTA,进行中断响应。每个信号持续2个时钟周期。63(3)8259A 工作方式工作方式CPU发第一个 INTA 时,输出总线锁定信号 LOCK,防止其它处理器或DMA控制器占用总线。8259A收到第一个负脉冲后,将优先级最高的中断ISR相相应位置应位置1,同时使,同时使IRR相应位清相应位清0。64CPU发第二个 INTA 时,撤销总线锁存信号 LOCK,地址允许信号 ALE 无效,允许数据线工作。8259A收到第二个负脉冲后,将相应中断的类型号中断的类型号送到数据线上。CPU读取中断类型号,查找中断向量表查找中断向量表得到中断向量,转而进入中断服务程序。若系统为自动结束中断方式自动结束中断方式(AEOI),则8259A会在第2个脉冲结束时,自动自动将 ISR的相应位复位;若为非自动结束中断方式(EOI),则 ISR相应位的“1”一直保持,直到CPU发EOI(中断结束)命令时才将其复位。652.8259A 的级联方式的级联方式单片8259A最多可管理8级中断。当中断源多于8个时,需将多个8259A芯片级联构成主从模式主从模式。系统最多支持8个8259A芯片级联,即:最多可支持64个中断源。每个从片的IR7 IR0可直接与8个中断源相连,经过优先级判优后主片主片发送INT信号。主片对所有从片发来的INT进行判优后,最终向CPU发INT信号。6667SP/EN 引脚用于区分8259A是主片还是从片。高电平为主片,低电平为从片。主/从片通过CAS2CAS0 互连。主片的CAS2CAS0为输出,从片的CAS2CAS0 为输入。CPU发出第一个第一个INTA时,主片使ISR相应的位置1,使IRR的相应位清0;并通过CAS2CAS0 输出一组从从片片的编的编码码 ID2ID0。从片收到该编码后,与自身 ICW3 中的D2D0 编码进行比比较较。若相同,则在第二个第二个INTA信号将从片的中断类型号中断类型号送到数据总线。683.中断触发方式中断触发方式电平触发电平触发:IRi 端出现高电平时,有中断请求。边沿触发边沿触发:IRi 端出现上升沿时,有中断请求。69注意注意:当该中断请求得到响应后(ISR相应位置1),必须及时撤销其高电平,否则可能会再次触发中断。优点优点:IRi 端可一直保持高电平,而不会被误判为又一次中断请求。4.中断屏蔽方式中断屏蔽方式普通屏蔽方式普通屏蔽方式中断屏蔽寄存器IMR的某位为1,则禁止相应的中断请求;为0,则允许。这种方式下,由于优先权判别器PR的作用(查查ISR的的状态状态),只有级别高的中断级别高的中断源才允许中断。若CPU不希望某些中断源申请中断,或在处理某中断时不希望比该中断级别低的中断源申请中断,可采用该方法。70特殊屏蔽方式特殊屏蔽方式在处理某中断时,若想开放级别较低的中断请求级别较低的中断请求,则:(1)将IMR中本级中断的相应位置1,屏蔽本级中断屏蔽本级中断,为开放级别较低的中断提供可能。(2)将本级中断本级中断 ISR 的相的相应位复位应位复位,才能真正开放级别较低的中断。71与普通屏蔽的区别区别:特殊屏蔽方式除了在IMR中屏蔽本级中断源外,还需使当前ISR的相应位复位。5.中断优先权管理方式中断优先权管理方式 固定优先级固定优先级-IR0 优先级最高,IR7 最低。循环优先级循环优先级-某中断被服务后,其优先权自动降为最低,而相邻中断源的优先级升为最高。n优先权优先权自动自动循环方式循环方式初始时,IR0 优先级最高,IR7 优先级最低。n优先权优先权特殊特殊循环方式循环方式用户编程来指定指定初始时哪个中断源的优先级最低。例:初始时规定 IR5 最低,则优先级顺序为:IR6 IR7 IR0 IR4 IR5。726.中断嵌套方式中断嵌套方式普通全嵌套方式普通全嵌套方式简称全嵌套方式全嵌套方式,是最基本、最常用的方式。某中断被响应时,只有更高级更高级的中断请求才会响应。特殊全嵌套方式特殊全嵌套方式用于级联级联场合。可响应高级别高级别和同级别同级别中断。级联时从片的 INT端连接主片 IRi 端。从片上不同级别的中断请求,主片视之为同一级别。普通全嵌套无法响应第二次高级别中断。而特殊全嵌套方式可正常响应。73l单片8259A时,通常采用普通全嵌套方式。l多片级联时,从片采用普通全嵌套方式,而主片必主片必须采用特殊全嵌套须采用特殊全嵌套。7.中断结束方式中断结束方式当某个中断请求得到响应时,其ISR的相应位置1。当其中断服务结束时,其ISR中的相应位必须清0。中断结束方式是指使指使ISR相应位复位的方式相应位复位的方式。8259A有2种中断结束方式自动结束方式(AEOI)非自动结束方式(EOI)74自动结束方式(自动结束方式(AEOI)ISR相应位的复位由8259A硬件自动完成。当CPU响应某中断时,第二个第二个INTA信号信号的下降沿下降沿 自动将ISR相应位的复位。该方式只适用于单片8259A、无中断嵌套的场合。75非自动结束方式(非自动结束方式(EOI)该方式下,由CPU发发EOI命令命令来使ISR的相应位复位。n普通中断结束方式普通中断结束方式CPU向8259A发送EOI命令,使当前 ISR 中级别最高级别最高的位复位。n特殊中断结束方式特殊中断结束方式CPU向8259A发送EOI命令,该命令字指定指定了要结束哪一级中断源,从而使ISR相应的位复位。768.连接系统总线的方式连接系统总线的方式缓冲方式缓冲方式多片多片8259A级联时,8259A 通过总线驱动器总线驱动器与数据总线相连。此时8259A的 SP/EN 端输出一个低电平(EN=0)作为总线驱动器的总线驱动器的启动信号启动信号。即:SP/EN 信号与总线驱动器的允许端相连。7778输出输出信号信号缓冲器缓冲器非缓冲方式非缓冲方式当系统中只有单片或少数几片单片或少数几片 8259A 时,8259A 可直接直接与数据总线相连。此时,8259A的SP/EN端作为输入信号输入信号。单片8259A时,SP=1。多片8259A 级联时,主片的 SP=1,从片的 SP=0。798081(4)8259A 编程编程CPU向8259A发送的命令字分为以下2种:l初始化命令字初始化命令字 ICW包含ICW1 ICW4 四个命令字,在系统系统启动时启动时由初始化程序设置。一旦设定后,在系统工作过程中一般不再改变不再改变。l操作命令字操作命令字 OCW包含OCW1OCW3,由应用程序应用程序设定,用来对中断处理过程进行动态控制动态控制,如:中断屏蔽、中断结束、优先权设定等。可多次设置多次设置。828259A 只有一根输入地址线只有一根输入地址线 A0,如何区分,如何区分7个寄存器?个寄存器?ICW1:20H A0=0,D4=1ICW2:21H A0=1ICW3:21H A0=1,ICW1中的 SNGL(D1)=0ICW4:21H A0=1,ICW1中的 IC4(D0)=1OCW1:21H A0=1OCW2:20H A0=0,D3D4=00OCW3:20H A0=0,D3D4=1083采用读写分时法读写分时法、顺序法顺序法及特征位法特征位法解决端口冲突。1.ICW1:设置触发方式、是否级联和需:设置触发方式、是否级联和需 ICW4等。等。84(一)初始化命令字(一)初始化命令字 ICW未用未用表表 ICW1 要要写入偶端口写入偶端口特征位特征位1LTIMADISNGLIC4D7D6D5D4D3D2D1D00A0IRi中断触发方式中断触发方式1:电平触发:电平触发0:边沿触发:边沿触发8086/8088中不用中不用是否级联是否级联1:单片:单片0:级联:级联1:需要:需要ICW40:不需要:不需要85lD0(ICW4)的设置:8086/8088系统必须必须设置 D0=1,即:需要 ICW4。l写入ICW1后,8259A内部有一个初始化过程初始化过程,相当于Reset 功能,其作用作用:指示8259A顺序逻辑复位,即:它准备按 ICW2、ICW3、ICW4 的顺序接受其余初始化命令字。清除 IMR、ISR。指定优先级方式为普通全嵌套方式、普通屏蔽方式、非自动中断结束方式。86【例5-5】若 8259A 采用电平触发,单片使用,需要 ICW4,请写出 ICW1 的初始化程序段。1LTIMADISNGLIC4D7D6D5D4D3D2D1D00A0MOVAL,1BH;ICW1=0001 1011OUT20H,AL;偶端口2.ICW2:设置类型码。:设置类型码。87高高5位由用户编程设定位由用户编程设定表表 ICW2 要要写入奇端口写入奇端口T7T6T5T4T3D7D6D5D4D3D2D1D01A0低低3位由位由 IR7 IR0自动生成自动生成l中断类型号=ICW2高5位+低3位(IRi 的编码)。lICW2 紧随 ICW1 之后。CPU响应中断发第2个INTA时,8259A 将ICW2的内容(中断类型号)送到数据总线。88【例5-6】PC机中断系统的中断类型号范围为080FH,某中断请求线连接到 8259A 的 IR5 上,请写出设置 ICW2 的程序段。MOVAL,08H;高5位OUT21H,AL;奇端口 CPU响应硬盘中断后,8259A把IR5的编码101作为低3位,与ICW2中设置的高5位合一起,构成完整的8位中断类型号0DH,经数据总线提供给CPU。T7T6T5T4T3D7D6D5D4D3D2D1D01A03.ICW3:设置级联方式。:设置级联方式。l仅当级联模式下(即 ICW1 的 SNGL=0 时)才需设置ICW3。这时需分别对主片主片和从片从片进行设置。l主片主片ICW3:说明主片 IR7 IR0 的哪些引脚上连有从片。89S7S6S5S4S3S2S1S0D7D6D5D4D3D2D1D01A01:IRi 上接有从片上接有从片0:IRi 上未接从片上未接从片表表 ICW3 要要写入奇端口写入奇端口l从片从片ICW3:ID2ID0的编码值说明该从片的INT信号信号连接至主片 IR7 IR0 的哪个引脚。90ID2ID1ID0D7D6D5D4D3D2D1D01A0任意任意表表 ICW3 要要写入奇端口写入奇端口000:连至主片的:连至主片的 IR0 111:连至主片的:连至主片的 IR7例:从片的 INT 连接至主片的 IR5,则 ID2ID0=101。4.ICW4:设置缓冲方式、中断结束方式等。:设置缓冲方式、中断结束方式等。当 ICW1 的 D0=1时,需设置ICW4。91000SFNMBUFM/SAEOIuPMD7D6D5D4D3D2D1D01A0表表 ICW4 要要写入奇端口写入奇端口1:缓冲方式:缓冲方式0:非缓冲方式:非缓冲方式1:特殊全嵌套:特殊全嵌套0:普通全嵌套:普通全嵌套1:主片:主片0:从片:从片1:AEOI0:EOI1:8086/80880:8080/8085特征位特征位仅当仅当 buf=1时时 M/S位才起作用位才起作用92【例5-7】PC机中,单片8259A与系统总线之间采用缓冲器连接,非自动结束方式,正常完全嵌套。请写出设置 ICW4 的程序段。MOVAL,0DH;0000 1101BOUT21H,AL;奇端口000SFNMBUFM/SAEOIuPMD7D6D5D4D3D2D1D01A0l要使中断系统正常工作,CPU必须对系统中的每片每片8259A 进行初始化编程,即:顺序顺序将ICW1 ICW4 写入各个8259A芯片。单片8259A时,需依次写入ICW1、ICW2 和 ICW4。多片8259A时,需依次写入ICW1、ICW2、ICW3 和 ICW4。93(二)(二)8259A 初始化编程初始化编程9495【例5-8】IBM PC/XT机中,仅用单片单片8259A,中断请求采用边沿触发,中断类型号为08H 0FH,普通全嵌套,缓冲方式,非自动中断结束方式。8259A的端口地址为20H和21H。请按上述要求对8259A进行初始化编程。MOV AL,00010011B ;ICW1:边沿触发,单片,需ICW4OUT 20H,ALMOV AL,00001000B ;ICW2:08H0FH 的高5位OUT 21H,ALMOV AL,00001101B ;ICW4:全嵌套,缓冲,EOI方式OUT 21H,AL96【例5-9】IBM PC/AT机中,使用两片两片8259A构成主从中断系统。从片的 INT 与主片的IRQ2相连。主片的中断类型号为08H 0FH,端口地址为20H和21H。从片的中断类型号为70H 77H,端口地址为0A0H和 0A1H。主片、从片均采用边沿触发、缓冲、非自动中断结束方式。请按照上述要求对8259A进行初始化编程。97主片编程:MOV AL,00010001B ;ICW1:边沿触发、级联、需 ICW4OUT 20H,ALMOV AL,00001000B ;ICW2:08H0FH 的高5位OUT 21H,ALMOV AL,00000100B ;ICW3:主片 IRQ2 接有从片OUT 21H,ALMOV AL,00011101B ;ICW4:特殊全嵌套、缓冲方式、OUT 21H,AL ;主片、EOI方式98从片编程:MOV AL,00010001B ;ICW1:边沿触发、级联、需 ICW4OUT 0A0H,ALMOV AL,01110000B ;ICW2:70H77H 的高5位OUT 0A1H,ALMOV AL,00000010B ;ICW3:从片接主片的 IRQ2OUT 0A1H,ALMOV AL,00001001B ;ICW4:普通全嵌套、缓冲方式、OUT 0A1H,AL ;从片、EOI方式l对8259A进行初始化后(写入初始化命令字),8259A进入工作状态,可接收 IRi 的中断请求,并按系统设定的方式来响应和管理中断。l在8259A工作期间,可通过写入操作命令字OCW,对其中断管理方式进行动态设置动态设置和修改。l操作命令字有3个:OCW1 OCW3。99(三)(三)操作命令字操作命令字 OCW1.OCW1:设置中断屏蔽字:设置中断屏蔽字l直接对 IMR 相应的位进行设置。100M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D01A01:屏蔽中断:屏蔽中断0:允许中断:允许中断OCW1 要写要写入奇端口入奇端口101【例5-10】已知8259A的端口地址为20H、21H。若要屏蔽IR5、IR4和IR1引脚上的中断请求,而不改变不改变其余中断源原来的屏蔽情况。试给出对应的程序段。IN AL,21H ;读取 IMR 的当前值OR AL,0011 0010B ;IRQ5、IRQ4、IRQ1OUT 21H,AL ;写入 OCW12.OCW2:设置:设置/修改优先级模式、发送修改优先级模式、发送EOI命令等命令等102指出优先级最低的指出优先级最低的 IRi,或要清除的,或要清除的 ISR 的相应位。的相应位。OCW2 要写要写入偶端口入偶端口特征位特征位RSLEOI00L2L1L0D7D6D5D4D3D2D1D00A00:固定优先级:固定优先级1:循环优先级:循环优先级0:普通普通1:特殊特殊0:不发:不发1:发:发EOI 命令命令lD7(R):0为固定优先级;1为循环优先级。lD6(SL):0为“普通”;1为“特殊”。这2位决定优先级方式:R=0,SL=:固定优先级 (L2L0无效)R=1,SL=0:优先级自动自动循环 (L2L0无效)R=1,SL=1:优先级特殊特殊循环 (L2L0有效有效)此时此时L2L0指明循环开始时哪个指明循环开始时哪个IRi 的优先级最低。的优先级最低。103lD5(EOI):1时发EOI命令;0时不发EOI命令。在非自动中断结束方式下,可通过发EOI命令来使ISR 相应的位复位。(非硬件复位非硬件复位)EOI位可和SL位配合使用。EOI=0,SL=:不发EOI命令。EOI=1,SL=0 :普通中断结束普通中断结束。此时EOI命令将ISR中优先级最高最高的中断对应的位清0。(L2L0无效)EOI=1,SL=1 :特殊中断结束特殊中断结束。此时EOI命令将ISR中L2L0所指定指定的中断对应位清0。(L2L0有效有效)104R、SL、EOI 三位的组合含义三位的组合含义 105RSLEOI功能说明功能说明001普通EOI命令,全嵌套方式011特殊EOI命令,全嵌套方式,L2 L0指定的ISR位清0101普通EOI命令,优先级自动循环111特殊EOI命令,优先级特殊循环,L2L0指定的ISR位清0,且L2L0指定的IR位为最低优先级100自动EOI时,优先级自动循环000自动EOI时,取消优先级自动循环110优先级特殊循环,L2L0指定优先级最低的IR位010无操作106MOV AL,0010 0000B ;OCW2:EOI=1,SL=0OUT 20H,AL ;写入 OCW2IRET ;中断返回,回到主程序【例5-11】已知8259A的端口地址为20H、21H。8259A设置为非自动中断结束的普通中断结束普通中断结束方式。在中断子程序中,CPU向8259A发送一个中断结束命令后返回主程序。试给出对应的程序段。3.OCW3:设置中断:设置中断屏蔽屏蔽方式;设置中断方式;设置中断查询查询方式;方式;发送发送读内部寄存器读内部寄存器的命令的命令10710:读读 IRR11:读读 ISR0:无效无效 OCW3 要写要写入偶端口入偶端口特征位特征位0ESMMSMM01PIRRISRD7D6D5D4D3D2D1D00A0未用未用11:设置特殊屏蔽设置特殊屏蔽10:取消特殊屏蔽取消特殊屏蔽0:保持原方式保持原方式 1:发查询命令发查询命令0:不发查询命令不发查询命令lESMM/SMM:设置/取消特殊屏蔽方式11:设置特殊屏蔽方式。屏蔽正在服务的同级中断同级中断,而允许优先级优先级较低较低的中断请求。10:取消特殊屏蔽方式。0:保持原来的屏蔽方式。SMM无效。108lD2(P):查询命令位。P=1,CPU向8259A发查询命令。P=0不发。当CPU处于关中断时(IF=0),INTR 引脚发送的中断不被处理。此时,CPU 可向8259发查询命令(偶端口偶端口),然后从偶端口读取从偶端口读取查询字,以获知当前是否有中断请求是否有中断请求及正在申请的中断源中优先级最高优先级最高的中断源编码。109有中断请求时,当前中断请求有中断请求时,当前中断请求中优先级最高的中断源编号中优先级最高的中断源编号偶端口偶端口IW2W1W0D7D6D5D4D3D2D1D00A01:有中断请求有中断请求0:无中断请求无中断请求未用未用110 CLI ;关中断L1:MOV AL,00001100B ;OCW3:D4D3=01,P=1 OUT 0A0H,AL ;发查询命令字发查询命令字 IN AL,0A0H ;读查询字 TEST AL,10000000B ;判断是否有中断请求 JNZ NEXT ;有中断请求时转入NEXT JMP L1NEXT:【例5-12】已知8259A的端口地址为0A0H0A1H,处于关中断状态。将8259A设置为中断查询方式中断查询方式,判断当前是否有中断请求。若有,则转向NEXT处执行;若无,则重复查询。试编写程序段实现之。111读IMR:直接读OCW1(奇端口)IN AL,21H 【例5-13】已知8259A的端口地址为20H、21H。试写程序段,读取其 IMR、IRR、ISR三个寄存器的值。读IRR:必须发读读IRR寄存器的命令寄存器的命令才能读取(OCW3)MOV AL,00001 010B ;发读 IRR 的 OCW3 命令字 OUT 20H,AL IN AL,20H ;读 IRR 的内容 读ISR:必须发读读ISR寄存器的命令寄存器的命令才能读取(OCW3)MOV AL,00001 011B ;发读 ISR 的 OCW3 命令字 OUT 20H,AL IN AL,20H ;读 ISR 的内容 112内容概要内容概要8259A的应用举例48086/8088 微机中断系统28259A可编程中断控制器3PC 机中的中断应用5中断技术概述1l 内部结构、外部引脚l 工作方式工作方式(7 7个个:工作过程、级联方式、触发方式、屏蔽方式、优先级方式、中断结束方式、系统连线方式)l 8259A编程:ICW、OCW、初始化编程(1)中断程序设计中断程序设计l若要以中断方式实现CPU与外设间的数据交换,用户需完成主程序主程序和中断服务子程序中断服务子程序的设计。l主程序:对中断系统的软硬件进行初始化软硬件进行初始化。如:设置中断向量、设置8259A的工作方式等。l中断服务程序:实现数据输入输出数据输入输出及相关控制。113 5.4 8259A 应用举例应用举例n主程序设计主程序设计CPU 初始化初始化:设置中断向量表、设置中断标志(使 IF=1 开中断)。8259A 初始化初始化:写ICW1 ICW4初始化命令字,设置工作方式、优先级、结束方式等。中断源接口初始化中断源接口初始化:如:使中断源允许中断等。中断服务程序初始化中断服务程序初始化:进入ISR前,要设置ISR使用的缓冲区指针和状态位等。114n中断服务程序设计(中断服务程序设计(ISR)保护现场保护现场:把ISR中要使用的寄存器入栈。开中断开中断:运行当前 ISR 程序时,要能响应更高级的中断。数据输入输出数据输入输出:与外设间进行数据传输。数据的处理数据的处理比较费时,一般交由主程序完成。关中断关中断:ISR结束时,关中断以避免不必要的中断嵌套。恢复现场恢复现场:将堆栈中保存的各寄存器值出栈,以便返回主程序后可以正确使用原数据。中断结束命令中断结束命令:8259A采用非自动中断结束方式时,发采用非自动中断结束方式时,发EOI命令使命令使ISR的的相应位清相应位清0。中断返回中断返回:用IRET指令返回主程序。115116(2)中断应用实例中断应用实例【例5-14】已知某输入设备接口内有一个8位的数据端口(地址200H)和一个8位的状态端口(地址201H)。当状态当状态端口的最高位为端口的最高位为1时,数据端口中的数据有效,并且此时,数据端口中的数据有效,并且此时在时在STB引脚上出现一个脉冲信号。引脚上出现一个脉冲信号。请设计一个微机系统,读取该接口内的有效数据,并将之存入内存的BUFFER单元中。117方法一:查询法方法一:查询法硬件电路设计硬件电路设计软件流程图设计软件流程图设计118 MOV DX,201H ;读取状态端口 L1:IN AL,DX TEST AL,10000000B ;测试其最高位 JZ L1 ;无有效数据 MOV DX,200H;有有效数据,读数据端口 IN AL,DX MOV BUFFER,AL;保存数据到 BUFFER 119方法二:中断法方法二:中断法l当接口中的数据有效时,会产生STB脉冲信号,该信号可作为中断请求信号,通过8259A向CPU发送中断请求。l一旦有数据到来,触发中断,进入中断服务程序ISR。CPU在在ISR中读取数据端口的内容中读取数据端口的内容。l当没有数据到来时(STB信号不触发中断),CPU可运行其它程序。120假设条件:假设条件:lSTB信号连接到8259A的 IR3 端。l8259A的端口地址为20H21H,其IR0IR7 中断类型号为08H0FH。l中断服务子程序名为P1。l未发生中断时,CPU执行其它程序。其它程序假设用CX+1的来模拟。121硬件电路设计硬件电路设计122软件程序设计软件程序设计关中断开中断123DATA SEGMENT ;定义数据段 就是数据存放的地方 BUFFER DB?DATA ENDSCODE SEGMENT ;定义代码段 当然就是要执行的程序代码了 ASSUME CS:CODE,DS:DATA;assume ds:data 这是指明了ds(数据段寄存器)和data段的对应关系START:MOV AX,DATA ;数据段段地址;数据段段地址 MOV DS,AX PUSH DS CLI ;关中断 MOV AL,00010011B ;ICW1:边沿触发,单片,要ICW4 OUT 20H,AL MOV AL,08H ;ICW2:中断类型号前5位 OUT 21H,AL 主程序设计主程序设计124 MOV AL,00000001B;ICW4:普通全嵌套,非缓冲 OUT 21H,AL;非自动中断结束 MOV AX,0 ;设置中断向量表段基址为0 MOV DS,AX MOV AX,OFFSET P1 MOV 002CH,AX ;IR3中断类型号为0BH,2CH?MOV AX,SEG P1 MOV 002EH,AX POP DS STI ;开中断L1:INC CX JMP L1125P1 PROC ;中断服务子程序 PUSH CX ;保护现场 STI ;开中断 MOV DX,200H ;读数据端口 IN AL,DX MOV BUFFER,AL ;保存数据 CLI ;关中断 POP CX MOV AL,20H ;中断结束命令;中断结束命令 OUT 20H,AL IRET ;中断返回P1 ENDPCODE ENDSEND START中断服务子程序设计中断服务子程序设计两种方法的比较两种方法的比较l查询方式思路、软硬件设计都比较简单,但效率低下。l中断方式硬件上需要8259的支持,软件上需设计主程序和中断服务子程序。l相对于查询方式,中断方式软、硬件设计都比较复杂,但是效率高效率高。因为未发生中断时,CPU与外设可并行工作并行工作,而无需轮询外设状态。126127内容概要内容概要8259A的应用举例48086/8088 微机中断系统28259A可编程中断控制器3PC 机中的中断应用5中断技术概述1l 主程序设计l 中断服务子程序的设计l 举例:查询与中断方式的比较(1)IBM PC/XT机:单片机:单片8259A128 5.5 PC机中的中断应用机中的中断应用l8259A的端口地址为20H和和21H,中断源的中断类型码为08H0FH。l8个中断源的作用:IRQ0:接系统板上8253定时/计数器OUT0的输出,用作微机系统的电子时钟中断请求。IRQ1:键盘中断,请求CPU读取键盘扫描码。IRQ3 IRQ4:串口中断。IRQ5 和 IRQ6:硬盘和软件中断。IRQ7:并行打印机。129(2)IBM PC/AT机:双
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!