收藏 分享(赏)

18中断技术g1.ppt

上传人:知足长乐 文档编号:1236759 上传时间:2018-06-19 格式:PPT 页数:60 大小:921KB
下载 相关 举报
18中断技术g1.ppt_第1页
第1页 / 共60页
18中断技术g1.ppt_第2页
第2页 / 共60页
18中断技术g1.ppt_第3页
第3页 / 共60页
18中断技术g1.ppt_第4页
第4页 / 共60页
18中断技术g1.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、第六章 中断技术6.1 中断方式,6.1.1 中断概念 所谓中断是指某事件的发生引起CPU暂停当前程序的运行,转入对所发生事件的处理,处理结束又回到原程序被打断处接着执行的这样一个过程。 1.中断源 2.中断过程 中断方式的实现一般需要经历下述过程: 中断请求中断响应断点保护中断源识别中断服务断点恢复中断返回,1) 中断请求 信号形式应满足CPU要求。 中断请求信号应被有效地记录,以便CPU能够检测到它。 一旦CPU对某中断源的请求提供了服务,则该中断源的请求信号应及时撤消。 2)中断响应 CPU对内部中断源提出的中断请求必须接受,而对外部中断源提出的中断请求是否响应取决于外中断源类型及响应条

2、件。,不同的微机对可屏蔽中断请求有不同的响应条件,8086(88)系统的响应条件为: 指令执行结束; CPU处于开中断状态(即IF=1); 没有发生复位(RESET)、保持(HOLD)和非屏蔽中断请求(NMI); 开中断指令(STI)、中断返回指令(IRET)执行完,需要再执行一条指令,才能响应INTR请求。,图6.1 微机系统中实现中断的基本模型,图6.2 有中断产生的情况下CPU运行程序的轨迹,3) 断点保护4) 中断源识别常用的中断源识别方法有: 软件查询法。 中断矢量法。5) 中断处理6)断点恢复7)中断返回3.中断优先级及嵌套,图6.3 中断源识别的软件查询法 (a)硬件接口;(b)

3、软件查询流程,不同优先级的多个中断源同时提出中断请求时,CPU应首先响应最高优先级的中断源提出的请求; CPU正在对某中断源服务时,若有优先级更高的中断源提出请求,则CPU应对高优先级的中断作出响应,即高优先级的中断请求可以中断低优先级的中断服务。 目前采用的解决中断优先级控制的方案有: 软件查询。 硬件链式优先级排队电路。 硬件优先级编码比较电路。 利用可编程中断控制器(PIC)。,图6.4 中断嵌套示意图,6.1.2 中断系统 1. 8086(88)中断系统 8086(88)中断系统可以容纳最多256个中断源,所有中断源统一编码,每个中断源用一个字节型编码标识,该编码称为中断向量码,它是C

4、PU识别中断源的标记。 1)中断源类型 256个中断源分为两大类: (1)内部中断,它由CPU内部事件及执行软中断指令产生。已定义的内部中断有: 除法错中断。 单步中断。 溢出中断。 软件中断。,(2)外部中断 它是由外部中断源产生对CPU的请求而引发的。8086(88)中断系统将外部中断源又分为两种。 非屏蔽中断。 可屏蔽中断。 2) 中断响应过程 在8086(88)系统中,中断控制是由CPU与中断控制器共同完成的,这使得中断过程简化: 中断请求; 中断响应; 中断处理:,图6.5 中断响应过程,图6.6 中断响应时CPU查询中断源的顺序,3) 中断向量表 8086(88)微机系统在内存的最

5、低端开辟了1KB的存贮区作为中断向量表。该表以四字节为一组构造而成,共分为256组,按中断向量码的序号排列,如图6.7所示。,图6.7 中断向量表,6.2 中断控制器8259 1. 8259内部结构 8259内部结构如图6.8所示,它的工作过程如下: 中断请求输入端IR0IR7接收外部中断源的请求信号; 外部中断源的请求状态锁存在中断请求寄存器IRR(8位)的相应位(即置1),并与中断屏蔽寄存器IMR(8位)相“与”,送给优先级判决电路;,控制电路接收到中断请求有效信号后,向CPU输出INT信号; CPU接受INT信号,在中断允许(IF=1)的情况下,发出 响应信号; 8259接收 信号,在第

