《微计算机与单片机原理及应用》第7章 微计算机的中断系统_第1页
《微计算机与单片机原理及应用》第7章 微计算机的中断系统_第2页
《微计算机与单片机原理及应用》第7章 微计算机的中断系统_第3页
《微计算机与单片机原理及应用》第7章 微计算机的中断系统_第4页
《微计算机与单片机原理及应用》第7章 微计算机的中断系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第7章微计算机的中断系统

本章重点:8086/8088的中断源及其中断机构8086/8088的硬中断及INTR与NMI的区别掌握中断类型码、中断向量和中断向量表三者间的关系中断向量表的使用中断控制器8259A的内部结构、工作原理及使用法本章难点:中断类型码、中断向量和中断向量表的具体应用中断控制器8259A的内部结构、工作原理及使用方法IBMPC/XT微计算机的中断系统7.1中断概念中断是指CPU在正常执行程序的过程中,由于某个外部或内部事件的作用,强迫CPU停止当前正在执行的程序,转去为该事件服务(称为中断服务),待服务结束后,又能自动返回到被中断的程序中继续执行。

中断有如下三方面的优点:1.实现CPU与外部设备的速度匹配与并行作。2.实现实时信息监测和控制3.实现故障检测和自动处理7.28086/8088的中断机构

7.2.1中断源

8086/8088的中断可来自CPU内部,也可来自CPU外部的接口芯片。如下图示出了8086/8088CPU的中断源。8086/8088CPU中断源

INTR1.外部中断外部中断是由用户确定的硬件中断,又分为可屏蔽中断INTR和非屏蔽中断NMI。

