收藏 分享(赏)

第七章+中断技术-微机原理与接口技术 ppt 冯博琴主编.ppt

上传人:无敌 文档编号:1363096 上传时间:2018-07-04 格式:PPT 页数:117 大小:1.23MB
下载 相关 举报
第七章+中断技术-微机原理与接口技术 ppt 冯博琴主编.ppt_第1页
第1页 / 共117页
第七章+中断技术-微机原理与接口技术 ppt 冯博琴主编.ppt_第2页
第2页 / 共117页
第七章+中断技术-微机原理与接口技术 ppt 冯博琴主编.ppt_第3页
第3页 / 共117页
第七章+中断技术-微机原理与接口技术 ppt 冯博琴主编.ppt_第4页
第4页 / 共117页
第七章+中断技术-微机原理与接口技术 ppt 冯博琴主编.ppt_第5页
第5页 / 共117页
点击查看更多>>
资源描述

1、1,微型计算机原理与接口技术,内蒙古大学理工学院自动化系,Principles of Microcomputers and Interface Techniques,2,第七章 中断技术,7.1 中断的基本概念7.2 8086/8088的中断系统7.3 8259A可编程控制器7.4 8259的应用,3,主要内容,中断的概念、8086/8088的中断系统中断的分类、优先权、中断响应过程8259A中断可编程控制器工作原理初始化命令字ICW、操作命令字OCW初始化编程8259A的应用,4,重点内容,掌握中断的基本概念掌握8086中断系统掌握INTR、NMI、INTn中断的特点 及响应过程了解8259

2、A的工作过程掌握8259A初始化编程了解8259A的应用,5,7.1 中断基本概念,中断的基本概念什么是中断?与生活场景的比较,正在看书,电话铃响,接电话,继续看书,执行程序,事件发生,事件处理,继续执行程序,中断处理,中断请求及响应,实际场景,计算机,中断返回,6,1、中断的定义,CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。,7,2、中断源,引起CPU中断的事件:中断源。外设:请求输入输出数据,报告故障等事件:

3、掉电、硬件故障、软件错误、非法操作、定时时间到等中断源分为:外部中断、内部中断内部中断:CPU内部执行程序时自身产生的中断外部中断:CPU以外的设备、部件产生的中断 8086/8088的外部中断信号:INTR、NMIINTR:可屏蔽中断请求,1有效,受IF标志的控制。IF=1时,执行完当前指令后CPU对它作出响应。 NMI:非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。,8,为何引入中断?,提高数据传输率;避免了CPU不断检测外设状态的过程,提高了CPU的利用率。实现对特殊事件的实时响应。如多任务系统操作系统中: 缺页中断设备中断各类异常实时钟,等,9,3、中断过程,六个步

4、骤:中断请求中断源识别中断判优中断响应中断服务中断返回以外部中断为例,10,1)中断请求,外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚;中断请求信号:边沿请求,电平请求例如,NMI为边沿请求,INTR为电平请求中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。在8086/8088系统中,外设的中断要经过8259A可编程中断控制器(PIC)的排队判优后向CPU发出: (I/O接口) PIC CPU,11,2)中断源识别,当有多中断源时,CPU必须识别是哪一个设备产生中断,识别中断源有两个方法。软件查询:将中断信号从数据总线读入,采用程序查寻判别

5、中断矢量法:由中断源提供中断类型号,CPU根据类型确定中断源。(8086/8088即采用此种方法),12,中断查询,A0A15,中断A中断B中断C,IOR,图7-1-1,13,3) 中断判优,中断优先级排队问题。中断优先级控制要处理两种情况:对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断即允许中断嵌套。中断优先级的控制方法硬件判优链式判优、并行判优(中断向量法)软件判优顺序查询中断请求,先查询的先服务(即先查询的优先级别高)通常将中断判优与中断源识别合并在一起进行处理。x86系