6、1个INTA周期,先设置ISR的相应位,并恢复IRR的相应位,然后,主控8259送出级联地址CAS0CAS2加载至从属8259上; 单独使用的8259或是由CAS0CAS2选择的从属8259,在第2个INTA周期,将中断向量码输出至数据总线;,CPU读取中断向量码,转移到相应的中断处理程序; 中断结束时,通过在中断处理程序中向8259送一条EOI(中断结束)命令,使ISR相应位复位;或8259选择自动结束中断方式时,由8259在第2个 信号的后沿自动将ISR相应位复位。,图6. 8 8259内部结构图,图6. 9 8259引脚图,2. 8259引脚功能 8259是具有28个引脚的集成芯片,如图

7、6.8所示,各引脚功能如下: D0D7:双向数据线,与系统数据总线相连,接收CPU发来的命令字,给CPU提供中断向量码与内部寄存器状态。 A0:地址输入线,与系统地址总线中某位相连,用来选择8259内部寄存器。 :片选输入信号,由系统中地址译码器控制,低电平有效。,:写和读控制信号,输入,与系统控制总线中的 (外设写)和 (外设读)信号相连。 INT:中断请求输出信号,可接入CPU的INTR引脚。 :中断响应输入信号,接收CPU送出的 信号。 CAS0CAS2:级联地址,在8259级联时使用。 :双功能线。缓冲方式(输出线) =1时CPU 8259 非缓冲方式(输入线)SP=1主片 SP=0从

8、片 IR0IR7:中断请求输入端,接收可屏蔽中断源的请求信号,信号形式可以是上升沿,也可以是高电平。,图6. 9 8259引脚图,3. 8259工作方式 1) 中断结束方式 (1)非自动结束方式 一般中断结束命令(EOI)。 特殊中断结束命令(SEOI)。 (2) 自动结束方式 2) 缓冲方式 非缓冲方式。 缓冲方式。,3) 嵌套方式 一般嵌套方式。 特殊全嵌套方式(SFNM同级及高优先级可以打断正在进行的处理而实现嵌套 级联)。 4)屏蔽方式 屏蔽方式也是用于8259进行优先级控制的,它也有两种形式: 一般屏蔽方式。 特殊屏蔽方式(允许级别高和低优先级打断正在进行的处理,不允许同级中断)。

9、5)优先级规定 固定优先级(IR0-IR7)。 循环优先级(设定某一级优先级为最低)。,IRR 7 6 5 4 3 2 1 0ISR 0 1 0 1 0 0 0 0优先级 7 6 5 4 3 2 1 0,IRR 7 6 5 4 3 2 1 0ISR 0 1 0 0 0 0 0 0优先级 2 1 0 7 6 5 4 3,最低优先级,最高优先级,最高优先级,最低优先级,4. 8259命令字 1)初始化命令字 初始化命令字用于初始设定8259的工作状态。 ICW1。规定8259的连接方式(单片或级联)与中断源请求信号的有效形式(边沿或电平触发)。命令字格式如图6.10所示,利用A0=0,D4=1寻址

10、。 ICW2。 ICW3。 ICW4。,初始化命令字 1、ICW1,0,1,S,0,LT,1,0,0,0,D0,D1,D2,D3,D4,D5,D6,D7,A0,1:单片(不要ICW3)0:级连(要ICW3),1:电平触发0:沿触发,特征位,地址线的状态,8086 CPU,D7,D6,D5,D2任意;D0为1(有ICW4), D0为0(W无ICW4),写入ICW1后,8259A是处于完全嵌套方式, 清除IMR。,2、ICW2(设置中断类型号),1,1,D0,D1,D2,D3,D4,D5,D6,D7,A0,D0,D1,D2,D3,D4,D5,D6,D7,A0,T0,T1,T2,T3,T4,T5,T

