8086中断系统与中断控制器课件_第1页
8086中断系统与中断控制器课件_第2页
8086中断系统与中断控制器课件_第3页
8086中断系统与中断控制器课件_第4页
8086中断系统与中断控制器课件_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

微机原理及接口技术第7章8086中断系统与中断控制器微机原理与接口技术

中断的基本概念

8086中断系统中断处理过程可编程中断控制器8259A主要内容(1)实现CPU与外设的并行工作,

提高了CPU的效率。(2)实现实时处理。(3)实现故障处理。2.应用中断技术的优点引起中断的原因,产生中断请求的来源。通常有以下几种:①一般的I/O设备,如键盘、打印机等。②实时时钟。③硬件故障。④中断指令或软件故障,如程序错、运算

错、调试程序而设置的中断(例如设置

断点,单步运行等)。3.中断源(1)实现断点地址的保护与恢复。(2)实现现场信息的保护。(3)实现中断优先级的排队。(4)实现中断的嵌套。中断服务2

(高优先级)主程序中断服务14.中断系统的功能5.中断优先级

当多个中断源请求中断时,CPU响应优先级高的中断,挂起优先级低的中断。当CPU运行中断服务子程序时,又有新的更高优先级中断申请进入,CPU要挂起原中断进入更高级的中断服务子程序,实现中断嵌套。1.软件查询方式图7.2软件查询优先级管理电路图7.3软件查询中断流程图2.硬件方式图7.4菊花链优先级排队电路图7.5菊花链逻辑电路3.矢量中断优先级

利用专用的可编程中断控制器管理中断优先级,又称专用芯片中断管理方式。典型的可编程中断控制器是8259A。图7.68086中断类型1.外部中断(硬件中断)(1)非屏蔽中断NMI(类型号2)

有效,不受FR中IF的影响,常用于

处理系统的重大故障。(2)可屏蔽的中断INTR高电平有效,CPU是否响应,取决于FR中IF的状态。常用于各种外设的中断。2.内部中断(软件中断)通常由三种情况引起:(1)INTn指令中断(n为中断类型号)(2)处理CPU某些错误的中断①除法错中断(中断类型号0)②溢出中断(INTO)(中断类型号4)8086系统中,中断优先级的次序为:高低内部中断(除法错、INTO、INTn)NMIINTR单步中断7.2.2中断优先级§7.3中断处理过程一个完整的中断处理过程为:①中断请求(中断源提出)②中断检测(判断是何种类型中断)③中断响应④执行中断服务程序⑤中断返回7.3.1

8086CPU对中断的响应流程CPU响应中断要有三个条件:①外设提出中断申请;②本中断位未被屏蔽;③中断允许(可用指令STI开中断)。满足上述条件,则CPU在当前指令执行完后响应中断。1.一般的中断响应过程CPU在每一个指令周期的最后一个总线周期的最后一个T状态采样INTR或NMI信号线。若发现有中断申请,则不进入取指周期,而转入中断响应周期。

下面以INTR为例,说明8086CPU响应中断的过程。2.8086CPU响应外部中断的过程执行一条指令最后一个总线周期的最后一个T状态?有INTR?中断开放?(FR中的IF=1?)关中断CLI(置FR中IF=0)断点地址(IP.CS)入栈FR入栈转入相应中断服务程序保护现场中断服务处理恢复现场开中断STI(置FR中IF=1)中断返回IRET取下一条指令NoNoNoYesYesYes图7.8

8086CPU响应

INTR的过程图7.9中断向量表

中断向量(中断服务程序入口地址)在表中的地址=中断类型号×4BIOS负责0~1FH共32个中断向量的装入。用户若想装入自己的中断向量到向量表中的,可用以下方法:2.中断向量的装入(1)用STOS指令填空中断向量表假设类型号60H的中断向量为

CLI

CLD

MOV AX,0

MOV ES,AX

MOV DI,460H ;DI指向表中对应位置

MOV AX,OFFSET_INTR ;取偏移地址

STOSW ;AL[DI],AH[DI+1],DI+2DIMOV AX,SEG_INTR ;取段基址

STOSW

STI

SEG_INTR:OFFSET_INTR。(2)利用MOV指令写入中断向量

CLI

MOV AX,00H

MOV ES,AX

MOV BX,460H;BX指向表中对应位置

MOV AX,OFFSET_INTR

MOV ES:[BX],AX ;装入偏移地址

MOV AX,SEG_INTR

