交大微机原理与接口技术课件_第1页
交大微机原理与接口技术课件_第2页
交大微机原理与接口技术课件_第3页
交大微机原理与接口技术课件_第4页
交大微机原理与接口技术课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 中断系统第一节 中断的基本概念一 CPU与外设之间的数据传送控制方式(即I/O控制方式),通常有以下三种:程序控制方式中断方式DMA方式(Direct Memory Access)程序控制方式:是在CPU的控制下,通过执行程序指令进行的数据传送方式。又分为“无条件传送”和“程序查询传送”两种方式。程序控制方式无条件传送方式:是在假定外围设备(Peripheral Device)已经准备好的情况下,直接利用输入/输出指令(IN指令,OUT指令)与外围设备传送数据,而不去检测外设的工作状态。优点:控制程序简单缺点:数据传送不可靠程序查询方式(也称“条件传送”方式)主要特点:CPU通过执行程

2、序不断读取并检测外设的状态,只有在外设确实已准备就绪的情况下,才进行数据传送;否则,还要继续不断地查询外设的状态。程序控制方式查询式输入、输出程序流程图读取状态信息准备好?输入数据是否读取状态信息忙?输出数据否是程序控制方式程序查询传送方式比无条件传送方式要准确可靠,但在此种方式下,CPU要不断查询外设的状态,占用了大量CPU时间,而真正用于数据传送的时间却很少,即CPU的工作效率很低;另外,采用这种方式,也很难满足实时系统对I/O处理的要求。因此,出现了中断控制方式。二 中断方式中断定义:在程序运行中,出现了某种紧急事件,CPU必须中止现行程序,转去处理此紧急事件(执行中断服务程序),并在处

3、理完毕后再返回运行程序的过程。(参见P117)中断的全过程及有关概念:一个完整的中断过程包括:中断请求;中断判优;中断响应;中断处理;中断返回.二 中断方式“中断请求”是指中断源(引起中断的事件或设备)向CPU发出的请求中断的要求;当有多个中断源发出中断请求时,需要通过适当的办法(软件的;硬件的;软、硬件结合的)决定究竟先处理哪个中断请求,这就是“中断判优”;“中断响应”是指CPU中止现行程序转至中断服务程序的过程;“中断处理”就是指CPU执行中断服务程序;执行完中断服务程序后,返回到原先被中断的程序称为“中断返回”。为了能正确返回到原来程序被中断的地方(也称断点即主程序中当前指令下面一条指令

4、的地址),在中断服务程序的最后应专门放置一条中断返回指令。另外,为了使主程序在返回后仍能从断点处继续执行,还需要在中断服务程序的开头保护现场(通过PUSH指令实现),在中断服务程序的末尾恢复现场(通过POP指令实现)。三 中断响应和处理过程需要指出,对于不同的中断类型(如可屏蔽中断、不可屏蔽中断;外部中断、内部中断),处理器(CPU)进行响应和处理的具体过程并不完全相同;另外,就是对同一种中断类型(如可屏蔽中断),不同的处理器(如Z80,80X86)进行响应和处理的过程也不尽相同。书中P118一般地概括了六步(16)。对他们的具体理解可通过下一节“8086/8088系统的中断响应和处理过程”来

5、进一步加深。三 中断响应和处理过程简要解释1,2,3,4,5,6其中,前3项一般由硬件(处理器内部)完成;而后3项一般是由软件(由程序设计者编写的中断服务程序)来完成,即整个中断响应和处理过程是由CPU内部的有关硬件和中断处理软件密切配合,共同完成的。针对一个具体的系统(机型),中断服务程序设计者应该清楚在中断响应时,“硬件”完成了哪些操作(如FR是否已被压入堆栈),还需要“软件”(中断服务程序)完成哪些操作。四 中断优先级和中断嵌套1.中断优先级(Priority)的解决方法系统中多个中断请求可能同时出现,CPU只能按一定的次序(优先级策略)予以响应和处理,这个响应的次序称为中断优先级。一般