6、统中,这项任务由PIC和CPU共同完成。,14,INTAin,8086/8088INTAINTR,外设1,外设2,外设接口1,菊花链逻辑电路,外设接口2,外设3,外设接口3,1,菊花链逻辑电路,菊花链逻辑电路,IREQ,IREQ,IREQ,中断确认,链式判优电路,INTAin,INTAin,中断确认,中断确认,图7-1-2,15,菊花链逻辑电路,INTAin,IREQ,INTR,&,1,INTAout,decibel 分贝,三态门,中断向量码,E,外设接口,中断确认,菊花链逻辑电路,图7-1-3,16,中断优先权编码电路,比较器失效信号,比较器,8:3优先权编码器,优先权寄存器,D0D7,2,

7、1,AB,中断请求0中断请求1中断请求2,A0A1A2,INTR,B0B1B2,图7-1-4,17,4)中断响应,在每条指令的最后一个时钟周期,CPU检测INTR或NMI信号。若以下条件成立,则CPU响应中断:当前指令执行完。对INTR,还应满足以下条件当前指令是STI和IRET,则下条指令也要执行完。当前指令LOCK、REP等指令前缀时,则把它们看成一个整体,要求完整地执行完;对INTR,CPU应处于开中断状态,即IF=1;当前没有复位(RESET)和保持(HOLD)信号。若NMI和 INTR 同时发生,则首先响应NMI。,18,CPU中断响应时,要完成的任务:向中断源发出INTA中断响应信

8、号;断点保护,包括CS、IP和PSW. 。这主要是保证中断结束后能返回被中断的程序。获得中断服务程序首地址(入口)。如何得到中断处理程序的首地址?固定入口法中断向量法,19,5)中断服务,中断服务子程序特点过程(类型:FAR)要用IRET指令返回中断服务子程序 保护现场STI 开中断进行中断处理 恢复现场IRET 中断返回,20,6)中断返回,执行中断返回指令IRETIRET指令将堆栈内保存的断点信息弹出到IP、CS中,保证被中断的程序从断点处继续执行。,IPL,IPH,CSL,CSH,FLAGL,FLAGH,SP,IPL,IPH,CSL,CSH,FLAGL,FLAGH,SP,IP,CS,FL

9、AG,进入中断服务程序时,中断返回后,图7-1-5,21,1、8086/8088中断源类型,NMI,INTR,中断逻辑,软件中断指令,溢出中断,除法错,单步中断,非屏蔽中断请求,中断控制器8259APIC,8086/8088CPU内部逻辑,断点中断,可屏蔽中断请求,n,4,3,0,1,2,图7-2-1,7.2 8086/8088的中断系统,22,与中断有关的控制线为:NMI、INTR、INTA#内部中断除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。单步中断:类型号1,TF=1时产生(当前指令需执行完)断点中断:类型号3,这是一个软件中断,即INT 3指令。溢出中断:类型号4,这是一

10、个软件中断,即到指令。软件中断:即INT n指令,类型号n(0-255)。外部中断非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。,23,2、中断源的识别,8086/8088系统采用中断类型码来识别不同的中断源,每个中断源都有一个与它相对应的中断类型码 。溢出、断点、除法溢出、单步、非屏蔽中断的类型码为固定值软件中断的类型码由指令给出可屏蔽中断的类型码由PIC给出CPU响应INTR中断时,会产生两个中断响应总线周期 ,要求PIC在第2个中断响应总线周期把中断类型码放到数据总线上,供CPU读入。,24,3、中断向量表

11、(IVT),存放各类中断的中断服务程序的入口地址(段和偏移)中断向量 表的地址位于内存的00000H003FFH,大小为1KB,共256个中断向量每个中断向量占用4字节,低字为段内偏移,高字为段基址根据中断类型号获得中断服务程序入口的方法: (n为中断类型号)中断向量在IVT中的存放地址4n,25,中断向量表,图7-2-2,26,4、中断向量表的初始化,初始化将中断服务程序的入口地址放入向量表 例:中断类型码为48H的中断处理子程序的名字为int48h,编写程序段将该中断处理子程序的入口地址放入向量表。,27,程序如下所示:,CLI MOV AX,0 MOV ES,AX MOV SI,48H*

