第9章中断系统_第1页
第9章中断系统_第2页
第9章中断系统_第3页
第9章中断系统_第4页
第9章中断系统_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、9.1 中断中断9.1.1 中断的概念中断的概念1、中断:CPU 中断现行的程序,转而处理某类特别事件,这种现象称为中断。2、中断源:向 CPU 提请中断要求的外设或指令。3、中断服务子程序及中断返回 中断服务子程序:是对应某个中断请求而需要完成某特殊工作而编写的程序(相当于子程序)。 中断返回:是指中断服务程序执行完后,返回到原来的断点继续执行现行程序的过程。由指令 IRET 完成中断返回。4、中断响应 CPU 收到中断请求后,在现行指令执行完后,响应中断,并保护现场,根据不同的中断源,转而去执行某特定的中断服务程序。5、保护现场和恢复现场(1)现场保护的重要性 和子程序调用类似,中断调用非

2、常需要现场的保护,而且中断源不同,申请的中断服务也不同。CPU 不知道什么时候会收到中断请求,也不知道要执行的是什么中断服务程序(这一点和子程序不同,子程序是目的明确的程序),在中断服务程序中会用到哪些寄存器,因此必须保护现行程序所有寄存器的值。(2)CPU 自动断点保护 CPU 在响应中断后,会自动保护断点参数,即自动保护标志寄存器、CS、IP 的值。(3)在中断服务程序中的现场保护与恢复 除 CPU 自动保护现场外,在设计的中断服务程序中,凡要用到的寄存器,都要进行保护。在中断返回时,进行相应的现场恢复。6、中断向量表 IBM-PC 系列微机支持256种中断,系统给每个中断分配一个中断号,

3、依此为 0 - FFH,如我们用过的 DOS 功能调用中断号为 21H 。每个中断类型(中断号)都对应着自己的中断服务子程序,且这些中断服务子程序,在计算机启动后常驻内存。 中断向量表就是一张保存这256个中断服务程序入口地址的一段特别的内存空间。每个中断服务程序的入口地址参数由2个字表示,低16位保存的是偏移地址,高16保存的是段地址。 中断向量表占用1KB 内存空间,所有8086 系列的微机的中断向量表保存在 地址为00000H-003FFH的内存段。7、中断向量号的分配 计算机给每个中断源都唯一分配了一个中断号。 其中,60H-68H号和 F1H-FFH 号是留给用户使用的,其余的都有特

4、别的用途(见 P165 - P166)。 不是所有的中断号都有自己的中断服务子程序。如果 m 号中断没有对应的服务子程序,就不应该发生类型为 m 的中断。 8、中断向量的获取0#中断1#中断2#中断3#中断4#中断.FF#中断00000H00004H00008H0000CH00010H003FCH0#中断偏移0#中断段值0#中断00000H00002H中断向量表中断向量格式 在执行 n 号中断服务程序时,CPU通过以下公式获取入口地址:IPCS 4*n 4*n+2 中断类型外部中断(硬中断)内部中断(软中断)可屏蔽中断 INTR非屏蔽中断NMI软中断 INT nCPU运算错调试中断除数为0溢出

5、中断 INTO单步中断断点中断9 中断类型10、外部中断 外部中断是指在计算机系统中,专门有硬件电路(如8259A)负责向 CPU 申请中断,同时将中断类型号传送给 CPU 。该类型的中断又分为可屏蔽中断和非屏蔽中断。CPU8259A类型号INTRNMI定时器键盘串口打印机(1)可屏蔽中断 外设向 CPU 发出中断请求时,统一由中断控制器 8259A处理。 在同一时间或 CPU 在处理中断时,会有其它外设向 CPU 申请中断,必须对这些中断源统一管理,这就是 8259A 处理器的任务。8259A 在外设有中断请求时,按优先级处理中断源,负责中断排队,并向 CPU 发出中断请求信号 INTR ,

6、同时将中断类型号传送给CPU 。 这类型的中断为可屏蔽中断- 即当标志 IF=1 时 CPU 响应 8259A 的中断请求,否则,中断请求被屏蔽。有时,IF=1 称 CPU开中断,IF=0 称 CPU 关中断。 (2)非屏蔽中断 当 CPU 有特别紧急的事件要处理时,采用非屏蔽中断,这时不论 IF 的值如何,CPU 都响应中断。这类型的中断有内存奇偶校验错、电源电量不足、其它硬件出错等。11、内部中断(1)INT n 软中断指令 利用 INT 指令向 CPU 提供中断号,格式如下: INT n 如以前用过的 INT 21H。(2)CPU 由于算术运算出错引发的中断 0 号中断- 除数为 0 或

