微机原理与接口技术课件-7.中断向量表(已看)_第1页
微机原理与接口技术课件-7.中断向量表(已看)_第2页
微机原理与接口技术课件-7.中断向量表(已看)_第3页
微机原理与接口技术课件-7.中断向量表(已看)_第4页
微机原理与接口技术课件-7.中断向量表(已看)_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

中断之概念“中断”意思为打断操作的顺序。CPU正在执行程序,有个“中断”打断了指令的正常执行顺序,使得CPU中止正在执行的程序转而去执行被称为中断服务程序(ISR)的其它程序。第一页第二页,共53页。中断之目的计算机系统中引入中断的目的主要有两个:数据的传送;异常的处理;第二页第三页,共53页。中断之种类外部中断:来自处理器外部的中断,如键盘引起的中断;内部中断:由处理器电路或中断指令产生的中断,如除0中断,int指令等。第三页第四页,共53页。8086的中断向量表存放各类中断的中断服务程序的入口地址CS:IP(段CS和偏移IP)——中断向量表的地址位于内存的00000H~003FFH,大小为1KB,共256个中断向量(中断向量表)每个中断向量占用4Bytes,低字为段内偏移IP,高字为段基址CS根据中断类型号n获得中断服务程序入口的方法:中断向量在IVT中的存放地址=4×n(中断向量地址)第四页第五页,共53页。初始化——将中断服务程序的入口地址放入向量表例:中断类型码n为48H的中断处理子程序的名字为int48h.高8位低8位第五页第六页,共53页。内部中断的种类

除法溢出:类型号0,执行除法指令时,若发现除数为0或商大于目的操作数所能表达的范围时产生。单步中断:类型号1,TF=1时产生(当前指令需执行完)。断点中断:类型号3,这是一个软件中断,即INT3指令。一般用于程序调试,在断点中断服务程序中,可显示有关寄存器、存储单元等内容,以便程序员分析到断点为止程序是否正确。溢出中断:类型号4,这是一个软件中断,即INTO指令。若算术指令的执行结果发生举出(OF=1),则执行指令后立即产生一个中断类型码为4的中断。软件中断:即INTn指令,类型号n(0-255)。第六页第七页,共53页。非屏蔽中断:类型号2,不可用软件屏蔽,CPU必须响应它。可屏蔽中断:类型号n由PIC(8259)提供,IF=1时CPU才能响应。外部中断的种类第七页第八页,共53页。与中断有关的控制线为:NMI和INTR、INTANMI:上升沿出发。INTR:高电平出发。INTA:可屏蔽中断的响应信号。与(外部)中断有关的引脚第八页第九页,共53页。中断过程五个步骤:中断请求中断判优/排队(有时还要进行中断源识别)中断响应中断服务/处理中断返回请求排队响应服务/处理返回IRET硬/软INTn主程序中断服务程序以下以外部中断为主介绍这五个步骤。第九页第十页,共53页。NMIINTR中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器8259APIC8086/8088CPU内部逻辑断点中断8086/8088中断源类型可屏蔽中断请求n43012n

内部/软件中断请求中断请求\排队\屏蔽INTA内部排队中断开关外部/硬件中断请求DB中断指令INTn软件硬件(n=0~255)第十页第十一页,共53页。中断源的识别8088/8086系统采用中断类型码n来识别不同的中断源。每个中断源都有一个与它相对应的中断类型码n

