ch07 微型计算机的中断系统_第1页
ch07 微型计算机的中断系统_第2页
ch07 微型计算机的中断系统_第3页
ch07 微型计算机的中断系统_第4页
ch07 微型计算机的中断系统_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1、第七章第七章 微型计算机的中断系统微型计算机的中断系统7.1 中断系统的基本概念中断系统的基本概念n7.1.1 中断的基本概念中断的基本概念 中断服务程序中断服务程序1中断服务程序中断服务程序 2非预料事件非预料事件1非预料事件非预料事件 2CPU执行流程执行流程断点断点断点断点1、基本概念、基本概念n中断源:引起中断发生的内部或外部事件中断源:引起中断发生的内部或外部事件n中断类型号:中断类型号: 每个中断源唯一的一个编号每个中断源唯一的一个编号n断点:该程序中即将执行,由于中断没有被执断点:该程序中即将执行,由于中断没有被执行的那条行的那条指令的地址指令的地址称为中断断点,简称断点称为中断

2、断点,简称断点。包括段地址和偏移地址。包括段地址和偏移地址。n中断服务程序:处理中断事件的程序段中断服务程序:处理中断事件的程序段2、中断系统的功能、中断系统的功能n中断系统是指实现中断功能的软、硬件的集合中断系统是指实现中断功能的软、硬件的集合。具有以下功能:。具有以下功能: q能实现中断响应、中断服务及中断返回。能实现中断响应、中断服务及中断返回。 q能实现中断优先权排队。能实现中断优先权排队。 q能实现中断嵌套。能实现中断嵌套。 3、计算机系统的性能、计算机系统的性能n并行处理能力并行处理能力 q实现实现CPU和多个外设同时工作,提高和多个外设同时工作,提高CPU效率。效率。n实时处理能

3、力实时处理能力 q计算机应用于实时控制时,对外部事件及时响应计算机应用于实时控制时,对外部事件及时响应n故障处理能力故障处理能力q及时处理故障,不影响其他程序的运行。及时处理故障,不影响其他程序的运行。n多任务运行多任务运行 q在操作系统的调度下,运行在操作系统的调度下,运行 多个任务,任务间交多个任务,任务间交替运行替运行中断源发出中断请求信号中断源发出中断请求信号对申请中断的中断源进行优先级判别对申请中断的中断源进行优先级判别的过程称为中断判优。的过程称为中断判优。从请求有效到转中断服务程序入口地从请求有效到转中断服务程序入口地址这一段时间。实现程序的切换。址这一段时间。实现程序的切换。中

4、断程序的主体。中断程序的主体。使原来在中断响应过程中的断点地址使原来在中断响应过程中的断点地址和标志寄存器中的内容,依次从堆栈中弹出,以和标志寄存器中的内容,依次从堆栈中弹出,以便继续执行原来的程序。便继续执行原来的程序。4、中断过程、中断过程(1)中断请求)中断请求n可由内部标志或指令引起;也可由外部电路引可由内部标志或指令引起;也可由外部电路引起起(2)中断判优)中断判优n有多个中断源同时提出中断请求时,有多个中断源同时提出中断请求时,CPU应按应按照中断源的轻重缓急按次序响应中断。先响应照中断源的轻重缓急按次序响应中断。先响应优先级高的请求,后响应优先级低的请求。优先级高的请求,后响应优

5、先级低的请求。q软件查询优先权排队法软件查询优先权排队法n执行程序按照顺序逐位查询中断请求寄存器的状态,查询执行程序按照顺序逐位查询中断请求寄存器的状态,查询的顺序决定了优先级的高低的顺序决定了优先级的高低q硬件优先权判别法硬件优先权判别法n菊花链法菊花链法将每个接口串连起来,离将每个接口串连起来,离CPU近的优先级近的优先级高高n“向量向量”优先权排队电路优先权排队电路由专用的中断控制器管理优由专用的中断控制器管理优先级先级(3)中断响应)中断响应n从从CPU接收到中断请求,到转去执行中断服务接收到中断请求,到转去执行中断服务程序之间的过程就是中断响应。程序之间的过程就是中断响应。 nCPU

6、实现从当前正在执行的程序到中断服务程实现从当前正在执行的程序到中断服务程序的切换序的切换n由硬件完成关中断、保存断点、取中断服务程由硬件完成关中断、保存断点、取中断服务程序入口地址等一系列中断响应操作。序入口地址等一系列中断响应操作。 (4)中断服务(处理)中断服务(处理)1 1保护现场保护现场保护现场实质:将重要信息压入堆栈。保护现场实质:将重要信息压入堆栈。2 2开中断开中断目的:开放所有可屏蔽中断,以允许高级中断嵌套目的:开放所有可屏蔽中断,以允许高级中断嵌套3 3执行中断服务程序执行中断服务程序中断服务程序主体中断服务程序主体- -中断的目的。中断的目的。4 4关中断关中断目的:关中断