6、的方法有:软件查询法(需要少量硬件)菊花链(daisy chain)优先级排队电路可编程中断控制器(如8259)(1)软件查询法把各个外设的中断请求信号“相或”,产生一个总的INT信号当CPU响应中断后,进入中断处理程序,在中断处理程序的开始部分安排一段带有优先级的查询程序。优点:省硬件缺点:中断响应慢01267INT磁盘磁带CRT键盘打印“或”端口号XXH(2)菊花链优先级排队电路 *中断请求INT1INT2INT3CPU INTR接口设备3接口设备2接口设备1菊花链逻辑电路中断回答集电极开路门(OC门)INT1+INT2+INT3+5V(2)菊花链优先级排队电路INTAINTRINTA中断

7、请求INTR=INT1+INT2+INT3当INTA信号沿菊花链行进时,最靠近CPU并发出INT请求的接口将首先拦截住INTA信号,并送出中断类型码,进入相应的中断处理程序;在服务完成后撤销其请求(解除对下一级的阻塞和封锁)。(3)可编程中断控制器(如8259)2.中断嵌套通常,正在执行较低级的中断服务程序时,可以响应较高级的中断请求,而将正在处理的中断暂时挂起,称为中断嵌套。.STI.IRETSTIIRET可实现“多重嵌套”第二节 8086/8088的中断系统一.中断的分类:在8086/8088系统中,可将中断分为两大类(如图5.1所示):第一类:硬件中断:是由外部的中断请求信号启动的中断,

8、也称为外部中断。又可分为:非屏蔽中断NMI:整个系统只有一个,不受IF屏蔽可屏蔽中断INTR:受IF屏蔽,在中断控制器8259的统一管理下,可屏蔽中断可有几个至几十个。中断的分类(注意,这里的IF是CPU内部的标志寄存器的IF位,IF0,则对所有从INTR引脚进入的中断请求均不予响应(“总开关”);另外,也可以在CPU外部的中断控制器(8259)中以及各个I/O接口电路(如8255)中对某一级中断或某个中断源单独进行屏蔽)。第二类:软件中断:是由CPU内部的标志状态(如TF、OF)或执行一条中断指令(INT n),以及除数为0引起的中断,也称为内部中断。二 中断向量和中断向量表所谓中断向量,即

9、中断服务程序的入口地址。中断向量表是存放中断向量(中断服务程序入口地址)的一个特定的内存区域(最低地址区).一个中断向量占4个字节单元,其中:低地址的两个字节单元存放中断服务程序入口地址的偏移量(IP)低字节在前(低地址),高字节在后(高地址);高地址的两个字节单元存放中断服务程序入口地址的段地址(CS)低字节在前(低地址),高字节在后(高地址)。中断向量和中断向量表8086/8088的中断向量表如书P120图5.2所示。解释:8086/8088可以处理256种中断,对每种中断都指定一个中断类型号(也称中断向量号),每个中断类型号与一个中断服务程序的入口地址相对应。256个中断向量要占256*

10、41024个字节单元,地址编号从00000H003FFH5个专用中断(类型0类型4),它们有固定的定义和处理功能;27个保留的中断(类型5类型31)。占0000:0014H0000:007FH,共108个字节单元。这个区域供系统使用,不允许用户自行定义。224个用户可定义的中断(类型32类型255)。占0000:0080H0000:03FFH单元;使用时,要由用户自行填写相应的中断入口地址。(其中有些中断类型已经有了固定用途,例如,类型21H的中断已用作MS-Dos的系统功能调用)。中断向量和中断向量表由于中断向量在中断向量表是按中断类型号顺序存放的,所以每个中断向量的地址可由中断类型号4计算

