第 5章 中断系统第 5章 中断系统
5.1 中断系统基本概念
5.2 中断的处理过程
5.3 IBM-PC机中断系统结构
5.4 Intel 8259A可编程中断控制器
5.5 中断程序举例第 5章 中断系统本章学习目标
掌握有关中断的基本概念,中断优先级,中断嵌套,中断屏蔽,中断向量等基本概念 。
了解 8086/8088中断系统中的中断源分类,IBM-
PC机中断系统结构 。
掌握可编程中断控制器 8259A的功能,内部结构,
工作方式及初始化命令和操作命令的定义,使用方法,服务程序的基本编写方法 。
第 5章 中断系统
5.1 中断系统基本概念
5.1.1 中断系统的作用
5.1.2 中断源返回本章首页第 5章 中断系统
5.1.1 中断系统的作用
( 1) 分时处理
( 2) 故障处理
( 3) 实时处理返回本节第 5章 中断系统
5.1.2 中断源
1,外部设备请求中断,是指系统中外设所发生的中断 。
2,实时请求中断,实时中断用于实时系统中,
在工业控制中经常使用 。
3,故障请求中断,同机器硬件错误有关的中断系统称谓硬件故障中断 。
4,程序性中断,与用户程序错误有关的中断,
统称为程序性中断 。
返回本节第 5章 中断系统
5.2 中断的处理过程
5.2.1 中断请求与中断屏蔽
5.2.2 中断优先级排队
5.2.3 中断响应
5.2.4 中断处理返回本章首页第 5章 中断系统处理一个中断的过程,就是妥善处理以下一些基本问题的过程:
1) 何时检查中断输入信号及其处理办法 。
2) 如何把控制转给中断服务程序 。
3) 如何保护和恢复中断的现场 。
4) 如何识别中断源 。
5) 如何识别优先级较高的中断 。
6) 如何开放和关闭中断 。
第 5章 中断系统
5.2.1 中断请求与中断屏蔽
1,中断请求的定义,用某种信号通知 CPU指明某台外设正在请求需要中断现行程序的执行 。
2,中断请求的条件,第一,外设本身的准备工作已完成;第二,系统允许该外设发中断请求 。
3,中断屏蔽,当此触发器在程序控制下,使触发器输出端置,1”时,允许中断 ( EI),若触发器输出端置,0”时,则关闭中断 ( DI) 。
返回本节第 5章 中断系统
5.2.2 中断优先级排队
1,中断优先级,当 CPU正在处理中断时,能响应更高级别的中断请求,而屏蔽掉同级或较低级别的中断请求 。
2,单级中断处理和多级中断处理,单级中断处理不允许其他设备再中断 CPU的程序;多级中断处理允许优先级高的中断打断优先级低的中断服务程序 。
第 5章 中断系统图 5-2 同时中断请求的处理方法
( a) 单级中断处理
( b)多级中断处理
B 处理 A 处理 B 处理 C 处理
( a )CPU B 处理 CPU A 处理 CPU C 处理 CPU
( b )CPU CPU CPU
B 请求 A,C 请求第 5章 中断系统
3.中断排队与中断源的识别 ( 如图 5-3~5-7所示)
( 1)程序查询识别(软件查询法)
( 2)单线串行顺序链识别(硬件查询法)
( 3)中断向量法识别第 5章 中断系统图 5-3 多级中断结构 图 5-4 单级中断结构
IRQ1
IRQ2
IRQ3
,
IRQ n
CPU
IRQ1
IRQ2
IRQ3
,
IRQ n
CPU
INT
+
第 5章 中断系统图
5-
5
程序查询识别中断方法
Y
Y
Y
N
N
N
保护现场检查 IRQ1 的中断状态是否为,1,
检查 IRQ2 的中断状态是否为,1,
检查 IRQ3 的中断状态是否为,1,
IRQ1 的服务程序
IRQ2 的服务程序
IRQ3 的服务程序恢复现场中断返回中断处 理入口第 5章 中断系统
I / O D A T A B U S
中断请求 I R Q
S YN
POL
1 号设备 接口 2 号设备 接口 n 号设备 接口
C PU
图 5-6 串行顺序链识别中断方法第 5章 中断系统图 5-7 向量中断示意图
INTR1
INTA1
INTM1
INTR2
INTA2
INTM2
INTRn
INTAn
INTMn
中断优先权编码电路设备接口
1
IR
IM
设备接口
2
IR
IM
设备接口
n
IR
I M
INTR
INTA
向量地址主机返回本节第 5章 中断系统
5.2.3 中断响应
1,中断响应的方法
( 1) 中断隐指令
( 2) 中断矢量第 5章 中断系统
2.中断响应的条件
1)设置中断请求触发器,发出中断请求信号
2)设置中断屏蔽触发器,当此触发器为,1”时,
允许外设的中断请求才能被送出至 CPU。
3) CPU处于开中断状态。
4) CPU在一条现行指令结束之后响应中断。
第 5章 中断系统
3,中断响应的过程
1) 发出中断响应信号 。
2) 同时自动关中断,即置中断允许触发器 IF
为,0”。
3) 保存断点 。
4) 保护现场 。
5) 输入到中断服务程序逻辑的入口地址 。
返回本节第 5章 中断系统
5.2.4 中断处理
1,起始部分 — 保护现场
2,主体部分 — 中断服务
3,结尾部分 — 恢复现场第 5章 中断系统图
5-
8
中断服务程序框图与程序示例中断服务程序入口
CPU 响应中断后自动关中 断保护现场开中断中断服务关中断恢复现场开中断中断返回入口地址,PUSH AX ;保护现场
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH SP
PUSH BP
CLI ;开中断
∶ ;中断服务
STI ;关中断
POP BP ;恢复现场
POP SP
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
CLI ;开中断
IRET ;中断返回结尾部分主体部分起始部分返回本节第 5章 中断系统
5.3 IBM-PC机中断系统结构
5.3.1 8086/8088CPU的中断结构体系
5.3.2 8086/8088中断优先级别对中断源的管理
5.3.3 IBM-PC/XT的中断控制逻辑
5.3.4 IBM-PC/AT的中断控制逻辑返回本章首页第 5章 中断系统
5.3.1 8086/8088CPU的中断结构体系图 5-9 8086/8088的中断源
I N T R
N MI
8 0 8 6 / 8 0 8 8 C P U
中断逻辑单步 ( T F = 1 )
除法出错
I N T O 溢出
I N T 3 断点非屏蔽中断请求
8 2 5 9 A
可屏蔽中断请求
I N T n 指令第 5章 中断系统
1.内部中断内部中断的特点是:
1) 是指令中指定的,或隐含的,或是预定的 。
2) CPU不执行中断响应总线周期 INTA。
3) 除单步中断外,其他内部中断的优先级都比外部中断的要高,都不能被屏蔽 ( 禁止 ) 。
4) 单步中断的优先级是所有中断里最低的,它可以用中断允许标志位 TF置 0来屏蔽 。
第 5章 中断系统
2.外部硬件中断
( 1) 非屏蔽中断 NMI:不受中断允许标志 IF的影响,它总是被 CPU接受的,
( 2) 屏蔽中断 INTR:是否响应 INTR的请求,
取决于中断允许标志位 IF的状态 。
第 5章 中断系统
3.中断类型号和中断向量表中断类型号:对每种中断都指定一个中断类型号代码,从 0~ 255,每一个中断类型号都可以与一个中断服务程序相对应。中断服务程序存放在存储区域内,而中断服务程序的入口地址存在内存储器的中断向量表内。
中断向量表:是中断类型号与它相应的中断服务程序入口地址之间的转换表。
第 5章 中断系统图
5-
10
中断向量表
003 FFH
003 FCH
00080H
0007CH
00014H
00012H
0000CH
00008H
00004H
00000H
专用中断向量
( 5 个)
系统保留中断向量
( 27 个)
用户可用中断向量
( 224 个)
16 位
CS
IP
255 号向量
∶
32 号向量
31 号向量
∶
5 号向量
4 号向量 ( 溢出 )
3 号向量
2 号向量(非屏蔽)
1 号向量(单步)
0 号向量(除法错)
第 5章 中断系统表 5-1 IBM PC/ XT机的中断类型号的安排(一)
第 5章 中断系统表 5-2 IBM PC/ XT机的中断类型号的安排(二)
中断类型号地址
( H) 中断功能中断类型号地址
( H) 中断功能
20 80-83 程序结束 26 98-9B 绝对磁盘写
21 84-87 DOS系统调用 27 9C-9F 程序结束,驻 留内存
22 88-8B 结束地址 28 A0-A3 DOS内部使用
23 8C-8F 中止处理 29~ 2E A4-BB DOS保留
24 90-93 错误处理 2F BC-BF DOS内部使用
25 94-97 绝对磁盘 读 30~ 3F C0-FF DOS保留第 5章 中断系统
4.中断向量表的初始化方法一:采用 DOS系统功能调用。即 INT 21H的
25H号功能调用。
方法二:将中断服务程序的入口地址直接装入中断向量表中。
返回本节第 5章 中断系统
5.3.2 8086/8088中断优先级别对中断源的管理
1.中断优先级别中断源 优先级除法错,INT n,INT O 最高
NMI ↑
INTR ∣
单步(陷阱) 最低表 5-3 中断优先级顺序第 5章 中断系统
2,8086/8088对中断源的采样有几条指令是在紧跟其后的一条指令也被执行完才去采样:
1)对段寄存器的装入指令
2) STI和 IRET指令
3) WAIT指令
4) HLT指令第 5章 中断系统
3,8086/8088中断处理过程
1) 将中断类型码乘 4,指向中断向量表中的中断处理子程序的入口地址 。
2) 保存 CPU的状态 。
3) 清除 IF和 TF的状态标志位 。
4) 保存原来执行的主程序的中断点 。
5) 转中断处理子程序入口地址 。
6) 执行中断处理子程序 。
7) 返回到被中断了的主程序的断点继续执行 。
第 5章 中断系统图
5-
11
中断处理过程框返回本节第 5章 中断系统
5.3.3 IBM-PC/XT的中断控制逻辑
( 1) 内部中断源:除法错引起的中断,溢出引起的中断,执行中断指令 INT( 包括 INT3断点中断 ) 引起的中断以及单步中断 。
( 2) 非屏蔽中断 NMI:系统板上存储器奇偶校验错,I/O通道中的插件奇偶校验错,8087请求中断 。
( 3) 可屏蔽中断 INTR:外部设备请求中断时,
是通过 INTR引脚向 8088 CPU请求屏蔽中断 。
第 5章 中断系统图 5-12 中断控制逻辑电路如图第 5章 中断系统
8259输入中断类型号 中断源
IRQ0 08 电子钟时间基准
IRQ1 09 键盘
IRQ2 0A 为用户保留
IRQ3 0B 异步通信,COM2
IRQ4 0C 异步通信,COM1
IRQ5 0D 硬盘
IRQ6 0E 软盘
IRQ7 0F 并行打印机表5-
4
IB
M
PC
/X
T
机中断源和中断类型号返回本节第 5章 中断系统
5.3.4 IBM-PC/AT的中断控制逻辑
IBM PC/AT机的中断管理着三类中断源:
( 1) 内部中断源
( 2) 非屏蔽中断 NMI
( 3) 可屏蔽中断 INTR
第 5章 中断系统图 5-13 PC/AT机两片 8259级联硬件连接图第 5章 中断系统表 5-5 IBM PC/AT机中断源和中断类型号返回本节第 5章 中断系统
5.4 Intel 8259A可编程中断控制器
5.4.1 8259A的框图和引脚
5.4.2 中断触发方式和中断响应过程
5.4.3 工作方式
5.4.4 屏蔽中断源的方式
5.4.5 结束中断处理的方式
5.4.6 中断级联方式
5.4.7 8259A初始化命令字和操作方式命令字返回本章首页第 5章 中断系统
5.4.1 8259A的框图和引脚
1.功能及工作特点
1) 可用 9片 8259A来构成 64级的主从式中断系统 。
2) 每一级中断都可以屏蔽或允许 。
3) 8259A可提供相应的中断向量,从而能迅速地转至中断服务程序 。
4) 通过编程使 8259A工作在多种不同的方式 。
5) 工作时只需要一组 +5V电源 。
第 5章 中断系统
2,结构框图图 5-14 8259A的方框图
D7 ~ D0
SP/EN
CAS0
CAS1
CAS2
数据总线缓冲器读 / 写控制逻辑级连缓冲比较器读 写控制逻辑读 写控制逻辑读 / 写控制逻辑
RD
WR
A0
CS
控制逻辑中断服务寄存器
ISR
优先权判别电路中断请求寄存器
IRR
中断屏蔽寄存器 IMR
INTA INT
内部总线
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
第 5章 中断系统
3
.
82
59A
的引脚
V CC
A0
IN T A
IR7
IR6
IR5
IR4
IR3
IR2
IR1
IR0
IN T
S P / E N
CA S 2
CS
WR
RD
D7
D6
D5
D4
D3
D2
D1
D0
CA S 0
CA S 1
GND
1 825 9A 28
2 27
3 2 6
4 2 5
5 2 4
6 2 3
7 2 2
8 2 1
9 2 0
10 1 9
11 1 8
12 1 7
13 1 6
14 15
图
5-
15
82
59A
的引脚第 5章 中断系统
4,8259A的工作原理第一个负脉冲到达时,8259A做到:
1) 使 IRR的锁存功能失效 。
2) 使当前中断服务寄存器 ISR中的相应位置 1。
3) 便 IRR寄存器中的相应位清零 。
第二个负脉冲到达时,8259A完成:
1) 将中断类型寄存器中的内容 ICW2,送到数据总线的 D7~
D0,CPU将此作为中断类型码 。
2) 第二个脉冲结束时,8259A会将第一个脉冲到来时设置的当前中断服务寄存器 ISR的相应位清零 。
第 5章 中断系统
5,8259A寄存器及 I/O端口的识别表 5-6 8259A读写操作及地址
CS RD WR A0 功能 8259A端口 PC/XT机端口
0 0 1 0 读 IRR,ISR 偶地址 20H
0 0 1 1 读 IMR 奇地址 21H
0 1 0 0 写 ICW1,OCW2,OCW3 偶地址 20H
0 1 0 1 写 ICW2,ICW3,ICW4,OCW1 奇地址 21H
0 1 1 × 无操作
1 × × × 无操作返回本节第 5章 中断系统
5.4.2 中断触发方式和中断响应过程
1,中断触发方式
( 1) 边沿触发方式
( 2) 电平触发方式
( 3) 中断查询方式第 5章 中断系统
2.中断响应过程
1) 当它的一条或多条中断请求线 ( IR7~ IR0)
变为高电平时,它就使中断请求锁存器 IRR相应的位置 1。
2) 8259A分析这些请求,它就向 CPU发出高电平有效信号 INT,请求中断服务 。
3) 当前一条指令执行完毕,且 IF=1时,CPU响应中断请求,进入中断响应总线周期 。
第 5章 中断系统
4) 8259A接到来自 CPU的第一个脉冲,把允许中断的最高优先级请求位,置入服务寄存器 ISR,
并把 IRR中对应的位清零 。
5) CPU在第二个总线周期,再次发出一个脉冲,
8259A接到第二个脉冲,送出中断类型码,CPU
读取该类型码。第二个中断响应周期,总线封锁撤销。
第 5章 中断系统
ALE
L O C K
I N T A
D 7 - D 0
INT
IR
C LK
T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4
类型码图 5-16 中断响应总线周期时序返回本节第 5章 中断系统
5.4.3 工作方式
1,一般完全嵌套方式
2,特殊完全嵌套方式
3,优先级自动循环方式
4,优先级特殊循环方式返回本节第 5章 中断系统
5.4.4 屏蔽中断源的方式
1,普通屏蔽方式
2,特殊屏蔽方式返回本节第 5章 中断系统
5.4.5 结束中断处理的方式
1,中断自动结束方式
2,一般的中断结束方式
3,特殊的中断结束方式返回本节第 5章 中断系统
5.4.6 中断级联方式
1,缓冲方式,8259A通过总线驱动器和数据总线相连,这就是缓冲方式 。
2,非缓冲方式,当系统中只有单片 8259A
时,一般将它直接与数据总线相连 。
第 5章 中断系统
B7 ~ B0
T 74 LS 245 OE
A7 ~ A0
DT/R
INTR
DEN
局部数据总线
B7 ~ B0
T 74 LS 245 OE
A7 ~ A0
SP/EN D7 ~ D0
从控 B
CAS2 - 0 INTA INT
SP/EN D7 ~ D0
从控 A
CAS2 - 0 INTA INT
SP/EN D7 ~ D0
主控制器 INT
IR5 IR6 INTA CAS2 - 0
+5V 1k Ω
B7 ~ B0
OE 74 LS 245 T
A7 ~ A0
+5V 1k Ω
+5V 1 k Ω
系统数据总线
INTA
图 5-17 8259A缓冲方式下级连结构第 5章 中断系统图 5-18 8259A非缓冲方式下级连结构地址总线控制总线数据总线
CS A0 DB INTA INT
CAS0
8259A 从控 A CAS1
CAS2
SP/EN IRQ7 ┅ IRQ0
CS A0 DB INTA INT
CAS0
CAS1 8259A 主控
CAS2 IRQ7 ┅ IRQ0
SP/EN 7 6 5 4 3 2 1 0
CS A0 DB INTA INT
CAS0
8259A 从控 B CAS1
CAS2
SP/EN IRQ7 ┅ IRQ0
GND 7 6 5 4 3 2 1 0 GND 7 6 5 4 3 2 1 0
VCC 7 6 5 4 3 2 1 0
从控
┅
从控
┅
从控
C AS2
┅
从控
┅
返回本节第 5章 中断系统
5.4.7 8259A初始化命令字和操作方式命令字
1.初始化命令字 ICW
( 1) ICW1
( 2) ICW2
( 3) ICW3
( 4) ICW4
( 5)初始化命令字的编程顺序第 5章 中断系统图 5-19 ICW1命令字
A0 D7 D6 D5 D4 D3 D2 D1 D0
0
1 要 ICW4
0 不要 ICW4
1 单片方式
0 级连方式
1 间距为 4
0 间距为 8
偶地址端口
80/85 中断地址特征位
1 电平触发
0 边沿触发
A 7 A 6 A 5 1 L T I M A D I S N G L I C 4
第 5章 中断系统图 5-20 ICW2命令字
A0 D7 D6 D5 D4 D3 D2 D1 D0
1
中断类型号的高 5 位 8259A 自动 填入
T 7 T 6 T 5 T 4 T 3 0 0 0
第 5章 中断系统图 5-21 主 8259A的 ICW3命令字
1 - IR i 输入引脚接从片的 IN T
0 - IR i 输入引脚未接从片的 IN T
A0 D7 D6 D5 D4 D3 D2 D1 D0
S3 S2 S1 S0 S4 S5 S6 S7 1
第 5章 中断系统图 5-23 ICW4命令字
1 - 8088/8086CPU
0 - 8080/8085 CPU
1 - 自动 EOI 方式
0 - 非自动 EOI 方式
1 - 特殊完全嵌套方式
0 - 一般完全嵌套方式
0 × 非缓冲方式
1 0 缓冲方式从片
1 1 缓冲方式主片
A0 D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 0 SFNM BUF M/S AEOI uPM
第 5章 中断系统图
5-
24
80
59A
初始化命令字的顺序返回本节第 5章 中断系统
5.5 中断程序举例
5.5.1 IBM-PC/XT机对 8259A的初始化
5.5.2 IBM-PC/AT机对 8259A的初始化返回本章首页第 5章 中断系统
5.5.1 IBM-PC/XT机对 8259A
的初始化
( 1)初始化编程
1) 工作在 8086/8088系统,单片 8259A,边沿触发方式 。
2) 中断向量初始值为 08H( IRQ0,电子钟中断向量 ) 。
3) 中断服务结束时,用常规的中断结束命令,固定优先权级别 。
第 5章 中断系统
( 2) 中断屏蔽
1) 屏蔽所有中断
2) 屏蔽某中断源使其不发中断请求
3) 中断查询
4) 中断结束命令字返回本节第 5章 中断系统
5.5.2 IBM-PC/AT机对 8259A的初始化
( 1)初始化 8259A主片
MOV AL,11H; ICW1边沿触发,级连,有 ICW4
OUT 20H,AL
JMP SHORL$+2 ; I/O端口的延时要求
MOV AL,08H ; ICW2中断类型号的初值为 08H
OUT 21H,AL
MOV AL,04H ; 04=00000100B OCW3从片 INT接主片 IR2
OUT 21H,AL
JMP SHORL$+2 ; I/O端口的延时要求
MOV AL,09H ; ICW4 8086系统,非自动 EOI,非缓冲,;特殊完全嵌套
OUT 21H,AL
第 5章 中断系统
( 2)初始化 8259A从片
MOV AL,11H ; ICW1边沿触发,级连,有 ICW4
OUT 0A0H,AL
JMP SHORL$+2 ; I/O端口的延时要求
MOV AL,70H ; ICW2 中断类型号的初值为 70H
OUT 0A1H,AL
MOV AL,02H ; OCW3 从片 INT接主片 IR2
OUT 0A1H,AL
JMP SHORL$+2 ; I/O端口的延时要求
MOV AL,01H ; ICW4 8086系统,非自动 EOI,非缓冲,;一般完全嵌套 OUT 0A1H,AL
返回本节第 5章 中断系统
THANK YOU VERY MUCH !
本章到此结束,
谢谢您的光临!
返回本章首页结 束放映
5.1 中断系统基本概念
5.2 中断的处理过程
5.3 IBM-PC机中断系统结构
5.4 Intel 8259A可编程中断控制器
5.5 中断程序举例第 5章 中断系统本章学习目标
掌握有关中断的基本概念,中断优先级,中断嵌套,中断屏蔽,中断向量等基本概念 。
了解 8086/8088中断系统中的中断源分类,IBM-
PC机中断系统结构 。
掌握可编程中断控制器 8259A的功能,内部结构,
工作方式及初始化命令和操作命令的定义,使用方法,服务程序的基本编写方法 。
第 5章 中断系统
5.1 中断系统基本概念
5.1.1 中断系统的作用
5.1.2 中断源返回本章首页第 5章 中断系统
5.1.1 中断系统的作用
( 1) 分时处理
( 2) 故障处理
( 3) 实时处理返回本节第 5章 中断系统
5.1.2 中断源
1,外部设备请求中断,是指系统中外设所发生的中断 。
2,实时请求中断,实时中断用于实时系统中,
在工业控制中经常使用 。
3,故障请求中断,同机器硬件错误有关的中断系统称谓硬件故障中断 。
4,程序性中断,与用户程序错误有关的中断,
统称为程序性中断 。
返回本节第 5章 中断系统
5.2 中断的处理过程
5.2.1 中断请求与中断屏蔽
5.2.2 中断优先级排队
5.2.3 中断响应
5.2.4 中断处理返回本章首页第 5章 中断系统处理一个中断的过程,就是妥善处理以下一些基本问题的过程:
1) 何时检查中断输入信号及其处理办法 。
2) 如何把控制转给中断服务程序 。
3) 如何保护和恢复中断的现场 。
4) 如何识别中断源 。
5) 如何识别优先级较高的中断 。
6) 如何开放和关闭中断 。
第 5章 中断系统
5.2.1 中断请求与中断屏蔽
1,中断请求的定义,用某种信号通知 CPU指明某台外设正在请求需要中断现行程序的执行 。
2,中断请求的条件,第一,外设本身的准备工作已完成;第二,系统允许该外设发中断请求 。
3,中断屏蔽,当此触发器在程序控制下,使触发器输出端置,1”时,允许中断 ( EI),若触发器输出端置,0”时,则关闭中断 ( DI) 。
返回本节第 5章 中断系统
5.2.2 中断优先级排队
1,中断优先级,当 CPU正在处理中断时,能响应更高级别的中断请求,而屏蔽掉同级或较低级别的中断请求 。
2,单级中断处理和多级中断处理,单级中断处理不允许其他设备再中断 CPU的程序;多级中断处理允许优先级高的中断打断优先级低的中断服务程序 。
第 5章 中断系统图 5-2 同时中断请求的处理方法
( a) 单级中断处理
( b)多级中断处理
B 处理 A 处理 B 处理 C 处理
( a )CPU B 处理 CPU A 处理 CPU C 处理 CPU
( b )CPU CPU CPU
B 请求 A,C 请求第 5章 中断系统
3.中断排队与中断源的识别 ( 如图 5-3~5-7所示)
( 1)程序查询识别(软件查询法)
( 2)单线串行顺序链识别(硬件查询法)
( 3)中断向量法识别第 5章 中断系统图 5-3 多级中断结构 图 5-4 单级中断结构
IRQ1
IRQ2
IRQ3
,
IRQ n
CPU
IRQ1
IRQ2
IRQ3
,
IRQ n
CPU
INT
+
第 5章 中断系统图
5-
5
程序查询识别中断方法
Y
Y
Y
N
N
N
保护现场检查 IRQ1 的中断状态是否为,1,
检查 IRQ2 的中断状态是否为,1,
检查 IRQ3 的中断状态是否为,1,
IRQ1 的服务程序
IRQ2 的服务程序
IRQ3 的服务程序恢复现场中断返回中断处 理入口第 5章 中断系统
I / O D A T A B U S
中断请求 I R Q
S YN
POL
1 号设备 接口 2 号设备 接口 n 号设备 接口
C PU
图 5-6 串行顺序链识别中断方法第 5章 中断系统图 5-7 向量中断示意图
INTR1
INTA1
INTM1
INTR2
INTA2
INTM2
INTRn
INTAn
INTMn
中断优先权编码电路设备接口
1
IR
IM
设备接口
2
IR
IM
设备接口
n
IR
I M
INTR
INTA
向量地址主机返回本节第 5章 中断系统
5.2.3 中断响应
1,中断响应的方法
( 1) 中断隐指令
( 2) 中断矢量第 5章 中断系统
2.中断响应的条件
1)设置中断请求触发器,发出中断请求信号
2)设置中断屏蔽触发器,当此触发器为,1”时,
允许外设的中断请求才能被送出至 CPU。
3) CPU处于开中断状态。
4) CPU在一条现行指令结束之后响应中断。
第 5章 中断系统
3,中断响应的过程
1) 发出中断响应信号 。
2) 同时自动关中断,即置中断允许触发器 IF
为,0”。
3) 保存断点 。
4) 保护现场 。
5) 输入到中断服务程序逻辑的入口地址 。
返回本节第 5章 中断系统
5.2.4 中断处理
1,起始部分 — 保护现场
2,主体部分 — 中断服务
3,结尾部分 — 恢复现场第 5章 中断系统图
5-
8
中断服务程序框图与程序示例中断服务程序入口
CPU 响应中断后自动关中 断保护现场开中断中断服务关中断恢复现场开中断中断返回入口地址,PUSH AX ;保护现场
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH SP
PUSH BP
CLI ;开中断
∶ ;中断服务
STI ;关中断
POP BP ;恢复现场
POP SP
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
CLI ;开中断
IRET ;中断返回结尾部分主体部分起始部分返回本节第 5章 中断系统
5.3 IBM-PC机中断系统结构
5.3.1 8086/8088CPU的中断结构体系
5.3.2 8086/8088中断优先级别对中断源的管理
5.3.3 IBM-PC/XT的中断控制逻辑
5.3.4 IBM-PC/AT的中断控制逻辑返回本章首页第 5章 中断系统
5.3.1 8086/8088CPU的中断结构体系图 5-9 8086/8088的中断源
I N T R
N MI
8 0 8 6 / 8 0 8 8 C P U
中断逻辑单步 ( T F = 1 )
除法出错
I N T O 溢出
I N T 3 断点非屏蔽中断请求
8 2 5 9 A
可屏蔽中断请求
I N T n 指令第 5章 中断系统
1.内部中断内部中断的特点是:
1) 是指令中指定的,或隐含的,或是预定的 。
2) CPU不执行中断响应总线周期 INTA。
3) 除单步中断外,其他内部中断的优先级都比外部中断的要高,都不能被屏蔽 ( 禁止 ) 。
4) 单步中断的优先级是所有中断里最低的,它可以用中断允许标志位 TF置 0来屏蔽 。
第 5章 中断系统
2.外部硬件中断
( 1) 非屏蔽中断 NMI:不受中断允许标志 IF的影响,它总是被 CPU接受的,
( 2) 屏蔽中断 INTR:是否响应 INTR的请求,
取决于中断允许标志位 IF的状态 。
第 5章 中断系统
3.中断类型号和中断向量表中断类型号:对每种中断都指定一个中断类型号代码,从 0~ 255,每一个中断类型号都可以与一个中断服务程序相对应。中断服务程序存放在存储区域内,而中断服务程序的入口地址存在内存储器的中断向量表内。
中断向量表:是中断类型号与它相应的中断服务程序入口地址之间的转换表。
第 5章 中断系统图
5-
10
中断向量表
003 FFH
003 FCH
00080H
0007CH
00014H
00012H
0000CH
00008H
00004H
00000H
专用中断向量
( 5 个)
系统保留中断向量
( 27 个)
用户可用中断向量
( 224 个)
16 位
CS
IP
255 号向量
∶
32 号向量
31 号向量
∶
5 号向量
4 号向量 ( 溢出 )
3 号向量
2 号向量(非屏蔽)
1 号向量(单步)
0 号向量(除法错)
第 5章 中断系统表 5-1 IBM PC/ XT机的中断类型号的安排(一)
第 5章 中断系统表 5-2 IBM PC/ XT机的中断类型号的安排(二)
中断类型号地址
( H) 中断功能中断类型号地址
( H) 中断功能
20 80-83 程序结束 26 98-9B 绝对磁盘写
21 84-87 DOS系统调用 27 9C-9F 程序结束,驻 留内存
22 88-8B 结束地址 28 A0-A3 DOS内部使用
23 8C-8F 中止处理 29~ 2E A4-BB DOS保留
24 90-93 错误处理 2F BC-BF DOS内部使用
25 94-97 绝对磁盘 读 30~ 3F C0-FF DOS保留第 5章 中断系统
4.中断向量表的初始化方法一:采用 DOS系统功能调用。即 INT 21H的
25H号功能调用。
方法二:将中断服务程序的入口地址直接装入中断向量表中。
返回本节第 5章 中断系统
5.3.2 8086/8088中断优先级别对中断源的管理
1.中断优先级别中断源 优先级除法错,INT n,INT O 最高
NMI ↑
INTR ∣
单步(陷阱) 最低表 5-3 中断优先级顺序第 5章 中断系统
2,8086/8088对中断源的采样有几条指令是在紧跟其后的一条指令也被执行完才去采样:
1)对段寄存器的装入指令
2) STI和 IRET指令
3) WAIT指令
4) HLT指令第 5章 中断系统
3,8086/8088中断处理过程
1) 将中断类型码乘 4,指向中断向量表中的中断处理子程序的入口地址 。
2) 保存 CPU的状态 。
3) 清除 IF和 TF的状态标志位 。
4) 保存原来执行的主程序的中断点 。
5) 转中断处理子程序入口地址 。
6) 执行中断处理子程序 。
7) 返回到被中断了的主程序的断点继续执行 。
第 5章 中断系统图
5-
11
中断处理过程框返回本节第 5章 中断系统
5.3.3 IBM-PC/XT的中断控制逻辑
( 1) 内部中断源:除法错引起的中断,溢出引起的中断,执行中断指令 INT( 包括 INT3断点中断 ) 引起的中断以及单步中断 。
( 2) 非屏蔽中断 NMI:系统板上存储器奇偶校验错,I/O通道中的插件奇偶校验错,8087请求中断 。
( 3) 可屏蔽中断 INTR:外部设备请求中断时,
是通过 INTR引脚向 8088 CPU请求屏蔽中断 。
第 5章 中断系统图 5-12 中断控制逻辑电路如图第 5章 中断系统
8259输入中断类型号 中断源
IRQ0 08 电子钟时间基准
IRQ1 09 键盘
IRQ2 0A 为用户保留
IRQ3 0B 异步通信,COM2
IRQ4 0C 异步通信,COM1
IRQ5 0D 硬盘
IRQ6 0E 软盘
IRQ7 0F 并行打印机表5-
4
IB
M
PC
/X
T
机中断源和中断类型号返回本节第 5章 中断系统
5.3.4 IBM-PC/AT的中断控制逻辑
IBM PC/AT机的中断管理着三类中断源:
( 1) 内部中断源
( 2) 非屏蔽中断 NMI
( 3) 可屏蔽中断 INTR
第 5章 中断系统图 5-13 PC/AT机两片 8259级联硬件连接图第 5章 中断系统表 5-5 IBM PC/AT机中断源和中断类型号返回本节第 5章 中断系统
5.4 Intel 8259A可编程中断控制器
5.4.1 8259A的框图和引脚
5.4.2 中断触发方式和中断响应过程
5.4.3 工作方式
5.4.4 屏蔽中断源的方式
5.4.5 结束中断处理的方式
5.4.6 中断级联方式
5.4.7 8259A初始化命令字和操作方式命令字返回本章首页第 5章 中断系统
5.4.1 8259A的框图和引脚
1.功能及工作特点
1) 可用 9片 8259A来构成 64级的主从式中断系统 。
2) 每一级中断都可以屏蔽或允许 。
3) 8259A可提供相应的中断向量,从而能迅速地转至中断服务程序 。
4) 通过编程使 8259A工作在多种不同的方式 。
5) 工作时只需要一组 +5V电源 。
第 5章 中断系统
2,结构框图图 5-14 8259A的方框图
D7 ~ D0
SP/EN
CAS0
CAS1
CAS2
数据总线缓冲器读 / 写控制逻辑级连缓冲比较器读 写控制逻辑读 写控制逻辑读 / 写控制逻辑
RD
WR
A0
CS
控制逻辑中断服务寄存器
ISR
优先权判别电路中断请求寄存器
IRR
中断屏蔽寄存器 IMR
INTA INT
内部总线
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
第 5章 中断系统
3
.
82
59A
的引脚
V CC
A0
IN T A
IR7
IR6
IR5
IR4
IR3
IR2
IR1
IR0
IN T
S P / E N
CA S 2
CS
WR
RD
D7
D6
D5
D4
D3
D2
D1
D0
CA S 0
CA S 1
GND
1 825 9A 28
2 27
3 2 6
4 2 5
5 2 4
6 2 3
7 2 2
8 2 1
9 2 0
10 1 9
11 1 8
12 1 7
13 1 6
14 15
图
5-
15
82
59A
的引脚第 5章 中断系统
4,8259A的工作原理第一个负脉冲到达时,8259A做到:
1) 使 IRR的锁存功能失效 。
2) 使当前中断服务寄存器 ISR中的相应位置 1。
3) 便 IRR寄存器中的相应位清零 。
第二个负脉冲到达时,8259A完成:
1) 将中断类型寄存器中的内容 ICW2,送到数据总线的 D7~
D0,CPU将此作为中断类型码 。
2) 第二个脉冲结束时,8259A会将第一个脉冲到来时设置的当前中断服务寄存器 ISR的相应位清零 。
第 5章 中断系统
5,8259A寄存器及 I/O端口的识别表 5-6 8259A读写操作及地址
CS RD WR A0 功能 8259A端口 PC/XT机端口
0 0 1 0 读 IRR,ISR 偶地址 20H
0 0 1 1 读 IMR 奇地址 21H
0 1 0 0 写 ICW1,OCW2,OCW3 偶地址 20H
0 1 0 1 写 ICW2,ICW3,ICW4,OCW1 奇地址 21H
0 1 1 × 无操作
1 × × × 无操作返回本节第 5章 中断系统
5.4.2 中断触发方式和中断响应过程
1,中断触发方式
( 1) 边沿触发方式
( 2) 电平触发方式
( 3) 中断查询方式第 5章 中断系统
2.中断响应过程
1) 当它的一条或多条中断请求线 ( IR7~ IR0)
变为高电平时,它就使中断请求锁存器 IRR相应的位置 1。
2) 8259A分析这些请求,它就向 CPU发出高电平有效信号 INT,请求中断服务 。
3) 当前一条指令执行完毕,且 IF=1时,CPU响应中断请求,进入中断响应总线周期 。
第 5章 中断系统
4) 8259A接到来自 CPU的第一个脉冲,把允许中断的最高优先级请求位,置入服务寄存器 ISR,
并把 IRR中对应的位清零 。
5) CPU在第二个总线周期,再次发出一个脉冲,
8259A接到第二个脉冲,送出中断类型码,CPU
读取该类型码。第二个中断响应周期,总线封锁撤销。
第 5章 中断系统
ALE
L O C K
I N T A
D 7 - D 0
INT
IR
C LK
T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 4
类型码图 5-16 中断响应总线周期时序返回本节第 5章 中断系统
5.4.3 工作方式
1,一般完全嵌套方式
2,特殊完全嵌套方式
3,优先级自动循环方式
4,优先级特殊循环方式返回本节第 5章 中断系统
5.4.4 屏蔽中断源的方式
1,普通屏蔽方式
2,特殊屏蔽方式返回本节第 5章 中断系统
5.4.5 结束中断处理的方式
1,中断自动结束方式
2,一般的中断结束方式
3,特殊的中断结束方式返回本节第 5章 中断系统
5.4.6 中断级联方式
1,缓冲方式,8259A通过总线驱动器和数据总线相连,这就是缓冲方式 。
2,非缓冲方式,当系统中只有单片 8259A
时,一般将它直接与数据总线相连 。
第 5章 中断系统
B7 ~ B0
T 74 LS 245 OE
A7 ~ A0
DT/R
INTR
DEN
局部数据总线
B7 ~ B0
T 74 LS 245 OE
A7 ~ A0
SP/EN D7 ~ D0
从控 B
CAS2 - 0 INTA INT
SP/EN D7 ~ D0
从控 A
CAS2 - 0 INTA INT
SP/EN D7 ~ D0
主控制器 INT
IR5 IR6 INTA CAS2 - 0
+5V 1k Ω
B7 ~ B0
OE 74 LS 245 T
A7 ~ A0
+5V 1k Ω
+5V 1 k Ω
系统数据总线
INTA
图 5-17 8259A缓冲方式下级连结构第 5章 中断系统图 5-18 8259A非缓冲方式下级连结构地址总线控制总线数据总线
CS A0 DB INTA INT
CAS0
8259A 从控 A CAS1
CAS2
SP/EN IRQ7 ┅ IRQ0
CS A0 DB INTA INT
CAS0
CAS1 8259A 主控
CAS2 IRQ7 ┅ IRQ0
SP/EN 7 6 5 4 3 2 1 0
CS A0 DB INTA INT
CAS0
8259A 从控 B CAS1
CAS2
SP/EN IRQ7 ┅ IRQ0
GND 7 6 5 4 3 2 1 0 GND 7 6 5 4 3 2 1 0
VCC 7 6 5 4 3 2 1 0
从控
┅
从控
┅
从控
C AS2
┅
从控
┅
返回本节第 5章 中断系统
5.4.7 8259A初始化命令字和操作方式命令字
1.初始化命令字 ICW
( 1) ICW1
( 2) ICW2
( 3) ICW3
( 4) ICW4
( 5)初始化命令字的编程顺序第 5章 中断系统图 5-19 ICW1命令字
A0 D7 D6 D5 D4 D3 D2 D1 D0
0
1 要 ICW4
0 不要 ICW4
1 单片方式
0 级连方式
1 间距为 4
0 间距为 8
偶地址端口
80/85 中断地址特征位
1 电平触发
0 边沿触发
A 7 A 6 A 5 1 L T I M A D I S N G L I C 4
第 5章 中断系统图 5-20 ICW2命令字
A0 D7 D6 D5 D4 D3 D2 D1 D0
1
中断类型号的高 5 位 8259A 自动 填入
T 7 T 6 T 5 T 4 T 3 0 0 0
第 5章 中断系统图 5-21 主 8259A的 ICW3命令字
1 - IR i 输入引脚接从片的 IN T
0 - IR i 输入引脚未接从片的 IN T
A0 D7 D6 D5 D4 D3 D2 D1 D0
S3 S2 S1 S0 S4 S5 S6 S7 1
第 5章 中断系统图 5-23 ICW4命令字
1 - 8088/8086CPU
0 - 8080/8085 CPU
1 - 自动 EOI 方式
0 - 非自动 EOI 方式
1 - 特殊完全嵌套方式
0 - 一般完全嵌套方式
0 × 非缓冲方式
1 0 缓冲方式从片
1 1 缓冲方式主片
A0 D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 0 SFNM BUF M/S AEOI uPM
第 5章 中断系统图
5-
24
80
59A
初始化命令字的顺序返回本节第 5章 中断系统
5.5 中断程序举例
5.5.1 IBM-PC/XT机对 8259A的初始化
5.5.2 IBM-PC/AT机对 8259A的初始化返回本章首页第 5章 中断系统
5.5.1 IBM-PC/XT机对 8259A
的初始化
( 1)初始化编程
1) 工作在 8086/8088系统,单片 8259A,边沿触发方式 。
2) 中断向量初始值为 08H( IRQ0,电子钟中断向量 ) 。
3) 中断服务结束时,用常规的中断结束命令,固定优先权级别 。
第 5章 中断系统
( 2) 中断屏蔽
1) 屏蔽所有中断
2) 屏蔽某中断源使其不发中断请求
3) 中断查询
4) 中断结束命令字返回本节第 5章 中断系统
5.5.2 IBM-PC/AT机对 8259A的初始化
( 1)初始化 8259A主片
MOV AL,11H; ICW1边沿触发,级连,有 ICW4
OUT 20H,AL
JMP SHORL$+2 ; I/O端口的延时要求
MOV AL,08H ; ICW2中断类型号的初值为 08H
OUT 21H,AL
MOV AL,04H ; 04=00000100B OCW3从片 INT接主片 IR2
OUT 21H,AL
JMP SHORL$+2 ; I/O端口的延时要求
MOV AL,09H ; ICW4 8086系统,非自动 EOI,非缓冲,;特殊完全嵌套
OUT 21H,AL
第 5章 中断系统
( 2)初始化 8259A从片
MOV AL,11H ; ICW1边沿触发,级连,有 ICW4
OUT 0A0H,AL
JMP SHORL$+2 ; I/O端口的延时要求
MOV AL,70H ; ICW2 中断类型号的初值为 70H
OUT 0A1H,AL
MOV AL,02H ; OCW3 从片 INT接主片 IR2
OUT 0A1H,AL
JMP SHORL$+2 ; I/O端口的延时要求
MOV AL,01H ; ICW4 8086系统,非自动 EOI,非缓冲,;一般完全嵌套 OUT 0A1H,AL
返回本节第 5章 中断系统
THANK YOU VERY MUCH !
本章到此结束,
谢谢您的光临!
返回本章首页结 束放映