11、6,T7,IR的编码,8259A自 动填入,中断类型码的高5位,3、ICW3(级连时用,单片不用),1,D0,D1,D2,D3,D4,D5,D6,D7,A0,主片8259A:,从片8259A:,S7,S6,S5,S4,S3,S2,S1,S0,Sn = 1 表示主片的Irn接从片Sn = 0 表示主片的TRn未接从片,0,0,0,0,0,ID2,ID1,ID0,从片连主片IRn 的序号,000 IR0001 IR1,111 IR7,.,1,D0,D1,D2,D3,D4,D5,D6,D7,A0,4、ICW4,1,0,0,0,SF,BF,M/S,AEOI,1:AEOI,= 非缓冲1 0 = 从片缓冲

12、1 1 = 主片缓冲,1:特殊完全嵌套,注意:(1)ICW1 ICW4必需顺序写入,即使改变一个参数也需全 部重新写入ICW,(2)单片只写ICW1,ICW2,ICW4,不要ICW3 级连ICW1 ICW4全要,但主、从片的ICW3不同 (3)ICW1的A0 = 0,其它ICW的A0 = 1,0,操作命令字,1、OCW1(IMR编程 - 屏蔽),1,A0,D7,D6,D5,D4,D3,D2,D1,D0,0,D7,D6,D5,D4,D3,D2,D1,D0,M7,M6,M5,M4,M3,M2,M1,M0,Mn = 1禁止中断(屏蔽),Mn = 0 允许中断,2、OCW2(控制中断结束和优先权循环-

13、设置EOI,SEOI,循环),R,SL,EOI,0,0,L2,L1,L0,000,100,111,.,IR0 IR1 IR7,在SL = 1时,指出IRn的最低级,特征位,1: 中断结束(EOI),1: 特殊的EOI, L2 L1 L0 的开放位,1: 循环,0,D7,D6,D5,D4,D3,D2,D1,D0,RIS,ERIS,P,1,0,SMM,ESMM,A0,3、OCW3(特殊屏蔽设置,中断查询,读IRR,ISR),0 1 1 1,读IRR 读ISR,1:发查询命令,特征位,0 11 1,复位SMM 置位SMM,D1(ERIS)做为D0(RIS)的开放位D6(ESMM)做为D5(SMM)的

14、开放位,图6.10 ICW1格式,图6.11 ICW2格式,图6.12 ICW3格式,图6.13 ICW4格式,2) 操作命令字 OCW1。 OCW2。 OCW3。,图6.14 OCW1格式,图6.15 OCW2格式,图6.16 OCW3格式,5. 8259级联1) 级联结构 8259采用两级级联,级联结构如图6.16所示。 2)级联方式下8259的中断响应3)级联方式下8259的特殊操作,注意: 初始化时,主控器与从属器的ICW3应以不同格式填写;主控器的嵌套方式必须选择为特殊全嵌套方式,从属器的嵌套方式必须选择为一般嵌套方式。 当结束来自从属8259的中断时,中断处理程序中要发送两个EOI

15、命令,一个发给相关的从属8259(由I/O地址确定),一个发给主控8259。,图6.16 8259级联结构,6.3 中断方式的实现 1. 连接8259,表6.3 8259内部寄存器的寻址控制方式,图6.17 8259在系统中的连接,2. 编写中断初始化程序 1)初始化8259 因为8259的内部寄存器寻址与命令字的写入顺序有关,所以,对8259的初始化一定要按规定的顺序进行,见图6.18所示。 下面是一段对8259初始化的程序(假定8259连接电路如图6.17所示,占用的I/O地址为FF00H和FF02H):SET59A: MOV DX,0FF00H ;8259的地址A0=0 MOV AL,1