7、以确保可靠有效地恢复现场目的:关中断以确保可靠有效地恢复现场。5 5恢复现场恢复现场恢复现场实质:将原来压入堆栈中的内容弹出来。恢复现场实质:将原来压入堆栈中的内容弹出来。7.2 8086CPU中断系统中断系统指令中断指令中断INTnINTn异常中断异常中断包括:包括:失效异常失效异常陷井异常陷井异常中止异常中止异常内部内部异常异常中断中断微微处处理理器器中中断断逻逻辑辑INTRNMIIRQ0IRQ0IRQ1IRQ1IRQ2IRQ2:IRQ15IRQ15不可屏蔽中断不可屏蔽中断可屏蔽可屏蔽中断中断外部中断外部中断控制器控制器外部外部硬件硬件中断中断7.2.1 8086中断的分类中断的分类1、外

8、部中断、外部中断l不可屏蔽中断不可屏蔽中断(NMI):(NMI):中断类型号为中断类型号为2 2号号含义:含义:不能用软件来控制是否允许中断的一种外部中断。不能用软件来控制是否允许中断的一种外部中断。常见常见NMINMI中断中断有:有:(1 1)电源掉电)电源掉电 (2 2)存储器检验出错)存储器检验出错(3 3)总线奇偶错等。)总线奇偶错等。l可屏蔽中断可屏蔽中断(INTR):(INTR):含义:含义:可用软件控制是否允许中断的外部中断。即可用软件控制是否允许中断的外部中断。即STISTI使使IF=1IF=1,允许,允许中断;中断;CLICLI使使IF=0IF=0,禁止中断。,禁止中断。常见

9、常见INTRINTR中断中断有:有:所有外部设备中断如键盘、鼠标、打印机、显示器、声卡、所有外部设备中断如键盘、鼠标、打印机、显示器、声卡、CD-CD-ROMROM等。等。2、内部中断、内部中断n内部中断是由于内部中断是由于8086内部执行程序出现异常内部执行程序出现异常引起引起的程序中断的程序中断n利用内部中断,微处理器为用户提供了发现利用内部中断,微处理器为用户提供了发现、调试并解决程序执行时异常情况的有效途、调试并解决程序执行时异常情况的有效途径径n例如,例如,ROM-BIOS和和DOS系统利用内部中断系统利用内部中断为程序员提供了各种功能调用为程序员提供了各种功能调用内部中断的中断类型

10、号已定内部中断的中断类型号已定 除法错中断除法错中断n在执行除法指令时,若除数为在执行除法指令时,若除数为0或商超过了寄或商超过了寄存器所能表达的范围,则产生一个向量号为存器所能表达的范围,则产生一个向量号为0的内部中断,称为除法错中断的内部中断,称为除法错中断例如:例如:mov bl,0idiv bl;除数;除数BL0,产生除法错中断,产生除法错中断mov ax,200hmov bl,1div bl;商;商200H,不能用,不能用AL表达表达;产生除法错中断;产生除法错中断 指令中断指令中断n在执行中断调用指令在执行中断调用指令INT n时产生的一个向量时产生的一个向量号为号为n(0 255

11、)的内部中断,称为指令中)的内部中断,称为指令中断断n其中向量号为其中向量号为3的指令中断比较特别(生成一的指令中断比较特别(生成一个字节的指令代码:个字节的指令代码:11001100),常用于程),常用于程序调试,被称为断点中断序调试,被称为断点中断例如:例如:DEBUG.EXE调试程序的运行命令调试程序的运行命令G设置设置的断点,就是利用的断点,就是利用INT 3指令实现的指令实现的 溢出中断溢出中断n在执行溢出中断指令在执行溢出中断指令INTO时,若溢出标志时,若溢出标志OF为为1,则产生一个向量号为,则产生一个向量号为4的内部中断,的内部中断,被称为溢出中断被称为溢出中断例如:例如:m

12、ov ax,2000hadd ax, 7000h;2000H7000H9000H,溢出:,溢出:OF1into;因为;因为OF1,所以产生溢出中断,所以产生溢出中断单步中断单步中断n若单步中断若单步中断TF为为1,则在每条指令执行结束,则在每条指令执行结束后产生一个向量号为后产生一个向量号为1的内部中断,称为单步的内部中断,称为单步中断中断例如:例如:DEBUG.EXE调试程序的单步命令调试程序的单步命令T就利就利用单步中断实现对程序的单步调试用单步中断实现对程序的单步调试3、中断优先级、中断优先级n高至低顺序依次为:高至低顺序依次为:q内部中断(除单步中断)内部中断(除单步中断)NMI中断中

13、断INTR中断中断单单步中断。步中断。n除单步中断外,任何内部中断的优先级都高于除单步中断外,任何内部中断的优先级都高于外部中断。外部中断。 7.2.2中断向量表中断向量表n含义:含义:中断服务程序的入中断服务程序的入口地址(口地址(CS:IPCS:IP)n组成及格式:组成及格式:共共4 4个字节,段地址个字节,段地址及偏移地址。及偏移地址。高高地地址址段地址高字节段地址高字节段地址低字节段地址低字节低低地地址址偏移地址高字节偏移地址高字节偏移地址低字节偏移地址低字节段地址偏移地址返回1、中断向量、中断向量2、中断向量表、中断向量表n含义:含义:存放存放256256个中断向量的内个中断向量的内

14、存区域。即存放中断服存区域。即存放中断服务程序入口地址的内存务程序入口地址的内存区域称为中断向量表。区域称为中断向量表。n中断向量表大小:中断向量表大小:1KBn中断向量表地址范围:中断向量表地址范围:00000H003FFH。中断向量地址中断向量地址n中断类型号中断类型号n n与其对应的中断向量与其对应的中断向量存放起始地址之间的关系是:存放起始地址之间的关系是:起始地址起始地址=4=4n n;末地址;末地址=4=4n+3n+3即中断向量在即中断向量在4 4n n 4 4n+3n+3指示指示的内存单元中。的内存单元中。n示例示例实方式下的中断服务程序入口地址求法(例子)实方式下的中断服务程序

15、入口地址求法(例子)【例例】假设在实地假设在实地址方式下,内存址方式下,内存00140H00140H到到00147H00147H中中存放的数据如右图存放的数据如右图所示,求所示,求51H51H号中断号中断的中断服务程序入的中断服务程序入口地址。口地址。解:解:(1 1)求中断向量存放的首地址和末地址)求中断向量存放的首地址和末地址 由中断类型号由中断类型号51H51H可知中断向量存放的可知中断向量存放的首地址首地址51H51H4=144H4=144H(左移两位方法)(左移两位方法)末地址末地址51H51H4+3=147H4+3=147H(2 2)从首末地址对应的)从首末地址对应的4 4个单元找

