第 3 章中断技术_第1页
第 3 章中断技术_第2页
第 3 章中断技术_第3页
第 3 章中断技术_第4页
第 3 章中断技术_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 中断技术本章首先介绍了中断系统的基本概念:中断、中断系统、中断响应过程、中断向量、中断优先权与中断嵌套,然后对8086CPU的中断系统进行了详细介绍,最后对8259A可编程中断控制器的原理及其应用做了重点讨论。3.1 中断及中断的处理过程3.1.1 中断与中断系统功能1. 中断基本概念中断是这样一个过程:当CPU内部或外部出现某种事件(中断源)需要处理时,中止正在执行的程序(断点),转去执行请求中断的那个事件的处理程序(中断服务程序),执行完后,再返回被暂时中止执行的程序(中断返回),从断点处继续执行。2. 中断系统及其作用、功能中断系统是实现中断功能的软、硬件的集合。整个中断过程由计

2、算机的中断系统配合用户设计的中断服务程序来实现。中断系统在微机中可以有以下作用: (1)实现并行处理;(2)实现实时处理;(3)实现故障处理。微机的中断系统应具有以下功能:(1)中断响应:当中断源有中断请求时,CPU能决定是否响应该请求。(2)断点保护和中断处理:在中断响应后,CPU能保护断点,并转去执行相应的中断服务程序。(3)中断优先权排队:当有两个或两个以上中断源同时申请中断时,应能给出处理的优先顺序,保证先执行优先级高的中断。(4)中断嵌套:在中断处理过程中,发生新的中断请求,CPU应能识别中断源的优先级别,在高级的中断源申请中断时,能中止低级中断源的服务程序,而转去响应和处理优先级较

3、高的中断请求,处理结束后再返回较低级的中断服务程序,这一过程称中断嵌套或多重中断。3.中断源及其分类在中断系统中能引起中断的事件称为中断源。中断源可以是外部事件(由CPU的中断请求信号引脚输入),也可以是CPU内部事件(由软件引起)。根据其用途分,一般有:(1)外部设备中断源,如中断传送接口外设,实时时钟等;(2)硬件故障中断源,如电源掉电;(3)软件中断源,如运算错、程序错、中断指令等。根据是否可屏蔽分为:(1)可屏蔽中断源:可通过指令确定CPU当前是否响应的(外部)中断源;(2)非屏蔽中断源:一旦发生,CPU必须响应的(外部)中断源。3.1.2中断工作过程中断工作过程,也叫中断过程或中断处

4、理过程,一般包含以下五个步骤:中断请求、中断判优、中断响应、中断处理以及中断返回。1. 中断请求由中断源发出中断请求信号,外部由硬件产生,内部由指令产生。2.中断判优如果有两个或两个以上中断源同时发出中断请求,要根据中断优先权,找出最高级别的中断源,首先响应其中断请求,处理完后再响应较低一级的中断源。如果中断源发出中断请求时,CPU正在执行中断服务程序,则应允许优先权高的中断源中断低一级的中断服务程序,实现中断嵌套。3.中断响应CPU接到外部可屏蔽中断请求信号后,在满足一定条件下,就进入中断响应周期。CPU响应外部可屏蔽中断的条件是:(1)接收到有效的中断请求信号;(2)CPU开放中断(对80

5、86CPU来讲,中断标志IF是“1”);(3)CPU执行完当前指令。CPU响应中断后,将自动完成以下处理:(1)关中断(8086CPU清IF)。因为CPU响应中断后,要进行必要的中断处理,在此期间不允许其它中断源来打扰。(2)断点保护。对于8086CPU来讲,是把断点地址CS和IP及标志寄存器FR自动压入堆栈。(3)形成中断入口地址。CPU响应中断后,根据判优逻辑提供的中断源标识,获得中断服务程序的入口地址,转向对应的中断服务程序。8086的中断响应周期占用2个总线周期,操作时序已在7.3.5详细讨论。4.中断处理中断处理也叫中断服务,是由中断服务程序完成的。中断服务程序一般应由以下几部分按顺

6、序组成:(1)保护现场:用入栈指令把中断服务程序中要用到的寄存器内容压入堆栈,以便返回后CPU能正确运行原程序,断点地址是由硬件自动保护的,不用在中断服务程序中保护。(2)CPU开放中断:以便执行中断服务时能响应高一级的中断请求,实现中断嵌套。需要注意的是:用STI指令开放中断时,是在STI指令的后一条指令执行完后,才真正开放中断。中断过程中,可以多次开放和关闭中断,但一般只在程序的关键部分才关闭中断,其它部分则要开放中断以允许中断嵌套。(3)中断服务程序:执行输入/输出或事件处理程序。(4)CPU关中断:为恢复现场做准备;(5)恢复现场:用出栈指令把保护现场时进栈寄存器内容恢复,注意应按先进