。溢出、断点、除法溢出、单步、非屏蔽中断的类型码为固定值(4、3、0、1、2)软件中断的类型码由指令INTn给出(n)可屏蔽中断的类型码由PIC(8259)给出(n)CPU响应INTR中断时,会产生两个中断响应总线周期INTA,要求PIC在第2个中断响应总线周期把中断类型码n放到数据总线上,供CPU读入。第十一页第十二页,共53页。中断优先级背景:系统有多个终端,而CPU同一个时刻只能响应一个中断,为了解决这个矛盾应按中断的轻重缓急来确定中断的优先级别.第十二页第十三页,共53页。8088/8086系统中各中断的优先级优先级从高到低顺序如下:软件中断、内部中断(除单步中断外)NMIINTR单步中断高低第十三页第十四页,共53页。中断判优中断优先级控制要处理两种情况:对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则FIFO处理;对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断——即允许中断嵌套。通常将中断判优与中断源识别合并在一起进行处理。x86系统中,这项任务由PIC(8259)和CPU(8086/8088)共同完成。第十四页第十五页,共53页。CPU响应中断的条件内部中断请求:直接转入中断周期,由内部硬件自动执行预定的操作。外部中断请求:中断屏蔽触发器开放;CPU内部是中断开放的;没有更高级的中断请求正在被响应或正在发出;CPU现行指令结束;第十五页第十六页,共53页。中断处理过程

在满足中断响应条件以后,CPU就响应中断请求,并自动关中断,然后进入中断服务程序,在中断服务程序中要完成以下工作:保护现场开中断完成输入输出或异常处理的服务程序关中断恢复现场开中断中断返回第十六页第十七页,共53页。8086/8088CPU的中断响应过程内部中断响应过程:无INTA周期中断类型码固定(0、1、3、4)或由指令给出(n)响应过程主要步骤: ①PUSHFLAGS ②IF=TF=0(关可屏蔽中断和单步中断)

③PUSHCS

④PUSH

IP

⑤取中断向量送入IP’和CS’PUSHCS/IP/FLAGSJMPCS’:IP’第十七页第十八页,共53页。中断响应过程(续)外部中断响应过程非屏蔽中断NMI,中断类型码为固定(2)与内部中断响应过程类似

可屏蔽中断INTR ①INTA(1)PIC进行优先级排队判优处理 ②INTA(2)PIC把中断类型码n放到DB上,CPU读入

③PUSHFLAG ④IF=TF=0(关可屏蔽中断和单步中断)

PUSHCS

⑥PUSH

IP

⑦取中断向量送入IP’和CS’与内部中断一样第十八页第十九页,共53页。可编程中断控制器8259APIC,ProgrammableInterruptController可对8个中断源实现优先级控制

(单个管8个)可扩展至对64个中断源实现优先级控制(9个管64个)

可编程设置不同工作方式(多套管理方案)根据中断源向x86提供不同中断类型码n(来访者1人1号)引脚分配及功能见右图8259A第十九页第二十页,共53页。8259A内部结构第二十页第二十一页,共53页。8259A逻辑结构及连接第二十一页第二十二页,共53页。8259A的内部结构8259A的内部结构中断请求寄存器IRR保存从IR0~IR7来的中断请求信号,某位=1表示对应的IRi有中断请求

中断服务寄存器ISR

保存所有正在服务的中断源,某位=1表示对应的IRi中断正在被服务

中断屏蔽寄存器IMR存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽

中断优先权判别电路

确定是否向CPU发出中断请求,中断响应时确定ISR的哪位应置位及把相应中断的类型码放到数据总线上

第二十二页第二十三页,共53页。8259A的工作过程8259A对中断请求的处理过程如下:当某IRi有效时,IRR相应位置1若有效的IRi未被屏蔽,则向CPU发出中断请求INT检测到第1个INTA信号后,置ISRi=1,IRRi=0

检测到第2个INTA信号后,把ISRi=1中最高优先级的中断类型码n放到DB上若工作在AEOI方式,在第2个INTA结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位第二十三页第二十四页,共53页。8259A的工作方式8259A的工作方式有如下几类:中断优先方式与中断嵌套中断结束处理方式

屏蔽中断源的方式中断触发方式级联工作方式第二十四页第二十五页,共53页。中断优先方式与中断嵌套中断优先级控制方式

:固定优先级和循环优先级固定优先级方式所有中断请求IRi的中断优先级固定不变优先级排列顺序可编程改变加电后8259A的默认方式,默认优先级顺序从高到低为IR0~IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级优先级可编程改变第二十五页第二十六页,共53页。中断优先方式与中断嵌套(续)循环优先级方式