16、出中断向量,即个单元找出中断向量,即 00144H 00144H到到00147H00147H中内容就是中内容就是51H51H号中断的中断向号中断的中断向量量 对照对照中断向量组成及格式中断向量组成及格式可知可知 段地址段地址=4540H=4540H,偏移地址,偏移地址=3430H=3430H, 所以中断服务程序入口地址为所以中断服务程序入口地址为 段地址段地址16+16+偏移地址偏移地址=45400H+3430H=48830H=45400H+3430H=48830H求解求解中断向量组成及格式中断向量组成及格式返回3、中断向量的设置方法(、中断向量的设置方法(1)nDOS功能调用(功能调用(21

17、H)保存保存中断向量中断向量AH=35HAL=中断类型号中断类型号INT 21H返回时送返回时送ES:BX=中断向量中断向量 MOV AL, N MOV AH, 35H INT 21H ; 取原中断向量取原中断向量 PUSH ES PUSH BX保存原中断向量保存原中断向量nDOS功能调用(功能调用(21H)设置设置中断向量中断向量 AH=25HAL=中断类型号中断类型号DS:DX=中断向量中断向量INT 21HMOV AX, SEG INTRPROCMOV DS, AX MOV DX, OFFSET INTRPROCMOV AL, NMOV AH, 25HINT 21H3、中断向量的设置方法

18、(、中断向量的设置方法(1)通过传送类指令直接设置中断向量通过传送类指令直接设置中断向量MOV AX, 0MOV ES, AXMOV BX, N*4MOV AX, OFFSET INTRPROCMOV ES: BX, AX ; 偏移地址偏移地址(N*4)MOV AX, SEG INTRPROCMOV ES: BX+2, AX ; 段地址段地址(N*4+2)INTRPROC:INTRPROC: IRET IRET3、中断向量的设置方法(、中断向量的设置方法(2)7.2.3 8086对中断的响应对中断的响应nCPU响应中断必须满足如下条件:响应中断必须满足如下条件:(1)CPU接收到中断请求;接收

19、到中断请求;(2)没有)没有DMA请求;请求; (3)当前指令执行结束,)当前指令执行结束,(4)如果是)如果是INTR中断请求,中断请求,CPU还必须开中断,即还必须开中断,即中断标志中断标志IF=1。n响应条件满足后,进入中断响应周期,中断响响应条件满足后,进入中断响应周期,中断响应操作由硬件自动完成。应操作由硬件自动完成。8086CPU对不同类对不同类型的中断响应过程稍有不同,主要是获取中断型的中断响应过程稍有不同,主要是获取中断类型号的过程不同。类型号的过程不同。 可屏蔽中断的响应过程可屏蔽中断的响应过程(1) (1) 处理器接到中断申请,处理完当前指令即处理器接到中断申请,处理完当前

20、指令即进入响应周期进入响应周期。(2) (2) 第二阶段即第二阶段即中断响应周期中断响应周期,在其间,在其间CPUCPU向外部中断控制器发送向外部中断控制器发送两个响应脉冲信号两个响应脉冲信号INTAINTA。第一个响应脉冲通知中断控制器,已经响应外部中断请求,让第一个响应脉冲通知中断控制器,已经响应外部中断请求,让中断控制器提供中断类型号。第二个响应脉冲,中断控制器提供中断类型号。第二个响应脉冲,CPUCPU取走中断类取走中断类型号。型号。(3) (3) 将将标志寄存器中的内容压入堆栈保护标志寄存器中的内容压入堆栈保护,然后清,然后清IFIF和和TFTF标志,以标志,以禁止禁止INTRINT

21、R引脚以及陷井和单步中断。引脚以及陷井和单步中断。(4) (4) 将将断点地址压入堆栈断点地址压入堆栈(CS:EIPCS:EIP或或CS:IPCS:IP)。)。断点地址:指中断时断点地址:指中断时CPUCPU待执行的下一条指令对应的逻辑地址。待执行的下一条指令对应的逻辑地址。顺序:先压入断点地址顺序:先压入断点地址CSCS,后压入偏移地址,后压入偏移地址EIPEIP(或(或IPIP)。)。(5) CPU(5) CPU得到中断类型号码得到中断类型号码n n后,通过中断类型号与中断服务程序入后,通过中断类型号与中断服务程序入口地址的关系找出该类型对应的段基地址和偏移地址,从而口地址的关系找出该类型

22、对应的段基地址和偏移地址,从而转转入中断服务程序入口地址入中断服务程序入口地址。完成中断响应任务。完成中断响应任务。7.3 中断控制器中断控制器8259A一、一、8259A主要功能:主要功能:7.3.1 8259A的的 引脚信号引脚信号n与与CPU相连的引脚相连的引脚qD7D0为为8位双向的数据线位双向的数据线qA0:端口选择信号:端口选择信号qCS:片选信号:片选信号qRD和和WR:读:读/写控制信号写控制信号qINTA:中断响应输入信号:中断响应输入信号qINT:中断请求输出信号:中断请求输出信号n与中断源相连的引脚与中断源相连的引脚qIRi:8个个中断源中断请求端中断源中断请求端n级联扩

23、展引脚级联扩展引脚qCAS0 CAS0 CAS2 CAS2 级联信号级联信号qSP/EN:从片:从片/缓冲允许控制缓冲允许控制q(1)非缓冲时为输入:非缓冲时为输入:SP:1=主片,主片, 0 =从片从片q(2)缓冲时为输出:缓冲时为输出:EN:1CPU写,写,0CPU读读 CS WR RD D7 D6 D5 D4 D3 D2 D1 D0CAS0CAS1GND Vcc A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS2123456789101112131428272625242322212019181716158259A7.3.2 82

24、59A的内部结构的内部结构中断请求寄存器中断请求寄存器IRR记录外部中断源的中断申请的状态。记录外部中断源的中断申请的状态。1 1对应引脚有中断请求且还未被响应对应引脚有中断请求且还未被响应 0 0对应引脚无中断请求或有但已经被响应对应引脚无中断请求或有但已经被响应D7D6D5D4D3D2D1D0IRR7IRR6 IRR5 IRR4 IRR3 IRR2 IRR1 IRR0IR7IR6IR5IR4IR3IR2IR1IR0寄寄存存器器位位引脚引脚中断优先权分辨器中断优先权分辨器PRn优先权分辨器优先权分辨器PRPR用来用来确定确定存放在存放在IRRIRR中中各个中断请求信号对应中断源的各个中断请求

25、信号对应中断源的优先级。优先级。并总是并总是选出当前最高优先中断源选出当前最高优先中断源的中断申的中断申请通知控制逻辑,以便控制逻辑发送中断请通知控制逻辑,以便控制逻辑发送中断请求信号请求信号INTINT给给CPUCPU。中断服务寄存器中断服务寄存器ISR记录外部中断源的记录外部中断源的中断申请被服务中断申请被服务的状态。的状态。1 1对应引脚的中断请求已被响应(服务)且服对应引脚的中断请求已被响应(服务)且服务还没有结束。务还没有结束。 0 0对应引脚的中断请求未被响应。对应引脚的中断请求未被响应。D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0寄寄存存器器位

26、位引脚引脚中断屏蔽寄存器中断屏蔽寄存器IMR设置外部中断源的中断屏蔽状态。设置外部中断源的中断屏蔽状态。1 1对应引脚的中断对应引脚的中断被屏蔽被屏蔽。0 0对应引脚的中断未被屏蔽。对应引脚的中断未被屏蔽。只有只有IMRiIMRi相应位为相应位为0 0且且IF=1IF=1,CPUCPU才有可能响应可才有可能响应可屏蔽中断。屏蔽中断。D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0寄寄存存器器位位引脚引脚数据总线缓冲器数据总线缓冲器n数据总线缓冲器是一个三态、双向的数据总线缓冲器是一个三态、双向的8 8位缓冲器,是位缓冲器,是8259A8259A与与CPUCPU系

27、统数据总线的接口。系统数据总线的接口。n数据总线缓冲器的主要功能有:数据总线缓冲器的主要功能有:(1) (1) 通过数据总线缓冲器,通过数据总线缓冲器,CPUCPU向向8259A8259A内部发送内部发送 命令命令。(2) CPU(2) CPU接收接收8259A8259A状态状态信息。信息。(3) (3) 在中断响应周期,在中断响应周期,CPUCPU从中从中获得中断类型号获得中断类型号。读读/写逻辑写逻辑n接收接收CPUCPU送来的读送来的读/ /写控制信号、片选信写控制信号、片选信号以及地址选择信号,对内部各个寄存器号以及地址选择信号,对内部各个寄存器进行读写操作。进行读写操作。级联缓冲级联

28、缓冲/比较器比较器n级联缓冲级联缓冲/ /比较器在级联方式的主从结构比较器在级联方式的主从结构中(两个以上的中(两个以上的8259A8259A组成的系统),用组成的系统),用来存放和比较系统中各来存放和比较系统中各8259A8259A的从设备标的从设备标志志(ID)(ID)。控制逻辑控制逻辑n控制逻辑是控制控制逻辑是控制8259A8259A内部各个部件的主要逻辑电路。内部各个部件的主要逻辑电路。n主要功能包括:主要功能包括:(1) (1) 根据根据CPUCPU对对8259A8259A编程设定的工作方式来编程设定的工作方式来产生内部控制产生内部控制信号信号。(2) (2) 如果中断请求寄存器如果

29、中断请求寄存器IRRIRR有未被屏蔽的位,则控制逻有未被屏蔽的位,则控制逻辑对应于当时最高优先的中断源,向辑对应于当时最高优先的中断源,向CPUCPU发中断请求信发中断请求信号号INTINT。(3) (3) 接收接收CPUCPU送来的中断响应信号送来的中断响应信号,并允许中断服务寄存,并允许中断服务寄存器器ISRISR的相应位的相应位(ISRi)(ISRi)置位。置位。(4) (4) 控制控制发出相应的中断类型号发出相应的中断类型号,以供,以供CPUCPU读取。读取。 中断申请寄存器中断申请寄存器IRR 锁存外部的中断申请。锁存外部的中断申请。n 若若 IR0IR7 引脚上有中断申请,则将引脚

30、上有中断申请,则将 IRR 相应位置相应位置1IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器000

31、 0 0 0 0 0 1 0 0 1 0 1 0 0INTR118259A工作过程工作过程 中断屏蔽寄存器中断屏蔽寄存器 IMR 决定决定 IRR 中的中断申请是否进入优先级裁中的中断申请是否进入优先级裁决器决器 PR。n IMR对应位对应位为为 0,允许允许中断申请进入优先级裁决器;中断申请进入优先级裁决器; 为为 1,不允许不允许进入,中断申请被进入,中断申请被IMR屏蔽。屏蔽。IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系

32、ICW4 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR 当前中断服务寄存器当前中断服务寄存器 ISR 记录记录CPU正在响应的中断。正在响应的中断。qISR中的某位中的某位为为1,表示,表示CPU正在响应正在响应此级中断,此级中断, 即正在执行此中断源的

33、中断子程;即正在执行此中断源的中断子程;qISR中的某位中的某位为为 0,表示,表示CPU没有或已响应完没有或已响应完此级中断,此级中断, 即不在执行此中断源的中断子程即不在执行此中断源的中断子程IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制001 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR

34、 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR 优先级裁决器优先级裁决器PR据新进入的中断申请和据新进入的中断申请和 ISR的内容的内容, 决定是否发中断申决定是否发中断申请信号。请信号。q 如果进入的中断申请比如果进入的中断申请比 ISR 中记录的中记录的中断优先级高中断优先级高,则通过,则通过 8259A 的的 INT 引脚向引脚向 CPU发出中断请求信号;发出中断请求信号;q 如果进入的中断申请不比如果进入的中断申请不比 IS

35、R 中记录的中断优先级高,中记录的中断优先级高,同级或低级同级或低级,则不向则不向 CPU 发中断请求信号。发中断请求信号。IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制001 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特

36、殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR(2) 若发中断申请信号,且若发中断申请信号,且CPU响应,则在响应,则在CPU中断中断响应周期送出中断类型号响应周期送出中断类型号n CPU接收到接收到 INTR上的中断申请信号后:上的中断申请信号后:l如果如果 IF 标志为标志为0,则,则CPU不响应此中断申请信号不响应此中断申请信号, 即中断申请被即中断申请被IF屏蔽。屏蔽。l如果如果 IF 标志为标志为1, 则处理完当前的指令后则处理完当前的指令后, 进入中断响应周期:进入中断响应周期:n 通过通过

37、 INTA 引脚发出两个负脉冲信号,引脚发出两个负脉冲信号,n 从数据总线上获取中断类型号,从数据总线上获取中断类型号,n 进入中断响应的过程。进入中断响应的过程。8259A的中断响应周期程的中断响应周期程CAS0CAS2D0D7SP/ENIR0IR7CPU响应周期响应周期8259A工作波形工作波形INT第一个周期第一个周期T1 T2 T3 T4ALECLK 第二个周期第二个周期T1 T2 T3 T4第一个前保持为高电平第一个前保持为高电平 INTALOCK关于关于8259A思考题思考题1. 1. 什么情况下什么情况下IRR=FFH?IRR=FFH?2. 2. 什么情况下什么情况下ISR=FF

38、H?ISR=FFH?3. IMR=FFH3. IMR=FFH,计算机系统会怎样?,计算机系统会怎样?4. IRR=0AH,ISR=0AH4. IRR=0AH,ISR=0AH是否可能是否可能?参考答案:参考答案:1. 1. 八个中断源都有请求,但均未被八个中断源都有请求,但均未被CPUCPU响应。响应。2. 2. 从最低到最高级优先级依次进入中断服务程序,但从最低到最高级优先级依次进入中断服务程序,但都没有结束中断处理。(都没有结束中断处理。(8 8级中断嵌套)级中断嵌套)3. 3. 系统将处于瘫痪状态(所有硬件中断被禁止)。系统将处于瘫痪状态(所有硬件中断被禁止)。4. 4. 有可能,有可能,

39、ISR=0AHISR=0AH表示表示IR1IR1和和IR3IR3对应的中断请求已被对应的中断请求已被响应,但还没有结束,此时响应,但还没有结束,此时IR1IR1和和IR3IR3又都重新有申又都重新有申请,但还未被响应。请,但还未被响应。7.3.3 工作方式工作方式l优先级的方式优先级的方式l屏蔽中断源的方式屏蔽中断源的方式l结束中断处理的方式结束中断处理的方式l连接系统总线的方式连接系统总线的方式l中断请求信号方式中断请求信号方式优先级的方式(优先级的方式(4种)种)n全嵌套方式全嵌套方式n特殊全嵌套方式特殊全嵌套方式n优先级自动循环方式优先级自动循环方式n优先级特殊循环方式优先级特殊循环方式

40、全嵌套方式全嵌套方式n仅允许高一级中断进入嵌套。仅允许高一级中断进入嵌套。n从高到低优先级依次为从高到低优先级依次为IR0IR1IR2IR3IR4IR5IR6IRIR0IR1IR2IR3IR4IR5IR6IR7 7。特殊全嵌套方式特殊全嵌套方式n允许高一级,也允许同级中断进入允许高一级,也允许同级中断进入嵌套。嵌套。n从高到低优先级依次为从高到低优先级依次为IR0IR1IR2IR3IR4IR5IR6IRIR0IR1IR2IR3IR4IR5IR6IR7 7。n用于级联方式的主片用于级联方式的主片优先级自动循环方式优先级自动循环方式n在这种方式下,中断源的优先级是变化在这种方式下,中断源的优先级是

41、变化的,当一个设备得到中断服务以后,它的,当一个设备得到中断服务以后,它的优先级自动降为最低优先。的优先级自动降为最低优先。n在初始状态下的优先级为在初始状态下的优先级为IR0IR1.IR7;IR0IR1.IR7; IR0 IR0得到服务后下一次优先级为得到服务后下一次优先级为IR1IR2.IR6IR7IR0IR1IR2.IR6IR7IR0,依次类推,依次类推。优先级特殊循环方式优先级特殊循环方式n与优先级自动循环方式只有一点与优先级自动循环方式只有一点区别:区别:初始最优者可由程序设定,可任初始最优者可由程序设定,可任意意指定一个初始最高优先级指定一个初始最高优先级,以,以后再循环优先。后再

42、循环优先。屏蔽中断源的方式屏蔽中断源的方式n普通屏蔽方式:普通屏蔽方式:设置设置8259A8259A内部中断屏蔽内部中断屏蔽寄存器寄存器IMRIMR的相应位为的相应位为1 1(通过(通过OCW1OCW1),),即可屏蔽对应中断源的中断申请。即可屏蔽对应中断源的中断申请。n特殊屏蔽方式:特殊屏蔽方式:先写入特殊屏蔽命令字先写入特殊屏蔽命令字OCW3OCW3,然后再写屏蔽命令字,然后再写屏蔽命令字OCW1OCW1。使当。使当前中断服务寄存器前中断服务寄存器ISRISR的相应位自动复位的相应位自动复位。这就只屏蔽了当前正在处理的这级中这就只屏蔽了当前正在处理的这级中断。断。= =屏蔽该中断并清中断服

43、务位。屏蔽该中断并清中断服务位。结束中断处理的方式结束中断处理的方式n自动结束方式:自动结束方式:系统一旦进入中断服务系统一旦进入中断服务程序,程序,8259A8259A就自动将当前中断服务寄存就自动将当前中断服务寄存器相应位清器相应位清0 0。(在第二个中断响应脉冲。(在第二个中断响应脉冲)n非自动结束方式:非自动结束方式:在中断服务程序结束在中断服务程序结束,返回主程序之前,返回主程序之前发一条中断结束命令发一条中断结束命令,使使8259A8259A的当前最高优先级的中断对应的当前最高优先级的中断对应的的ISRISR复位复位。连接系统总线的方式连接系统总线的方式n缓冲方式:缓冲方式:一般在

44、多片一般在多片8259A8259A级联系统中,级联系统中,8259A8259A通通过总线驱动器与系统总线相连,而不是过总线驱动器与系统总线相连,而不是8259A8259A直接与系统总线相连,这就是缓直接与系统总线相连,这就是缓冲方式。冲方式。n非缓冲方式:非缓冲方式:当系统只有一片当系统只有一片8259A8259A或少量几片或少量几片8259A8259A时,一般将它直接与数据总线相连。这时,一般将它直接与数据总线相连。这就是所谓的非缓冲方式。就是所谓的非缓冲方式。中断请求信号方式中断请求信号方式n边沿触发方式:边沿触发方式:在边沿触发方式下,在边沿触发方式下,8259A8259A将中断请求输入

45、端将中断请求输入端出现的出现的上升沿上升沿作为中断请求信号,且该信号作为中断请求信号,且该信号可以一直保持为高电平。为了防止干扰,可以一直保持为高电平。为了防止干扰,其其高电平也应有一定的宽度高电平也应有一定的宽度。n电平触发方式:电平触发方式:8259A8259A把中断请求输入端出现的把中断请求输入端出现的高电平高电平作为中作为中断请求信号。但应注意的是,当中断请求被断请求信号。但应注意的是,当中断请求被响应后,输入端必须立即撤消高电平,以免响应后,输入端必须立即撤消高电平,以免引起再一次中断。引起再一次中断。7.3.5 8259A的初始化命令字和初始化编程的初始化命令字和初始化编程 芯片初

46、始化命令字芯片初始化命令字ICW1A7 A6 A5 1 LTIM ADI SNGL IC4X86不用不用特征位特征位0=不用不用ICW41=要要ICW4X86不用不用0=边沿触发边沿触发1=电平触发电平触发0=多片多片1=单片单片返回中断类型初始化命令字中断类型初始化命令字ICW2T7T3决定中断类型号(决定中断类型号(D2D0任意)任意)8个中断源具有连续的中断类型号个中断源具有连续的中断类型号写入写入D7D6D5D4D3D2D1D0T7T6T5T4T3返回主主/从片初始化命令字从片初始化命令字ICW3主片主片ICW3IRi=1,指示指示8259的引脚的引脚IRi处接一从片处接一从片写入写入

47、D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0返回主主/从片初始化命令字从片初始化命令字ICW3从片从片ICW3ID2,ID1,ID0编码D7D6D5D4D3D2D1D000000ID2ID1ID0返回编码决定编码决定IRiID2ID1ID0IRi000IR0001IR1010IR2011IR3100IR4101IR5110IR6111IR7返回控制初始化命令字控制初始化命令字ICW4各位含义:各位含义:PM PM :CPUCPU类型,类型,0=8080/80850=8080/8085,1=80X861=80X86。AEOIAEOI:自动结束中断方式,:自动结

48、束中断方式,AEOI=1AEOI=1有效。有效。M/SM/S: 主从片选择,主从片选择,1=1=主片,主片,0=0=从片。从片。BUFBUF: 缓冲方式。缓冲方式。BUF=1BUF=1工作在缓冲方式。工作在缓冲方式。SFNMSFNM:特殊全嵌套方式。:特殊全嵌套方式。SFNM=1SFNM=1,特殊全嵌套方式,特殊全嵌套方式。写入写入D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIPM返回8259A的的初始化编程初始化编程n对对8259A进行初始化编程就进行初始化编程就是向是向8259A写入两到四个初写入两到四个初始化命令字。流程如图。始化命令字。流程如图。n初始化编程任务:初

49、始化编程任务:1. 1. 设定中断请求信号的有效形设定中断请求信号的有效形式。式。2. 2. 设定设定8259A8259A是单片还是多片是单片还是多片级联方式。级联方式。3. 3. 设置中断类型号。设置中断类型号。4. 4. 设置优先排队规则。设置优先排队规则。5. 5. 设定中断结束时的操作原则设定中断结束时的操作原则。返回8259A初始化编程实例(初始化编程实例(1)n【例【例7-1】IBM-PC微机中,微机中,8259A的端口地址分别为的端口地址分别为20H和和21H,工作方式如下:单片方式,请求信号采用边沿触发方式,优先级工作方式如下:单片方式,请求信号采用边沿触发方式,优先级采用完全

50、嵌套方式,非自动结束中断,与系统采用非缓冲方式连采用完全嵌套方式,非自动结束中断,与系统采用非缓冲方式连接。中断类型号为接。中断类型号为08H0FH。n则则8259A的初始化程序段如下:的初始化程序段如下:MOVAL,00010011B ;ICW1:边沿触发:边沿触发,单片系统单片系统,需要需要ICW4OUT20H,ALMOVAL,00001000B ;ICW2:类型号从:类型号从08H开始开始OUT21H,ALMOVAL,00000001B ;ICW4:完全嵌套方式:完全嵌套方式,非缓冲非缓冲,非自动结束非自动结束OUT21H,AL8259A初始化编程实例(初始化编程实例(2)【例【例7-2

51、】IBM PC/AT机中使用两片机中使用两片8259A管理中管理中断,硬件连线如图断,硬件连线如图 7 13所示。所示。主片的要求是:主片的要求是: 主片的主片的IR2IR2接从片的接从片的INTINT端。端。 主片中断信号为边沿触发方式。主片中断信号为边沿触发方式。 级联但无缓冲。级联但无缓冲。 起始中断类型号为起始中断类型号为08H(IR0)08H(IR0)。 正常的中断结束,选择特殊的全嵌套方式。正常的中断结束,选择特殊的全嵌套方式。 级联方式要级联方式要ICW3ICW3和和ICW4ICW4。从片的要求是:从片的要求是: 从片的从片的INTINT接主片的接主片的IR2IR2。 从片起始中

52、断类型号为从片起始中断类型号为70H70H。 级联方式要级联方式要ICW3ICW3和和ICW4ICW4。返回返回主片主片8259A初始化初始化MOV AL,00010001B;ICW1:边沿边沿,ICW4,ICW3OUT 20H, AL ;写入写入ICW1(A0=0地址端口)地址端口)MOV AL, 00001000B ;ICW2:IR0中断类型号为中断类型号为08HOUT 21H, AL ;写入写入ICW2 (A0=1地址端口)地址端口)MOV AL, 00000100B ;ICW3:主片主片IR2接从片接从片INTOUT 21H, AL ;写入写入ICW3 (A0=1地址端口)地址端口)M

53、OV AL, 00010001B ;ICW4:非缓冲非缓冲,正常中断结束正常中断结束 ; 特殊全嵌套方式,主片特殊全嵌套方式,主片OUT 21H, AL ;写入写入ICW4 (A0=1地址端口)地址端口)返回从片从片8259A初始化初始化MOV AL,00010001B ; ;ICW1ICW1: :边沿边沿,ICW4,ICW3,ICW4,ICW3OUT 0A0H, AL ; ;写入写入ICW1ICW1MOV AL, 01110000B ; ;ICW2ICW2:IR0:IR0中断类型号为中断类型号为70H70HOUT 0A1H, AL ; ;写入写入ICW2ICW2 MOV AL, 000000