7、后出的原则与进栈指令一一对应。出栈后,堆栈指针也应恢复到进入中断处理时的位置。(6)CPU开放中断:保证返回后仍可响应中断。(7)中断返回: 8086CPU必须根据中断结束方式,发中断结束指令,并在最后用一条中断返回指令IRET。5.中断返回自动返回到断点地址,继续执行被中断的程序。对8086CPU也就是断点地址CS和IP自动出栈。值得注意的是,有些微处理器,如MC6800保护现场是由硬件自动完成的,而恢复现场,开中断、中断返回用一条返回指令IRET完成。9.1.3中断向量中断处理过程是中断系统按一定的步骤在硬件和软件的结合下完成的。当外部中断源共用一个中断请求引脚向CPU提出中断请求时,首先

8、是中断源的识别问题。中断源的识别可通过向量中断或中断查询来完成。中断查询方式是CPU在接到中断请求信号后响应中断,立即执行中断服务程序,在服务程序中首先查明哪个中断源在申请中断,再执行相应的中断服务程序段。该方法能同时实现中断优先权排队(先查询的优先),接口电路简单,但需要查询端口且处理滞后一步,影响了实时性。向量中断也叫矢量中断,是CPU响应中断时通过中断响应信号选通中断接口,中断接口将中断向量号送至数据总线,CPU通过它获知中断程序入口地址,转去执行该中断服务程序。IBM PC系列微机中正是采用这种方法。在向量中断中,每个中断服务程序都有一个确定的入口地址,该地址称为中断向量。3.2 中断

9、优先权与中断嵌套微机系统中有两个或二个以上中断源时,要按轻重缓急的顺序进行排列,分别给予不同的优先等级,在中断响应时按优先权排队次序进行处理。除了多个中断源同时申请中断需要排队外,中断嵌套时,也需要进行优先权排队,只有高一级的中断才可以中断较低级的中断服务程序。中断优先权排队,除了前述的中断查询方式用软件实现外,都要通过硬件来实现。硬件实现方法有两类:中断优先权电路和采用中断控制器。1.中断优先权电路菊花链式优先权电路中断优先权电路有菊花链式优先权电路,优先权编码电路等。下面主要以菊花链式优先权电路为例介绍。菊花链式优先权电路是获得中断优先权排队的一个简单的硬件方法,能处理多中断源同时申请中断

10、,也可以实现中断嵌套。其原理是在每个中断设备的接口电路中增加一个称为菊花链的逻辑电路,用于控制中断响应信号的传递,排在前面(靠近CPU)的设备优先权最高,其余依次降低。菊花链式优先权排队电路原理框图如图3.1,菊花链逻辑电路如图3.2。菊花链逻辑电路主要由两个逻辑与门组成(也可由逻辑或门组成),图中与门A的输入是(INT反相信号)和INTA(反相信号),其输出作为下一个接口的信号(高电平INTA)。与门B用于将INT信号和INTA信号相与后产生外设得到的中断响应信号。当多个接口同时发出中断请求信号时,中断请求信号送CPU的INTR端,如果满足中断响应条件,CPU发出中断响应信号,信号取反后变成

11、INTA信号,通过菊花莲传递,其原则是如果本接口无中断请求信号(INTi =0),信号将被传送至下一个与之相连的菊花链(为高电平INTA);如果该接口有中断请求信号(INTi =1),则将截获,不再传送给下一菊花链。因此在多个接口同时申请中断时,优先权最高的接口,获得中断响应和处理,其余接口由于没有收到信号,继续保持中断请求信号。只有接收到信号的外设才能把该外设的中断识别标志送CPU,实现向量中断,CPU据此执行为其服务的中断服务子程序。当中断服务子程序执行完后,由于排在其后的接口仍然保持有中断请求信号,因此又重复以上过程,直至最后一个中断请求信号被响应。2.可编程中断控制器可编程中断控制器是

12、微机中解决中断优先权管理最常用的方法,主要采取优先权编码器、寄存器和比较器解决中断优先权和中断嵌套问题,在3.3中将详细计论Intel公司的8259A可编程中断控制器的功能、结构、工作方式及编程。图3.1 菊花链式优先权排队电路原理框图图3.2 菊花链逻辑电路图中断响应设备 1接口设备 2接口设备 3接口菊花链逻辑电路INT1INTAINTR 总线控制逻辑INTiB&&1中断响应INTA 菊花链逻辑电路A1输出至下一个菊花链电路INT2INT313.3 80X86CPU的中断系统3.3.1 中断类型与中断优先级8086有一个简单而灵活的中断系统,采用向量型中断结构,可以处理多达

13、256个不同类型的中断请求。CPU的中断源有两类,内部中断和外部中断,外部中断又分为非屏蔽中断NMI和可屏蔽中断INTR。1.内部中断内部中断是由CPU内部事件引起的中断。如执行一条软件中断指令或单步中断标志TF为1时,执行任意一条指令,都可引起中断。因此内部中断也称软件中断,包括溢出中断、除法出错中断、单步中断、断点中断4个由内部硬件设置或自动引发的中断和指令设置的中断(内部软件中断)。(1)溢出中断溢出中断是在执行溢出中断指令INTO时,若溢出标志OF为1,产生一个向量号为4的内部中断。溢出中断为程序员提供一种处理算术运算出现溢出的方法,通常和带符号数的加、减法指令一起使用。(2)除法出错

