第八章 中断技术 微机基础与接口技术 教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.2
2020/9/26
图8-2 8086/88的中断向量表
8.2
8086/8088 中断系统有256个中断,每个中断向量占 四个存储单元,共需占用1K字节的存储空间来存放 中断向量。PC系列微机把中断向量表存入存储器的 最低端1K字节,即从00000H~003FFH的存储空间 中。
中断类型号n×4
3.中断向量的修改
用户利用系统中断资源来开发可屏蔽中断服务程序的常用方法
用户编程实现把系统提供的中断服务程序入口地址 指向自己开发的中断服务程序。 方法:用户中断服务程序的 CS:IP加入中断向量表
2020/9/26
8.3 可编程中断控制器8259A
PC采用中断控制器8259A协助CPU完 成对外部硬件中断的管理 工作 ———— 具有三个主要方面的功能:
MOV AX,OFFSET INT_PRO
STOSW
;装入INT_PRO子程序的偏移地址
MOV AX,SET INT_PRO
STOSW
; 装入INT_PRO子程序的段地址
2020/9/26
3)使用DOS系统功能调用装入
8.2
INT 21H的25H/35H号功能也提供了装入/保存中断向量的功能。
PUSH DS
中断源的中断屏蔽触发器可以设置是否发出 这一请求
2020/9/26
2. 中断响应
8.1
响应中断请求的条件:
这一请求没有被中断管理机构屏蔽 这一请求的中断优先级最高; 这一请求没有超过系统允许嵌套的层数 CPU允许中断 且CPU执行完当前指令 响应时系统的操作:执行中断隐指令 保存程序计数器PC和标志寄存器内容
以防止CPU再次响应。
2020/9/26
6.总线连接方式
8.3
缓冲方式和非缓冲方式两种
1)缓冲方式 8259A通过总线驱动器和系统数据总线连接
SP / EN 作为总线驱动器的启动信号输出中断类型号
2)非缓冲方式
2020/9/26
8259A数据线与系统数据总线直接相连
7.查询中断方式
8.3
8259A也可以用查询方式来检查请求中断的设备。当 CPU关中断时,中断输入信号将不起作用,那么对设备的 服务就可通过软件查询来实现。
2020/9/26
3. 中断处理
8.1
用户编程完成的操作:
1) 关中断、保护现场
2)开中断
允许嵌套
3)中断服务 4)关中断 恢复断点和现场时不被中断
5)恢复现场、中断结束 6)中断返回
2020/9/26
8.2 8086/8088的中断系统
8086/8088系统的中断类型可以有256个, 用一个8位二进制码表示。 划分为硬件中断(外部中断)
二、中断的基本原理与概念
8.1
1. 中断屏蔽 中断分为两大类:
IF:STI 、CLI
不可屏蔽中断 (NMI)
可屏蔽中断(INTR )
2020/9/26
2. 中断优先级
8.1
系统根据引起中断事件的重要性和紧迫程度,
硬件将中断源分为若干个级别,称作中断优先 级。
CPU按照由高到低的顺序响应。高级中断可以 打断低级中断处理程序的运行,优先执行高级中 断处理程序。
不利于多片级联
2)特殊完全嵌套方式
在CPU中断服务期间,除了允许高级中断请求进 入外,还允许同级中断请求进入,从而实现了对同 级中断请求的特殊嵌套。
2020/9/26
用于多片级联
8259的多片级联
8.3
主控8259A向CPU申请
从控8259的INT输出端接 到主控制器的IR输入端。
如果某一从属8259A的 中断请求被CPU响应,在
MOV AX, SEG INT_PRO ;取INT_PRO子程序的段基址
MOV DS, AX
MOV DX, OFFSET INT_PRO ;取INT_PRO子程序的偏移地址
MOV AL, 60H
;中断类型号
MOV AH, 25H
;25H号DOS功能调用
INT 21H
POP DS
2020/9/26
8.2
3. 中断嵌套
优先级更高的中断打断当前正在执行的级别较低的中断
2020/9/26
三、中断的过程
8.1
中断是一个软硬件协调工作的过程,整个工作过 程可分为中断请求、中断响应和中断处理。
1.中断请求
中断请求是由中断源发出并送给CPU的控制信 号,由中断源设备通过置"1"设置在接口卡上的中 断触发器完成。
中断响应周期里,主控 8259A将其对应IR输入端的 编码作为对从属8259A进行 识别的地址,送到CAS2 ~ CAS0级联线上,被选中的 从属8259A将接收INTA信
号,并把其中断向量送上 数据总线。
CPU +5 V
8259A
INTA IN T
C A S0 C A S1 C A S2
IR0
IR1
查询中断的命令是通过OCW3中P=1发出的,8259A接 到查询命令后,把随后的一次CPU读操作当作中断响应 信号,如果有中断请求,就把ISR相应的位置位,并读出 查询字,从而判断该中断级别,并编程实现中断服务程序 的转移。
2020/9/26
三、8259A的命令字 初始化命令字ICW1~ICW4 操作命令字OCW1~OCW3
IR2
IR3
IR4
SP / EN
IR5
IR6
IR7
8259A
INTA
IR0
…
IN T
C A S0 C A S1 C
8259A
INTA IN T
C A S0 C A S1 C A S2
IR0 IR7 SP / EN
…
在中断服务结束时,若不是自动EOI方式必须发出两个EOI命令,一个给从片, 一个给主片,清除各自的ISR位。
8.1
为了使系统的各类中断有序地进行,需对中断划分优先级
内部中断的优先级别最高(单步中断除外),其次是不可屏 蔽中断(NMI)和可屏蔽中断,单步中断的优先级别最低。
2020/9/26
三、中断向量表 1.中断向量与中断向量表
8.2
如何根据不同的中断源进入相应的中断服务子程 序,每一个中断服务程序都有一个唯一确定的入口 地址。
1)接收外部设备的中断请求 2)实现优先级排队管理 3)提供中断类型号
2020/9/26
一、8259A内部结构和引脚功能
8.3
D7~ D0
数据总线 缓冲器
INT A INT 控制逻辑
RD WR CS A0
CAS0 CAS1 CAS2 SP/ EN
读 /写 控制电路
级联缓 冲 /比 较 器
中断 服务 寄存器
2020/9/26
3.中断屏蔽方式
8.3
普通屏蔽方式和特殊(特定)屏蔽方式
1)普通屏蔽方式
通过8259A的中断屏蔽寄存器(IMR) 来实现对中断请求IRi的屏蔽。
由OCW1 设置
2)特殊屏蔽方式 (SMM)
实现低优先级中断请求中断正在服务的高优先级中断
2020/9/26
通过OCW3来设置或取消
4.中断结束方式
1.中断优先权方式
固定优先权方式和自动循环优先权方式
1)固定优先权方式
由高到低的优先级顺序是:IR0, IR1, IR2, …, IR7
2)自动循环优先权方式
2020/9/26
IR0~IR7的优先权级别可以改变
2.中断嵌套方式 一般完全嵌套和特殊完全嵌套
8.3
1)一般完全嵌套方式
中断优先权管理为固定方式, 即IR0优先权最高,IR7优先权最低
8.3
CPU为某个中断请求服务,中断对应的ISR 中的Di位被置1,使比它优先级低的中断请求 无法得到响应。中断结束时,应及时清除中 断服务标志位。
三种中断结束方式
1)自动结束方式
在中断响应过程中由硬件自动完成ISR中为“1”位 的清除, 所以这不是中断服务子程序的真正结束 。
2020/9/26 只适合用在没有中断嵌套的场合
查表,从低到高地址取连续4个字节
从高到底的这4个字节即为CS:IP
2020/9/26
2020/9/26
2. 中断向量的装入
8.2
系统设置的中断服务程序,其中断向量由 系统负责装入。
用户开发的中断系统,在编写中断服务程序 时,其中断向量由用户负责装入。
2020/9/26
用户程序三种方式装入中断向量 :
8.2
1)使用MOV指令直接装入
MOV MOV MOV
MOV MOV MOV MOV
AX, 0
;中断向量表的段基址为0000H
DS, AX
BX, 60H*4 ;60H号中断向量在向量表中存放的单 ;元地址
AX, OFFSET INT_PRO
[BX], AX ;装入INT_PRO子程序的偏移地址
AX, SEG INT_PRO
[BX+2], AX ;装入INT_PRO子程序的段地址
2020/9/26
8.2
2)使用串存指令直接装入
CLD
;方向标志置DF=0,串操作时,修改地址指针
;增量
MOV AX,0 ; 中断向量表的段基址为0000H
MOV ES,AX
MOV DI,60H*4 ;60H号中断向量在向量表中存放的单元地址
是用以提高计算机工作效率的一项重要技术
2020/9/26
一、中断的基本概念
8.1
1.中断及中断源
中断是指CPU正在运行程序时,由于某些事件或状态的出 现,使CPU暂时停止正在运行的程序,转到为这些事情或状 态服务的程序中去,服务完毕后,再返回被打断的程序继续 执行。
引起中断的事件或状态称为中断源
2020/9/26
2)普通结束方式
8.3
在中断服务子程序中编程写入操作命令字OCW2, 向8259A传送一个普通EOI命令(不指定被复位的 中断的级号)来清除ISR中当前优先级别最高位。
适合用在一般完全嵌套方式下的中断结束。因为 在完全嵌套方式下,中断优先级是固定的 。
2020/9/26
常用
3)特殊(特定)结束方式
8.3
发特殊EOI命令明确指出了复位ISR中的哪一位
适用于优先级发生改变的情况,嵌套结构在中 断响应后发生了变化。
2020/9/26
常用
5.中断触发方式 中断请求信号:电平触发和边沿触发
8.3
由初始化命令字ICW1中的LTIM位来设定
IRi端有高电平时产生中断。要求触发电平必须保持到中断响应信号
IN T A 有效为止,并且在CPU响应中断后,应及时撤销该请求信号,
(ISR)
优先权 判决 电路
IR0
中断 请求
IIRR12 IR3
寄存器 (IRR)
IIRR45 IR6
IR7
中 断 屏 蔽 寄 存 器 (IMR)
2020/9/26
图8- 3 8259A的内部结构
1)数据总线缓冲器 2)读/写控制逻辑 3)级联缓冲/比较器 4)中断控制逻辑 5)中断请求寄存器(IRR) 6)中断服务寄存器(ISR) 7)中断屏蔽寄存器(IMR) 8)优先权判决器(PR)
中断向量:中断服务程序入口地址的段基地址和段 内偏移地址,CS:IP。
中断向量存储时占用4个字节
2020/9/26
8.2
中断类型号:系统为每个中断源指定的一个编号
一个中断类型号与一个中断服务子程序(中断向量)相对应
中断向量表:所有中断向量按类型号集中存放在存 储器的某个区域内,形成中断向量表。
2020/9/26
软件中断(内部中断)两类
外部中断又有不可屏蔽中断和可屏蔽中断请求, 分别通过NMI引脚和INTR引脚输入到CPU。
2020/9/26
8.2
2020/9/26
图8-1 8086/88系统的中断分类
一、中断类型 1. 硬件中断 可屏蔽中断 不可屏蔽中断 2. 软件中断
2020/9/26
8.2
二、中断优先级
2020/9/26
8.3
D0~D7
RD WR
C S A0
SP / EN
CAS2~CAS0
INT IN T A IR7~IR0
VCC
2020/9/26
GND
CS
WR
RD D7 D6 D5 D4 D3 D2 D1 D0 C A S0 C A S1 GND
1
28
2
27
3
26
4
25
5
24
6
23
7
22
8259A
2020/9/26
8.3
2020/9/26
2020/9/26
2020/9/26
8
21
9
20
10
19
11
18
12
17
13
16
14
15
8.3
VCC A0 INTA I R7 I R6 I R5 I R4 I R3 I R2 I R1 I R0 IN T
SP / EN C A S2
图8- 6 8259A引脚图
二、8259A的中断管理方式
8.3
8259A的中断管理功能很强,单片可以管理8级外部 中断,还可以多片级联使用。具有中断优先权设置、 中断嵌套、中断屏蔽和中断结束等多种中断管理方式。
第八章 中断技术
8.1 中断技术概述 8.2 8086/8088中断系统 8.3 可编程中断控制器8259A 8.4 8259A的应用
2020/9/26
8.1 中断技术概述
中断是微型计算机系统中非常重要的一项技术 是对微处理器功能的有效扩展
中断技术是微型计算机系统的核心技术之一 在当代计算机中具有重要作用