54、10B ; ;ICW3ICW3: :从片接主片的从片接主片的IR2IR2OUT 0A1H, AL ; ;写入写入ICW3ICW3MOV AL, 00000001B ; ;ICW4ICW4: :非缓冲非缓冲, ,正常结束正常结束, , ; ;非特殊全嵌套方式,从片非特殊全嵌套方式,从片OUT 0A1H, AL ; ;写入写入ICW4ICW4返回7.3.6 8259A的操作命令字及应用的操作命令字及应用中断屏蔽命令字中断屏蔽命令字OCW1OCW1控制中断和优先级循环的控制中断和优先级循环的操作命令字操作命令字OCW2OCW2屏蔽查询状态命令字屏蔽查询状态命令字OCW3OCW3返回中断屏蔽命令字中断

55、屏蔽命令字OCW1(IMR) nMi=1Mi=1表示对应的表示对应的IRiIRi中断源被屏蔽,中断源被屏蔽,Mi=0Mi=0则取则取消屏蔽(消屏蔽(i=0,1,2,3,4,5,6,7i=0,1,2,3,4,5,6,7)。)。n要求写入要求写入8259A8259A的的A0=1A0=1的端口的端口D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1M0返回OCW1的应用的应用n某系统中有某系统中有3个中断源,分别连接到个中断源,分别连接到8259A的的IR0、IR2和和IR3上。若系统中上。若系统中8259A的偶地址为的偶地址为80H,奇地,奇地址为址为81H。则屏蔽字为:。则屏蔽字为:M