12、4 MOV AX, OFFSETint48h MOV SI,AX MOV AX,SEG int48h MOV SI+2,AX STI,28,5、8086/8088的中断响应过程,内部中断响应过程 :无中断响应周期 中断类型码固定或由指令给出响应过程主要步骤:取中断类型号N标志寄存器(PSW)内容入栈 当前代码段寄存器(CS)内容入栈当前指令计数器(IP)内容入栈CLI,将TF清零从中断向量表中取4xN中的字节内容送IP,取4xN+2中的字节内容送CS转中断处理程序,29,外部中断响应过程 :非屏蔽中断,与内部中断响应过程类似 类型号:N=2 可屏蔽中断(1)读中断类型码(2)将标志寄存器的值推

13、入堆栈(3)清中断允许标志IF和单步中断TF(4)保护断点,将CS、IP推入堆栈(5)得到中断向量(6)执行中断服务程序,30,可屏蔽中断响应,图7-2-3,31,6、8086/8088系统的中断优先级,优先级从高到低顺序如下: 内部中断 NMI INTR 单步中断,32,N,Y,N,Y,N,N,N,N,N,Y,Y,执行指令,执行完否?,取指令,IF=1?,内部中断?,NMI?,INTR?,TF=1?,类型码=0255,类型码=2,类型码=1,中断响应,读回类型码,PSW入栈,TEMPTF,TF=TF=0,CS、IP入栈,计算向量表地址,高字CS低字IP,执行中断服务程序,NMI?,TEMP=

14、1?,转入中断服务程序,恢复CS和IP,恢复PSW,返回被中断的程序,Y,Y,Y,Y,N,IRET指令的操作,8086/8088的中断处理流程,图7-2-4,33,NMI、INTR、单步和除法错中断同时产生时的中断处理过程,DIV,TF=1IF=1,INTR,NMI,PUSH、PSW 、IPCLER IF& TF,中断入口CS:IP,除法错,NMI(如果、TF = 0),PUSH、PSW、IPCLER IF & TF,中断入口CS:IP,NMI中断处理程序,除法错中断处理程序,(如果、TF = 0) 返回,执行下条指令,识别出INTR,(如果、TF = 1) 返回,INTR仍然有效,继续单步执

15、行程序,INTR中断处理程序,INTR,PUSH、CS、IPCLERIF & TF,中断入口CS:IP,单步 (如果、TF = 0),PUSH、CS、IPCLER IF & TF,中断入口CS:IP,单步中断处理程序,(如果、TF = 0) 返回,(如果、TF = 1) 返回,图7-2-5,34,7、中断申请管理接口,中断申请,接口4,打印机,8086CPU,INTR,IF,图7-2-6,35,1. 向CPU的引脚INTR发中断申请信号当有多个外设同时发出中断请求时,能按照一定的优先级顺序,向CPU发出中断申请,使CPU能优先响应优先级最高的外部设备的中断申请。2. 送中断类型号 在CPU中断

16、响应周期,针对不同外设的中断请求, 向CPU传送不同的中断类型号,使CPU执行相应的中断子程。,中断申请管理接口的功能:,在IBM PC机由8259A可编程中断控制器(PIC)来完成。,36,7.3 8259A可编程中断控制器,Intel 8259A是可编程中断控制器PIC可用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断8259A的基本功能一片8259A可以管理8级中断,可扩展至64级每一级中断都可单独被屏蔽或允许在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择,37,7.3.1 8259A的功能、结构和引脚,D