MOV ES:[BX+2],AX ;装入段基址(3)利用DOS功能调用“INT21H”的

AH=25H装入中断向量MOV AL,60H ;类型号AL

MOV AH,25H ;功能号25HAH

MOV DX,SEG_INTR

MOV DS,DX

MOV DX,OFFSET_INTR ;DS:DX=中断向量

INT 21H图7.108086转入中断处理程序的过程3.8086CPU转入中断服务程序的过程(1)取类型号;(2)计算向量地址;(3)根据向量地址查表,将偏移地址送

IP,段基址送CS;(4)转入中断服务程序,进行中断处理。§7.48259A可编程中断控制器

在PC机中,可以使用可编程中断控制器

Intel8259A来扩展外部中断。(2)每一级中断均可以屏蔽。(3)在中断响应周期,8259A可提供相应的

中断向量。(4)可编程使8259A工作在多种不同的方式。(1)1片8259A能管理8级中断,通过级联用

9片8259A可构成64级主从式中断系统。8259A的主要功能:图7.118259A内部结构逻辑框图7.4.18259A内部结构与引脚信号1.数据总线缓冲器8位、双向、三态缓冲器,8259A通过它与CPU进行数据和命令的传送。D0~D7直接与CPU数据总线的低8位连接。2.读/写控制逻辑CPU通常利用:OUT指令,IN指令,

接收来自CPU的读写命令RD、WR,片选信号CS及端口选择信号A0。读写操作由这四个信号的组合控制实现。3.中断请求寄存器IRR8位寄存器,用于存放请求服务的中断源,并使对应位置“1”(IRi=1),直到IRi

得到响应。4.中断服务寄存器ISR8位寄存器,用于存放当前正在处理的中断级,并使对应位置“1”。中断嵌套时,可能多个位置“1”。5.中断屏蔽寄存器IMR8位寄存器,可对IRR起屏蔽作用,由软件设置屏蔽位。某位置“1”,对应IRi禁止产生中断。6.优先权分析器PR

实现优先权的判断与处理。对刚进来的中断与正在服务中的中断进行优先权的比较分析,将具有最高优先权的中断请求送入中断服务寄存器ISR,并向CPU提出中断请求。7.控制逻辑

按初始化设置的工作方式,控制8259A各部件的工作,并向CPU发出INT信号,以及接收CPU的INTA信号。

8.级联缓冲/比较器

用于级联控制,扩展外中断。在级联工作时,1片8259A作主片,其余(1~8片)8259A作从片,最多可管理64级向量优先级中断。图7.128259A的引脚图7.4.28259A的工作原理中断请求寄存器IRR优先权分析器PR中断服务寄存器ISR控制逻辑中断屏蔽寄存器IMRIR0IR7···外设中断请求INTAINTCPU若响应中断,往8259A回送两个负脉冲。第一个负脉冲到达,8259A做3件事:①使IRR锁存功能失效;②使ISR中相应位置“1”;③使IRR相应位置“0”。第二个负脉冲到达,8259A完成操作:①将中断类型码(ICW2)送D7~D0;②若工作在中断自动结束方式下,将ISR中相应位清“0”。7.4.38259A的工作方式1.设置优先级的方式①普通全嵌套方式②特殊全嵌套方式③优先级自动循环方式④优先级特殊循环方式(1)普通全嵌套方式

8259默认方式,中断请求按优先级0~7处理,0级最高。一个中断被响应时:①送出中断类型码→数据总线;②ISR对应位ISn→1;③进入中断服务程序。(2)特殊全嵌套方式

处理某一级中断时,可响应同级中断请求。一般用于8259A级连系统中。特殊全嵌套方式使用时,应使:①主片工作在特殊全嵌套方式;②从片工作在其它优先级方式。整个级连系统仍处在从片的优先级方式。(3)优先级自动循环方式

一般用在系统中多个中断源优先级相等的场合。这种方式的中断优先级队列是变化的。一个设备受到中断服务后,其优先级自动降为最低。初始优先级队列:IR0、IR1、…、IR7。例:IR0处理完后,优先级队列为IR1~IR7、IR0

IR4处理完后,优先级队列为IR5~IR3、IR4(4)优先级特殊循环方式

初始最低优先级由编程确定,最高优先级也由此而定。如:初始最低优先级定为IR5,则最高优先级为IR6。2.屏蔽中断源的方式(1)普通屏蔽方式

通过屏蔽寄存器屏蔽对应位的中断请求输入。(2)特殊屏蔽方式