14、中断除法出错中断是在执行除法指令(无符号数除法指令DIV或带符号数除法指令IDIV指令)时,若除数为0或商大于目的寄存器所能表达的范围(对带符号数,单字节数为-128+127,双字节数为-32768+32767,对无符号数,单字节数为0255,双字节数为065535,),产生一个向量号为0的内部中断。0型中断没有相应的中断指令,也不由外部硬件电路引起,故也称“自陷”中断。(3)单步中断单步中断是当单步中断标志TF为1时,在每条指令执行结束后,产生一个向量号为1的内部中断。在中断过程中,CPU自动把标志寄存器FR压入堆栈,然后把TF和IF清零,以正常方式工作,中断过程结束时,从堆栈中自动弹出标志

15、寄存器FR的内容,TF恢复为1,又恢复单步中断工作方式。单步中断是为调试程序而设置的。如DEBUG中的跟踪命令,就是将TF置1。8086没有直接对TF置1或清0的命令,可修改存放在堆栈中标志内容,再通过POPF指令改变TF的值。(4)断点中断断点中断是指令中断中的一个特殊的单字节INT3指令中断,执行一个INT3指令,产生一个向量号为3的内部中断。断点中断常用于设置断点,停止正常程序的执行,转去执行某种类型的特殊处理,用于调试程序。(5)指令中断指令中断是执行INT n时,产生一个向量号为n的内部中断,为两字节指令,INT3除外。INT n主要用于系统定义或用户自定义的软件中断,如BIOS功能

16、调用和DOS功能调用。内部中断向量号除指令中断由指令指定外,其余都是预定好的,因此都不需要传送中断向量号,也不需要中断响应周期。2.外部中断外部中断也叫硬件中断,是CPU外部中断请求信号引脚上输入有效的中断请求信号引起的,分为非屏蔽中断NMI和可屏蔽中断INTR二种。(1)非屏蔽中断NMI非屏蔽中断NMI是由NMI引脚上输入有效的中断请求信号引起的一个向量号为2的中断。NMI用来通知CPU发生了致命性事件,如电源掉电、存储器读写错、总线奇偶位错等。NMI是不可用软件屏蔽的,而且是上升沿触发的,中断类型号预定为2,不需要中断响应周期。在IBM PC系列机中,NMI用于处理存储器奇偶校验错、I/O

17、通道奇偶校验错以及8087协处理器异常中断等。(2)可屏蔽中断INTRCPU的INTR引脚通常由8259A PIC的INT输出信号驱动,8259A又与需要请求中断的外设相连。在外设发出中断请求信号时8259A根据优先权和屏蔽状态,决定是否发出INT信号。外设的中断请求信号必须在中断请求信号被接受前保持有效。而CPU对INTR信号是在每条指令的最后一个时钟周期采样的。接到有效的INTR信号后,CPU是否响应该中断请求,取决于中断允许标志位IF的状态。若IF=1,CPU开放中断,则响应,否则不响应。因此,要响应INTR的中断请求,CPU必须开放中断。8086设有对中断标志位IF置1或清0的指令,S

18、TI指令给IF置1,CPU开中断;CLI指令给IF清0,CPU关中断。除了CPU开、关中断之外,外设的中断请求是否被传送到CPU还受到中断控制器的控制,如8259A设有中断屏蔽寄存器,可对接于其上的每一个外设的中断请求屏蔽或开放,有选择地允许中断响应。中断屏蔽寄存器的内容可以由CPU通过命令写入。如果出现中断嵌套的情况,只有满足中断嵌套条件才能发出中断请求信号。8086的中断优先级由高到低依次为软件中断(单步中断除外)、非屏蔽中断NMI、可屏蔽中断INTR、单步中断。3.3.2 中断向量表8086中断系统采用的是向量型中断方式,每个中断源都有一个为它服务的中断服务程序。8086最多能管理256

19、个中断,统一编号为0-255,称为中断类型号或中断向量号,是识别中断源的唯一标志。每一个中断服务程序都有一个确定的入口地址,该地址称为中断向量。把系统中所有中断向量集中起来,按中断类型号从小到大的顺序存放到存储器的某一区域内,这个存放中断向量的存储区叫做中断向量表,亦即中断入口地址表。8086系统中,在内存的最低1KB(00000H-003FFH)地址范围建立了一个中断向量表,如表3.1所示,每个中断向量占用4个存储单元,4个单元中的前2个单元存放的是中断服务程序所在段内的偏移量(IP的内容,16位地址),低位字节存放在低地址,高位字节存放在高地址;后2个单元存放的是中断服务程序所在段的段基地

20、址(CS的内容,16位地址),存放方法与前2个单元相同。CPU响应中断时,从中断向量表中查出中断向量地址,再从该地址中取出内容分别装入IP和CS,从而转去执行相应的中断服务程序。中断向量在表中的位置称为中断向量地址,中断向量地址与中断类型号的关系为:中断向量地址(首地址)=中断类型号*4表3.1 8086CPU中断向量表存储器地址(中断向量地址)存储器内容(中断向量)对应中断类型号00000H中断服务程序入口偏移地址低8位000001H中断服务程序入口偏移地址高8位00002H中断服务程序入口段基址低8位00003H中断服务程序入口段基址高8位00004H中断服务程序入口偏移地址低8位1000