17、7D0,INTA,INT,中断请求寄存器,中断屏蔽寄存器IMR,数据总线缓冲器,IR0,IR7,读/写控制逻辑,级联缓冲器比较器,CAS0,CSA1,CAS2,SP/EN,优先权判别电路,中断服务寄存器,控制逻辑,内部结构,图7-3-1,38,一、8259A的内部结构 1.中断请求寄存器IRR保存从IR0IR7来的中断请求信号,某位=1表示对应的IRi有中断请求 2.中断服务寄存器ISR 保存所有正在服务的中断源,某位=1表示对应的IRi中断正在被服务 3.中断屏蔽寄存器IMR存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽 4.中断优先权判别电路 确定是否向CPU发出中断请求,中断响应时确

18、定ISR的哪位应置位及把相应中断的类型码放到数据总线上,39,5、读/写控制电路。用于控制对8259A的读、写等操作。 6、数据总线缓冲器。这是一个双向8位3态缓冲器,由它构成8259A与CPU之间的数据接口,是8259A与CPU交换数据的必经之路。 7、级联缓冲/比较器。多片8259A可级联使用,最多可以组成64级中断优先级控制,此时一片8259A做主片,另外8片做从片,主从片的CAS0CAS2并接在一起,作为级联总线。 8、控制逻辑:用于向8259A内部其他部件发控制信号, 外部向CPU发INT信号,接收CPU发来的信号,控制8259A进入中断服务状态。,40,7.3.2 8259A的工作

19、过程,8259A对中断请求的处理过程如下:当某IRi有效时,IRR相应位置1若有效的IRi未被屏蔽,则向CPU发出中断请求检测到第1个INTA#信号后,置ISRi=1,IRRi=0检测到第2个INTA#信号后,把ISRi=1中最高优先级的中断类型码放到DBl 上若工作在AEOI方式,在第2个INTA#结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位,41,7.3.3 8259A的工作方式,8259A的工作方式有如下几类:中断优先方式与中断嵌套中断结束处理方式 屏蔽中断源的方式中断触发方式级联工作方式,42,中断优先方式 两类优先级控制方式:固定优先级和循环优先级 1、固定优先级

20、方式所有中断请求IRi的中断优先级固定不变优先级排列顺序可编程改变加电后8259A的默认方式,默认优先级顺序从高到低为IR0IR7,IR7,IR6,IR5,IR4,IR3,IR2,IR1,IR0,7,6,5,4,3,2,1,0,3,2,1,0,7,6,5,4,最低级,最高级,最高级,最低级,优先级,IR7,IR6,IR5,IR4,IR3,IR2,IR1,IR0,默认优先级,优先级可编程改变,一、中断优先方式与中断嵌套,43,2、循环优先级方式 中断源轮流处于最高优先级,即自动中断优先级循环初始优先级顺序可用编程改变某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高

21、级,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的服务结束以后,ISRi,44,中断嵌套方式 在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259A有两种中断嵌套方式:1、普通全嵌套方式(默认方式) 一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。2、特殊全嵌套方式 一中断正

22、被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注: 特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。,45,D,主8259A,IR0IR1IR2IR3IR4IR5IR6IR7,一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应,特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁),C.,假定IR7发生中断,并获得服务,一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。,B.,特殊嵌套方式:IR4的中断被服务时,只封锁IR5

23、-IR7。,A.,INT,E.,从8259A,INT,IR0IR1IR2IR3IR4IR5IR6IR7,一般全嵌套方式与特殊全嵌套方式的区别,去CPU,图7-3-2,46,二、中断结束处理方式,当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后,则必须清零该ISRi位。使ISRi=0是通过向8259A发出中断结束命令(EOI命令)实现的。三种EOI命令自动EOI(AEOI)(自动EOI方式)非指定EOI(NSEOI)(正常EOI方式)指定EOI(SEOI)(特殊EOI方式),47,AEOI:在第2个INTA#结束时,由8259A使ISR 自动复位;因不保留当前正在服务的中断的

