微机原理与接口技术:第7章 中断技术_第1页
微机原理与接口技术:第7章 中断技术_第2页
微机原理与接口技术:第7章 中断技术_第3页
微机原理与接口技术:第7章 中断技术_第4页
微机原理与接口技术:第7章 中断技术_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、1第7章中断技术2重点内容中断的基本概念8086中断系统8086中断处理过程可编程中断控制器8259A37.1中断技术概述47.1.1中断技术的提出1956年,美国,IBM公司IBM 7049机上首先使用了中断处理技术并开始使用“中断”(interrupt)这一术语。中断最初是为了提高处理器的使用效率和提高计算机的工作速度而引进的。当CPU和外设进行数据传送时,必须测试并确认外设处于准备好的状态才能够进行数据传送。5在早期的计算机中,CPU和外设处于串行工作状态,CPU将处于时间不等的等待之中。快速的CPU和慢速的外设在传递数据的速度上存在很大矛盾,大大降低了CPU的工作效率。引入中断技术以后

2、,可以使CPU和外设在大部分时间里并行工作。外设接收到CPU的命令后,按自己的控制规律执行相应操作,完成后向CPU发出中断请求,CPU暂停正在执行的程序,转为对外设进行处理,处理完后返回断点处继续执行。6汇编程序7.1.2中断的定义:计算机在程序执行过程中,当出现硬件或软件请求时,处理器暂时停止正在执行的程序,转去对请求进行处理,处理完后,回到程序断点位置继续执行。目前的微处理器系统支持来自外设的硬件中断请求和来自系统软件指令产生的软件中断请求。中断技术可用于:保证外设和CPU同步、实时处理、故障处理等目的。7断点主程序中断服务程序有中断请求对外设进行处理继续执行返回断点8中断请求取决于事件的

3、发生时间,而这个时间是随机的,因此在执行程序的过程中中断程序的插入也是随机的。这是子程序和中断处理程序的重要区别。97.1.2 中断源和中断优先权任何能够引发中断的事件都称为中断源。当系统中有多个中断源提出中断请求时,该先响应谁的请求?当前中断没有处理完,又有了新的中断请求,新的请求能被响应吗?这就提出了中断优先级的概念。优先级管理一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。10软件查询法是用查询的方式来实现中断源的优先级管理,它的特点是只需有简单的硬件电路图中A的优先级最高,B次之,C最低。11简单硬件方式菊花链法中断回答中断请求设备1设备2设备3接口接口接口菊花链逻辑电路中断

4、请求得到响应127.2 80X86中断系统13中断系统是计算机的重要组成部分,实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理147.2.1 80X86中断系统分类CPU的中断源有两类:内部中断和外部中断。外部中断又分为非屏蔽中断NMI和可屏蔽中断INTR。15内部中断是由CPU内部事件引起的中断。 内部中断也称软件中断,包括溢出中断、除法出错中断、单步中断、断点中断4个由内部硬件设置或自动引发的中断和指令设置的中断(内部软件中断)。外部中断也叫硬件中断,是由中断引脚

5、上输入有效的中断请求信号引起的,分为非屏蔽中断NMI和可屏蔽中断INTR二种。16外部中断 可屏蔽中断8086中断分类中断逻辑非屏蔽中断请求34012INTRNMI除法错误单步中断断点中断溢出中断INT N 指令内部中断177.2.2 中断向量表中断指令的形式为: INT N (n为中断类型码) 通过中断类型码如何找到中断处理子程序的入口地址呢?中断向量:实际上就是中断处理子程序的入口地址 两个字节的中断处理子程序偏移地址(IP)两个字节的中断处理子程序段地址(CS)4字节中断向量 8086的中断向量位于内存的0段的03FFH(1023)区域,最多可以容纳256个中断向量。每一个中断向量对应一

6、个0255的中断类型号。 CSIPCSIP类型0类型10000:0000H0000:03FFH0000:0003H0000:0004H0000:0007HCSIP 类型255(十进制)CSIP0000:0008H0000:000BH类型2CSIP0000:000CH0000:000FH类型3CSIP0000:0010H0000:0013H类型4除数为0的中断溢出中断断点中断非屏蔽中断单步中断专用中断(共5个)0000:007EHCSIP0000:007FH类型31类型50000:0014H保留中断(共27个)类型32自定义中断(共224个) 8086/8088中断向量表 8086的中断系统以位