21、05H中断服务程序入口偏移地址高8位00006H中断服务程序入口段基址低8位00007H中断服务程序入口段基址高8位.003F8H中断服务程序入口偏移地址低8位254003F9H中断服务程序入口偏移地址高8位003FAH中断服务程序入口段基址低8位003FBH中断服务程序入口段基址高8位003FCH中断服务程序入口偏移地址低8位255003FDH中断服务程序入口偏移地址高8位003FEH中断服务程序入口段基址低8位003FFH中断服务程序入口段基址高8位中断向量表中,类型号04已由系统定义,不允许用户做修改;类型号531是系统备用中断,是为软硬件开发保留的,一般也不允许改为它用;类型号3225

22、5,供用户自由应用。从类型号5开始,其中断类型可以是双字节INT n指令中断,也可以是INTR的硬件中断。专为IBM PC机开发的基本输入输出系统BIOS中断调用占用10H1AH共11个中断类型号,如INT 10H为屏幕显示调用,INT 13H为磁盘I/O调用,INT 16H为键盘输入调用,INT 1AH为时钟调用等,就是双字节指令中断,这些中断为用户提供直接与I/O设备交换信息又不必了解设备硬件接口的一系列子程序。DOS中断占用20H3FH共32个中断类型号(其中A0BBH和30H3FH为DOS保留类型号),如DOS系统功能调用(INT 21H)主要用于对磁盘文件的存储管理。对于系统定义的中

23、断,如BIOS中断调用和DOS中断调用,在系统引导时就自动完成了中断向量表中断向量的装入,也即中断类型号对应中断服务程序入口地址的设置。而对于用户定义的中断调用,除设计好中断服务程序外,还必须把中断服务程序入口地址放置到与中断类型号相应的中断向量表中,具体方法有:(1)在程序设计时定义如下格式的数据段:内部中断?NMI?INTR?TF=1?结束当前指令执行下一条指令否否否否是是是是IF=1?否取中断类型号是标志入栈CPU自动形成中断类型号CPU自动形成中断类型号02图3.3 8086CPU响应中断的流程清除IF和TFCS和IP入栈进入中断处理程序中断服务弹出IP和CS弹出标志IRET返回断点保

24、护现场恢复现场VECDATA SEGMENT AT 0 ;设置段基址为0ORG N*4 ;中断向量地址=类型号*4VINTSUB DW OFFSET RKDZ ;取中断服务程序RKDZ的偏移地址DW SEG RKDZ ;取中断服务程序RKDZ的段基地址 : :VECDATA ENDS其中,N为中断类型号,RKDZ为对应的中断服务程序入口地址(符号地址)。(2)用数据传送指令来设置,如: MOV AX,0MOV ES,AXMOV BX,N*4MOV AX,OFFSET RKDZ ;取中断服务程序的偏移地址MOV ES:WORD PTR BX,AXMOV AX,SEG RKDZ ;取中断服务程序的

25、段基地址MOV ES:WORD PTR BX+2,AX(3)利用DOS功能调用来实现INT21H的25H号功能为设置中断向量,具体方法是在执行INT 21H前预置AH为25H,AL为要设置的中断类型号,DS:DX中预置中断向量,执行INT 21H即可。9.2.3 CPU响应中断的流程8086响应中断的流程如图3.3。由图可见8086响应中断可分为四个阶段。1.中断请求与响应阶段CPU在每条指令执行的最后一个机器周期采样中断请求信号,在执行完当前指令后,进入是否响应中断的判断流程,如果是内部中断或NMI非屏蔽中断,CPU自动形成中断类型号,如果是INTR可屏蔽中断,进入中断响应周期,从数据总线获

26、取中断类型号。2.中断自动处理阶段标志寄存器FR入栈,令TEMP=TF,暂存TF的状态, IF和TF清0,CS和IP入栈,根据中断类型号查中断向量表,这些都是硬件自动完成的。3.中断服务阶段主要是执行相应的中断服务程序,所做的处理视应用场合而定,如外设的中断服务程序,主要是传递信息,而软件启动的中断服务程序则主要为系统中其它程序服务。4.中断返回当执行到IRET指令时,自动弹出IP和CS以及标志寄存器FR,返回中断前的程序位置,执行下一条指令。3.4 8259A可编程中断控制器8259A可编程中断控制器(Programmable Interrupt Controller)是用于系统中断管理的专

