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

下载本文档

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

文档简介

第8章中断系统

当CPU与外设用查询方式传送数据时,CPU将大量时间花在等待上,降低了工作效率。因此在计算机技术中引入了中断的概念。中断是现代计算机必须具备的重要功能,也是计算机发展史上的一个重要里程碑,它的出现给计算机结构与应用带来了新的突破。本章介绍微机中断系统的功能、中断过程、中断管理,8086的中断系统,可编程中断控制器8259A的工作原理及应用

1.中断

所谓“中断”是指CPU执行程序过程中,由于某种事件发生,迫使CPU暂时中止正在执行的程序,转去执行该事件的处理程序,待处理完毕后,又返回到原程序的断点处,继续往下执行的过程。

2.中断源

引起中断的原因或发出中断请求的来源称为中断源。8.1中断概述

8.1.1中断的基本概念中断过程8.1.1中断的基本概念8.1.1中断的基本概念中断系统的功能:1)实现中断及返回包括发现中断请求,相应中断请求,中断处理与中断返回。2)实现优先权排队通常,在系统中有多个中断源,会出现两个或多个中断源同时提出中断请求的情况。3)高级中断源能中断低级的中断处理当CPU响应某一个中断源的请求,在中断处理时,若有优先级别更高的中断源发出中断申请。

(3)能实现中断的嵌套中断的嵌套是指高级别的中断能中断较低级别的中断处理,它类似于子程序嵌套。8.1.1中断的基本概念中断最初的目的是为了解决高速CPU与低速外设之间的速度矛盾。实际上,中断的功能远远超出预期的设计,被广泛地应用于多方面,大大提高了CPU的工作效率。中断的优点有下面三点。

(1)分时操作中断技术实现了CPU和外部的并行工作,从而消除CPU的等待时间,提高了CPU的利用率。另外,CPU可同时管理多个外部设备的工作,提高了输入/输出数据的吞吐量。

8.1.1中断的基本概念

(2)实时处理在实时控制系统中,现场定时或随机地产生各种参数、信息,要求CPU立即响应。利用中断机制,计算机就能实时地进行处理,特别是对紧急事件的处理。

(3)故障处理计算机运行过程中,如果出现某些故障,如电源掉电、运算溢出等,计算机可以利用中断系统自行处理。8.1.1中断的基本概念

2.中断源所谓中断源,就是引起中断的原因或者发出中断请求的设备。中断源一般分为两类:内部中断源和外部中断源。

内部中断源即中断源在微处理器内部。如计算溢出、中断指令的执行、程序调试中指令的单步运行等都是内部中断源。

外部中断源即引起中断的原因是处理机的外部设备。如外设的I/O请求、定时时间到、设备故障、电源掉电等都是外部中断源。8.1.1中断的基本概念(1)外部设备请求中断

(2)故障强迫中断(3)实时时钟请求中断。(4)数据通道中断。(5)程序中断。8.1.1中断的基本概念

3.中断控制的功能(1)中断请求中断请求就是中断源向CPU发出的请求中断的要求。这个中断请求信号通常加到CPU的中断请求输入端。

(2)能实现中断判优功能中断判优,即根据中断源的优先级进行排队。当系统中出现多个中断源同时提出中断请求的情况时,中断控制电路能根据各中断源的优先级进行响应,优先级最高的中断请求先响应。8.1.2中断处理过程

(3)中断响应CPU接收到中断申请后,从中止现行程序到转向中断服务程序入口的过程,称为中断响应。必须满足两个条件:1.中断是开发的。2.CPU在现行指令结束后响应中断。中断响应过程中,CPU自动执行以下操作:关中断。保护断点和标志。转入中断服务程序。

8.1.2中断处理过程8.1.2中断处理过程(4)中断处理

中断处理就是执行中断服务程序。通常,在中断服务程序中都可根据需要完成以下工作:保护现场开中断中断服务关中断恢复现场

8.28086中断系统

8086CPU可以处理256种不同类型的中断,每一种中断都给定一个编号(0255),称为中断类型号,CPU根据中断类型号来识别不同的中断源。中断源可分为两大类:一类来自CPU的外部,由外设的请求引起,称为硬件中断(又称外部中断);另一类来自CPU的内部,由执行指令时引起,称为软件中断(又称内部中断)。

1.非屏蔽中断NMI(中断类型号为2)整个系统只有一个非屏蔽中断,它不受IF标志位的屏蔽。出现在NMI上的请求信号是上升沿触发的,一旦出现,CPU将予以响应。非屏蔽中断一般用于紧急故障处理。

8.2.1外部中断

