您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 微机原理与接口技术-第7章 中断系统_18
微机原理与接口技术第7章中断系统6.8086CPU的中断响应过程内部中断响应过程无INTA#周期中断类型码固定或由指令给出响应过程主要步骤:①PUSHFLAG②IF=0③PUSHCS④PUSHIP⑤取中断向量送入IP和CS中断响应过程(续)外部中断响应过程非屏蔽中断,与内部中断响应过程类似可屏蔽中断①INTA#(1),PIC进行优先级排队判优处理②INTA#(2),PIC把中断类型码放到DB上,CPU读入③PUSHFLAG④IF=0⑤PUSHCS⑥PUSHIP⑦取中断向量送入IP和CS与内部中断一样7.8086系统中各中断的优先级优先级从高到低顺序如下:内部中断NMIINTR单步中断8.中断优先权管理中断优先权是事先根据中断源的重要性给每个中断源确定一个中断优先级别——优先权。中断优先权管理就是判别和确定各个中断源的中断优先权。中断优先权判别方法有软件和硬件两种方法。中断优先权管理(1)软件确定中断优先权软件法是在CPU响应中断后,用软件查询确定哪个中断源申请中断,先被查询的先响应。查询次序决定了中断优先权次序,最先被查询的中断源具有最高的优先权。中断优先权管理•如图,8个外设只要有中断请求,CPU检测到中断请求信号,响应中断;D7~D0CPUINTRI/O端口端口地址80H≥1外设ABCDEFGH中断请求读入端口80H的内容,逐位判别确定当前申请中断的优先权最高的中断源,从而进入相应的中断服务程序。中断优先权管理(1)软件确定中断优先权保护现场外设A中断服务程序外设B中断服务程序外设C中断服务程序A申请服务?B申请服务?C申请服务?恢复现场┆YYYNNN软件查询流程图软件查询程序:INAL,80H;端口读入状态TESTAL,80H;JNZSERVE_ATESTAL,40HJNZSERVE_B……TESTAL,01HJNZSERVE_HHLT*软件查询次序就是优先权高低的次序;*软件确定中断优先权不需复杂的硬件电路,简单易实现;*中断源较多时,查询时间较长,中断响应较慢。中断优先权管理(2)硬件确定中断优先权由硬件实现中断优先权的判别。*常用的硬件电路有:中断优先权编码电路,链式优先权排队电路及专用硬件电路等。*利用中断控制器8259A,它具有8个优先权控制,可以通过级联,扩展至64级优先权控制,且每级中断都可设置为允许或屏蔽。图6-48个以下的中断结构图6-58个以上的中断结构IRQ0IRQ1IRQ2:IRQ78259到CPU三总线到CPU三总线IRQ0IRQ1IRQ2:IRQ78259IRQ0IRQ1IRQ2:IRQ7INTINTIRQ1IRQ2IRQ3:IRQ7IRQ082598259(主)(从1)(从2)多于8个中断源的中断的硬件电路结构8086/8088的中断系统8086/8088CPU具有一个管理高效且简便灵活的中断系统,可以处理多达256种中断源。采用向量中断方法,对256种中断只需一次间接访问,就可获得任一中断源的中断服务程序的入口地址,中断响应快速。12主要内容7.1中断系统概述7.28086CPU的中断系统7.3可编程中断控制器8259A7.4小结7.3Intel8259A可编程中断控制器问题的提出:8086只有一个可屏蔽中断输入线,如何实现处理多个外部中断请求?解决的办法是用专用的中断控制器接口电路8259可编程中断控制器1.功能及工作特点1)管理和控制8086的外部可屏蔽中断请求2)实现中断判优:每一片8259A可以管理8个中断请求,并把当前优先级最高的中断请求送到CPU的INTR端。3)提供中断类型码,迅速地转至中断服务程序。4)可屏蔽中断输入,每一个中断请求都可以屏蔽或允许。单片8259A可以管理8级中断,采用级联方式,最多可管理64级中断。5)通过编程使8259A工作在多种不同的方式。7.3.18259A的功能、框图和引脚2、8259A的引脚图6-148259A的引脚8259ACSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDINTAIR7INTCAS2A0VCCIR6IR5IR4IR3IR2IR1IR0EN/SP282726252423222120191718151612345678910121114131)CS:片选信号,输入,低电平有效,来自地址译码器的输出。2)WR:写信号,输入,低电平有效。3)RD:读信号,输入,低电平有效。8259ACSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDINTAIR7INTCAS2A0VCCIR6IR5IR4IR3IR2IR1IR0EN/SP282726252423222120191718151612345678910121114134)D7D0:双向、三态数据线,接系统数据总线的D7D0。5)IR7IR0:中断请求信号,输入。6)INT:8259A向CPU发出的中断请求信号,高电平有效。7)INTA:中断响应信号,输入,接收CPU发来的中断响应脉冲以通知8259A中断请求已被响应,使其将中断类型号送到数据总线上。8)CAS0CAS2:级联总线,输入或输出,用于区分特定的从控制器。9)SP/EN:主从片信号,输入。SP/EN=1,8259A为主控制器;SP/EN=0,为从控制器。10)A0:地址线,输入。用来指出当前8259A的哪个端口被访问,选择内部寄存器的端口地址。在标准AT机中,使用两片8259A构成主从式中断系统:主8259A的端口地址:20H,21H从8259A的端口地址:A0H,A1H3.Intel8259A的内部结构图6-148259A内部组成结构图D7-D0SP/ENCAS0CAS1CAS2数据总线缓冲器读/写控制逻辑读/写控制逻辑读/写控制逻辑读写控制逻辑RDWRA0CS控制逻辑中断屏蔽寄存器IMRINTAINT内部总线IR0IR1IR2IR3IR4IR5IR6IR7级连缓冲比较器中断服务寄存器ISR优先权判断电路PR中断请求寄存器IRR19(1)中断请求寄存器IRR具有锁存功能的8位寄存器,通过输入信号IR0~IR7接收外部中断请求,每一位对应着一个外部设备。外部中断请求(2)当前服务寄存器ISR用于存放当前正在进行处理的中断,ISRi与IRi中断源一一对应,用来记录CPU当前正在对哪些中断源服务。在CPU响应IRi时,在第一个中断应答周期INTA将对应的ISRi置“1”。当ISR全为0时,表示CPU正在执行主程序,无任何中断服务。ISR的置“1”位一直保持到该中断源的中断处理结束为止,在收到针对8259A的结束命令后,该位才会被清0。(3)中断屏蔽寄存器IMR用来保存程序员写入的中断屏蔽字的8位寄存器IMRi为“1”时,可以屏蔽对应的IRi输入的中断请求,使之不能送达8259A的优先权判别电路。IMRi为“0”时,开放相应位IRi的中断请求。(4)优先权判别器PR检查中断源的优先级,并与ISR比较,确定是否将此中断请求送给CPU。当多个中断请求同时产生时,由PR判定哪个中断请求的优先权最高当CPU正在响应某个中断请求时,若出现新的中断请求,PR将判定新的中断请求与ISR中正在服务的中断请求哪个优先级更高,以决定是否需要马上响应新的中断请求(5)数据总线缓冲器8位双向三态缓冲器,是8259A与CPU之间的数据接口。8259A初始化所需的一系列初始化命令字(ICW)和操作命令字(OCW),都是通过数据总线缓冲器写入的当CPU对8259A执行读操作时,可以通过数据总线缓冲器传输8259A的内部状态信息、中断类型码(6)读写逻辑根据CPU送来的读/写信号和地址信息,通过数据总线缓冲器完成CPU对8259A的读写操作与读/写逻辑有关的信号包括:片选信号CS写控制信号WR读控制信号RD端口选择信号A0(7)控制逻辑8259A的功能核心,通过编程设置方式来管理8259A的工作方式(8)级联缓冲器/比较器一片8259A最多可以管理8级中断源多片8259A级联,可以管理更多的中断源级联时,一片8259A作为主片,另外1~8片作为从片,主从片的引脚CAS0~CAS2相互连接成为级联总线当从片上的中断源提出中断请求时,从片通过自己的INT信号线向主片的某个IRi发出请求,再由主片代替从片向CPU发出真正的请求信号当中断请求被响应后,主片将请求被响应从片的编码通过CAS0~CAS2送往从片,所有从片都会收到这个编码,但只有匹配的从片才会响应,在第二个中断响应周期中,该从片将请求的中断源类型号送到数据总线,CPU读取后就转入相应的中断服务程序进行处理两片8259A的级联(简化示意)主片中断源从片中断源CAS0~CAS2287.3.28259A的中断管理对中断源进行优先级排队管理接受和扩充外部设备的中断请求提供中断类型号进行中断请求的屏蔽和开放298259A中断请求处理过程IRR寄存来自IR0~IR7的中断源的中断请求;经过IMR的筛选后,未被屏蔽的请求送至PR进行判优;PR选中优先级最高的中断源,通过引脚INT向CPU发出中断请求信号;在满足响应条件时,CPU通过INTA#引脚向8259A发出两个负脉冲,即中断响应信号;8259A收到第一个INTA#信号后,ISR相应位置“1”,IRR相应位清“0”;8259A收到第二个INTA#信号后,8259A把被选中的中断源的中断类型码n通过数据线送往CPU;CPU根据n从中断向量表读取中断向量并送往CS:IP,开始执行中断服务程序。7.3.38259A的工作方式8259A的工作方式有如下几类:中断触发方式屏蔽中断源的方式中断优先方式与中断嵌套中断结束处理方式级联工作方式中断触发方式边沿触发以上跳沿向8259A请求中断,上跳沿后可一直维持高电平,不会再产生中断。电平触发以高电平请求中断,但在响应中断后必须及时清除高电平,以免引起第二次中断。在第1个INTA#结束前,IRi必须保持高电平32屏蔽中断源的方式通常屏蔽方式(掌握)IMR屏蔽字决定了允许或禁止某位IRi所对应的中断:IMi=1禁止,IMi=0允许。利用操作命令字OCW1来设定IMR。特殊屏蔽方式(不要求)在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中断请求被响应。可通过OCW3的D6D5=11来设定中断优先方式与中断嵌套中断优先方式两类优先级控制方式:固定优先级和循环优先级固定优先级方式(掌握)所有中断请求IRi的中断优先级固定不变优先级排列顺序可编程改变加电后8259A的默认方式,默认优先级顺序从高到低为IR0~IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级优先级可编程改变34固定优先级方式(掌握)全嵌套方式中断优先级按0~7顺序进行排队,只允许中断级别高的中断源打断级别低的中断服务程序。特殊全嵌套方式同全嵌套方式基本相同,不同在于,允许响应同级的中断请求。用于多片级联。循环优先级方式(不要求)优先级顺序不是固定不变的,一个设备受到中断服务后,其优先级自动降为最低。初始优先级顺序规定为IR0~IR7。中断优先方式与中断嵌套中断优先方式与中断嵌套(续)中断嵌套方式8259A有两种中断嵌套方式:普通全嵌套方式(默认方式)一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务(单片或者从8259A使用)。特殊全嵌套方式(级联时主8259A使用)一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁)C.
本文标题:微机原理与接口技术-第7章 中断系统_18
链接地址:https://www.777doc.com/doc-3162027 .html