24、状态,故AEOI不能用于中断嵌套方式SEOI:由CPU发出一条SEOI命令,该EOI命令 中指出了所要复位的ISR的位号。 用于特殊屏蔽方式NSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。 用于普通全嵌套方式,48,中断服务程序,向从PIC发EOI命令,读从PIC的ISR,全0?,向主PIC发EOI命令,Y,IRET,恢复现场,N,特殊全嵌套方式下的EOI处理只有当从PIC的中断全部处理完后,才能向主PIC发EOI命令,图7-3-3,49,三、屏蔽中断源的方式,IMR屏蔽字决定了允许或禁止某位IRi所对应的中断:IMi=1 禁止, IMi=0 允

25、许。特殊屏蔽方式:提供了允许较低优先级的中断能够得到响应的特殊手段。原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。,50,特殊屏蔽例:。 ;IR4中断处理程序CLIMOV AL,68H ;OCW3:0 1 1 0 1 0 0 0OUT 0C0H,AL ;设置特殊屏蔽方式IN AL,0C2H OR AL,10H ;屏蔽IR4OUT 0C2H,ALSTI. ;IR7请求,响应,返回.CLI ;为设命令字IN AL,0C2H ;读出屏蔽字OR AL,0EFH ;清除IMR4OUT 0C2H,

26、ALMOV AL,48H ;OCW3:0 1 0 0 1 0 0 0OUT 0C0H,AL ;取消特殊屏蔽STI。 ;继续IR4中断服务MOV AL,20H ;OCW2:0 0 1 0 0 0 0 0 (EOI)OUT 0C0H,ALIRET?,51,四、中断触发方式,边沿触发IRi出现上升沿表示有中断请求 电平触发IRi出现高电平表示有中断请求在第1个INTA#结束前,IRi必须保持高电平,52,7.3.4 8259A的编程应用,8259A的控制命令分为初始化命令字ICWICW1ICW4向8259A写入ICW的过程称为初始化编程操作命令字OCWOCW1OCW3向8259A写入OCW的过程称为

27、操作方式编程,53,8259A的编程,SP/ENCA0CA1CA2,IOR,IOW,总线,D0D7,数 据 线,D0D7,INTA,INTR,A0,片选译码,A5A9,CS,A0,RD,INTA,WR,INT,ICW1 芯片控制,ICW2 中断类型号,ICW3 主从片连接关系,ICW4 方式控制,1,0,0,1,0,1,0,0,OCW1 中断屏蔽寄存器 IMR,OCW2 优先级设置、发EOI,OCW3特殊屏蔽,查询方式设置,处理部分,控制部分,000 0 0 0 0 0,ISR当前中断服务寄存器,PR优先级裁决器,VCCGND,IR0IR1IR2IR3IR4IR5IR6IR7,IRR中断申请寄

28、存器,000 0 0 0 0 0,54,4个初始化命令寄存器 ICW1、ICW2 ICW3、ICW4 3个操作命令寄存器 OCW1(IMR) OCW2、OCW3当前中断服务寄存器 ISR中断申请寄存器 IRR,8259A内部有9个 可读写的寄存器,8259A的编程结构,8259A中断控制器,55,8259A内部寄存器的寻址方法,需要CS#、A0、RD#、WR#和D4、D3的配合内部寄存器的访问方法如下表:,56,8259A的初始化顺序,8259的初始化流程如图注意:次序不可颠倒,写ICW1,写ICW2,级连?,写ICW3,需ICW4?,写ICW4,N,N,Y,Y,图7-3-4,57,8259A