11、出来。CPU响应中断时,需把中断类型号N乘以4,得到中断向量的对应地址4N(该中断向量所占4个字节单元的第一个字节单元的地址),然后把由此地址开始的两个低字节单元的内容装入IP寄存器:IP (4N,4N+1),再把两个高字节单元的内容装入CS寄存器:CS (4N+2,4N+3),这就是转入中断类型号为N的中断服务程序的控制过程。N的来源,对于不同的中断类型(内部,外部:NMI、INTR)情况有所不同,详见后述中断向量和中断向量表例1:若中断类型号为3,则由中断类型号取得中断服务入口地址的过程如下图所示:00000H00001H0000CH(0000:000CH)1EA00H(1E00:0A00

12、H)FFFFFH低地址内存高地址 1E00 0 H+ 0A0 0 H 1EA0 0 H中断类型号34000CH.00(IPL)0A(IPH)00(CSL)1E(CSH).中断服务程序中断向量和中断向量表例2.中断类型号为20H,中断服务程序的入口地址存放在0000:0080H开始的4个单元中。若:(0080H)=10H (0081H)=20H(0082H)=30H(0083H)=40H则:中断服务程序的入口地址为中断向量和中断向量表例3.中断类型号为23(17H),中断服务程序的入口地址为:2340:7890H,由于中断类型号17H对应的中断向量存放在0段的0000:005CH(17H4=5C

13、H)处,所以有:(005CH)=(005DH)=(005EH)=(005FH)= 0101 1100 B左移2位:0001 0111 B5CH三 8086/8088中断处理流程图8086/8088中断处理流程图*8086中断优先级(Priority)说明:(1)(5)步是CPU的内部处理(由硬件自动完成)所有内部中断(除法错、INT n、INT0、单步)以及NMI中断不需要从数据总线上读取中断类型码,而INTR中断需读取中断类型码,中断类型码由发出INTR信号的接口提供。中断优先级除法错,INTn,INT0NMIINTR单步中断最高最低单步运行方式时发生中断的处理过程单步运行方式时发生中断的处

14、理过程堆栈的情形:60704050(FR)30401020(FR)低地址高地址IPCSTF=0IPCSTF=1作业: 画出在单步运行时(TF=1)发生INTR中断的处理流程及堆栈的情形。假定当前指令下一条指令的地址为4030H:2080H;INTR中断服务程序的入口地址为9080H:3020H.四 软件中断(内部中断)除法错中断(也称除数为0中断)类型0在执行DIV(无符号除法)或IDIV(带符号除法)指令时,若发现除数为0,则立即产生一个类型号为0的内部中断,CPU转向除法错中断处理程序。溢出中断类型4若上一条指令执行的结果使溢出标识位OF被置1,则接着执行INTO指令时,将引起类型为4的内

15、部中断,CPU转入对溢出错误处理程序,若OF=0时,INTO指令执行空操作,即INTO指令不起作用。INTO指令通常安排在算术指令之后,以便在溢出时能及时处理。例如:软件中断软件(指令)中断(执行INT n指令引起的中断)双字节指令,第一个字节为操作码;第二个字节为中断类型号,该指令控制CPU转向相应的中断服务程序。主程序:.ADD AX,BX; 若OF=1 INTO溢出中断服务程序:IRET软件中断断点中断类型3INT3或简写为INT,是单字节指令。调试程序时可以在一些关键性的地方设置断点,使CPU在此断点处执行中断服务程序。单步中断类型1TF=1.单步执行软件中断(内部中断)的特点中断类型

16、号由CPU内部自动提供(包括由中断指令第二字节提供的中断类型号),不需去执行中断响应总线周期读取中断类型号。除单步中断外,所有内部中断(除法错,INTO,INT n)均不可以用软件来屏蔽。除单步中断外,所有内部中断都比外部中断优先级高。五 中断服务程序的一般结构保护现场(将需要保护的寄存器压入堆栈)STI(可选);恢复现场IRET中断处理例如:PUSH AXPUSH BXPUSH CXPOP CXPOP BXPOP AX*指令系统中没有单独置“1”或清“0”TF的指令,可实现如下:PUSHF; FR的内容压入堆栈POP AX; FR的内容弹出到AXOR AX,0100H; 使AX中对应TF的位