2.可屏蔽中断INTR可屏蔽中断请求信号从INTR引脚送往CPU,高电平有效,受IF标志位屏蔽,IF=0时,对于所有从INTR引脚进入的中断请求,CPU均不予响应;另外,也可以在CPU外部的中断控制器(8259A)中以及各个I/O接口电路中对某一级中断或某个中断源单独进行屏蔽。

8.2.1外部中断

1.内部中断(软件中断)CPU内部请求信号引起的中断均为内部中断,内部中断根据引起中断的原因不同可分为以下几种:

(1)除法错中断(类型号为00H)当CPU执行除法指令(DIV/IDIV)时,若除数为0或所得的商超过了寄存器所能表示的最大值,则立即产生一个除法错中断。CPU响应中断后转去执行除法错中断处理程序。8.2.2内部中断

(2)单步执行中断(类型号为01H)当TF=1时,每执行一条指令,CPU会自动产生一个单步中断。单步中断处理子程序显示各个寄存器及使用的存储单元内容,以便分析单条指令执行的结果。单步中断又称为陷阱中断,主要用于程序调试。

(3)断点中断(类型号为03H)提供给用户一个调试手段,通常在DEBUG调试程序时,可通过命令在程序中任意指定断点地址,当CPU执行到断点时便产生中断,同时显示当前各寄存器的内容和标志位的值以及下一条要执行的指令,供用户检查在断点以前的程序运行是否正常。8.2.2内部中断

(4)溢出中断INTO(类型号为04H)CPU进行带符号数的算术运算时,若发生了溢出,则标志位OF=1,如果此时执行INTO指令,会产生溢出中断。若OF=0,则INTO不产生中断,CPU继续执行下一条指令。INTO指令通常安排在算术指令之后,以便在溢出时能及时处理。

(5)指令中断CPU执行INTn指令后,会立即产生一个类型码为n的中断,中断指令的操作数n就是中断类型码,转入相应的中断处理程序。

8.2.2内部中断

2.内部中断的特点(1)除单步中断外,所有内部中断的优先权都比外部中断的优先权高。8086的中断优先级由高到低的顺序排列如下:①除法出错中断、INTO、INTn②非屏蔽中断NMI③可屏蔽中断INTR④单步中断(2)除单步中断外其它内部中断均无法禁止。(3)由于中断类型码已确定,所以不用执行中断响应周期取中断类型码。(4)由于内部中断均处于程序的固定位置处,所以无随机性。8.2.2内部中断8086/8088中断源

8.28086中断8086/8088最多可以处理256个中断,将这些中断处理子程序的入口地址统一存放在内存的一个固定区域。每个中断处理子程序的入口地址占用4字节存储单元:低地址的两字节存放中断处理子程序入口地址的偏移量(IP);高地址的两字节存放段地址(CS)。这些中断处理子程序的入口地址,称为中断向量。256个中断向量要使用1024个字节的内存区域,称中断向量表。8086/8088系统的中断向量表位于内存的前1024字节,地址范围为00000H~003FFH。每个中断源分配一个中断类型码。

12_内部中断过程标清.flv17_int9写键盘缓冲区标清.flv8.2.3中断向量表8086/8088的中断向量表

8.2.3中断向量表

中断服务程序入口地址在中断向量表中是按中断类型码顺序存放的,位置可由“中断类型码×4”计算出来。CPU响应中断时,把中断类型码n乘以4,得到对应地址4n(该中断服务程序入口地址所占4个字节的第一个字节的地址),然后把由此地址开始的两个低字节单元的内容装入IP寄存器,再把两个高字节单元的内容装入CS寄存器,CPU即转向中断类型码为n的中断服务程序。8.2.3中断向量表

中断向量表中有5个专用中断(中断类型码为0~4),它们的用途已经确定;27个系统保留的中断(中断类型码为5~31)供系统使用,不允许用户自行定义;224个用户自定义中断(中断类型码为32~255),这些中断类型码可供软中断INTn或可屏蔽中断INTR使用(中断类型码21H的中断已用作DOS的系统功能调用)。由用户确定了中断类型码后,还应先将相应的中断处理子程序入口地址填入中断向量表,以便CPU根据提供的中断类型码找到相应的中断向量。8.2.3中断向量表8.4可编程中断控制器8259A

8259A具有如下功能:①以接收多个外部中断源的中断请求,并进行优先级别判断,选中当前优先级别最高的中断请求,再将此请求送到微处理器的中断输入端。②具有提供中断向量、屏蔽中断输入等功能。③可用于管理8级优先权中断,最多构成64级优先权中断管理系统。中断服务程序入口地址构成的中断向量表存放在内存固定区域。④有多种工作方式,自动提供中断服务程序入口地址8.4.28259A的内部结构及外部引脚

1.8259A的内部结构

(1)数据总线缓冲器8位双向三态缓冲器,是8259A与系统数据总线的接口。8259A通过数据总线缓冲器接收微处理器发来的各种命令控制字、有关寄存器状态的读取,8259A也通过数据总线缓冲器向微处理器送出中断类型码等。