27、用芯片,在IBM PC系列微机中,都使用了8259A,但从80386开始,8259A都集成在外围控制芯片中。3.4.1 8259A的功能8259A有强大的中断管理功能,主要体现在:(1)具有8级优先权,并可通过级联扩展至64级;(2)可通过编程屏蔽或开放接于其上的任一中断源;(3)在中断响应周期能自动向CPU提供可编程的标识码,如8086的中断类型号;(4)可编程选择各种不同的工作方式。此外,8259A不仅有各种不同的向量中断工作方式,也能实现查询中断方式。在查询中断方式下,优先权的设置与向量中断方式时一样。在CPU对8259A进行查询时,8259A把状态字送CPU,指出请求服务的最高优先权级

28、别,CPU据此转移到相应的中断服务程序段。3.4.2 8259A的内部结构与引脚信号1.8259A的内部结构8259A的内部结构框图如图3.4。8259A由8个功能模块组成:(1)中断请求寄存器(IRR)IRR用于存放从外设来的中断请求信号IR0IR7,是一个具有锁存功能的8位寄存器。IRR具有上升沿触发和高电平触发两种触发方式,但无论采用那种触发方式,中断请求信号(IR0IR7)都必须保持到第一个中断响应周期INTA信号有效,否则会丢失。2)中断屏蔽寄存器(IMR)IMR用于存放对应中断请求信号的屏蔽状态,也是一个8位寄存器,对应位为1,表示屏蔽该中断请求,对应位为0,表示开放该中断请求。I

29、MR可通过屏蔽命令,由编程来设置。(3)优先级比较器(PR)PR用于管理、识别各中断源的优先级别。各中断源的优先级别通过编程确定优先权方式来定义和修改,中断过程中自动变化。当有多个中断请求同时出现时,选出其中最高中断级的中断请求。当出现中断嵌套时,将新的中断请求与ISR中正在服务的中断源的优先权进行比较,若高于ISR中的中断级,则发出INT,中止当前的中断处理程序,转而处理该中断,并在中断响应时,把ISR中相应位置位。反之,不发INT信号。数据总线缓冲器读/写逻辑级连缓冲/比较器控 制 逻 辑INTA INT当前在服务寄存器(ISR)优先权比较电路(PR)中断请求寄存器(IRR)中 断 屏 蔽

30、 寄 存 器(IMR)内部总线D7D0RDWRA0CSCAS0CAS1CAS2CAS2SP/EN图3.4 8259A的内部结构框图IR0IR1IR2IR3IR4IR5IR6IR7(4)中断在服务寄存器(ISR)ISR用于寄存所有正在被服务的中断源,是一个8位寄存器,对应位为1,表示对应的中断源正在被处理。ISR中的位是在8259A接到第一个中断响应周期的信号后自动置位的,与此同时,相应的IRR位复位。ISR位的复位,在AEOI方式时是自动实现的(在第二个中断响应周期的信号到来后),其他工作方式,是通过中断结束命令EOI实现的。一般情况下,ISR只有1位为1,只有中断嵌套时,有多个ISR位为1,

31、其中优先权为最高的位是正在服务的中断源的对应位。(5)控制逻辑控制逻辑根据PR的请求,向CPU发出INT信号,同时接收CPU发来的信号,并将它转换为8259A内部所需的各种控制信号,完成相应处理,如置位相应的ISR位,复位相应的IRR位,清除INT信号;在第二个中断响应周期把中断类型号放到数据总线上。(6)读/写逻辑读/写逻辑接收CPU的读/写命令,并把CPU写入的内容存入8259A内部(属读/写逻辑)相应的端口寄存器中,或把端口寄存器(如状态寄存器)的内容送数据总线。(7)数据总线缓冲器数据总线缓冲器用于8259A内部总线和CPU数据总线之间的连接,是一个三态8位双向缓冲器。8259A可通过

32、此数据总线缓冲器直接与数据总线相连(如单片8259A采用非缓冲工作方式时),也可通过外接数据总线缓冲器与数据总线相连(如采用缓冲工作方式时)。(8)级连缓冲/比较器该电路用于多片8259A的级联。级联应用时,8259A一片主片最多可接8片从片,扩展到64级中断。连接时,从片的INT信号接主片的IR0IR7之一,并确定了在主片中的优先级,从片的IR0IR7接外设的中断请求信号,最终确定了64个优先级。2.8259A的引脚信号8259A是28脚DIP封装的芯片,引脚排列如图3.5。引脚信号可分为四组。(1)与CPU总线相连的信号D7D0:双向三态数据线,与CPU数据总线直接相连或与外部数据总线缓冲

33、器相连。、:读、写命令信号线,与CPU的读、写信号相连。:片选信号线,通常接CPU高位地址总线或地址译码器的输出。INT: 中断请求信号输出端。用于向CPU发出中断请求信号。:中断响应输入信号。用于接收CPU发出的中断响应信号。A0:地址线,通常接CPU低位地址总线,如8088系统中接CPU地址总线A0,8086系统中接CPU地址总线A1.A0=0是偶地址,A0=1是奇地址,该地址线与、信号配合,可读写8259A内部相应的寄存器,如表3.2。VCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GN