17、置为“1”,其他位不变PUSH AX; 修改后的AX内容压入栈POPF 弹回到FR(TF=1)1-TFPUSHFPOP AXAND AX,PUSH AX;POPF0-TF第三节 可编程中断控制器8259A(8259A Programmable Interrupt Controller-PIC)Intel 8259A用于管理和控制80 x86的外部中断请求,实现优先级判决,提供中断矢量码,屏蔽中断输入等功能。使用单片8259A可以管理8级中断,采用级联方式,可扩充到64级(用9片8259A)。可编程中断控制器8259A.IR0IR7单片 INTINTA8259AINTRINTACPU.中断请求

18、CPU8259A.IR0IR7级联主8259AIR0从.IR7 8259AIR0从.IR7INTAINTR可编程中断控制器8259A一、8259A的引脚功能封装形式28脚双列直插(28pin DIP),DIP:Dual-In-Line Package ,如图5.7所示。 123456789101112131428272625242322212019181716158259ACS WR RDD7D6D4D5D2D3D0D1CAS0CAS1GNDINTAIR7IR6IR4IR5IR2IR3IR0IR1INTCAS2 SP/ENVCCA0可编程中断控制器8259A可编程中断控制器8259A 片选信号

19、(Chip Select)低电平有效,来自地址译码器的输出只有有效时,CPU才能对8259A进行读写操作。 写信号,低电平有效,来自CPU的输出;当有效且有效时,使8259A接受CPU送来的命令字。 读信号,低电平有效,来自CPU的输出;且有效且 有效时,使8259A将状态信息放到数据总路线上,供CPU检测。CSWRCSCSCSRDRDWRWRRD可编程中断控制器8259AD7 D0 :双向数据总线,接到系统数据总线的D7 D0 上,用来传送控制字、状态字和中断类型号。IR7IR0 :中断请求信号,输入,来自外部接口电路。(单片时)INT:向CPU发出的中断请求信号。(单片时)。:中断响应信号

20、,由此接收CPU发来的中断响应脉冲。INTAA0:地址输入信号,用于对8259A内部寄存器的寻址。CAS2 CAS0:级联线(CASCADELINES),传送3位标识码,用于区分特定的从控制器。双向:对于主片为输出,对于从片为输入。:从片/允许缓冲器信号。双功能引脚:作为输入时,8259A作为主片(1) 8259A作为主片(0)见P130图5.9作为输出时,用来启动(允许)数据总线收发器(如8286)。 *究竟是作为输入还是输出,取决于8259A是否工作于“缓冲方式”(即8259A是否通过一个“数据总线收发器”与系统总线相连)。详见后面ICW4的格式。可编程中断控制器8259ASP/ ENSP

21、/ ENSP/ EN二、8259A的内部结构CPUAD7AD0INTAINTRSP/ENISRICW1 OCW1 (IMR)ICW2OCW2ICW3OCW3ICW4PRIRRD7D0地址译码.INTINTACSRDWRA0CAS0CAS1CAS2.IR7IR0IRRInterrupt Request RegisterPR-Priority ResolverISR-In-Service RegisterIMR-Interrupt Mask RegisterICWs-Initialization Command WordsOCWs-Operation Command Words7个CPU可访问的寄

22、存器,分两组:初始化命令字ICW1 ICW4-系统初启时设定。操作命令字OCW1OCW3系统运行时,由应用程序设定(实现对中断处理的动态管理和控制). The OCWs can be written into the 8259A anytime after initialization.(手册P6137)。8259A的内部结构8259A的内部结构7个寄存器的寻址问题:规定:A0 ICW4:用偶地址写入,且D4=1ICW2ICW3ICW4紧接着ICW1,用奇地址写入OCW1:也用奇地址写入,但不紧跟ICW1OCW2OCW3也用偶地址写入,但D4=0即:000采用了专门的“标识位,以节省输入地址的