中断源轮流处于最高优先级,即自动中断优先级循环初始优先级顺序可用编程改变某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级

IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前0101000001000000IR4的服务结束以后ISRi第二十六页第二十七页,共53页。中断优先方式与中断嵌套(续)中断嵌套方式在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259A有两种中断嵌套方式:普通全嵌套方式(默认方式)

一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。特殊全嵌套方式

一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:

特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。第二十七页第二十八页,共53页。中断结束处理方式当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后,则必须清零该ISRi位。使ISRi=0是通过向8259A发出中断结束命令(EOI命令)实现的。三种EOI命令自动EOI(AEOI)——(自动EOI方式)非指定EOI(NSEOI)——(正常EOI方式)指定EOI(SEOI)——(特殊EOI方式)第二十八页第二十九页,共53页。

自动EOI方式:在第2个INTA结束时,由8259A使ISRi自动复位;因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式特殊EOI方式:由CPU发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。

用于特殊屏蔽方式正常EOI方式:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。用于普通全嵌套方式第二十九页第三十页,共53页。屏蔽中断源的方式普通屏蔽方式:IMR屏蔽字决定了允许或禁止某位IRi所对应的中断:IMi=1禁止,IMi=0允许。特殊屏蔽方式:提供了允许较低优先级的中断能够得到响应的特殊手段。原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。第三十页第三十一页,共53页。中断触发方式边沿触发IRi出现上升沿表示有中断请求

电平触发IRi出现高电平表示有中断请求应注意及时撤除高电平,否则可能引起重复响应在第1个INTA结束前,IRi必须保持高电平

第三十一页第三十二页,共53页。级联工作方式单片8259A可支持8个中断源;采用多片8259A级连,可最多支持64个中断源。n片8259A可支持7n+1个中断源;级连时只能有一片8259A为主片,其余的均为从属片;(一主多从)涉及到的8259A引脚包括:CAS0-CAS2SP/ENIRiINT第三十二页第三十三页,共53页。级连电路连接方法最多1主8从64个中断源主片:SP/EN接+5V;从片:SP/EN接地。第三十三页第三十四页,共53页。8259A的编程使用8259A的控制命令分为:初始化命令字ICWICW1~ICW4向8259A写入ICW的过程称为初始化编程操作命令字OCW

OCW1~OCW3向8259A写入OCW的过程称为操作方式编程第三十四页第三十五页,共53页。8259A的初始化顺序8259的初始化流程如图注意次序不可颠倒写ICW1写ICW2级连?写ICW3需ICW4?写ICW4NNYY第三十五页第三十六页,共53页。ICW1——初始化字LTIM:触发方式=1高电平触发=0上升沿触发SNGL:级连控制=1单片=0级连IC4:ICW4控制=1要写ICW4=0不写ICW4(默认ICW4为全0)A0 D7 D6 D5 D4 D3 D2D1 D0

0 x

x

x 1 LTIM xSNGL

IC4

第三十六页第三十七页,共53页。8259A的控制命令字初始化8259A必须从ICW1开始写ICW1意味着重新初始化8259A写入ICW1后,8259A的状态如下:清除ISR和IMR(全0);将中断优先级设成初始状态:IR0最高,IR7最低;设定为一般屏蔽方式;采用非自动中断结束方式;状态读出逻辑预置为读IRR。第三十七页第三十八页,共53页。例:

某8086微机系统中,使用单片82C59A,中断请求信号为上升沿触发,需要设置ICW4,端口地址为20H和21H,则其初始化命令字ICW1应为:=13H,设置ICW1的指令为:

MOVAL,13HOUT20H,AL第三十八页第三十九页,共53页。ICW2——中断向量码T7~T3:中断向量码的高5位T2~T0:最低3位为中断源的序号IRn000~111分别对应IR0~IR7由8259A根据中断源的序号自动填入

例如: 若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。

A0 D7 D6 D5 D4 D3 D2 D1 D0

1 T7

T6 T5 T4 T3