56、OV AL,11110010B;为为0 的位允许中断的位允许中断,为为1的位中断被的位中断被屏蔽屏蔽OUT 81H,ALn若系统中再增加一个若系统中再增加一个IR1中断请求中断请求 IN AL,81HAND AL,11111101B;只将只将OCW1中的中的D1位清位清“0”OUT 81H,ALn当当IR1的所有中断全部完成后的所有中断全部完成后 IN AL,81HOR AL,00000010B;只将只将OCW1中的中的D1位置位置“1”,OUT 81H,AL控制中断和优先级循环的操作命令字控制中断和优先级循环的操作命令字OCW2 R R :优先级循环位,:优先级循环位,R=1R=1为循环优先

57、。为循环优先。SLSL:指定:指定IRiIRi级别位。级别位。SL=1SL=1时时L2L0L2L0有效。有效。EOIEOI:中断结束命令位,:中断结束命令位,1=1=中断结束中断结束L2L2L0L0:编码指定:编码指定IRiIRi注意:注意:要求写入要求写入8259A的的A0=0的端口的端口D7D6D5D4D3D2D1D0RSLEOI00L2L1L0返回屏蔽查询状态命令字屏蔽查询状态命令字OCW3 n各位含义:各位含义:ESMMESMM:特殊屏蔽允许:特殊屏蔽允许, 1, 1有效。有效。SMM SMM :特殊屏蔽位,:特殊屏蔽位,1 1有效。有效。P P:管理查询方式。当:管理查询方式。当P=