23、引脚数(仅用了A0)8259A的内部结构8259A的处理部件:中断请求寄存器IRR8位寄存器控制逻辑作用:接受并锁存来自IR0IR7的中断请求信号中断服务寄存器ISR作用:保存当前正在处理的中断请求优先级裁决器PR作用:把新进入的中断请求和当前正在处理的中断进行比较,以决定哪一个优先级更高8259A的内部结构处理过程:IR0IR7上出现某一中断请求信号-IRR对应位被置“1”-由IMR的相应位决定是否将其屏蔽(屏蔽位=1,不通过;屏蔽位=0,通过)-中断请求进PR-PR把新进入的中断请求和当前正在处理的中断进行优先级比较-若新进入的中断优先级高,该中断请求被送到CPU。若CPU的IF=1,CP

24、U完成当前指令后,响应中断,在 引脚上发出两个负脉冲(执行两个中断响应总线周期,参见P122图5.4):INTA8259A的内部结构处理过程(续):8259A收到第一个负脉冲后使IRR锁存允许,不予接受IR0IR7上的中断请求信号;直到第二个负脉冲结束后,才又使IRR锁存禁止(输入输出透明)使ISR的相应位置“1”,以便为优先级裁决器以后的裁决提供依据。清除IRR的相应位。8259A收到第二个负脉冲后:把中断类型码寄存器的内容(ICW2的内容)送到D7D0如果ICW4的AEOI位为1,则在第二个 脉冲结束时,将ISR中被第一个 脉冲置“1”的位清除(自动结束);否则,要等到中断结束命令(EOI

25、)发送后才能清除。INTAINTA三 8259A的工作方式1 .设置优先级的方式(1) 全嵌套方式(FULLY NESTED MODE)也称固定优先级方式。在这种方式下,由IRi引入的中断请求具有固定的优先级IR0(最高)IR7(最低).This mode is entered after initialization unless another mode is programmed.当一个中断请求被响应时,ISR中的对应位ISn被置“1”,8259A把中断类型码放到数据总线上,然后,进入中断服务程序。一般情况下(除了“中断自动结束”方式外),在CPU发出中断结束命令(EOI)前,此对应位一

26、直保持为“1”封锁同级或低级的中断响应,但并不禁止比本级优先级高的中断响应实现中断“嵌套”。8259A的工作方式(2) 特殊全嵌套方式(SPECIAL FULLY NESTED MODESFNM)在处理某一级中断时,不但允许优先级更高的中断请求进入,也允许同级的中断请求进入。用于主从结构的8259系统中,将主片设置为“特殊全嵌套方式”。通过ICW4的“SFNM”位可以设置此种方式。(参见p132)CPUIR0IR1IR7IR0IR1IR78259(主片)8259(从片)8259A工作方式(3) 优先级自动循环方式(AUTOMATIC ROTATION)优先级是循环变化的(不希望有固定的优先级差

27、别)一个设备的中断服务完成后,其优先级自动降为最低,而将最高优先级赋给原来比它低一级的中断请求。开始时,优先级队列还是:IR0-IR7,若此时出现了IR0请求,响应IR0并处理完成后,队列变为:IR1,IR2,IR3,IR4 ,IR5 ,IR6 ,IR7,IR0。若又出现了IR4请求,处理完IR4后,队列变为:_系统中是否采用“自动循环优先级”,由操作命令字OCW2来设定。( 参见p132, P133)8259A的工作方式(4)优先级特殊循环方式(SPECIFIC ROTATION)与“优先级自动循环方式”相比,只有一点不同,即可以设置开始的最低优先级。例如,设定IR4为最低优先级,那么IR5