34、D图3.5 8259A引脚排列图(2)与外部中断设备相连的信号IR7IR0:与外设的中断请求信号相连,通常IR0优先权最高,IR7优先权最低,按序排列。表3.2 8259A寄存器读写地址表A0RDWR地址(奇、偶)功能备注010偶地址写ICW1、OCW2、OCW3CS应有效(低电平)001偶地址读查询字、IRR、ISR110奇地址写ICW2、ICW3、ICW4、OCW1101奇地址读IMRx11数据总线为高组态(3)级连信号:级连信号线,主片为输出,从片为输入,与/配合,实现级连。/:主从/允许缓冲线。在缓冲工作方式中,用做输出信号,以控制总线缓冲器的接收和发送()。在非缓冲工作方式中,用作输

35、入信号,表示该8259A是主片(=1)或从片(=0)。(4)其它VCC:接+5V电源。GND:地线。3.8259A的工作流程8259A的工作流程如下:(1)中断源产生中断请求,使8259A 的IRR相应位置1;(2)经IMR屏蔽电路处理后(IRR AND ),送PR;(3)PR检测出最高的中断请求位,并经过嵌套处理,决定是否发出INT信号;(4)若可发INT信号,则控制逻辑将INT信号送CPU的INTR引脚;(5)若CPU开中断,则在执行完当前指令后,CPU进入中断响应周期,发出两个中断响应信号;(6)8259A在收到第一个中断响应信号后,控制逻辑使相应的ISR位置1,相应的IRR位清0;(7

36、)8259A在收到第二个中断响应信号后,控制逻辑将中断类型号送数据总线。若8259A工作在AEOI(自动中断结束)模式,则使相应的ISR位清0。(8)CPU读取该中断类型号后,查中断向量表,转去执行相应的中断服务程序。注意,这里的中断结束,是指将8259A的ISR对应位复位,而不是结束用户的中断服务程序,中断服务程序要执行IRET指令后才能结束。3.4.3 8259A的工作方式8259A有多种工作方式,可通过编程来设置,以灵活地适用于不同的中断要求。8259A的工作方式分为三类:中断触发方式,中断优先权管理方式,连接系统总线的方式。其中,中断优先权管理方式是工作方式的核心,包括中断屏蔽方式、设

37、置优先级方式和中断结束方式。1.中断触发方式(1)上升沿触发方式上升沿触发方式,是指中断请求输入端IRi出现由低电平到高电平的跳变时为有效的中断请求信号这样一种中断触发方式。其优点是IRi端只在上升沿申请一次中断,故该端一直可以保持高电平而不会误判为多次中断申请。该方式由初始化命令字ICW1的D3位置0来设置。(2)电平触发方式电平触发方式,是指中断请求输入端IRi出现高电平时,即为有效的中断请求信号这样一种中断触发方式。使用该方式应注意,在CPU响应中断后(ISR相应位置位后),必须撤消IRi上的高电平,否则会发生第二次中断请求。该方式由初始化命令字ICW1的D3位置1来设置。2.中断屏蔽方

38、式(1)普通屏蔽方式按IMR给出的结果,屏蔽或开放该级中断,同时允许高级的中断源中断低级的中断服务程序,不允许同级的中断源或低级的中断源中断目前正在执行的中断服务程序,这样一种工作方式称普通屏蔽方式。普通屏蔽方式通过写入屏蔽字OCW1来设置,OCW1的内容存放在IMR中,对应位为1,屏蔽该中断,对应位为0,开放该中断。(2)特殊屏蔽方式与普通屏蔽方式不同,特殊屏蔽方式在执行较高级的中断时,开放所有未被屏蔽的中断,包括较低级的中断这样一种工作方式。采用特殊屏蔽方式时,在用屏蔽字OCW1对IMR中的某一位置1时,同时使ISR对应位清0,这样在执行中断服务程序过程中,通过对本级中断源的屏蔽,可开放所

39、有未被屏蔽的中断。特殊屏蔽方式,通过在中断服务程序中将操作命令字OCW3的D6D5位设置为11进入,要开放所有未被屏蔽的中断,需要接下来将屏蔽字OCW1设置为对本级中断源屏蔽。若要退出特殊屏蔽方式,则要通过在中断服务程序中将操作命令字OCW3的D6D5位设置为10来实现。3.优先级设置方式(1)普通全嵌套方式该方式是8259A最常用的方式,简称全嵌套方式。8259A初始化后未设置其它优先级方式,就按该方式工作,所以普通全嵌套方式是8259A的缺省工作方式。普通全嵌套方式下,IR7IR0优先级由低到高按序排列,且只允许高级的中断源中断低级的中断服务程序。在该方式下,一定要预置AEOI=0,使中断

40、结束处于正常方式。否则,低级的中断源也可能打断高级的中断服务程序,使中断优先级次序发生错乱,不能实现全嵌套。(2)特殊全嵌套方式特殊全嵌套方式与普通全嵌套方式相比,不同点在于执行中断服务程序时不但要响应比本级高的中断源的中断申请,而且要响应同级别的中断源的中断申请。特殊全嵌套方式一般适用于8259A级连工作时主片采用,主片采用特殊全嵌套工作方式,从片采用普通全嵌套工作方式可实现从片各级的中断嵌套。在该方式下,也要预置AEOI=0。在特殊全嵌套方式中,对主片的中断结束操作,应检查是否是从片的唯一中断,否则,不能给主片发EOI命令,以便从片能实现嵌套工作,只有从片中断服务全部结束后,才能给主片发E