7、商超出规定的范围,就会引发除法错中断。当程序中有如下程序时(其中变量 X1=0 ),会引发 0 号中断: MOV AX,3FFH DIV X1 ;X1为字节型无符号数变量 计算机将终止程序的执行,并提示: Divide overflow error 实质上,0号中断对应的服务程序就是显示上面的信息,并返回操作系统。 溢出中断- INTO ,专门的溢出中断指令,该指令执行时,产生类型号为 4 的中断。(3)用于程序调试的中断 用于程序调试的中断有单步中断和断点中断。 单步中断由单步标志 TF 决定,当 TF=1 时,每条指令执行后产生单步中断,中断类型号为 1 。单步中断用于程序调试。 断点中断

8、- INT 3 断点中断是复原刚处理过的代码,并报告各寄存器的值。12、中断优先级 当有多个中断源同时向 CPU 申请中断时,CPU 先处理优先级高的。中断的优先级如下:内部中断(除法错、INTO、INT)非屏蔽中断可屏蔽中断单步中断高低13、中断嵌套 CPU 在执行中断服务子程序时,又发生中断,称为中断嵌套。 CPU 在响应中断后,自动置 IF=0 ,为了使 CPU 在执行中断服务程序时,能够继续响应可屏蔽中断,一般在中断服务子程序开始时安排开中断指令 STI 。14、中断程序的设计 第一步:开中断 STI 第二步:保护现场 (PUSH) 第三步:中断服务处理 第四步:恢复现场 (POP)

9、第五步:中断返回 IRET CPU 在中断返回时,会自动恢复断点的值。15 中断管理中断管理(中断响应的过程中断响应的过程) 1)、中断响应过程:(1)中断请求、(2)中断响应、 (3)中断执行、(4)中断返回。现行程序现行程序当前指令断点中断源响应中断中断请求CPU 自动保护断点获取中断向量中断服务程序恢复断点地址中断返回2)、CPU 自动保护现场和恢复现场(1)保护断点 CPU 在收到中断源发出的中断请求后、在现行指令执行完后,响应中断,并根据提供的中断号获取中断向量: SP SP-2 FLAG SP PUSH FLAG SP SP-2 CS SP PUSH CS SP SP-2 IP S

10、P PUSH IP IP 4 * n CS 4* n +2 (2)中断返回:在中断服务程序执行完后,由 IRET 指令提供返回的断点参数 IP SP SP SP+2 POP IP CS SP SP SP+2 POP CS FLAG SP SP SP+2 POP FLAG9.1.2 中断控制器中断控制器 Intel 8259A 一、主要作用: (1) 优先级排队管理:根据任务的轻重缓急或设备的特殊要求,分配中断源的中断等级。8259A具有全嵌套、循环优先级、特定屏蔽多种方式的优先级排队管理。 (2)接受外部设备的中断请求:经过优先权判决找到哪一个中断源的中断请求级别最高,然后再向CPU提出中断申

11、请INT;或者拒绝外设的中断请求,予以屏蔽。一片8259A可以接受8个中断请求,经过级联可扩展至8片8259A,实现64级中断。 (3)提供中断类型号:为CPU实现程序的转移给出中断服务程序入口地址指针。8259A最突出的特点是具有对中断服务程序入口地址的寻址能力,也就是当CPU响应中断申请时,通过8259A提供的中断类型号可以找到中断服务程序的入口地址,转移到中断服务程序去执行。二、功能结构 8259A中断控制器由中断请求寄存器IRR、中断屏蔽寄存器IMR、中断服务寄存器ISR、优先级分析器PR、控制逻辑、数据总线缓冲器、读/写逻辑、级连缓冲器/比较器等8个部分组成。 1、中断请求寄存器IR