28、就是最高优先级,其余各级按循环方法类推。(OCW2:”110”)8259A的工作方式2. 屏蔽中断源的方式(中断屏蔽方式)普通屏蔽方式通过对中断屏蔽寄存器(IMR)的设定,实现对相应位为“1”的中断请求的屏蔽。可通过OCW1使IMR的一位或几位置“1”。*特殊屏蔽方式(SPECIAL MASK MODE)作用:P129实现:输出OCW3(ESMM=1,SMM=1)输出OCW1(使IMR对应于本级的位为“1”)输出OCW1(使IMR对应于本级的位为“0”)输出OCW3(ESMM=1,SMM=0)“中断级无效”设置撤销8259A工作方式3. 中断结束方式(END OF INTERRUPTEOI)(

29、1)中断自动结束方式(AUTOMATICAEOI方式)在第二个 后沿,即完成把对应的ISR位复位。注意:AEOI方式是在中断响应后,而不是在中断处理程序结束后将ISR位清0。这样,在中断处理过程中,8259A中就没有“正在处理”的标识。此时,若有中断请求出现,且IF1,则无论其优先级如何(比本级高、低或相同),都将得到响应。尤其是当某一中断请求信号被CPU响应后,如不及时撤销,就会再次被响应“二次中断”所以,AEOI方式适合于中断请求信号的持续时间有一定限制以及不出现中断嵌套的场合。通过ICW4可以设置AEOI方式(AEOI=1)INTA8259A工作方式(2)一般(常规)中断结束方式适合于全

30、嵌套方式。实现:在中断服务程序结束时,向8259A发常规中断结束命令(OCW2:EOI=1,SL=0,R=0)例:MOV AL,20H; OCW2=20H OUT 20H,AL; 端口地址=20H(偶地址)在全嵌套方式下,ISR中最高优先级的置“1”位,正对应于当前正在处理的中断,将其清“0”,就完成了当前正在处理中断的结束操作。1101IR0IR78259A工作方式(3)特殊中断结束方式(SPECIFIC EOISEOI)在非全嵌套方式下,无固定的优先级序列(使用设置优先权命令或特殊屏蔽方式),此时,根据ISR的内容就无法确定刚刚所响应(处理)的中断。这种情况下,就不能用上述的EOI方式进行

31、中断结束处理,而必须用特殊的中断结束命令SEOI用OCW2:EOI=1,SL=1,R=0,L2L0.由L2L0指定清除ISR中的哪一位。8259A工作方式4. 中断触发方式电平触发方式:由IRi上的有效电平来触发“中断请求触发器”。边沿触发方式:由IRi上由低电平向高电平的跳变来触发“中断请求触发器”。由ICW1的LTIM位可以设置中断触发方式。8259A工作方式5. 连接系统总线的方式缓冲方式(ICW4的BUF=1)8259A通过总线驱动器(如8286)和数据总线相连。在缓冲方式下,8259A的 作为输出( 有效),此时,由ICW4的M/S位来定义(标识)本8259A是主片还是从片。非缓冲方

32、式(ICW4的BUF=0)即8259A直接与数据总线相连在“非缓冲方式下”,8259A的 作为输入( 有效) 此时,由 端来标识本8259A是主片还是从片。在“非缓冲方式下”,ICW4的BUF0,M/S位无意义。SP / ENENSP / ENSPSP / EN8259A工作方式*“中断查询”方式特点:总的说,既有中断的特点,又有查询(Polling)的特点。外设仍然向8259A发中断请求信号,要求CPU服务。CPU的IF=0,不响应外部的中断请求(对CPU的中断请求信号不起作用)此时,CPU需要用软件查询方法来确认中断源,从而实现对设备的服务先向8259A发查询命令(poll command)OCW3:00001100P8259A的工作方式紧接着执行一条读指令(IN指令),读出专门的“中断状态字”:当8259A收到P=1的查询命令后,在下一个 信号将使ISR的相应位置“1”,就像收到了 一样,并把上述的“中断状态字”送到数据总线上,由CPU读入AL。0A0IR W2 W1 W0D7D01:有设备请求服务;0:无设备请求服务。当前最高优先级的中断请求RDINTA四 8259A的级联使用五 8259A的控制字及编程使用1 .初始化命令字ICW1ICW4.(详见P131)8259A的初始化流程:8259A的控制字及编程使

温馨提示

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

评论

0/150

提交评论