(2)读/写控制逻辑该部件接收来自CPU的读/写命令,配合片选信号、读信号、写信号和地址线A0共同实现控制,完成规定的操作。8.4.28259A的内部结构及外部引脚

(3)级联缓冲器/比较器8259A既可工作于单片方式,也可工作于多片级联方式。这个部件在级联方式下用于标识主从设备,在缓冲方式下控制收发器的数据传送方向。

(4)中断请求寄存器IRR8位寄存器,用来锁存外部设备送来的IR7~IR0中断请求信号。每位对应着8259A的8个外部中断请求输入端中的一位,当某引脚上有中断请求信号时,IRR对应位置1,当该中断请求被响应时,该位复位。8.4.28259A的内部结构及外部引脚

(5)中断屏蔽寄存器IMR8位寄存器,用于设置中断请求的屏蔽信号。每位对应着输入端IR7~IR0中的一位。如用软件将IMR的某位置“1”,则其对应引脚上的中断请求将被8259A屏蔽,即使对应IRi引脚上有中断请求信号也不会产生中断请求输出

(6)中断服务状态寄存器ISR8位寄存器,记录当前正在被服务的所有中断级,包括尚未服务完而中途被更高优先级打断的中断级。每位对应输入端IR7~IR0中的一位。若某个引脚上的中断请求被响应,则ISR中对应位被置1。ISR的置位也允许嵌套。8.4.28259A的内部结构及外部引脚

(7)优先权分析器PR用于识别和管理各中断请求信号的优先级别。当在IR输入端中断请求信号通过IRR送到PR。PR检查ISR的状态,判别有无优先级更高的中断正在被服务,若无,则将IRR中优先级最高的中断请求送入ISR,并通过控制逻辑向CPU发出中断请求信号INT,并且将ISR中的相应位置“1”

(8)控制逻辑8259A全部功能的控制核心。它包括一组初始化命令字寄存器ICW1~ICW4和一组操作命令字寄存器OCW1~OCW3,以及有关的控制电路。8.4.28259A的内部结构及外部引脚2.8259A的外部引脚8.4.28259A的内部结构及外部引脚

1.中断优先级管理方式(1)全嵌套方式全嵌套方式也称固定优先级方式。在这种方式下,由IR端引入的中断请求具有固定的优先级,IR0最高,IR7最低。在对8259A初始化后若没有设置其他优先级方式,则默认为全嵌套方式。

8.4.38259A的工作方式

(2)特殊全嵌套方式在主从结构的8259A系统中,将主片设置为特殊全嵌套方式,可以在处理某一级中断时,不但允许优先级更高的中断请求进入,也允许同级的中断请求进入。

8.4.38259A的工作方式

(3)优先级自动循环方式各中断源优先级是循环变化的,主要用在系统中各中断源优先级相同的情况下。一个设备的中断服务完成后,其优先级自动降为最低,而将最高优先级赋给原来比它低一级的中断请求。8.4.38259A的工作方式

(4)优先级特殊循环方式该方式与优先级自动循环方式相比,只有一点不同,即可以设置开始的最低优先级。例如,最初设定IR4为最低优先级,那么IR5就是最高优先级,而优先级自动循环方式中,最初的最高优先级一定是IR0。

8.4.38259A的工作方式

2.中断屏蔽方式(1)普通屏蔽方式通过对中断屏蔽寄存器(IMR)的设定,实现对中断请求的屏蔽。中断屏蔽寄存器的每一位对应了一个级别的中断请求,当某一位为1时,与之相应的某一级别的中断请求被屏蔽。(2)特殊屏蔽方式当一个优先级较高的中断请求正在被处理时,若设置了特殊屏蔽方式,则允许优先级较低的中断进入正在处理的高级别中断。8.4.38259A的工作方式

3.中断触发方式(1)电平触发方式该方式以IR端上出现的高电平作为中断请求信号。请求一旦被响应,该高电平信号应及时撤除。

(2)边沿触发方式该方式以IR端上出现由低电平向高电平的跳变作为中断请求信号,跳变后高电平一直保持,直到被响应。

8.4.38259A的工作方式

4.中断结束方式(1)自动结束方式(AEOI)自动结束方式在第二个负脉冲的后沿将对应的ISR位清0。该方式是在中断响应后,而不是在中断处理结束时将ISR位清0。在中断处理过程中,就没有“正在处理”的标识。此时若有中断请求出现,没有屏蔽且IF=1,则无论其优先级如何,都将得到响应。所以,中断自动结束方式是一种最简单的结束方式,只适合于中断请求信号的持续时间有一定限制、系统中只有1片8259A且不会出现中断嵌套的场合。8.4.38259A的工作方式