16、3H ; 写ICW1,边沿触发, 单片,需要ICW4 OUT DX,AL,MOV DX,0FF02H ;8259地址A0=1MOV AL,48H ;写ICW2,设置中断向量码OUT DX,ALMOV AL,03H ;写ICW4,8086/88模式,自动 EOI,非缓冲,一般嵌套OUT DX,ALMOV AL,0E0H ;写OCW1,屏蔽IR5、IR6、IR7 (假定这3个中断输入未用)OUT DX,AL,MOV AL,0OUT DX,AL ;写OCW1,将00H写入IMRIN AL,DX ;读IMROR AL,AL ;判断IMR内容为00H否JNZ IMRERRMOV AL,0FFHOUT D

17、X,ALIN AL,DXADD AL,1JNZ IMRERR,图6.18 8259的初始化顺序,CPU对8259的IMR读出时,可利用I/O地址直接寻址,而要读出ISR、IRR或中断状态寄存器时,则需要先设置命令字OCW3。下面是CPU读出ISR内容的一段程序: MOV DX,0FF00H ;8259的地址A0=0 MOV AL,0BH OUT DX,AL ;写OCW3 IN AL,DX ;读出ISR内容放入AL中,2) 设置中断向量表 直接写中断向量表。利用写指令,直接将中断处理程序的首地址写入内存地址为4*n的区域中。程序如下: INTITB: MOV AX,0 MOV DS,AX;将内存

18、段设置在最低端 MOV SI,0120H ;n=48H,4*n=120H MOV AX,OFFSE TCLOCK ;获取中断处理程序首地址之段内偏移地址,MOVSI,AX ;段内偏移地址写入中断向量 表4*n地址处 MOV AX,SEG CLOCK ;获取中断处理程序首 地址之段地址 MOVSI+2,AX ;段地址写入中断向量 表4*n+2地址处,利用DOS功能调用。若系统运行在DOS环境下,可利用DOS功能调用设置中断向量表,调用格式为: 功能号25HAH 中断向量码AL 中断处理程序首地址之段地址:偏移地址DS:DX INT 21H,程序如下:MOV AH,25HMOV AL,48HMOV

19、 DX,SEG CLOCKMOV DS,DXMOV DX,OFFSET CLOCKINT21H,3. 编写中断处理程序 1)中断嵌套 8086(88)中断系统将所有中 断源分为三类,即INT、NMI及 INTR,图6.19 可嵌套的中断 处理程序流程,2) 改变中断优先级 在中断处理程序中写进如下一段程序,可实现在该中断处理程序结束后将IR7定义为优先级最低: MOV DX,0FF00H ;8259的地址A0=0 MOV AL,0C7H ;设置指定(特殊)循环优先 级及OCW2寻址信息 OUT DX,AL ;写OCW2,屏蔽方式的设置用下述指令完成: MOV DX,0FF00H ;8259的地

20、址A0=0 MOV AL,68H ;设置特殊屏蔽方式 (SMM=1)及OCW3寻址信息OUT DX,AL ;写OCW3MOV DX,0FF00H ;8259的地址A0=0MOV AL,48H ;设置SMM=0及OCW3寻址信息OUT DX,AL ;写OCW3,3) 产生EOI命令 例如,当来自8259中断输入端IR6的中断请求被CPU响应时,8259自动设置ISR的数据位D6为1(即ISR6=1)。在IR6中断处理程序中,CPU执行以下指令,产生对8259的一般EOI命令: MOV DX,0FF00H ;8259的地址A0=0 MOV AL,20H ;设置一般EOI命令 OUT DX,AL ;

21、写OCW2,图6.20 特殊屏蔽方式示意图,4) 举例 主片PIC的口地址为20H,21H 从片PIC的口地址为A0H,A1HMov dx,20h Mov dx,0a0h Mov al,11h Mov al,11hOut dx,al ;ICW1 Out dx,al ; ICW1Add dx,1 Mov al,70hMov al,8 Add dx,1 Out dx,al ;ICW2 Out dx,al ;ICW2 Mov al,4 Mov al,2Out dx,al ;ICW3 Out dx,al ;ICW3 Mov al,1 Mov al,1Out dx,al ;ICW4 Out dx,al ;ICW4,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报