7、于内存的0段的03FFH的中断向量表为基础的, 该中断向量表有256个中断向量,每个中断向量占4个字节,两个字节指示中断服务子程序偏移量,两个字节指示中断服务子程序段地址。197.2.3 CPU响应中断的流程中断请求与响应阶段中断响应阶段中断服务阶段中断返回20上半段图21下半段图227.3 80X86 CPU的异常处理功能237.3.1 异常的3个层次故障是在引起异常的指令之前,把异常通知给系统的一种异常。故障的特点是可以排除的。陷阱是在引起异常的指令执行之后触发的一种异常。在转入异常处理程序时,引起陷阱的指令已完成。中止是在系统出现严重的不可恢复的事件时触发的一种异常。产生中止后,正执行的

8、程序不能恢复执行,系统要重新启动才能恢复正常运行状态。247.3.2 80X86 CPU的异常类型向 量 号异常名称异常类型出错代码相关指令0除法出错故障无DIV,IDIV1调试异常故障/陷阱无任何指令3单字节INT3陷阱无INT 34溢出陷阱无INTO5边界检查故障无BOUNT6非法操作码故障无非法指令编码或操作数7设备不可用故障无浮点指令或WAIT8双重故障中止有任何指令9协处理器段越界中止无访问存储器的浮点指令0AH无效TSS异常故障有JMP、CALL、IRET或中断0BH段不存在故障有装载段寄存器的指令0CH堆栈段异常故障有装载SS寄存器的任何指令、对SS寻址的段访问的任何指令0DH通

9、用保护异常故障有任何特权指令、任何访问存储器的指令0EH页异常故障有任何访问存储器的指令10H协处理器出错故障无浮点指令或WAIT11H-0FFH软中断陷阱无INT n257.4 保护虚拟地址方式下的中断管理26保护模式下的中断操作与实模式基本相同,只是在中断向量表上有所不同,保护模式使用256个存储在中断描述符表(IDT)中的中断描述符取代中断向量,中断描述符表的长度为2568(2K)字节,中断描述符表的首地址由中断描述符表寄存器(IDTR)提供,它可以定位在存储器的任意地址。在保护模式下,微处理器在中断响应周期访问的是中断描述符表而不是中断向量表。277.4.1 中断描述符表IDT保护虚拟

10、地址方式下的中断和异常分别经中断门描述符(Interrupt Gate)、陷阱门(Trap Gate)描述符和任务门描述符(Task Gate)执行。28门描述符结构297.4.2 中断门和陷阱门的转移功能(1)通过中断门处理时EFLAG的IF被清零;(2)中断门的优先级比陷阱门高,是面向外部硬件中断的门。中断门与陷阱门的区别在于:30中断门的转移过程317.4.3 任务门的转移功能任务状态段TSS是存储器内一个特殊的“段”,它存储了特权级任务之间控制转移时需要修改的SS和ESP(堆栈指针寄存器)的内容以及该任务的运行状态(包括各寄存器内容)使用的存储空间、允许使用的I/O端口等信息 。任务切

11、换的方式有两种:一是直接转移,二是通过任务门转移32用JMP和CALL指令直接访问任务的TSS。将TSS段选择符作为其操作数,执行指令时,选择符装入TR,然后从GDT中读出相应的TSS描述符并装入TRCACHE。直接转移:33调用切换方式347.5 8259A可编程中断控制器件358259A可编程中断控制器(Programmable Interrupt Controller)是用于系统中断管理的专用芯片,IBM PC系列微机都使用了8259A,但从80386开始,8259A都集成在外围控制芯片中368259A的功能:管理和控制80 x86的外部中断请求实现中断判优提供中断向量屏蔽中断输入使用单

12、片8259A可以管理8级中断。采用级联方式,最多可管理64级中断7.5.1 8259A的功能8259A引腿功能8位数据线,与数据总线相连,和CPU交换数据外设的中断请求输入端向CPU申请中断请求信号输入端,连接CPU的INTR引脚CPU向8259的中断应答信号,连接CPU的INTA引脚读信号写信号片选信号内部端口选择信号级联选择信号387.5.2 8259A的内部结构与引脚信号8259A由8个功能模块组成:中断请求寄存器(IRR)中断屏蔽寄存器(IMR)优先级比较器(PR)。PR用于管理、识别各中断源的优先级别。中断在服务寄存器控制逻辑读/写逻辑数据总线缓冲器级连缓冲/比较器398259A的内