41、OI命令。优先级设置方式的普通/特殊全嵌套是通过初始化命令字ICW4的D4位来控制的,D4位为0是普通全嵌套方式,D4位为1是特殊全嵌套方式。(3)优先权自动循环方式优先权自动循环方式,在给定初始优先顺序IR7IR0由低到高按序排列后,某一中断请求得到响应后,其优先权降到最低,比它低一级的中断源优先级最高,其余按序循环。如IR0得到服务,其优先权变成最低,IR1IR7优先级由高到低按序排列。使用优先权循环方式,每个中断源有同等的机会得到CPU的服务。通过把操作命令字OCW2的D7D6位置为10可得到该工作方式。(4)优先权特殊循环方式优先权特殊循环方式与优先权自动循环方式相比,不同点在于它可以

42、通过编程指定初始最低优先级中断源,使初始优先级顺序按循环方式重新排列。如指定IR3优先级最低,则IR4优先级最高,初始优先级顺序为IR3、IR2、IR1、IR0、IR7、IR6、IR5、IR4由低到高排列。通过把操作命令字OCW2的D7D6位置为11可得到该工作方式。同时,OCW2的D2D1D0位指明了最低优先级输入端。4.中断结束处理方式当中断服务结束时,必须给8259A的ISR相应位清0,表示该中断源的中断服务已结束,使ISR相应位清0的操作称中断结束处理。中断结束处理方式有两类:自动结束方式(AEOI)和非自动结束方式(EOI),而非自动结束方式(EOI)又分为一般中断结束方式和特殊中断

43、结束方式。(1)自动结束方式(AEOI)当某级中断被CPU响应后,8259A在第二个中断响应周期的信号结束后,自动将ISR中的对应位清0。该方式是最简单的一种中断结束处理方式,但只适应于有一块8259A且没有中断嵌套的系统,因为ISR中的对应位清0后,所有未被屏蔽的中断源均已开放,同级或低级的中断申请都可被响应。该方式通过初始化命令字ICW4的D1位置1来设置。(2)一般的中断结束方式该方式通过在中断服务程序中设置EOI命令,使ISR中的级别最高的那一位清0。只适用于全嵌套方式,因为该方式中ISR中的级别最高的那一位就是当前正在处理的中断源的对应位。该方式通过初始化命令字ICW4的D1位清0,

44、同时将OCW2的D7D6D5设置为001来实现。(3)特殊的中断结束方式该方式与一般的中断结束方式相比,区别在于发中断结束命令的同时,用软件方法给出结束中断的中断源是那一级的,使ISR的相应位清0 。适用于任何非自动中断结束的情况。该方式通过初始化命令字ICW4的D1位清0,同时将OCW2的D7D6D5设置为011来实现,D2D1D0位给出结束中断处理的中断源号。5.连接系统总线方式(1)缓冲方式每片8259A都通过总线驱动器与系统数据总线相连,适用于多片8259A级连的大系统中。该方式通过初始化命令字ICW4的D3位置1来设置。8259A主片的/端输出低电平信号,作为总线驱动器的启动信号,接

45、总线驱动器的端。从片的/端接地。(2)非缓冲方式每片8259A都直接和数据总线相连,适用于单片或片数不多的8259A组成的系统中。该方式通过初始化命令字ICW4的D3位清0来设置。在非缓冲方式时,单片8259A的/端接高电平,级连8259A的主片的/端接高电平,从片的/端接低电平。6.程序查询方式以上所述,都是8259A的向量工作方式。但8259A不仅可工作在向量中断工作方式,也可以工作在查询中断工作方式。在查询工作方式下,8259A不发INT信号,CPU也不开放中断,CPU通过不断查询8259A的状态,当查到有中断请求时,就根据它提供的信息转入相应的中断服务程序。设置查询方式的方法是:CPU

46、关中断(IF=0),写入OCW3查询方式字(OCW3的D2位为1),然后执行一条输入指令,8259A便将一个查询字送到数据总线上。查询字中,D7=1表示有中断请求,D2D1D0表示8259A请求服务的最高优先级是那一位。如果OCW3的D2D1位=11时,表示既发查询命令,又发读命令,执行输入指令时,首先读出的是查询字,然后读出的是ISR(或IRR)。查询方式时,不需执行中断响应周期,不用设置中断向量表,响应速度快,占用空间少。3.4.4 8259A的级联是要否写ICW1 写ICW2级连? 写ICW3ICW4?写ICW4初始化结束否图3.6 8259A的初始化流程图微机系统中,可以使用多片825

