资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,业精于勤,荒于嘻,*,第,8,章,中断技术,教学要求,理解,:,1,)中断、中断源、中断向量、中断过程;,2,),8086,中断系统结构、中断类型码、中断过程;外部中断的响应条件,掌握,:,1,),8086,中断方式及中断入口地址形成方式;,2,),8086,中断处理过程;,4,)中断向量的设置过程;,3),中断的使用,8.1,中断的概述,中断是微机原理中的一种非常重要的技术,也是,CPU,和外部设备进行数据交换的一种很有效的方法,中断的概念,所谓中断(,Interrupt,),是指计算机在运行过程中,当有某些紧急事件或外设请求发生时,迫使,CPU,暂时中断现行程序的运行而去处理紧急情况或外设请求,即去执行其对应的,中断服务程序,;等到事件处理完毕,又返回原程序的中断点处,继续执行被中断的程序。这个,过程和机制,称为中断。,中断有什么用途呢,中断有什么用途呢,CPU,与,I/O,设备并行工作,实现实时处理,多道程序或多重任务的运行,故障处理,中断源及其来源分类,引起中断的原因,或能发出中断申请的来源,称为中断源。,通常中断源有以下几种:,一般的输入、输出设备。如键盘、纸带读入机、行打印机等。,数据通道中断源。如磁盘、磁带等。,实时时钟,故障源,为调试程序而设置的中断源,中断的分类,就中断源及其性质讲,可分为,内部中断,和,外部中断,外部中断,:一般是指,I/O,设备或其它硬件电路所引起的中断。它的特点是通过硬件向,CPU,发出中断请求信号,经常称外部中断为,硬件中断,。外部中断又分为非屏蔽中断(,NMI,)和可屏蔽中断(,INTR,),内部中断,:主要指,CPU,内部的中断,是通过指令设置的中断。所以内部中断也称为,软件中断,。使用软件中断,其功能类似于子程序调用。只是这些子程序大部分是系统提供的,所以这类子程序的调用相当于高级语言中的库函数的调用。,8.2,中断的一般过程,中断请求,中断响应,中断服务,中断返回,中断请求,中断请求信号是由中断源向,CPU,发出的。中断源可以是,外部事件,,也可以是,CPU,的,内部事件,。外部事件的中断请求是外部设备向,CPU,中断请求引脚发出的电平或边沿信号。内部事件的中断请求可以是,CPU,执行一条中断指令使,CPU,进入中断处理过程,也可以是,CPU,执行程序的结果使,CPU,进入中断处理过程。,中断响应,若为非屏蔽中断申请,则,CPU,执行完正在执行的那一条指令后,做好保护工作即可去响应;,若为可屏蔽中断申请,,CPU,只有得到允许才能去响应。这就是说,CPU,能否在接到中断申请后立即响应要视情况而定。,对可屏蔽的中断申请,,CPU,要响应,必须满足以下三个条件:,无总线请求;,CPU,允许中断;,CPU,执行完现行指令。,CPU,响应中断要自动完成三项任务:,关闭中断;,CS,,,IP,以及,PSW,的内容推入堆栈(保护断点);,取得中断服务程序入口地址,进入中断服务。,中断服务,中断服务包括以下六个过程:,保护现场,开中断,中断服务程序,关中断,恢复现场,中断返回,大家考虑在终端返回时,是否需要开中断?,中断返回,在中断服务程序最后安排一条中断返回指令,使断点送回程序计数器,IP,,继续执行被中断的程序。,8.3 8086,中断系统,NMI,INTR,硬件中断,可,屏,蔽,中,断,请,求,INT,n,指令,非屏蔽中断请求,中 断 逻 辑,INT3,指令,INTO,指令,单步,中断,除数为,0,中 断,中,断,控,制,系,统,(8259A),8086,的中断分类,软件中断,中断向量及中断向量表,所谓中断向量,实际上就是中断处理子程序的入口地址,每个中断类型对应一个中断向量。,8086,的中断系统是以位于内存,0,段的,0,3FFH,区域的中断向量表为基础的,中断向量表中最多可以容纳,256,个中断向量。,中断向量并不是任意存放的。一个中断向量占,4,个存储单元,其中,前,2,个单元存放中断处理子程序入口地址的偏移量(,IP,),低位在前,高位在后,后,2,个单元存放中断处理子程序入口地址的段地址(,CS,),同样也是低位在前、高位在后。按照中断类型的序号,对应的中断向量在内存的,0,段,0,单元开始有规则地进行排列。,8086,中断处理的优先级,8086CPU,的中断优先权排列从高到低为:,除法出错中断,溢出中断,,INT n,断点中断,NMI,INTR,单步中断,8086,中断类型号的获取方法,有两种方法获取类型号。,第一种是用指令直接获取。对于类型号,0,4,的中断,由于,8086CPU,已规定了产生中断的原因,所以可以直接获取类型号。而,INT N,类型的中断可以由指令直接得到中断类型号。,第二种是由外部引入的,INTR,中断,当,CPU,响应中断时必须由硬件提供中断类型号。在可屏蔽中断响应周期进行到第二个周期时,类型号放入数据总线,,CPU,从数据总线上获取类型号,8086,响应中断时的自动过程,-,可屏蔽中断,首先将状态寄存器的内容压入堆栈中。,置,TF=0,,暂停单步中断,并置,IF=0,,用以屏蔽以后的可屏蔽中断。,断点地址,CS,:,IP,压入堆栈。,识别中断源,首先获取中断类型号。,根据中断类型号,获取中断向量,得到中断服务子程序的入口地址送入,CS:IP,中断的使用及相应处理,在计算机系统中只有自己使用的中断,为以后程序使用的中断,系统中已经在使用的中断,以上三种情况主程序的处理过程,4,计算机系统已经使用的中断,主程序以及中断服务子程序要配合,PC,机的中断安排,PC,机的中断安排(续),8.4,中断控制器,8259A,Intel 8259A,的功能,8259A,的结构及引脚,8259A,的中断管理方式,Intel 8259A,的功能,Intel 8259A,是与,8080/8085,系列以及,8088/8086,系列兼容的可编程的中断控制器。它的主要功能为:,具有,8,级优先权控制,通过级连可扩展至,64,级优先权控制。,每一级中断都可以屏蔽或允许。,在中断响应周期,,8259A,可提供相应的中断类型号,从而能迅速地转至中断服务程序。,8259A,有几种工作方式,可以通过编程来进行选择。,8259A,内部结构图,中断请求寄存器(,IRR,),该寄存器用来存放由外部输入的中断请求信号,IR7,IR0,,当某个输入端为高电平时,该寄存器的相应位置“,1”,。,中断服务寄存器(,ISR,),该寄存器记录正在处理中的中断请求,当任何一级中断被响应,,CPU,正在执行它的中断服务程序时,,ISR,寄存器中的相应位置“,1”,,一直保持到该级中断处理过程结束为止。多重中断情况下,,ISR,寄存器中可有多位被同时置“,1”,。,优先权判别器(,PR,),当输入端,IR7,IR0,中有多个中断请求信号同时产生时,由,PR,判定哪个中断请求具有最高优先权,并在脉冲期间把它置入中断服务寄存器,ISR,的相应位。,8259A,内部结构图的说明,8259A,内部结构图的说明(续),中断屏蔽寄存器(,IMR,),该寄存器中存放有关被屏蔽的中断线上的信息。当某位置“,1”,时,表示禁止这一级中断请求进入系统,通过,IMR,寄存器可实现对各级中断的有选择的屏蔽。,级联缓冲,/,比较器,一片,8259A,只能接收,8,级中断,当超过,8,级时,可用多片,8259A,级联使用,构成主从关系。对于主,8259A,,其级联信号,CAS2,CAS0,是输出信号,而对于从,8259A,,级联信号,CAS2,CAS0,是输入信号。,此时,主,8259A,的 端为“,1”,,从,8259A,的 端为“,0”,,且从,8259A,的,INT,输出接到主,8259,的中断输入端,IR,上,因而可把中断扩展到,64,级。,8259A,的管脚分配,8259A,的引脚信号,28,脚双列直插式封装,D7D0,:数据线。用于与,CPU,之间传送命令、状态、中断类型码。,:读出信号。通知,8259,把某个内部寄存器的值送数据线,D7D0,。,:写入信号。通知,8259,把数据线,D7D0,上的值写入内部某个寄存器。,IR7IR0,:,8,级中断请求输入,。,8259A,的引脚信号,A0,:选择内部寄存器的端口地址。,在标准,AT,机中,使用两片,8259,构成主从式中断系统,,主,8259,的端口地址:,20H,,,21H,从,8259,的端口地址:,A0H,,,A1H,INT:,把,IR7IR0,上的最高优先级请求传送到,CPU,的,INTR,引脚,:接收,CPU,的中断响应信号。,CPU,发出的中断响应信号为两个负脉冲。第一个负脉冲作为中断应答信号,第二个负脉冲到来时,,8259,从数据线,D7D0,上发出中断类型码。,8259A,的引脚信号,:片选输入端。,CAS2CAS0,:主,8259,与从,8259,间的级联线。主,8259,的,CAS2CAS0,为输出,从,8259,的,CAS2CAS0,为输入。,:双功能引脚,8259,数据线与系统数据总线间连接方式采用非缓冲方式(即直接相连,无数据总线驱动器)时,作为输入。主,8259,接高电平,从,8259,接低电平。,8259,数据线与系统数据总线间连接方式采用缓冲方式(即有数据总线驱动器)时,作为输出,用于启动数据总线驱动器。,8259A,的引脚信号,8259A,的编程结构,8259,的编程结构由三组共,10,个寄存器构成,每个寄存器均为,8,位。,8259A,的编程,初始化编程,8259A,开始工作前,必须进行初始化编程,给,8259A,写入,初始化命令字,ICW,中断操作编程,在,8259A,工作期间,可以写入,操作命令字,OCW,将选定的操作传送给,8259A,,使之按新的要求工作,还可以读取,8259A,的信息,以便了解他的工作状态,ICW1,ICW1,用来确定,8259,的链接方式和触发类型,D1,为,1,,表示本系统只用,1,片,8259,,否则是多片级联方式,D3,为,0,,本,8259,中断请求输入为上升沿有效,否则为高电平有效(是对于,IRx,的),D4 CPU,类型,若,CPU,为,8086,,则该位为,1,初始化控制字,ICW,A,0,D7,D6,D5,D4,D3,D2,D1,D0,0,*,*,*,IC4,LTIM,*,SNGL,1,ICW2,ICW2,用来规定本,8259,各个中断请求端的中断类型号,只有高,5,位有效,低三位可以为任意值,不影响。中断类型号的确定即为该高,5,为与请求端的编号组合。,初始化控制字,ICW,(续),A,0,D7,D6,D5,D4,D3,D2,D1,D0,1,T7,T6,T5,T4,T3,*,*,*,ICW3,只在级联情况下使用,如果系统中只有,1,片,8259,,则不使用,ICW3,ICW3,用来说明级联的详细情况。主,8259,与从,8259,的,ICW3,不同。,主,8259,的,ICW3,表示那个引脚有级联,而从,8259,的,ICW3,则用来说明,级联到主,8259,的那个引脚上,。,主,8259,从,8259,初始化控制字,ICW,(续),A,0,D7,D6,D5,D4,D3,D2,D1,D0,1,S7,S6,S5,S4,S3,S2,S1,S0,A,0,D7,D6,D5,D4,D3,D2,D1,D0,1,*,*,*,*,*,ID2,ID1,ID0,ICW4,8086CPU,必须设置,ICW4,D1=1,自动结束中断,否则为非自动结束,其余一般不关心,为,0,初始化控制字,ICW,(续),A,0,D7,D6,D5,D4,D3,D2,D1,D0,1,0,0,0,SFNM,BUF,M/S,AEOI,1,8259,A,芯片的初始化流程,写,ICW,1,A,0,=0,,,D,4,=1,写,ICW,2,A,0,=1,SNGL=1,IC,4,=1,写,ICW,3,A,0,=1,写,ICW,4,A,0,=1,是,
展开阅读全文