12、R(Interrupt Request Register) 保存中断源是否提出了中断请求的寄存器。该寄存器8位(D0D7)对应于连接在IR0IR7线上的外设所产生的中断请求,哪一根输入线有请求,哪位就置“1”。它具有锁存功能,其内容可用OCW3命令读出。 2、中断屏蔽寄存器IMR(Interrupt Mask Register) IMR对IRR起屏蔽作用,即对中断请求IR是禁止还是允许。寄存器8位(D0D7)对应8级中断屏蔽。哪一级中断被屏蔽,哪位就写1,即禁止IR提出中断请求;反之,就写0,不屏蔽,即允许IR提出中断请求。屏蔽操作由屏蔽命令OCW1执行。 IMR可很方便地读和写。见图 3、中

13、断服务寄存器ISR(Interrupt Service Register) ISR寄存器是对中断优先进行管理的重要寄存器,它寄存了正在服务的IRi中断源和被挂起的(尚未服务完)所有IRi的相应中断优先级。可见,若一个中断优先级正在服务期间,它会禁止同级或低级中断请求的发生,而向高一级的中断请求开放。某中断响应后,ISR对应位被置“1”。 4、优先级分析器PR 当在IR输入端有中断产生时,送到PR。PR检查进来的中断请求的优先级并和正在服务中的中断,进行比较,确定是否让这个中断请求送给处理器。假定进来的中断比正在服务中的中断有更高的优先权,则PR就使INT线变为高电平,送给CPU,为它提出申请,

14、并且在中断响应时将它记入ISR的对应位中。若进来的中断等级等于或低于正在服务中的中断等级,则PR不为其提出申请。 该分析器相当于一个优先级编码器和一个比较器电路,可实现中断判优及屏蔽的功能。 5、控制逻辑 根据PR判别的结果,控制电路向CPU发出公共的中断请求INT,送至CPU的INTR端。CPU响应后,进入中断响应周期,向8259A发回两个INTA响应信号。控制逻辑在收到第一个INTA信号后,控制PR将获得准的请求存入ISR,即置ISR中的相应位为1。同时,将该位编码(对应IRi)写入中断类型寄存器(IVR)的低3位,IVR的高5位在初始化编程时已由有关命令字(ICW2)写入。当收到第二个I

15、NTA信号时,控制电路将IVR的内容,既中断类型号经D7D0送入数据总线。在控制逻辑中还有一组初始化命令寄存和一组操作命令寄存器,用来分别接受8259A的初始化编程和操作编程。下一节将详细介绍这两个寄存器组的编程。 6、数据总线缓冲器 这是一个三态双向的8位缓冲器,用于传送CPU的控制命令(ICW、OCW)和返回状态信息。 7、读/写逻辑 每片8259A只占有两个端口地址,用A0的取值来区分偶地址端口和奇地址端口。象PC/XT系统中只使用了单片8269A,其端口地址为20H和21H。而PC/AT系统中有两片8259A,主片的端口地址为20H和21H,从片的端口地址为A0H和A1H。8259A内

16、部可被CPU访问的寄存器不止两个,CPU访问哪一个寄存器,需由A0地址输入信号与读令RD和写令WR联合指定。下表给出了8259A的读/写功能。RDWRA0读/写操作100写ICW1、OCW2、OCW3101写ICW2、ICW3、ICW4、OCW1010读IRR / ISR011读 IMR 8、级连缓冲器 / 比较器 它们用于多片级联及数据缓冲方式。级联方式中,主片和从片之间将对应的三个引脚 CAS0CAS2 相互联接成为专用总线。从片的INT连主片的IRi,主片的INT连CPU的INTR端。当从片的IRi收到设备的中断请求时,通过INT向主片发送请求,主片再向CPU发出申请。CPU响应中断后,

17、发送 INTA 回应信号,主片收到该信号后,并不将中断ID送数据总线,而是将ID的低3位送CAS0CAS2。从片收到标志号后,与自身的标志号比较,相符后,下一个 INTA 脉冲来时将中断向量送到数据总线上来。 CAS0CAS2 类似于对从片寻址。 见图三、8259A引脚引脚功能见 P363四、8259A 中断响应周期 在CPU收到中断控制器输出的中断请求INT后,如果当前一条指令已执行完且中断标志位IF=1,那么,CPU进入中断响应周期,它要通过总线控制器发出两个连续中断应答信号 INTA 完成一个中断响应周期。见时序图(1)当总线控制器发出第1个 INTA 脉冲时,CPU输出有效的总线锁定信

