微机原理与接口技术第9章中断与DMA技术微机原理与接口技术第9章中断与DMA技术课程教学单元第1章微型计算机基础知识第2章80X86/Pentium微处理器内部结构第3章指令系统第4章汇编语言程序设计第5章8086/8088CPU的总线操作与时序第6章微型计算机系统结构第7章半导体存储器第8章输入输出接口技术第9章中断与DMA技术第10章定时与计数技术第11章并行接口与串行接口第12章人机交互接口第13章模拟量输入输出接口微机原理与接口技术第9章中断与DMA技术第9章中断与DMA技术§9.1概念及处理过程1、中断概念2、中断源3、中断处理过程(1)中断请求(2)中断判优(3)中断响应(4)中断服务①②③④⑤(5)中断返回§9.28086中断系统1、中断源与中断类型号2、中断向量表3、中断响应过程4、中断时序§9.3中断控制器Intel8259A1、性能2、结构和工作原理3、外部引脚和工作过程4、工作方式(1)中断优先权管理方式①②③④(2)中断源屏蔽方式①②(3)结束中断方式①②③④(4)与系统总线的连接方式①②(5)引入中断请求的方式①②③5、8259A的编程(1)端口地址(2)初始化编程ICW1-ICW4(3)操作编程OCW1-OCW36、级联微机原理与接口技术第9章中断与DMA技术§9.1中断的概念及处理过程1、中断概念2、中断源3、中断处理过程(1)中断请求(2)中断判优(3)中断响应(4)中断服务①②③④⑤(5)中断返回微机原理与接口技术第9章中断与DMA技术计算机在执行正常程序的过程中,当出现某些紧急情况,异常事件或其它请求时,处理器会暂时中断正在运行的程序,转而去执行对紧急情况或其它请求的操作处理。处理完成以后,CPU回到被中断程序的断点处接着往下继续执行,这个过程称为中断。1、中断概念微机原理与接口技术第9章中断与DMA技术——引起中断的原因或设备称为中断源2、中断源中断源可以被禁止(CLI)、被屏蔽(MASK)、可以嵌套(1)硬件中断(外部中断):即通过外部的硬件产生的中断不可屏蔽中断:每个系统中仅允许有一个,都是用来处理紧急情况的,由NMI引脚引入,不受IF标志的影响,一旦发生,系统会立即响应;可屏蔽中断:由INTR引脚引入,IF=1时可屏蔽中断才能进入,反之则不允许进入。可屏蔽中断可有多个,一般是通过优先级排队,从多个中断源中选出一个进行处理。(2)软件中断(内部中断):即根据某条指令或者对标志寄存器中某个标志的设置而产生,它与硬件电路无关,常见的如除数为0,或用INTn指令产生微机原理与接口技术第9章中断与DMA技术3、中断处理过程(以外部中断为例)(1)中断请求•请求中断的条件:①外设准备好数据②系统允许外设发出中断•请求信号工作特点:Ⅰ.中断请求信号应保持到中断被处理为止Ⅱ.CPU识别中断源有两个方法:软件查询、中断矢量法Ⅲ.CPU响应中断后,中断请求信号应及时撤销微机原理与接口技术第9章中断与DMA技术(2)中断判优——多设备同时中断请求,CPU首先为谁服务?•中断优先级控制要处理两种情况:对同时产生的中断:首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断,即允许中断嵌套。•中断优先级的控制可有三种方法软件查询法——顺序查询中断请求,先查询的级别高硬件链式判优——优先权排队电路专用硬件判优——可编程中断控制器(PIC)芯片微机原理与接口技术第9章中断与DMA技术软件查询法微机原理与接口技术第9章中断与DMA技术硬件链式判优微机原理与接口技术第9章中断与DMA技术专用硬件PIC判优微机原理与接口技术第9章中断与DMA技术(3)中断响应•响应中断的时间:每条指令最后一个时钟周期,CPU检测INTR或NMI信号•响应中断的条件:当前指令执行完(带LOCK、REP前缀要求完整地执行)当前没有复位(RESET)和保持(HOLD)信号对INTR,CPU应处于开中断状态,即IF=1,且无NMI•响应中断的动作:向中断源发出中断响应信号断点保护,包括CS、IP和FR获得中断服务程序入口地址(软件获取法、中断向量法)微机原理与接口技术第9章中断与DMA技术(4)中断处理——进入中断服务程序由一系列的PUSH指令完成,保护那些与主程序中有冲突的寄存器。由STI实现,为了能中断的嵌套。与保护现场对应,注意恢复次序。使用中断返回指令IRET,不能用子程序返回指令RET。恢复断点地址外和标志寄存器的值。(5)中断返回提供具体的数据传输和处理。微机原理与接口技术第9章中断与DMA技术§9.28086中断系统1、中断源与中断类型号2、中断向量表3、中断响应流程微机原理与接口技术第9章中断与DMA技术1、8086/8088的中断源与中断类型号中断源外部中断内部中断外部可屏蔽中断INTR不可屏蔽中断NMI内部硬件中断内部软件中断INTn除法出错单步跟踪断点中断溢出中断优先级从高到低顺序如下:除法出错、INTn、INT0→NMI→INTR→单步中断微机原理与接口技术第9章中断与DMA技术INT n指令中 断 逻 辑INTO指令单步中断INT3指令除数为0中断非屏蔽中断请求中断控制系统(8259A)。。。可屏蔽中断请求NMIINTR软件中断硬件中断PC机中软件中断源与硬件中断源的关系微机原理与接口技术第9章中断与DMA技术每个中断源分配一个中断类型码,范围0~255,8086/8088总可处理256种中断源。——溢出(INT4)、断点(INT3)、除法溢出(INT0)、单步(INT1)、非屏蔽中断的类型码(INTn)为固定值——软件中断的类型码由指令给出(n)——可屏蔽中断的类型码由PIC(可编程中断控制器)给出中断类型号:CPU获得中断号的方法:微机原理与接口技术第9章中断与DMA技术•表地址:00000H~003FFH•256个入口,4B/入口Bytes•低字为IP,高字为CS•中断n的入口地址在4n:4n+32、8086/8088的中断向量表——存放256个中断的中断服务程序的入口地址的表00H~07H----系统专用08H~0FH----硬件中断10H~1FH----BIOS用20H~3FH----DOS用40H~FFH----用户用微机原理与接口技术第9章中断与DMA技术3、中断响应流程图微机原理与接口技术第9章中断与DMA技术例:设某中断源类型码为4AH,画出求中断服务处理程序示意图解:中断向量表指针为4*n=4*4AH=128H,即:0000:0128H查中断向量表,中断服务程序入口地址是0F000H:1806H中断向量表物理地址单元内容INT4AH地址单元内容IP=1806HCS=F000HF000:180600000H类型0中断处理程序入口地址MOVAL,300:124类型49H中断向量00001H0:1250:126向量地址:4AH*4=128H0:12700004H类型1中断处理程序入口地址0:12806H0:12918H0:12A00H0:12BF0H00008H…………………………………………0:12C类型4BH中断向量0:12D0:12E0:12F中断处理服务程序IRET003FFH类型FFH中断处理程序入口地址微机原理与接口技术第9章中断与DMA技术§9.3中断控制器Intel8259A1、特点2、内部结构和工作原理3、外部引脚和工作过程4、工作方式(1)中断优先权管理方式①②③④(2)中断源屏蔽方式①②(3)结束中断方式①②③(4)与系统总线的连接方式①②(5)引入中断请求的方式①②③5、8259A的编程(1)端口地址(2)初始化编程ICW1-ICW4(3)操作编程OCW1-OCW36、级联微机原理与接口技术第9章中断与DMA技术可用于8080/8085和8086/8088系统具有8级中断优先控制,通过级联可以扩展至64级优先权控制,每一级中断都可以设置为允许或屏蔽状态。在中断响应周期内提供中断类型号可以编程设置工作多种方式,使用非常灵活采用NMOS制造工艺,只需单一的+5V电源1、中断控制器Intel8259A的特点微机原理与接口技术第9章中断与DMA技术优先权比较器(PR)中断服务寄存器(ISR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)控制逻辑INTINTAD7~D0A0RDWRCSCAS0CAS1CAS2SP/ENIR0IR1IR2IR3IR4IR5IR6IR7内部总线读/写逻辑数据总线缓冲器级联缓冲器/比较器2、中断控制器Intel8259A内部结构和工作原理微机原理与接口技术第9章中断与DMA技术(1).中断请求寄存器IRR•8位锁存器,保存从IR0~IR7来的中断请求信号•某位=1表示对应的IRi有中断请求(2).中断服务寄存器ISR•8位寄存器,保存所有正在服务的中断源•某位=1表示对应的IRi中断正在被服务•多重中断时有多位被置1(3).中断屏蔽寄存器IMR•8位寄存器,存放中断屏蔽字•某位=1表示对应的IRi输入被屏蔽(4).中断优先权比较器•识别、管理各中断请求的优先级别•确定是否向CPU发出中断请求•中断响应时确定ISR的置位及数据总线上类型码(PR)(ISR)(IRR)(IMR)控制逻辑读/写逻辑数据缓冲缓冲比较微机原理与接口技术第9章中断与DMA技术(5).读/写控制电路●控制对8259A的读、写操作●控制信号共同控制(6).数据总线缓冲器●双向8位3态缓冲器,8259A与CPU之间的数据接口●接收控制字、发送状态信息和中断号(7).级联缓冲/比较器●级联时存放主从设备的ID,可组成64级中断优先级●主从片8259A的CAS0~CAS2并接在一起传输ID●SP/EN区分主从身份(8).控制逻辑:●含ICW1-ICW4和OCW1-OCW3共7个寄存器●对CPU发INT、接收CPU命令,控制内部部件CSAWRRD0(PR)(ISR)(IRR)(IMR)控制逻辑读/写逻辑数据缓冲缓冲比较微机原理与接口技术第9章中断与DMA技术3、中断控制器Intel8259A外部引脚和工作过程12345678910111213142827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1Vss8259A(1)8259A引脚1.D7-D0双向数据输入/输出2.IR7-IR08级中断请求信号输入规定优先级:IR0>…>IR7多片级连时从片INT连主片IRi3.INT中断请求信号输出4.INTA中断响应应答信号输入5.RD读控制信号输入6.WR写控制信号输出7.CS片选信号输入8.A0内部寄存器选择信号输入A0=0ICW1、OCW2、OCW3A0=1ICW2~ICW4、OCW19.CAS2-CAS0级联信号引脚10.SP/EN级联管理信号输入,外部数据总线缓冲器启动信号微机原理与接口技术第9章中断与DMA技术(2)8259A工作过程①当有一条或若干条中断请求输入(IR7-IR0)有效时,则使中断请求寄存器的IRR的相应位置位②8259A分析:该请求IMR不屏蔽、高于正在服务的中断程序级别,则向CPU发出INT信号③若CPU处于开中断状态,则在当前指令执行完之后,响应INTR中断,并且从INTA发应答信号(两个连续负脉冲)④第一个INTA负脉冲到达时,使ISR中允许中断的最高优先级位置1,;IRR寄存器的相应位复位⑤第二个INTA负脉冲到达时,将ICW2中内容送到数据总线的D7-D0上,CPU以此作为相应中断的类型码。⑥若ICW4中的中断结束位为1(AEOI),则第二个INTA负脉冲结束时,8259A将ISR寄存器的相应位清零。否则由中断服务程序在执行完毕时输出EOI命令使ISR复位。微机原理与接口技术第9章中断与DMA技术CAS0~CAS2D0~D7SP/ENIR0~IR7CPU响应周期8259A工作波形INT第一个周期T1T2T3