47、9A级连,使中断优先级从8级扩大到最多64级。级连时,只能有一片8259A为主片,其余都是从片,从片最多8片。主片8259A的CAS2CAS0作为输出线,可直接或通过驱动器连接到从片的CAS2CAS0,每个从片的INT连接到主片的IR7IR0中的一个,主片的INT端连CPU的INTR端。8259A缓冲方式和非缓冲方式下其它信号线的连接如9.3.3所述。在主从式级连系统中主片和从片都必须通过设置初始化命令字进行初始化,通过设置工作方式命令字设置工作方式。在主从式级连系统中,当从片中任一输入端有中断请求时,经优先权电路比较后,产生INT信号送主片的IR输入端,经主片优先权电路比较后,如允许中断,主

48、片发出INT信号给CPU的INTR引脚,如果CPU响应此中断请求,发出信号,主片接收后,通过CAS2CAS0输出识别码,与该识别码对应的从片则在第二个中断响应周期把中断类型号送数据总线。如果是主片的其它输入端发出中断请求信号并得到CPU响应,则主片不发出CAS2CAS0信号,主片在第二个中断响应周期把中断类型号送数据总线。3.3.5 8259A的控制字与初始化编程8259A有两种控制字:初始化字和操作命令字,可对它进行初始化及工作方式设定,8259A的编程也可分为两部分,即初始化编程和工作方式编程。8259A的初始化字有4个:ICW1ICW4,用于初始化,操作命令字有3个:OCW1OCW3,用

49、于设定8259A的工作方式及发出相应的控制命令。初始化命令字通常是计算机系统启动时由初始化程序设置的,一旦设定,在工作过程中一般不再改变。操作命令字由应用程序设定(如设备的中断服务程序),用于中断处理过程的动态控制,可多次设置。8259A的初始化流程如图3.6。1.8259A初始化与初始化命令字(ICW)下面对ICW各字的格式和应用进行讨论。(1)初始化字ICW1初始化字ICW1,也称芯片控制字,是8259A初始化流程中写入的第一个控制字。ICW1写入后,8259A内部有一初始化过程,故ICW1称初始化字。初始化过程的主要动作有:顺序逻辑复位,准备按ICW2、ICW3、ICW4的确定顺序写入;

50、清除ISR和IMR;指定IR7IR0由低到高的固定优先级顺序;从片方式地址置为7(对应IR7);设定为普通屏蔽方式;设定为EOI方式;状态读出电路预置为IRR。ICW1的格式如下: A0 D7 D6 D5 D4 D3 D2 D1 D001LTIMADISNGLICW4A0=0表示ICW1必须写入偶地址端口。D0:用于控制是否在初始化流程中写入ICW4,D0=1要写ICW4,D0=0不要写ICW4,8086/8088系统中D0必须置1。D1:用于控制是否在初始化流程中写入ICW3,D1=1不要写ICW3,表示本系统中仅使用了一片8259A,D0=0要写ICW3,表示本系统中使用了多片8259A级

51、连。D2:对8086/8088系统不起作用,对8098单片机系统,用于控制每两个相邻中断处理程序入口地址之间的距离间隔值。D3:用于控制中断触发方式,D3=0选择上升沿触发方式,D3=1选择电平触发方式。D4:是特征位,必须为1。D7D5:对8086/8088系统不起作用,一般设定为0。(2)中断向量字ICW2中断向量字ICW2是8259A初始化流程中必须写入的第二个控制字,用于设置中断类型号,格式如下: A0 D7 D6 D5 D4 D3 D2 D1 D01T7T6T5T4T3A0=1表示ICW2必须写入奇地址。D7D3:由用户根据中断向量在中断向量表中的位置决定。D2D0:是中断源挂接的I

52、R端号,如挂接在IR7端为111,挂接在IR6端为110,余类推,此三个编码不由软件确定。例如若CPU写入某8259A的ICW2为40H,则连接到该8259A的IR5端的中断源的中断类型号为45H,中断类型号确定后,中断源挂接的IR端号以及D7-D3的值也就决定了。如果已知中断向量地址,除以4即可得中断向量号。(3)级连控制字ICW3在级连系统中,主片和从片都必须设置ICW3,但两者的格式和含义有区别。主片ICW3的格式如下: A0 D7 D6 D5 D4 D3 D2 D1 D01A0=1表示ICW3必须写入奇地址端口。D7D0:表示对应的IR端上有从片(对应位为1)或无从片(对应位为0),如

53、IR5上挂接有从片,D5=1,若其它端无从片,则主片的ICW3=20H。从片ICW3的格式如下: A0 D7 D6 D5 D4 D3 D2 D1 D01ID2ID1ID0A0=1表示ICW3被写入奇地址。D7D3:不用,常取0。D2D0:为从片的识别码,编码规则同ICW2。例如,若某从片的INT输出接到主片的IR5端,则该从片的ICW3=05H。(4)中断方式字ICW4ICW4主要用于控制初始化后即可确定并且不再改变的8259A的工作方式,格式如下: A0 D7 D6 D5 D4 D3 D2 D1 D01000SFNMBUFM/SAEOIPMA0=1表示ICW4必须写入奇地址端口。D0:系统选择,为1选择8086/8088,为0选择8080/8085。D1:结束方式选择,为1自动结束(AEOI),为正常结束(EOI)。D2:此位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论