18、号 LOCK ,使总线在此期间处于封锁状态,防止其它处理机或DMA控制器占用总线。与此同时,8259A将判优后选中的最高优先级置位ISR,而相应IRR位被清0。 (2)当总线控制器发出第2个 INTA 脉冲时,总线锁定信号 LOCK 撤除,总线被解封,地址允许信号ALE也由CPU改为低电平(无效),即允许数据线工作。正好此时中断控制器将当前中断服务程序所对应的中断号通过数据线送入CPU。 顺便指出,在自动结束中断方式下,当前ISR的置1位由第2个INTA 脉冲后沿清除。而在非自动结束中断方式下,ISR的置1位一直保持直到中断服务程序结束时,由CPU向 8259A发出结束命令为止。也就是说,对非

19、自动中断结束方式,在中断服务程序中,中断返回之前,要由CPU向8259A发一个中断结束命令,以清除ISR中被置1的位。 五、8259A 中断管理方式中断触发方式中断屏蔽方式中断优先级管理方式中断结束方式总线连接方式边沿触发电平触发常规屏蔽方式特殊屏蔽方式完全嵌套方式特殊嵌套方式优先级循环方式常规EOI循环方式自动EOI循环方式特殊EOI循环方式自动EOI方式非自动EOI方式常规EOI方式特殊EOI方式缓冲方式非缓冲方式中断管理方式 1、中断触发方式、中断触发方式 (1)电平触发方式:IRi 出现高电平,表示有中断请求,要求持续到 8259A 收到第一个 INTA 信号。 (2)边沿触发方式:上

20、升沿触发。 2、中断屏蔽方式、中断屏蔽方式 (1)常规屏蔽:将 IMR 相应位置 “1” 。 (2)特殊屏蔽:常规情况下:当一个中断响应后,会禁止同级或低级的中断请求,特殊屏蔽是只屏蔽同级的中断请求,而开发高级或低级请求。3、中断优先级管理方式、中断优先级管理方式 (1)完全嵌套方式:固定优先级,IR0 最高,IR7 最低。在中断程序执行时,禁止同级或低级的中断请求。用于单8259A或从8259A。 (2)特殊嵌套方式:固定优先级,在处理中断时只禁止低级的中断请求,常用于在级连方式下的主8259A。 (3)优先级循环方式:初始时,IR0 最高,IR7 最低,当某个中断响应结束后,它的级别变为最

21、低,其它的循环移动。 该方式通过OCW2:D7D6=10 实现。 (4)特殊优先级循环:通过OCW2指定某位IRi为最低优先级,循环方式,OCW2:D7D6=11。 4、中断结束方式 某中断结束,相应的 ISR 位清 “0” 。在初始化编程时,命令字 ICW4 的D1=1,表示自动 EOI 方式,否则,为非自动 EOI 方式。 (1)自动 EOI 方式:8259A 在收到 CPU 的第二个 INTA 信号时,自动将 ISR 最高优先级的中断服务标志位清 “0”。在自动 EOI 方式时,中断服务程序不需要单独安排中断结束命令。自动 EOI 方式在执行中断服务程序时,由于对应的 ISR 标志清“0

22、”,故在服务期间,低级的中断也能中断本中断服务,因而在自动 EOI 方式时,中断服务程序执行时,必须关中断。 (2)常规 EOI 方式:在固定优先级时,使用常规 EOI,该方式下,由中断服务程序在 IRET指令执行前使用“常规 EOI 命令字”对最高 ISR 位清“0”。 (3)特殊 EOI方式:在特殊屏蔽方式时,由于低级的中断可以中断现行的高级别的中断服务,故不能使用常规 EOI (因为在低级的中断服务结束时,使用的 “EOI命令字”将高级别中断对应的 ISR 位 清“0”位)。此时,使用“特殊 EOI 命令字”,该命令在 IRET 指令前执行,该命令字根据字中 L2L0位(低3位)的编码,

23、把 ISR 中指定位清“0”。六、8259A 初始化编程和工作方式编程 8259A 编程可以分2种: (1)初始化命令:在 8259A 工作之前由 CPU 送初始化命令字 ICW。 (2)工作方式编程:确定 8259A 的工作方式,包括中断结束命令、中断屏蔽和优先权方式。 初始化命令字要按顺序一次性写入。之后写操作均为工作方式字。 2、初始化编程 (1)ICW1:写入偶地址; D0( IC4)=1,确定送 ICW4,否则不送 ICW4; D1:1 级连,0 不级连; D4=1;D3:电平触发方式;其余用于8080/8085系统。 其中D2表示相邻中断之间入口地址的间距。 (2)ICW2 写入奇