13、部结构408259A的工作流程中断源产生中断请求,使8259A 的IRR相应位置1;经IMR屏蔽电路处理后(IRR AND ),送PR; PR检测出最高的中断请求位,并经过嵌套处理,决定是否发出INT信号;若可发INT信号,则控制逻辑将INT信号送CPU的INTR引脚;若CPU开中断,则在执行完当前指令后,CPU进入中断响应周期,发出两个中断响应信号 ; 8259A在收到第一个中断响应信号后,控制逻辑使相应的ISR位置1,相应的IRR位清零;418259A在收到第二个中断响应信号后,控制逻辑将中断类型号送入数据总线。若8259A工作在AEOI(自动中断结束)模式,则使相应的ISR位清零。CPU

14、读取该中断类型号后,查中断向量表,转去执行相应的中断服务程序。42IR0IR1IR2IR4IR3IR6IR5IR701000010IRRIMR000000ISR优先级裁决器1110INTINTA108259A工作过程优先级低优先级低,不予响应IMR为1,屏蔽该中断优先级高给予响应,从INT引腿送出中断信号11437.5.3 8259A的工作方式设置优先级的方式设置结束中断的方式设置屏蔽中断源的方式设置连接系统总线的方式设置引入中断请求的方式8259A可以工作在很多方式下,每一种工作方式都可以通过编程来设置,编程之前先了解它的工作方式:44全嵌套方式: 全嵌套方式8259A最常用的工作方式,如果

15、对8259A进行初始化以后没有设置其他优先级方式,那么8259A就按全嵌套方式工作。该方式下,中断请求按照优先级07处理,IR0端的优先级最高,IR7端的优先级最低。特殊全嵌套方式: 特殊全嵌套方式和全嵌套方式基本相同,只有一点不同,就是在特殊全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,那么,也会给予响应,从而实现一种对同级中断请求的特殊嵌套。 设置优先级的方式45优先级自动循环方式: 优先级自动循环方式一般用在系统中多个中断源优先级相等的场合。优先级队列不断变化。中断系统一开始工作时,初始优先级队列规定IR0、IR1、IR2、 IR6、IR7,一个设备受到中断服务以后,它的优先级

16、自动降为最低。 例如:系统初始化后,如果有IR4中断请求,则处理IR4。处理完IR4后,优先级顺序依次为IR5、IR6、IR7、IR0、IR1、IR2、IR3、IR4,又有IR2中断请求,处理完IR2后,优先级顺序依次为IR3、IR4、IR5、IR6、IR7、IR0、IR1、IR2。优先级特殊循环方式: 优先级特殊循环方式和优先级自动循环方式相比,只有一点不同,就是在优先级特殊循环方式中,一开始的最低优先级是由编程确定的,从而最高优先级也由此而定。而在优先级自动循环方式中,一开始的最高优先级一定是IR0。 46IR0IR1IR2IR4IR3IR6IR5IR701000010IRRIMR0000

17、00ISR优先级裁决器10INTINTA10优先级低CPU未处理任何中断CPU正在处理IR2的中断请求由于CPU在处理完IR2的中断请求后没有将ISR中的相应位清零,造成对于较低优先级的中断无法给予响应。1中断结束指令IRET47结束中断的方式 当一个中断请求得到响应时,8259A都会在当前中断服务寄存器ISR中将相应位设置为1,为此后优先级裁决器的工作提供了依据。所以 当CPU响应完一个中断请求后,必须用中断结束指令对ISR中对应位清零,否则CPU就不能响应低优先级的中断请求。 所以中断结束的方式也就是如何将ISR中对应位清零的方式。中断自动结束方式 在该方式中,系统一进入中断过程,8259

18、A就自动将当前中断服务寄存器中的对应位ISn清除,这样,尽管系统正在为某个设备进行中断服务,但对8259A来说,当前中断服务寄存器中却没有对应位作指示,所以,好像已经结束了中断服务一样。这是最简单的中断结束方式,主要是怕没有经验的程序员忘了在中断服务程序中给出中断结束命令而设立的。48一般的中断结束方式 当CPU用输出指令往8259A发出中断结束命令时,8259A就会把当前中断服务寄存器中最高的非零ISn位复位。因为在全嵌套方式中,最高的非零IS位对应了最后一次被处理的中断也就是当前正在处理的中断,所以,最高的非零ISn位的复位相当于结束了当前正在处理的中断。 特殊的中断结束方式 在优先级循环