2.内部中断内部中断是通过软件调用的中断。这类中断都是非屏蔽型的,包括单步中断、除法出错中断、溢出中断(INTO)和指令中断(INTn

7.2.2中断过程中断是一个过程,包括中断申请、中断响应、中断处理和中断返回。CPU在执行完当前指令后,才响应中断请求。当检测到为除法出错、INTn、或INTO中断或非屏蔽NMI中断,立即转入相应的中断服务程序进行中断处理。如果是可屏蔽中断INTR中断请求,则需要判定中断允许触发标志位IF,当IF=1时,允许中断,否则CPU对该中断请求不予响应。当CPU响应中断后,即开始中断处理。为保证中断结束后,能正确返回断点处执行下一条指令,首先将断点处的标志寄存器和CS,IP的值压入堆栈,找到中断服务程序的入口再执行中断服务程序。当中断服务完毕,应将保护在堆栈中的内容按“后进先出”原则弹回到相应的寄存器中,恢复中断时的状态,这一操作称为断点恢复。8086/8088中断处理流程图7.2.3可屏蔽中断的的响应过程可屏蔽中断的响应、执行与返回7.3中断类型及中断类型码、中断向量及中断向量表7.3.1中断类型及中断类型码中断类型按中断源可分为内部中断和外部中断两种。外部中断也称为硬件中断,是由CPU外部引脚触发的一种中断;内部中断也称为异常中断,是由处理器检测到异常情况或执行软件中断指令引起的一种中断,它们属于非屏蔽中断。中断向量表8086/8088对每种类型的中断都指定0~255范围中的一个类型号(码)n,每一个n都与一个中断服务程序相对应。当CPU处理中断时,需要把控制引导至相应中断服务程序入口地址。为了实现这一引导,在存储器的低端划出1KB空间(000H~3FFH)存放中断向量表。这样,就可以把各个中断类型号所对应的中断服务程序入口地址依次存放在中断向量表内。7.3.2中断向量及中断向量表所谓中断向量就是用来提供中断入口地址的一个地址指针,中断服务程序的首地址即(CS:IP)叫中断向量。8086/8088CPU能处理256种不同类型的中断,也就是有256个中断向量。中断向量表也称中断入口地址表用来存放中断服务程序入口地址的CS和IP值。每个中断类型占4个字节,用于存放该中断服务程序的入口地址。低两个字节存放中断服务程序入口的偏移地址IP,高两个字节存放中断服务程序入口的段基址CS。当CPU调用类型号为n的中断服务程序时,首先把中断类型号n乘以4得到中断指针表的入口地址4n,然后把此入口地址开始的连续四个字节中的两个低字节内容装入指令指针寄存器IP,即IP←(4n:4n+1);再把两个高字节的内容装入代码段寄存器CS,即CS←(4n+2:4n+3),这样就可以把CPU引导至类型n中断服务程序的起点,开始中断处理过程。中断向量表由三部分组成。类型号0~4为专用中断指针(0—除法出错,1—单步中断,2—NMI,3—断点中断,4—溢出中断)。类型号5~31为保留中断指针,用户不应使用。类型号32~255为用户使用的中断向量,这些中断类型号和中断向量可由用户任意指定。7.3.3中断的优先权管理

通常对中断优先级采用软件查询方式、菊花链(简单硬件)法、专用芯片(如中断控制器Intel-8259A就是此种专用芯片)管理方式三种办法进行管理。当有多个中断源同时申请中断时,CPU首先响应优先权最高的中断请求;在响应某一中断请求时又有更高级的中断请求到来,CPU将暂停目前的中断服务转去对更高级的中断源进行服务,这称为中断嵌套。8086/8088系统的中断源优先级别由高到低的顺序为:除法错→INTn→INTO→NMI→INTR→单步。7.4可编程中断控制器8259A7.4.18259A的内部结构及工作原理

1.8259A内部结构8259A内部逻辑框图(1)数据缓冲器这是8位的双向三态缓冲器,8259A通过它与CPU进行命令和数据的传送。(2)读写/逻辑接收来自CPU的读/写命令,完成规定的操作。操作过程由,,,输入信号。(3)级联缓冲/比较器当多片8259A采用主从结构级联时,用来存放和比较系统中各8259A的主、从设备标志。与该部件相连的有级联信号CAS0~CAS2及双向功能信号/。(4)中断请求寄存器(IRR)它与接口的中断请求线相连,请求中断处理的外设通过IR0~IR7对8259A请求中断服务,并把中断请求保持在中断请求寄存器。(5)中断屏蔽寄存器(IMR)通过软件设置IMR可对8级中断请求分别独立地加以禁止和允许,当此寄存器某位置“1”时,与之对应的中断请求被禁止。(6)优先级分析器(PR)检查中断屏蔽寄存器(IMR)的状态,判别有无优先权更高的中断请求被接受,如无,则把中断请求寄存器IRR中优先级最高的中断请求送入当前中断服务寄存器(ISR),并向CPU输出中断请求信号INT。(7)当前中断服务寄存器(ISR)该寄存器用于存放当前正在进行处理的中断级。ISR的置位是在脉冲期间,由优先级分析器根据IRR中各申请中断位的优先级别和IMR中屏蔽位的状态,选取允许中断的最高优先级请求位,选通到ISR中。当中断处理完毕,ISR复位。(8)控制逻辑控制逻辑按初始化设置的工作方式控制8259A的全部工作。

2.8259A的工作原理单片8259A(作为主片)工作时,进入中断处理的过程如下:①当一条或多条中断请求线IR0~IR7变高时,设置相应的IRR位。②在8259A对中断优先权和中断屏蔽寄存器的状态进行判断之后,如中断优先级最高且为允许中断状态,就向CPU发高电平信号INT,请求中断服务。③CPU响应中断时,送回应答信号脉冲。④8259A接到来自CPU的第一个时,把允许中断的最高优先级请求位置入当前中断服务寄存器(ISR),并把IRR中相应位复位。同时,8259A准备向数据总线发送中断向量。⑤在8259A发送中断向量的最后一个脉冲期间,如果是在AEOI(自动结束中断)方式下,在脉冲结束时复位ISR的相应位。在其他方式下,ISR相应位要由中断服务程序结束时发出的EOI命令来位。中断向量的8位二进制代码中,高5位是编程时设置的,低3位是由中断请求线IR7~IR0编码提供。当CPU读入中断向量后,便从中断向量表中查出相应的中断服务程序入口地址的存放单元,从而控制CPU引导至相应中断服务程序入口处。7.4.28259A的工作方式

8259A有多种优先级管理方式,能满足不同用户对中断管理的各种不同要求。

1.优先级设置方式(1)全嵌套方式在全嵌套方式中8259A的中断优先级是IR0最高,IR7最低。当一个中断已被响应时,只有比它更高级优先级的中断请求才会被响应。(2)特殊全嵌套方式在特殊全嵌套方式中,当处理某一级中断时,如果再有同级的中断请求,8259A也会给予响应,从而实现一种对同级中断请求的特殊嵌套。特殊全嵌套方式一般用于8259A级联情况下。(3)优先级自动循环方式该方式一般用于系统中多个中断源优先级相等的场合。优先级队列是变化的,一个外设受到中断服务后,它的优先级自动降为最低。(4)优先级特殊循环方式优先级特殊循环方式与优先级自动循环方式相比,只有一点不同,即在优先级特殊循环方式中,初始的最低优先级是由编程来确定的,从而最高优先级中断也由此而定。2.屏蔽中断源方式

8259A对中断的屏蔽有两种方式。(1)普通屏蔽方式通过与它对应的屏蔽位的设置来进行屏蔽,使该中断请求不能送到CPU。(2)特殊屏蔽方式特殊屏蔽方式主要用于中断服务程序中动态地改变系统的优先级结构。3.中断结束(EOI)的处理方式(1)中断自动结束方式在此方式下,系统已进入中断过程,当第二个中断响应脉冲送到后,8259A就自动将当前中断服务寄存器ISR中的对应位清0。这样,尽管系统正在为某外设进行中断服务,但在8259A的ISR中却没有对应位指示。中断自动结束方式的设置是初始化命令字ICW4的AEOI位为1即可。(2)普通中断结束方式普通中断结束方式用在全嵌套方式下,当CPU向8259A发出中断结束命令时,8259A将ISR中优先级最高的位复位(即当前正在进行的中断服务结束)。只要在程序中往8259A的偶地址端口输出一个操作命令字OCW2,并使OCW2中的EOI=1,SL=0,R=0即可。(3)特殊中断结束方式特殊中断结束方式用于非全嵌套方式下。用这种结束方式时,在程序中要发一条特殊中断结束命令,指出当前中断服务寄存器ISR中的哪一位将被清除。也是通过往8259A的偶地址端口输出一个操作命令字OCW2,并使OCW2中的EOI=1,SL=1,R=0;此时OCW2中的L2,L1,L0就指出了究竟是对ISR中的哪一位进行清除。7.4.38259A的级联必须注意:在8259A级联方式时,一般不用中断自动结束方式,而用非自动结束方式。在中断服务结束时,CPU必须发两次中断结束命令,一次对主片,一次对从片。在级联环境下8259A可采用特殊全嵌套方式。8259A级联结构7.4.48259A的初始化命令字和操作命令字

8259A内部有两组存储器:初始化命令字存储器,存放CPU写入的初始化命令字(ICW1到ICW4);操作命令字寄存器,存放CPU写入的操作命令字(OCW1到OCW3)。初始化命令字必须在正常操作开始前写入,以建立8259A的基本工作条件,写入后一般不再改变。操作命令字可以在工作开始前或者工作期间写入。允许在系统运行过程中可多次修改。例:已知IBMPC/XT微机中使用单片8259A,试对其进行初始化设置。在IBMPC/XT机中,8259A的ICW1和ICW4的端口地址分别为:20H,21H。初始化设置的程序段如下:MOVAL,13H;设置ICW1(中断请求采用边沿触发方式,单片8259A,设置ICW4)OUT20H,ALMOVAL,18H;设置ICW2(将中断类型码高5位指定为00011)OUT21H,ALMOVAL,0DH;设置ICW4(不用特殊全嵌套方式;不用中断自动结束方式,用缓冲方式工作于8086/8088系统)OUT21H,AL7.5.58259A应用举例

例:在IBMPC/XT62芯总线的IRQ2端输入一中断请求信号。该信号的中断源可由62芯总线CLK输出的时钟经8253定时/计数器产生,也可由一分频电路直接分频产生。每产生一次中断,要求CPU响应后在CRT上显示字符“THISISA8259AINTERRUPT!”,中断10次后,主机返回DOS状态,不再响应中断请求(8253定时/计数器见第8章)。解:已知PC/XT中8259A地址为:偶地址20H,奇地址21H。并且使用系统的中断类型号为0AH。程序流程图源程序如下:DATASEGMENTINTA00EQU20H;PC/XT系统中8259A的偶地址端口INTA01EQU21H;PC/XT系统中8259A的奇地址端口MESSDB‘THISISA8259AINTERRUPT!’,0AH,0DH,’$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,CSMOVDS,AX;设置DS指向代码段

MOVDX,OFFSETINT-PROCMOVAX,250AH;设置0AH号中断向量

INT21H;…………………CLI;关中断;…………………MOVDX,INTA01INAL,DX;允许IRQ2中断

ANDAL,0FBHOUTDX,AL;…………………MOVBX,10;设置中断次数为10STI;开中断;…………………LL:JMPLL;循环等待中断;…………………NT-PROC:MOVAX,DATA;中断服务程序

MOVDS,AX;将DS指向数据段

温馨提示

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

评论

0/150

提交评论