24、地址; 为8080/8085时,表示中断向量地址的 A8 A15; 为8086/8088系统时,表示在 8259A收到第二个 INTA 时,将ICW2的内容当中断类型号送 CPU。即,高5位通过ICW2预先写入 IVR,低3位由发生中断的 IRi 确定,写入时不起作用。 (3)ICW3 有级连时,需写入 ICW3 ,写奇地址,主从片分别写入。 主片ICW3:每位对应 IRi 是否连 从8259A,如D2=1,表示IR2端连了从片。 从片ICW3:高5位无效,低3位表示连在主8259A 的哪个端口,如,D2D1D0=010,表示该从片连在主片的 IR2端。 (4)ICW4 当 ICW1的D0=1

25、时,需写入 ICW4,写奇地址。 D0=1:表示连接的系统为8086/8088系统,D0=0表示8080/8085; D1=1:自动EOI方式,D1=0,向8259A写中断结束命令字:OCW2; D3D2=11:缓冲方式,主片,D3D2=10:缓冲方式,从片, D3D2=0 x:普通方式; D4=0:常规全嵌套方式:固定优先级,IR0 最高,IR7 最低。在中断程序执行时,禁止同级或低级的中断请求。用于单8259A或从8259A; D4=1:特殊嵌套方式:固定优先级,在处理中断时只禁止低级的中断请求,常用于在级连方式下的主8259A,这样可以防止同一片从8259A上更高级别的中断被禁止。 D5

26、D6D7=000:表示是ICW4。2、8259A初始化流程开始ICW1:D0:1-写ICW4,0-不写 D1:1-单片,0-级连ICW2ICW1.D1=0 ?YesICW3ICW1.D0=1 ?YesICW4结束NoNo3、8259A工作命令字 (1)OCW1:中断屏蔽命令字,写入奇地址。 (2)OCW2:写入偶地址,且 D4D3=00,为中断结束命令字。 D7(R):D7=1,置循环优先级,D7=0,固定优先级; D5(EOI):D5=1,表示OCW2为中断结束命令字,由D2D1D0的值指定结束ISR的哪一位,D5=0:表示自动结束方式。D7D6D5工作方式备注001普通EOI,清ISR中优

27、先级最高的位。011特殊EOI,由D2D1D0指定ISR某位清0。000取消优先级循环010(无意义)100普通优先级循环101普通优先级循环,普通EOI,清ISR中优先级最高位。110特殊优先级循环,由D2D1D0指定IRi为最低优先级。111特殊优先循环,特殊EOI,由D2D1D0指定ISR某位清0,且对应的IRi变为最低优先级。(3)OCW3:写入偶地址,且 D4D3 = 01 D7=0:无意义; D6D5=11:特殊屏蔽方式;D6D5=10取消特殊屏蔽方式; D2=1:查询中断方式; D1=1:表示读命令字; D0=1(结合D1=1):表示读偶地址是读ISR,D0=0:表示读偶地址是读

28、IRR;读奇地址是读IMR。 D2D1=00:中断方式。 D2D1=01:读 ISR/IRR(D0=1/0)。 D2D1=10:读查询字。 D2D1=11:第1次读查询字,第2次读ISR/IRR(D0=1/0)。D71D2D1D0查询字格式:由D2D1D0确定IRi发生中断(优先级最高)七、IBM/PC 中断结构 1、IBM PC/XT 硬件中断结构 见图 8259A 地址20H、21HIR0日时钟08HIR1键盘09HIR2IRQ2(保留)0AHIR3IRQ3COM20BHIR4IRQ4COM10CHIR5IRQ5硬盘0DHIR6IRQ6软盘0EHIR7IRQ7LPT0FH 2、IBM PC/AT 硬件中断结构 见图 主 8259A 地址为 20H、21H, 从 8259A 地址为 A0H、A1H主8259A中断源类型号从8259A中断源类型号中断号中断号IR0日时钟08HIR0 实时时钟 70HIR1键盘09HIR1 IRQ9用户71H0AHIR2/0AHIR2 IRQ10保留72HIR3IRQ3COM20BHIR3 IRQ11保留73HIR4IRQ4COM10CHIR4 IRQ12保留74HIR5IRQ5LPT20DHIR5 IRQ13协处理器 75HIR6IRQ6

温馨提示

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

评论

0/150

提交评论