(2)非自动结束方式(EOI)从中断程序返回前,需通过程序向8259A输出一个中断结束命令(EOI),将ISR中的相应位清0。具体方法有以下两种:①一般结束方式。此方式由8259A自动选择ISR中优先权最高位清0。此方式常用于完全嵌套方式下的中断结束。在级联系统中均采用一般结束方式或特殊结束方式。在中断处理程序结束时,必须发两次中断结束命令,一次发给主片,另一次发给从片。②特殊结束方式。此方式需由用户指明将ISR中的哪一位清0,常用于特殊全嵌套方式。8.4.38259A的工作方式

5.与系统总线的连接方式(1)缓冲方式在缓冲方式下,8259A通过总线收发器和数据总线相连。8259A的SP/EN作为输出端,EN有效,使总线收发器使能。

(2)非缓冲方式非缓冲方式主要用于单片8259A或片数不多的8259A级联的系统中。在该方式下,8259A直接与数据总线相连,8259A的SP/EN为输入(SP有效)。只有单片8259A时,接高电平;有多片8259A时,该引脚用于区分主从芯片。接高电平则表示该8259A为主片;接低电平,则表示该8259A为从片。8.4.38259A的工作方式8259A的工作方式在对其进行初始化编程或操作编程中设置。8259A有两类命令字:初始化命令字ICW1~ICW4和操作命令字OCW1~OCW3。相应地,在8259A内部有两组命令字寄存器组,分别用来接收这7个命令字。系统开机时,由初始化程序将ICW1~ICW4分别写入4个初始化命令字寄存器,称为8259A的初始化编程。初始化命令字一经写入,系统在整个中断工作过程中就不再改变。如果希望选择或改变初始化设定的8259A的工作方式,则可在应用程序中将OCW1~OCW3分别写入3个操作命令字寄存器中。所以操作命令字可以被多次设置,以便对中断处理方式进行动态控制。8.4.48259A的编程设置

1.初始化命令字初始化主要完成以下功能:①设定中断请求信号触发方式,即边沿或电平触发方式;②设定8259A工作方式,即缓冲与非缓冲方式;③设定8259A中断类型号基值,对应IR0的类型号;④设定优先级方式,即完全嵌套或特殊全嵌套方式;⑤设定中断处理结束方式,即自动AEOI或非自动EOI方式。8.4.48259A的编程设置

初始化命令字共预置4个命令字:

ICW1-ICW4,但并不是任何情况下都要预置这4个命令字,用户可根据具体情况而定。由于ICW1必须写入低地址端口A0=0(偶端口),因而ICW2、ICW3、ICW4必须写入高地址端口A0=1(奇端口),为此8259A在进行初始化时,利用写入的顺序来区分不同的寄存器,即必须严格地按规定的初始化顺序依次写入。8.4.48259A的编程设置

(1)芯片初始化命令字ICW1ICW1命令字的格式如图所示,D4=1为ICW1的特征位(标志位),用来与写入同一地址的OCW2、OCW3区别。其他命令字的含义如图所示。8.4.48259A的编程设置

(2)中断类型号初始化命令字ICW2ICW2命令字的格式如图所示,T7~T3为决定中断类型号的高5位,D2~D0不需编程通常为全0,表示中断请求输入端IR0的中断类型号,在中断响应时由中断源的序号000~111自动填入相应值,因此用一个初始化命令字ICW2就可决定8个中断源的中断类型号,ICW2也可以称为中断类型号基值寄存器。8.4.48259A的编程设置

(3)标识主/从片初始化命令字ICW3ICW3命令字的格式如图所示,对主片、从片分别写入ICW3,对主片写入是为确定哪个中断请求输入端接的是从片,由于一片8259A有8个中断请求输入端,因此最多可接8个从片;对从片写入是为确定该从片的中断请求输出端接入主片的哪个输入端。8.4.48259A的编程设置

(4)方式控制初始化命令字ICW4ICW4命令字的格式如图所示,在ICW1中,若D0=1才写入ICW4,用来指定中断嵌套方式及缓冲方式,对80X86(包括8086/8088)系统必须预置ICW4。8.4.48259A的编程设置

【例】8259A采用两片级联方式,主片设定为:上升沿触发、在IR2引脚连接从片、需写入ICW4、非AEOI方式、中断类型码应设为08H∼0FH、采用一般的中断嵌套方式、主片8259A端口地址是20H、21H;从片定义为:上升沿触发、级联到主片的IR2引脚、需设置ICW4、非AEOI方式、中断类型码为70H∼78H、采用一般的中断嵌套方式、从片8259A端口地址是A0H、A1H。初始化过程如下:8.4.48259A的编程设置初始化主片:MOV

温馨提示

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

评论

0/150

提交评论