58、1P=1时可用作查询方式时可用作查询方式RRRR:读寄存器命令位,读寄存器命令位,RR=1RR=1读寄存器读寄存器IRRIRR和和ISRISR,RR=0RR=0禁止读这两个寄存器的内容。禁止读这两个寄存器的内容。RISRIS:寄存器选择位,寄存器选择位,RR=1RR=1时且时且RIS=0RIS=0读读IRRIRR寄存器,寄存器,RIS=1RIS=1读读ISRISR寄存器的内容。寄存器的内容。n要求写入要求写入8259A的的A0=0的端口的端口D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS返回8259的查询方式的查询方式除了在中断方式外,除了在中断方式外,8259A可工作在查询

59、方式可工作在查询方式。查询方式工作如下:。查询方式工作如下:1 1)CLICLI关中断关中断2 2)写)写OCW3OCW3使使P=1P=1(命令字(命令字=0CH=0CH)进入查询方式)进入查询方式3 3)读取查询状态()读取查询状态(A0=0A0=0端口)判断端口)判断I I值:值:I=1I=1有中断,有中断,W2W1W0W2W1W0为当前最高优先级的编码为当前最高优先级的编码。I - - - - W2 W1 W0D7 D6 D5 D4 D3 D2 D1 D0返回操作命令编程实例操作命令编程实例MOV AL, 11110000B ; ;主片主片OCW1OCW1, ,屏蔽屏蔽IR4,5,6,7

60、IR4,5,6,7OUT 21H, AL ; ;写入主片的写入主片的OCW1OCW1MOV AL,10000001B ; ;从片从片OCW1:OCW1:屏蔽屏蔽IR0IR0和和IR7IR7OUT 0A1H, AL ; ;写入从片的写入从片的OCW1OCW1MOV AL,00100000B ; ;OCW2OCW2: :结束最高中断结束最高中断, ,清清ISRISR相应相应 ; ;位位, ,即发普通中断结束命即发普通中断结束命令令OUT 0A0H, AL ; ;先向从片发中断结束命令先向从片发中断结束命令OUT 20H, AL ; ;后向主片发中断结束命令后向主片发中断结束命令返回8259A状态的

温馨提示

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

评论

0/150

提交评论