设置某一屏蔽位时,会同时使ISR中的对应位清0。从而开放了其它级别较低的中断。特殊屏蔽方式总是在中断处理程序中使用的。3.结束中断处理的方式中断处理结束的动作是使ISn位清0。(1)中断自动结束方式

系统一进入中断过程,8259A自动将ISR中对应位ISn清除。这种方式只能用于系统中只有一片8259A,且多个中断不会嵌套的情况。(2)一般中断结束方式

用于全嵌套情况,由中断服务程序的最后一条中断结束命令清除最高的IS位。(3)特殊中断结束方式

在中断结束命令中指出要清除ISR中哪个IS位。这种方式用于非全嵌套情况,此时,由ISR无法确定当前正在处理的是哪级中断。4.连接系统总线的方式(1)缓冲方式

多片8259A级连系统中,8259A通过总线驱动器与数据总线相连的方式。在这种方式下,要将的SP/EN端连总线驱动器的允许端。(2)非缓冲方式

小系统中,直接将8259A与数据总线相连。对单片或多片8259A,SP/EN有不同接法。5.引入中断请求的方式即外设→8259A的信号。(1)边沿触发方式

中断请求输入端出现的上升沿作为中断请求信号。(2)电平触发方式

中断请求输入端出现的高电平作为中断请求信号。在电平触发方式下,中断请求得到响应后,输入端应及时撤除高电平。(3)中断查询方式

外设仍通过向8259A发中断请求信号要求CPU服务,但8259A不使用INT信号向CPU发中断请求信号。

CPU使用软件查询确认中断源。7.4.48259A的初始化命令字和操作命令字

初始化命令字ICW和操作命令字OCW确定8259A的工作状态和操作方式,由CPU发出。

ICW:确定8259A的工作状态,在系统复位后写入。

OCW:控制8259A的操作方式,如中断屏蔽、中断结束、优先级循环方式等。可在初始化后任何时刻写入。8259A只有两个端口地址A0=0偶地址端口1奇地址端口具体地址依实际连线而定。PC机中,两个端口地址分别是:20H,21H。写入命令字时,要注意端口地址写入的顺序有关的标志位1.初始化命令字初始化命令字完成的功能:①设定中断请求触发方式:高电平/上升沿。②设定8259A工作方式:单片/级联。③设定中断类型号基值:IR0对应的中断类型号。④设定优先级设置方式。⑤设定自动中断结束方式。ICW1~ICW4必须按顺序写入,且ICW1→偶地址端口;ICW2

~ICW4→奇地址端口。(1)ICW1—芯片控制初始化字

设定IRi触发方式,是否单片使用,是否写入ICW4。01LTIMSNGLIC4A0D7D6D5D4D3D2D1D0标志位:以区别OCW2~3格式:LTIM1高电平触发0触发=SNGL1单片使用0级联使用=IC41后面写入ICW40不写入ICW4=(2)ICW2—设置中断类型号初始化字

设置中断类型号的高5位,中断类型号的低3位由引入中断请求的引脚IR0~IR7产生。1T7T6T5T4T3A0D7D6D5D4D3D2D1D0中断类型号高5位格式:T7T6T5T4T3T2T1T0由ICW2规定0

0

00

0

10

1

01

1

1IR0IR1IR2IR7(3)ICW3—标识主片/从片初始化字

只有在一个系统中包含多片8259A时,该初始化字才有意义。此时,ICW1中D1位SNGL=0。

ICW3的具体格式与本片为主片还是从片有关。①写给主片的ICW31S7S6S5S4S3S2S1S0A0D7D6D5D4D3D2D1D0Si=1,表示主片IRi上接有从片。②写给从片的ICW3100000ID2ID1ID0A0D7D6D5D4D3D2D1D0从片的标志码ID2ID1ID0该从片00

0接入主片的IR000

1接入主片的IR111

1接入主片的IR7例:写出下面级连方式主/从片的ICW3。IR5INT主片从片ICW3=00100000ICW3=00000101(4)ICW4—方式控制初始化字100SFNMBUFM/SAEOI1A0D7D6D5D4D3D2D1D00标志位用于8088/8086系统

只有在ICW1中D0位IC4=1时才用。格式:1缓冲方式0 非缓冲方式①SFNM:规定8259A中断的嵌套方式②BUF=0一般全嵌套方式1 特殊全嵌套方式③M/S:BUF=1时,1主8259A0从8259AM/S=BUF=0时,M/S无意义。④AEOI:规定中断的结束方式,即如何使ISR