29、的控制命令字,初始化8259A必须从ICW1开始 写ICW1意味着重新初始化8259A 写入ICW1后,8259A的状态如下:清除ISR和IMR(全0);将中断优先级设成初始状态:IR0最高,IR7最低;设定为一般屏蔽方式;采用非自动中断结束方式;状态读出逻辑预置为读IRR。,58,ICW1初始化字,LTIM: 触发方式=1 高电平触发=0 上升沿触发SNGL: 级连控制=1 单片=0 级连IC4: ICW4控制=1 要写ICW4=0 不写ICW4(默认ICW4为全0),A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC4,59,ICW2中断向

30、量码,T7T3: 中断向量码的高5位T2T0: 最低3位为中断源的序号IRn000111分别对应IR0IR7由8259A根据中断源的序号自动填入 例如:若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。,A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x x,60,ICW3级连控制字,主片的级联控制字 Si=1 对应IRi线上连接了从片,A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0,从片的级联控制字 ID2ID0 标识码,说明本从片连接到主片的哪个IR引脚

31、上。 000111分别对应IR0IR7。,A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID0,61,ICW3级连控制字,ICW3必须与主从片的连接关系一致:例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。,62,ICW4中断结束方式字,SFNM: 特殊全嵌套1 特殊全嵌套方式0 一般全嵌套方式AEOI: 自动EOI1 自动EOI方式0 非自动EOI方式,

32、A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNMBUF M/SAEOI 1,BUF: 缓冲方式M/S: 主/从缓冲选择BUFM/S 1 1 缓冲方式/主PIC 1 0 缓冲方式/从PIC 0 x 非缓冲方式/正常,63,8259A的操作命令字OCW,OCW用于设置8259的工作状态在初始化后写入OCW的写入顺序可任意写入地址要求:OCW1必须写入奇地址端口(A0=1)OCW2,OCW3必须写入偶地址端口(A0=0),64,OCW1中断屏蔽字,Mi=1 中断请求线IRi被屏蔽(不允许中断) Mi =0 允许该IRi中断 OCW1将写入IMR寄存器。A0=1时读OCW1

33、可读出设置的IMR内容。,A0 D7D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M0,65,OCW2中断结束和优先级循环,L2L0: 优先级编码R: 优先级自动循环SL: 指定优先级EOI: 结束中断命令,A0 D7D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0,66,R SL EOI 0 0 1 非指定EOI 命令(NSEOI),全嵌套方式 0 1 1 指定EOI 命令(SEOI),全嵌套方式,按L2-L0编码复位ISR 1 0 1 NSEOI 命令,优先级自动循环 1 0 0 自动EOI,设置优先级自动循

34、环 0 0 0 自动EOI,取消优先级自动循环(固定优先级) 1 1 1 SEOI 命令,按L2-L0编码循环优先级(L2-L0设为最低优先级) 1 1 0 按L2-L0编码循环优先级(L2-L0设为最低优先级),67,OCW3:屏蔽方式和读出控制字,ESMM: 允许使能特殊屏蔽方式SMM: 特殊屏蔽方式ESMM SMM1 1 特殊屏蔽方式置位1 0 特殊屏蔽方式复位0 x 非特殊屏蔽方式P(轮流检测): =1 查询方式 =0 非查询方式,A0 D7D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0 1 P RR RIS,RR: 读寄存器RIS: ISR/IRR选择RR R

35、IS1 1 读ISR1 0 读IRR0 x 无效,68,OCW3,查询方式允许8259A不工作于中断方式,而是以查询方式工作。CPU先写一个D2=1的OCW3,再对同一地址读入,即可得到如下状态字节: x x x x R2 R1 R0 I=1表示有中断请求,中断请求号为R2-R0 此查询步骤可反复执行,以响应多个同时发生的中断。 读IRR/ISR:写入此命令后,随后再对同一地址读,即可得到IRR或ISR的内容。,69,7.3.5 中断级连,一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A级连时,主8259A的三条级连线CAS0CAS2作为输出线,连至每个从82