x

x

x第三十九页第四十页,共53页。ICW3——级连控制字主片的级联控制字

Si=1对应IRi线上连接了从片

A0 D7 D6 D5 D4 D3 D2 D1 D0

1 S7

S6 S5 S4 S3

S2

S1

S0从片的级联控制字

ID2~ID0

标识码,说明本从片连接到主片的哪个IR引脚上。000~111分别对应IR0~IR7。

A0 D7 D6 D5 D4 D3 D2 D1 D0

1 0

0 0 0 0

ID2 ID1

ID0第四十页第四十一页,共53页。ICW3——级连控制字(续)ICW3必须与主从片的连接关系一致: 例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。第四十一页第四十二页,共53页。ICW4——中断结束方式字SFNM:特殊全嵌套1特殊全嵌套方式0一般全嵌套方式AEOI:自动EOI1自动EOI方式0非自动EOI方式A0 D7 D6 D5D4 D3 D2 D1 D0

1 0

0 0SFNM BUF M/S AEOI

1BUF:缓冲方式M/S:主/从缓冲选择BUFM/S11缓冲方式/主PIC10缓冲方式/从PIC0x非缓冲方式/正常第四十二页第四十三页,共53页。初始化编程举例

例:某8086微机系统中有一片82C59A,中断请求信号为电平触发,中断类型码为40H~47H,中断优先级管理采用普通全嵌套方式,中断结束方式采用自动结束方式,系统中未使用数据缓冲器,系统分配给82C59A的端口地址为20H和21H,试对该82C59A进行初始化编程。

第四十三页第四十四页,共53页。分析:由于系统中使用单片82C59A,所以初始化时不需要ICW3,本例中82C59A要求工作在非缓冲方式,故在硬件上将SP*/EN*接+5V,ICW4中的M/S*位无意义,可设置为0

对82C59A的初始化程序如下:

MOVAL,00011011B;设置ICW1初始化命令字

OUT20H,AL;将ICW1输出到偶地址端口

MOVAL,01000000B;ICW2中断类型号基值

OUT21H,AL;将ICW2送入奇地址端口

MOVAL,00000011B;ICW4OUT21H,AL ;将ICW4送入奇地址瑞口

第四十四页第四十五页,共53页。8259A的操作命令字OCWOCW用于设置8259的工作状态在初始化后写入OCW的写入顺序可任意写入地址要求:OCW1必须写入奇地址端口(A0=1)OCW2,OCW3必须写入偶地址端口(A0=0)

第四十五页第四十六页,共53页。OCW1——中断屏蔽字Mi=1中断请求线IRi被屏蔽(不允许中断)=0允许该IRi中断OCW1将写入IMR寄存器。A0=1时读OCW1可读出设置的IMR内容。A0 D7 D6 D5 D4 D3 D2 D1 D0

1 M7

M6 M5 M4 M3

M2

M1

M0第四十六页第四十七页,共53页。OCW2——中断结束和优先级循环

L2~L0:优先级编码R:优先级自动循环SL:指定优先级EOI:结束中断命令RSLEOI001非指定EOI命令(NSEOI),全嵌套方式011指定EOI命令(SEOI),全嵌套方式,按L2-L0编码复位ISR101NSEOI命令,优先级自动循环100自动EOI,设置优先级自动循环000自动EOI,取消优先级自动循环(固定优先级)111SEOI命令,按L2-L0编码循环优先级(L2-L0设为最低优先级)110按L2-L0编码循环优先级(L2-L0设为最低优先级)

A0 D7 D6 D5 D4 D3 D2 D1 D0

0 R

SL EOI 0 0

L2

L1

L0第四十七页第四十八页,共53页。OCW3——屏蔽方式和读出控制字

ESMM:

允许使能特殊屏蔽方式SMM:

特殊屏蔽方式ESMMSMM11特殊屏蔽方式置位10特殊屏蔽方式复位0x非特殊屏蔽方式P(Polling):=1

温馨提示

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

评论

0/150

提交评论