19、方式下,用当前中断服务寄存器是无法确定哪一级中断为最后响应和处理的,在程序中用指令发一条特殊中断结束命令,这个指令中指出了要清除当前中断服务寄存器中的哪个ISn位。 49屏蔽中断源的方式 普通屏蔽方式: 8259A内部有一个屏蔽寄存器IMR,它的每一位对应了一个中断请求输入是否被屏蔽,程序设计时,可以通过设置操作命令字OCW1使屏蔽寄存器中任一位或几位置1。当某一位为1时,对应的某一级中断就受到屏蔽。 特殊屏蔽方式: 在特殊屏蔽方式中,如果用指令对屏蔽寄存器IMR中某一位进行置1时,就会同时使当前中断服务寄存器ISR中的对应位自动清0,这样,就不只屏蔽了当前正在处理的这级中断,而且开放了其他级

20、别较低的中断。 50连接系统总线的方式 缓冲方式 在多片8259A级联的大系统中,8259A通过总线驱动器和数据总线相连,这就是缓冲方式。在缓冲方式下,有一个对总线驱动器的启动问题。为此,将8259A的SP/EN端和总线驱动器的允许端相连。用SP/EN端的低电平信号作为总线的启动信号。非缓冲方式当系统中只有单片8259A时,一般情况下将它直接与数据总线直接相连;此时8259A的SP/EN端必须接高电平。 51引入中断请求的方式边沿触发方式 在边沿触发方式下,8259A将中断请求输入端IR0IR7出现的上升沿信号作为中断请求信号。 电平触发方式 在电平触发方式下,8259A将中断请求输入端IR0

21、IR7出现的高电平信号作为中断请求信号。 中断查询方式 中断查询方式下,设备向8259A发中断请求信号要求CPU服务,8259A将中断服务寄存器相应位ISn置1,但是8259A不使用INT信号向CPU发中断请求信号,而是CPU使用查询指令来读取中断服务寄存器ISR的内容,确定中断源。 52IR0IR1IR2IR4IR3IR6IR5IR701000010IRRIMR000000ISR优先级裁决器1010优先级低CPU通过查询指令读取ISR的内容,确定了IR2的外设有中断请求 该方式既有中断的特点,又有查询的特点。对于外设,依然靠中断方式来请求服务,对CPU来说,靠查询确定有无中断请求。查询指令读

22、取ISR537.5.4 8259A的级联微机系统中,可以使用多片8259A级连,使中断优先级从8级扩大到最多64级。级连时,只能有一片8259A为主片,其余都是从片,从片最多8片。主片8259A的CAS2CAS0作为输出线,可直接或通过驱动器连接到从片的CAS2CAS0,每个从片的INT连接到主片的IR7IR0中的一个,主片的INT端连CPU的INTR端。548259A 缓冲级联连接图557.5.5 8259A的控制字与初始化编程8259A有两种控制字:初始化字和操作命令字,可对它进行初始化及工作方式设定,8259A的编程也可分为两部分,即初始化编程和工作方式编程。8259A的初始化字有4个:

23、ICW1ICW4,用于初始化。操作命令字有3个:OCW1OCW3,用于设定8259A的工作方式及发出相应的控制命令。56A00ADILTIMSNGL000IC41D7D6D5D2D1D0D4D3ICW1(chip control)1T7T6T5T4T3000ICW2(type)SNGL=1?1S5S4S6S7S3S2/ID2S1/ID1S0/ID0ICW3(slave control)NIC4=1?YN初始化结束1SFNM00BUFM/SAEOIu PM0ICW4(mode control)Y8259A初始化流程:57(1)ICW1的格式和含义 ICW1叫芯片控制初始化命令字。必须写在偶地址端口中(即让8259A的A0端口为0) D7 D6 D5 D4 D3 D2 D1 D01:要ICW40:不要ICW4 0 0 0 1

温馨提示

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

最新文档

评论

0/150

提交评论