36、59A的CAS0CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*1)还是从片(SP*0),示例,动画,70,CAS0 IR0CAS1 IR1CAS2 IR2 IR3INTA IR4 IR5INT IR6 IR7SP/EN,CAS0INTA CAS1 CAS2INT IR0 IR1SP/EN IR7,CAS0 IR0CAS1 IR1CAS2 IR2 IR3INTA IR4 IR5INT IR6 IR7SP/EN,INTA,INTR,+5V,8259级联

37、工作示意图,CPU,8259A,8259A,8259A,71,8259级联工作示意图,72,8259A的中断过程,CAS0CAS2,D0D7,SP/EN,IR0IR7,CPU响应周期,8259A工作波形,INT,第一个周期T1 T2 T3 T4,ALE,CLK,第二个周期T1 T2 T3 T4,第一个前保持为高电平,INTA,LOCK,动画,73,8259级联工作示意图,74,7.4 8259A应用,例1:按以下要求初始化8259A:接口地址为20H和21H;中断为上升沿触发;单片8259A;不写ICW4;与IR0-IR3对应的中断向量码为08H-0BH;IR4-IR7不使用。根据要求,各初始

38、化参数及工作参数如下:ICW1 = 00010010 = 12HICW2 = 08H 中断向量码 OCW1 = 11110000 = 0F0H 中断屏蔽字,75,初始化程序如下:INIT8259A:MOVDX,20H;A0=0,写ICW1MOVAL,12H;上升沿触发,单片,不写ICW4OUTDX,ALMOVDX,21H;A0=1,写ICW2,OCW1MOVAL,08H;ICW2OUTDX,ALMOVAL,0F0H;OCW1:屏蔽IR4-IR7OUTDX,AL,76,一、PC机中断程序设计,1)主程序保存原中断向量设置自己的中断向量初始化堆栈指针设置8259A的中断屏蔽字(其他的已由操作系 统

39、设置)STI2)中断服务程序保存所用到的寄存器内容中断服务程序主体恢复进入时保存的寄存器内容发EOI命令(必要时可提前)STI(必要时可提前)IRET,77,PC机中主8259A的I/O地址为20H和21H,中断向量码为08H;中断请求从IR6引入,故中断类型号为0EH;主程序如下:保存原来的中断向量MOVAH,35HMOVAL,OEH;中断类型码INT21H;取原中断向量(在ES:BX中)MOVSAVE_IP,BX;保存原来的中断向量HMOVSAVE_CS,ES,78,;设置自己的中断向量PUSH DSMOV DX OFFSET MY-INTMOVAX,SEG MY_INTMOV DS,AX

40、;DS:DX的内容为_的首地址MOVAH,25HMOV AL,0EHINT21H ;设置自己的中断向量POP;初始化堆栈指针MOVSP,MYSTACK_TOP IN AL,21 ANDAL,10111111B;开放IR6中断OUT21H,ALSTI ,79,子程序如下:MY_INTPROC PUSH AL POPALMOVAL,H;EOI命令,00100000BOUT20H,AL;写OCW2STIIRETMY_INT ENDP,80,二、 8259A在IBM PC系列机上的应用,在IBM PC/XT中,8088共管理3级中断:软件中断、不可屏蔽中断和可屏蔽中断。可屏蔽中断就是通过一片8259A

41、来管理,其连接线路如图所示。因只用一片8259A,所以级联信号CAS0CAS2没有使用。系统主机板I/O地址译码电路在A9A8A7A6A5=0001时使有效,所以地址02003FH都选中这片8259A。ROM BIOS中规定使用02H(A0=0)和21H(A0=1)。I/O端口地址02H可以实现写入ICW1、OCW2、OCW3和读出IRR、ISR和查询字;地址21H可以实现写入ICW2ICW4、OCW1和读出IMR。,81,8259A的引脚 双列直插式芯片,28个引脚,方 波,键 盘,保 留,串 口2,硬 盘,软 盘,打印机,IOW,18.2Hz,A0,CS,8259A,总线,A0,数 据 线,IOR,

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

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报