中对应位置0。AEOI=1自动中断结束方式:当CPU发出第二个INTA后,ISR中的相应位复位,此时,不能实现中断嵌套。AEOI=0非自动中断结束方式:由程序发出EOI命令(由8259A的OCW实现),使ISR中相应位复位。

对8259A进行初始化编程后,8259A作好了接收中断请求输入的准备,在8259A工作期间可由操作命令字OCW1~OCW3规定其各种工作方式,如中断屏蔽,中断优先级次序,中断结束方式等。2.8259A的操作命令字(1)OCW1—中断屏蔽操作命令字设置或消除IMR的各个位。1A0D7D0M7M0……………………Mi=1屏蔽由IRi引入的中断请求0允许由IRi引入的中断请求(2)OCW2—优先权循环方式和中断结束方式操作字0RSLEOI00L2L1L0A0D7D6D5D4D3D2D1D0标志位功能:①设定优先级循环方式。②设定非自动结束中断方式。格式D7(R)=0固定优先权方式:

IR0

IR1…IR7

优先级循环方式:

SL=0,优先级自动循环

SL=1,优先级特殊循环D6(SL)=0L2L1L0位编码无效1L2L1L0位编码有效例1:R=1,SL=0设定为优先权自动循环方式IR7IR6IR5IR4IR3IR2IR1IR0初始优先权为:76543210若IRR=01010000当

IR4

服务完毕后,优先权为:21076543最低最高例2:R=1,SL=1设置为优先权特殊循环方式此时,L2L1L0

规定循环开始时的最低优先权若OCW2为:1100101IR5优先权最低则循环开始时优先权为:IR7IR6IR5IR4IR3IR2IR1IR010765432D5(EOI):中断结束命令位。EOI=1SL=0一般中断结束:将OCW2写入8259A后,将刚

刚被服务的ISn对应位复位。SL=1特殊中断结束:

写入OCW2后,使L2L1L0指定

的ISn位复位。D2D1D0(L2L1L0):①特殊中断结束时,指定要清

除的ISn位。②特殊优先级循环时,指定循环开始时最低优先级中断IRi。例3:①OCW2=11000011B

特殊优先级,优先级由高至低为

IR4,IR5,IR6,IR7,IR0,IR1,IR2,IR3。②OCW2=01100010B

特殊中断结束命令,清除IS2。③OCW2=11100100BL2~L1所指的中断结束后,进行优先级轮换,即IR4中断服务完毕后,使IS4复位,IR4变为最低优先级。(3)OCW300ESMMSMM01PRRRISA0D7D0标志位功能:①设置和撤消特殊屏蔽方式。②设置中断查询方式。③设置读8259A内部寄存器命令。格式:①设置和撤消特殊屏蔽工作方式

正常的屏蔽方式由OCW1设置

IMR实现

特殊的屏蔽工作方式

因此,可以通过设置或撤消特殊的屏蔽工作方式,动态改变优先权的结构。正常的屏蔽方式设置特殊的屏蔽方式只要IMR中的对应位没有置“1”,8259A就可以接受其中断请求。撤消特殊的屏蔽方式正常的屏蔽方式②为CPU读取8259A内部寄存器提供选择IN AL,INTA1 ;IMRAL8259A中的IMR由OCW1设置,对应奇地址端口,可以写入,也可以读出。8259A中IRR、ISR只能读出,不能写入,都对应偶地址端口。此时,可先写入OCW3,OCW3中的RR、RIS规定从偶地址端口读出的是IRR或ISR的值。MOV AL,OCW3OUT INTA0,ALIN AL,INTA0 ;若COW3中RRRIS则读出的是11 ISR10 IRR③使8259A和CPU的通信方式由中断方式

查询方式

当中断源超过64个时,可令CPU关中断,用查询方式为中断源服务。

令OCW3中的P=1,写入OCW3后,若之前有IRi有效,8259A把CPU的下一个读信号看作信号,使ISR中最高优先权的某一位置位,同时送查询字至DB。MOV AL,OCW3 ;其中P=1

OUT INTA0,AL ;发OCW3

IN AL,INTA0 ;读偶地址端口此时,AL中的数据(查询字):IW2W1W0D7D0当前最高优先权IRi对应的编码0

0

00

0

11

1

1IR0IR1IR7通过该查询字,CPU得到当前级别最高的中断请求IRi,然后转入该中断处理程序。8259A

温馨提示

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

评论

0/150

提交评论