当前位置:首页 >> 初中教育 >>

微机原理第8章


第8章 中 断 技 术

第8章 中 断 技 术
8.1 中断概述

8.2 多级中断管理
8.3 IBM-PC机的中断系统 8.4 可编程中断控制器Intel 8259A 习题8

第8章 中 断 技 术

?中断的产生

? 生活中的中断
? ?

? ? ? ? 上课时手机响了 印度洋发生海啸 日本袭击珍珠港 美国发生911 鼠标点击新的图标 QQ有新的消息

? 社会中的中断 ? 计算机中的中断

第8章 中 断 技 术

?中断系统 ? 中断请求(突发事件) ? 上课时手机响了
? QQ有新的消息 ? 日本袭击珍珠港

? 中断处理(响应事件)
? 关手机或接手机 ? 美国用原子弹炸广岛

? 与Q友聊天

第8章 中 断 技 术

8.1 中 断 概 述
8.1.1 中断的基本概念 ?程序查询方式:在接口电路中设有外设状态标志位,用来反映外 部设备数据的情况.CPU主动地查询所有外设以确定其是否准备 好,是否需要进行数据传送.

?优点:能较好地协调外设与CPU之间的定时关系.
?缺点: ?CPU需要不断查询标志位的状态,使CPU的效率降低,特别是 与低速外设进行数据交换时,需要等待更多的时间。 ?在对多个外设进行I/O操作时,由于工作速度不同,要求CPU 的服务是随机的,若外设的实时性要求高,CPU有可能因来不 及响应而造成数据丢失。

第8章 中 断 技 术 中断:计算机在正常执行程序的过程中,由于某事件的发生使 CPU暂时停止当前执行的程序,转去执行事件的处理程序,结 束后又返回原程序继续执行的过程。 外设处理数据期间,CPU不必浪费大量时间去查询其状态,只 待外设处理完毕主动向CPU提出请求。 CPU在每一条指令执行的最后一个时钟周期,检测其中断请求 引脚(INTR)有无中断请求信号,若有,则将中断锁存器置 “1”,在下一个总线周期到来时,进入中断响应状态。 目的:为提高CPU执行有效程序的工作效率,解决高速CPU与低 速外设之间的速度矛盾,让外设处于主动状态。

第8章 中 断 技 术

优点: 1. 分时操作 执行正常程序时,接受并处理外部设备的中断请求,CPU 与外部设备同时运行,并行工作。 2. 实时处理 实时处理现场定时或随机地产生各种参数、信息,响应 对紧急事件的处理。 3.故障处理 运行过程中出现某些故障,如电源掉电、运算溢出等, 计算机可以利用中断系统自行处理。

第8章 中 断 技 术 中断常用术语
中断服务程序:对紧急事件处理的程序 中断源:引起中断的事件或原因,或发出中断申请的来源

中断向量:中断服务子程序的入口地址,即中断服务子程序的第一条指令 的地址在存储器中的存放位置。
中断向量表:中断向量构成的表格,位于存储器的最低地址单元。 断点:执行的现行程序被中断时的下一条指令的地址,又称断点地址。 现场:中断程序中应保护和恢复的相关信息。 中断优先级:系统中多个中断源同时提出中断请求时,需按照中断的轻重 缓急给每个中断源指定一个有限级别,即每个中断源在接受CPU 服务时的优先等级。 中断嵌套:中断服务程序运行中响应更高级别中断请求。 中断类型号:处理器对各类中断的中断源进行的统一编号n,n的取值范围 是0~255.

中断分类:分成外部中断与内部中断,外部中断又分为可屏蔽中断与不可 屏蔽中断。内部中断又称软件中断,是由执行指令产生的。

第8章 中 断 技 术

8.1.3 中断控制的功能
中断控制系统:为实现中断而设置的各种软件与硬件,包括中 断控制逻辑与相应管理中断的指令。 应具有如下三个功能。 1)实现中断并返回 中断源发出的中断请求,CPU决定是否响应,若响应,则保护 断点和现场,转入响应中断服务程序,中断服务程序后,恢复 现场和断点,继续执行原程序。 2) 实现中断判优功能 中断判优:根据中断源的优先级进行排队优先级最高的中断请求 先响应。 3)实现中断的嵌套 中断的嵌套:高级别的中断能中断较低级别的中断处理。

第8章 中 断 技 术 8.1.2 中断的响应过程 1.中断源:引起中断的原因或者发出中断请求的设备。 分为:内部中断源和外部中断源。 内部中断源:中断源在微处理器内部,如计算溢出、中断指令的执 行、程序调试中指令的单步运行等。 外部中断源:引起中断的原因是处理机的外部设备。如外设的I/O 请求、定时时间到、设备故障、电源掉电等。

第8章 中 断 技 术 2. 中断的响应过程 中断处理一般需要经历下述七个过程。 中断请求 中断响应 中断返回 断点保护 断点恢复 中断源识别 中断服务

第8章 中 断 技 术 8.1.4 最简单的中断情况:单个中断源 ?READY:外设的中断请求信号 ?INTR:CPU的中断请求输入引脚

?中断屏蔽:控制中断源发出的中断请求信号是否被允许送往 CPU.
?中断的开放:STI

?中断请求的检测:指令执行的最后一个时钟周期,检测INTR,若 有中断请求信号,把内部的中断锁存器置“1”,在下一个总线 周期到来时,进入中断响应状态.

第8章 中 断 技 术
AB 15~0 DB 7~0 CPU INTR WR RD +5 V R Q D 中断 请求 Q D 中断 屏蔽 READY & 译码 数据端口 控制端口 外设

数据

图8.1 最简单的中断情况

第8章 中 断 技 术

中断源向CPU发中断请求信号的条件
?1 设置中断请求触发器 每个中断源,要向CPU发出中断请求信号,首先应能由它 的接口电路(在每个中断源的接口电路中设置一个中断请 求触发器,由它产生中断请求)提出中断请求,该请求能 保持着,直至CPU接受并响应该中断请求后才能清除。

2.设置中断屏蔽触发器 能否允许中断请求(如INTR)发向CPU,应能受CPU的 控制,以增加处理中断的灵活性,为此,在接口电路中, 增设一个中断屏蔽触发器。 若有多个中断源,则可将多个外设的中断屏蔽触发器组成 一个端口,用输出指令来控制它们的状态。

第8章 中 断 技 术

CPU响应中断的条件
1 CPU开放中断 CPU采样到INTR信号后是否响应它,由CPU内设置的中断允 许触发器(如IF)的状态决定。 IF的状态可由专门设置的开中断与关中断指令来改变。 此外,当CPU复位或中断响应后,也能使CPU关中断。 2.CPU在现行指令结束后响应中断 CPU开中断时,若有中断请求信号发至CPU,它也并不立即 响应。 只有当现行指令运行到最后一个机器指令周期的最后一个T 状态时,CPU才采样INTR信号,并寄存到内部的中断锁存器 中。 若有此信号,CPU进入中断响应周期。

第8章 中 断 技 术

2. CPU对中断的响应
当CPU响应外设的中断后,还要具体完成一些工作。 关中断 断点保护 现场保护
给出中断入口地址转入 相应的中断服务程序,开中断

恢复现场

中断返回

第8章 中 断 技 术

8.2 多级中断管理
在实际系统中,具有多个中断源,而CPU的可屏蔽中断请求线往 往只有一条。多级中断的管理问题的关键是中断优先级的控制问 题。
中断优先级:每个中断源在接受CPU服务时的优先等级。 对中断优先级的控制要解决以下两个方面的问题: (1)要求CPU按多个中断优先权由高至低依次来响应中断申请。 (2)中断嵌套:高优先级的中断请求可以中断低优先级的中断服 务。

第8章 中 断 技 术

CPU可通过软件查询技术或硬件排队电路两 种方法按中断优先权对多个中断源的管理,也 有专用于协助CPU按中断优先权处理多个中断 源的中断控制芯片。

第8章 中 断 技 术 8.2.1 用软件查询确定中断优先权 软件查询方法:当CPU响应中断后,利用软件查询有哪些外设

申请中断,判断哪个中断源的级别更高,并首先为它进行中断
服务。 ?将8个外设的中断请求触发器组合起来,作为一个端口,并赋 以端口号。 ?把8个外设的中断请求信号相“或”后,作为INTR信号。

?当CPU响应中断后,把中断寄存器组成的这个端口的状态读入
CPU,逐位检测,若有中断请求就转到相应的服务程序的入口。

第8章 中 断 技 术

≥1 INTR

0 1 2 3 4 5 6 7

设备0 设备1 设备2 设备3 设备4 设备5 设备6 设备7

图8.2 实现软件查询的接口电路

第8章 中 断 技 术 如果设定该接口的端口号为20H,程序查询可采用两种方法。 1) 屏蔽法
IN TEST JNE TEST JNE AL,20H AL,80H PROG7 AL,40H PROG6 ;读取中断请求触发器的状态 ;检查“设备7”是否有请求 ;是,则转至“设备7”的处理程序PROG7 ;否,检查“设备6”是否有请求 ;是,则转至“设备6”的处理程序PROG6

TEST
JNE

AL,20H
PROG5

;否,检查“设备5”是否有请求
;是,转至“设备5”的处理程序PROG5

第8章 中 断 技 术 2) 移位法 XOR IN RCL JC RCL JC AL,AL AL,[20H] AL,l PROG7 AL,1 PROG6

第8章 中 断 技 术

软件查询法的优缺点:
(1) 优点:利用软件完成中断优先权的检测,不需要硬件判

优电路。另外,优先权由查询的次序来决定,首先查询的即为
优先级最高的。 (2) 缺点:不管外设是否有中断请求都需要按次序逐一询问, 因而效率较低。特别是在中断源较多的情况下,转至中断服务 程序的时间较长。

第8章 中 断 技 术 8.2.2 硬件优先权排队电路 1.中断优先权编码电路 中断优先权编码电路:用硬件编码器和比较器组成的优先权排 队电路。 ?当8个中断源中某一个有中断请求时,便在其中断请求线上产 生“1”,并在“或”门的输出端形成一个中断请求信号。 ?8条中断输入线的任一条,经过编码器可以产生三位二进制优 先权编码A2A1A0,编码范围为000~111,其中111优先权最高, 000优先权最低。而且,当有多个中断源同时产生中断请求时,

编码器只输出优先权最高的编码。

第8章 中 断 技 术
≥1

与门1 & INTR ≥1 & 与门2

A 2 A 比 1 A 0 较 器 B2 B1 B0 优先权无效

优先权 编码器

八级 中断 输入

优先权 寄存器

CPU

优先权寄存器中存放的是CPU正在服务的中断编码, 将其输出至比较器B2B1B0。 如果CPU正在进行中断服务,则“优先权无效”信号为 “0”;反之,则为“1”。

第8章 中 断 技 术 2. 链式优先权排队电路 当有多个中断请求输入时,则由中断输入信号的或电路产

生INTR信号,送至CPU。当CPU在现行指令执行完后响应中断,
并发出高电平的中断响应信号。但CPU究竟响应哪一个中断呢? 根据图8.4的链式优先权排队电路,若F/F1有中断请求,则它的 输出为高电平,由于来自CPU的中断响应是高电平,所以与门 A1输出为高电平,由它控制转至中断1的服务程序的入口。与此 同时,与门A2输出为低电平,它使后级的2个B门、2个C门、2个 D门、2个E门等各级门的输入和输出全为低电平,使其无法传递 高电平的中断请求信号,即屏蔽了所有其他的级。

第8章 中 断 技 术 如果第一级没有中断请求,即F/F1=0,则中断输出1为低电 平,但门A2的输出却为高电平,这样就把中断响应传递到了下 一级。若此时F/F2=1,则与门B1输出为高电平,控制转去执行中 断2的服务程序,此时与门B2输出低电平,它屏蔽以下的各级。 同理,若F/F2=0,则与门B1输出低电平,与门B2输出高电平,这 样就将中断响应再传递至下一级,依此类推。

第8章 中 断 技 术
中断响应(来自CPU) F/F 1 s

&

中断输出1

A 1

&

A 2 F/F 2 s

中断请求输入1

&

中断输出2

B1

&

B2 F/F 3 s

中断请求输入2

&

中断输出3

C1

&

C2 F/F 4 s

中断请求输入3

&

中断输出4

D 1

&

D 2 F/F 5 s

中断请求输入4

&

中断输出5

E1

&

E2

中断请求输入5

图8.4 链式优先权排队电路

第8章 中 断 技 术

8.3 IBM-PC机的中断系统
8.3.1 外部中断 外部中断:外部中断源对CPU产生的中断请求。 根据外部中断源是否受8086/8088 CPU标志寄存器的中断允许 标志位(IF)的影响,将中断分为非屏蔽中断和可屏蔽中断两种。 对应于这两种中断方式,在8086/8088CPU的外围引脚上有两

个中断请求输入引脚NMI和INTR,分别用于非屏蔽中断请求
和可屏蔽中断请求信号的输入。

第8章 中 断 技 术 1. 非屏蔽中断

?外部中断源的中断请求信号加至NMI(Non Maskable Interrupt) 引脚(正跳变有效,宽度大于两个时钟周期)时,就产生非屏蔽 中断。 ?不受IF影响,CPU必须响应。
?非屏蔽中断由CPU内部自动提供中断向量码(n=2),CPU响应 时不要求外部向CPU提供中断类型号,CPU在总线上也不发回 应信号。 ?可用来处理微机系统的紧急状态。在IBM PC/XT机中,NMI 中断用来处理系统板上存储器奇偶校验错和扩展槽中I/O通道奇 偶校验错、浮点运算协处理器8087的中断请求。非屏蔽中断的 优先权高于可屏蔽中断。

第8章 中 断 技 术 2. 可屏蔽中断 ?当外部中断请求信号加至CPU的INTR引脚上(高电平有效)

时,就产生可屏蔽中断。CPU上的INTR引脚上出现的请求醒后
必须保持到当前指令的结束。每条指令最后一个时钟周期CPU 对INTR引脚采样。

?可屏蔽中断受中断允许标志位IF的限制,IF=1响应中断,并
通过INTA引脚(两个负脉冲)发回响应信号,启动中断过程;

IF=0中断被屏蔽。大多数的外部中断源都属于可屏蔽中断。
?系统复位、中断被响应或使用CLI指令后,IF就被置“0”, CPU关闭对可屏蔽中断的响应。如果需要使CPU再次响应来自 于INTR的中断请求,就必须用STI指令开放中断。

第8章 中 断 技 术 8.3.2 内部中断 内部中断是指CPU内部事件及执行软中断指令所产生的中断

请求。已定义的内部中断有下面的5个。
(1) 除法错中断。执行除法指令时,如果除数为“0”或商超

过寄存器所能表达的最大值,则无条件产生该中断。中断向量
码为0。优先级别最高。 (2) 单步中断。该中断是在调试程序过程中为单步运行程序 而提供的中断。当设定单步操作时,标志寄存器的TF=1,这样 使CPU执行完一条指令就产生该中断。该中断向量码为1。

第8章 中 断 技 术 (3) 断点中断。该中断在调试程序过程中为设置程序断点而 提供的中断。用INT 3指令设置程序断点,执行该指令就会产生 中断。INT 3指令功能与软件中断相同,但是为了便于与其他指 令置换,它被设置为1字节指令。该中断向量码为3。

(4) 溢出中断。在算术运算程序中,若在算术运算指令后加
入一条INTO指令,则INTO指令将测试溢出标志OF。当OF=

1(运算溢出),该中断发生。它的中断向量码为4。
(5) 软件中断。内部中断中有一个可由用户定义的中断指令 INT n。执行软件中断指令INTn即产生该中断,n为中断向量码, 由程序员编程时给定。

第8章 中 断 技 术

8.3.3 中断优先权
IBM-PC规定的中断优先级的次序是:

内部中断(高)→非屏蔽中断→可屏蔽中断→单步中断(低)
除法中断(类型0) INT n(内部检查用中断) INTO

?除单步中断外,所有的内部中断都不能被屏蔽。 ?所有内部中断都没有中断相应总线周期,因为内部中断不必 通过查询外部来获得中断类型号。 ?除单步中断外,所有内部中断都比外部中断优先权高。 ?单步中断是逐条地跟踪调试,而断点中断INT 3是逐段地调 试,他们均可用中断服务程序在屏幕上显示相关的程序。

第8章 中 断 技 术 8.3.4 中断向量表 1. 中断类型号(中断向量码)

中断向量:用来提供中断入口地址的一个地址指针。
在8086/8088的中断系统中共256个(0~255) 中断源,都有相应

的中断类型号。
中断类型号的前5个是8086/8088规定的专用中断;8H~FH是八

级硬件中断;5H和10H~1AH是基本外部设备的输入/输出驱动
程序和BIOS中调用的有关程序;1BH和1CH由用户设定;1DH~ 1FH指向三个数据区域。

第8章 中 断 技 术

表8-2 常用中断类型号及其功能
中断类型号
0H 1H 2H 3H 4H 5H

中断功能
除法错中断 单步中断 NMI 断点中断 溢出中断 打印屏幕

中断类型号
10H 11H 12H 13H 14H 15H

中断功能
CRT显示I/O驱动程序 设备检测 存储器大小检测 磁盘I/O驱动程序 RS-232I/O驱动程序 盒式磁带机处理

6H
7H 8H 9H AH BH CH

保留
保留 电子钟定时中断 键盘中断 保留的硬件中断 异步通信中断(COM2) 异步通信中断(COM1)

16H
17H 18H 19H 1AH 1BH 1CH

键盘I/O驱动程序
打印机I/O驱动程序 ROM BASIC 引导(BOOT) 一天的时间 用户键盘I/O 用户定时器时标

DH
EH FH

硬磁盘中断
软磁盘中断 并行打印机中断

1DH
1EH 1FH

CRT初始化参数
磁盘参数 图形字符集

第8章 中 断 技 术 表8-3 DOS操作系统中断调用
中断类型号 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H~2EH 2FH 30H~3FH 中断功能 程序结束 请求DOS功能调用 结束地址 中止(Ctrl-Break)处理 关键性错误处理 磁盘顺序读 磁盘顺序写 程序结束且驻留内存 DOS内部使用 DOS保留使用 DOS保留使用 DOS保留使用

第8章 中 断 技 术 2.中断向量表

?8086/8088系统允许有256种中断类型(0~255),CPU根据中断 类型号,从内存实际地址为00000H~003FFH(1k字节)区中的 中断向量表找到中断服务程序的入口地址。 类型255指针
? 每个类型号含4字节的中断 向量,中断向量就是中断 服务程序的入口地址。 ? 中断类型n*4就得到中断向 量的存放地址,由此地址 开始,前2个单元存放中断 服务程序入口地址的偏移 量(即IP),后2个单元中 存放着中断服务程序入口 地址的段首址(即CS)。

014H 010H 00CH 008H 004H 000H

类型5指针 类型4指针 溢出 类型3指针 断点 类型2指针 NMI专用中断 类型1指针 单步执行中断 类型0指针 除法出错中断

CS-段地址 IP-偏移地址

第8章 中 断 技 术

8.3.5 微处理器的中断响应和处理过程
关键:获得中断类型码 外部中断:CPU是在每条指令执行结束时采样中断请求输入信 号。 ?可屏蔽中断:若IF=1(开中断),则CPU连续运行两个中断响应 周期,在第二个中断响应周期中,采样数据线获取由外设输入 的中断类型码。 ?非屏蔽中断:CPU不经过上述的两个中断响应周期,而在内部 自动产生中断类型码2。 软件中断:中断类型码自动形成

第8章 中 断 技 术 表8-4 软件中断类型码
中断功能 除法错中断 单步中断 NMI 中断类型码 0 1 2

断点中断
溢出中断 INT n指令

3
4

n

第8章 中 断 技 术

8086/8088取得中断类型码后,就开始进行中断服务。其处
理过程如下: (1) 将中断类型号乘4,并将其作为中断向量表的指针,使 其指向中断处理程序的入口地址。 (2) 保存CPU状态,即把标志寄存器的内容入栈。 (3) 使TEMP=TF,清除IF和TF的状态标志位,屏蔽新的 INTR和单步中断。

(4) 保存断点,即把CS和IP内容入栈。
(5) 从中断向量表中获取CS、IP,转入中断处理子程序入口

地址。

第8章 中 断 技 术 (6) 将CPU内部各寄存器的内容入栈,开中断(允许中断嵌套), 然后执行中断处理子程序,进行中断服务。当中断处理程序结

束时,恢复被保存寄存器的内容,最后执行中断返回指令IRET。
IRET指令将从堆栈中弹出IP、CS和标志寄存器的内容,此时,

CPU结束中断处理子程序的运行,返回到被中断的主程序断点
处继续执行。 8086/8088的中断处理过程可用图8.6所示的流程图表示。

第8章 中 断 技 术
否 当前指令 执行结束? 是 软件中断 否 NMI? 否 INTR? 否 TF=1? 否 执行下一条指令 是 是 IF=1? 否 是 IF=1? 否 CS、IP入栈 形成中断 类型码 是 调用中断处理程序 又有NMI? 否 是 TF=1? 否 执行用户中断过程 IP、CS出栈 IRET 标志寄存器出栈 返回被中断的主程序 是 进入中断响应 取中断类型码 是 令TEMP=TF 清TF和IF 是 形成中断 类型码 标志寄存器入栈



8.6 8088

的 中 断 响 应 和 处 理 流 程

第8章 中 断 技 术

8.4 可编程中断控制器Intel 8259A
8.4.1 Intel 8259A的主要性能和内部结构 1. Intel 8259A的主要性能 ?可编写程序控制芯片的多项功能 ?可提供多中断源的中断类型码 ?中断源有多种触发方式 ?可屏蔽/允许输入端的中断源 ?采用NMOS工艺制造,只需要一组5V电源 使用形式 ?单片方式——可提供8个中断源 ?级联方式——最多可提供64个中断源(9片)

第8章 中 断 技 术 2. Intel 8259A的内部结构
INTA
INT

D ~D0 7
RD WR
CS A0



数据总线 缓冲器











读/写 控制电路








CAS 0 CAS 1 CAS 2 SP / EN



级联缓 冲/比较器

中 断 服 务 寄存器 (ISR)

优先权 判 决 电 路

中断 请求 寄存器 (IRR)

IR 0 IR 1 IR 2 IR 3 IR 4 IR 5 IR 6 IR 7



中断屏蔽寄存器(IMR)

图8.7 8259A的内部结构框图

第8章 中 断 技 术 其内部各组成模块有如下功能。 1) 中断请求寄存器IRR 8259A有8条外部中断请求输入信号线IR0~IR7,每一条请 求线上有一个相应的触发器来保存请求信号,它们构成了中断

请求寄存器IRR(Interrupt Request Register)。

第8章 中 断 技 术 2) 中断屏蔽寄存器IMR IMR(Interrupt Mask Register)用于屏蔽已被锁存在IRR中的任

何一个中断请求级。对于所要屏蔽的中断请求线,将相应位的
位置置1。且屏蔽优先权级别较高的中断请求输入,不会影响优 先级较低的中断请求输入。

3) 8位中断服务寄存器ISR
ISR(Interrupt Service Register)记录当前正在进行服务的所有

中断。如有中断嵌套,则该寄存器可能有多个位被同时置位。

第8章 中 断 技 术

4) 优先权判决电路PR
用于确定IRR中所有未被屏蔽的中断请求位的优先级。在 CPU发出第一个负脉冲时,将具有最高优先级的申请位存入服 务状态寄存器ISR中的相应位置。 若出现多级中断,PR还负责将IRR中的最高优先级和ISR中正在

服务的中断的优先级作比较,以确定是否向CPU发出中断请求。
5) 控制逻辑 根据CPU对8259编程设定的工作方式产生内部控制信号,并 在适当的时候向CPU发出中断请求信号INT,以及将来自CPU的 中断响应信号转换为内部所需的各种控制信号。

第8章 中 断 技 术

6) 数据总线缓冲器 8位三态双向缓冲器,通过引脚D0~D7与CPU的数据总线连 接。 用于传送CPU发至8259的各种命令控制字、8259发至CPU的 各种状态信息,以及中断响应期间8259向CPU提供的中断类型号。 7) 读/写控制电路 用于接收来自CPU的读/写控制信息、片选控制信号以及内 部端口选择信息。 8) 级联缓冲器/比较器 为8259A提供级联控制信号CAS0~CAS2与双向功能信号 SP/EN,以满足8259A在缓冲工作与主从工作方式下的功能需要。 实现8259A芯片之间的级联,使得中断源可以由8级扩展至64级。

第8章 中 断 技 术 3. 8259A的工作过程 根据8259A的内部结构,其工作的过程如下: (1)初始化工作方式 8259初始化是由CPU发送2~4个初始化命令字ICW来实现的。

(2)接收外设中断请求
初始化后8259进入正常工作状态, 外部中断源通过IRn引脚输 入高电平向8259发出有效的中断请求时,8259会自动将其内部 中断请求寄存器IRR的相应位置“1”以记录并保持外设的中断请 求。 (3)中断屏蔽判断 中断请求寄存器中的被置位与中断屏蔽寄存器IMR的相应位比 较,如果没有被屏蔽,信号送入优先级判决电路。

第8章 中 断 技 术 (4)中断判优 中断请求进入优先权判决电路PR后,PR将其中的最高优先权与

服务状态寄存器ISR中正在处理的中断优先权比较以确定是否向
控制逻辑发出有效的中断请求信号,由控制逻辑电路通过INT引 脚向CPU送出中断请求信号。 (5)中断响应 在中断允许的情况下(IF=1),CPU接受中断请求INTA,则在当前

指令执行完后进入中断响应周期。

第8章 中 断 技 术 CPU在中断响应周期中向8259A回送两个负脉冲。 8259A的控制逻辑在收到第一个INTA脉冲时,完成下列任 务: 1)禁止IRR不再受IR7~IR0信号的再次变化的影响(直到第 二个结束); 2)将优先权处理电路PR确定的最高优先级的中断请求信号 存入服务状态寄存器ISR 3)将中断请求寄存器IRR的相应位复位。 8259的控制逻辑在即受到第二个负脉冲后,将寄存器ICW2 的当前内容通过数据总线D0~D7送至CPU。

第8章 中 断 技 术 (6)中断结束

如果8259A初始化为中断自动结束方式AEOI,即ICW4的AEOI=1, 在第二个负脉冲结束时,ISR的被第一个负脉冲置位的位即被复 位。

如果8259A初始化为非自动结束中断方式,即ICW4的AEOI=0,
则等到中断结束命令送到OCW2后,才清除ISR 的相应位,表明

中断服务程序结束。

第8章 中 断 技 术 8.4.2 Intel 8259A的外部特性 28DIP封装 8个中断源输入 8位数据线 1位片内地址线 3条控制线
CS WR

4条级联线
2条中断请求响应线 2条电源线

RD D7 D6 D5 D4 D3 D2 D1 D0 CAS 0 CAS 1 GND

1 2 3 4 5 6 7 8 9 10 11 12 13 14

28 27 26 25 24 23 22 8259A 21 20 19 18 17 16 15

VCC A0 INTA IR 7 IR 6 IR 5 IR 4 IR 3 IR 2 IR 1 IR 0 INT SP / EN CAS 2

图8.8 8259A的外围引脚排列

第8章 中 断 技 术

与中断源有关(14个):
?IR0~IR7:外部中断源输入引脚。

?INT:8259A向CPU输出的中断请求端,接8086CPU的INTR
?INTA:中断响应输入引脚,接收CPU向8259A输入的中断响

应信号。
?CAS0~CAS2:级联控制线。

? SP/EN: 8259A工作在级联方式时,该引脚为输入,SP=1,
设定8259A为主控器;SP=0,设定8259A为从属部件。

第8章 中 断 技 术 与CPU有关(12个): D0~D7:双向8位双数总线 ? CPU将控制字经数据线传给8259控制字寄存器 ? 外部中断源IR0~IR7状态经数据线传给CPU ? 8259内部寄存器与CPU的数据传送 RD:读输入控制线 WR:写输入控制线 CS:片选输入 ? CS=L时,8259片选有效 ? CS由译码电路产生 A0:片内地址线 ? 一线两址,选定8259内部寄存器 ? A0,CS构成8259内部寄存器地址

第8章 中 断 技 术 8.4.3 Intel 8259A的控制字和编程 8259A是可编程控制器,它强大的中断处理功能和各种灵活 工作方式,是通过编程来设置的,即对8259A内部相关寄存器写 入控制字来实现控制的。 1、初始化控制字ICW(Initialization Command Word): ICW1~ ICW4,必须在初始化时分别写入4个相应寄存器,一旦写 入,一般在系统运行过程中就不再改变。 2、操作命令字OCW(Operation Command Word): 也称工作方式命令字OCW1~OCW3,必须在设置初始化命令后 方能分别写入3个相应的寄存器。用来对中断处理过程进行动态 的操作与控制。 在一个系统运行过程中,操作命令字可以被多次设置。

第8章 中 断 技 术 ? 若要使用8259 必须按规定写入初始化控制字ICW1~ICW4 一般由系统程序完成 ? 若要改变8259的功能 可随时向其写入操作命令字OCW1~OCW3,使 8259按要求工作 一般由应用程序完成

第8章 中 断 技 术

?8259A的端口地址讨论 ? 8259实际端口地址 一线二址,址1:A0=0;址2:A0=1 ? 8259应操作的端口 ? 4个初始化控制字的写操作 ? 3个操作命令字的写操作 ? 3个寄存器IRR、ISR、IMR的读操作 ? 1个中断类型号的读操作 ? 问题:2个地址怎样完成11个读写操作

第8章 中 断 技 术

?8259A的地址分配与应用

第8章 中 断 技 术

?8259A的地址应用特点
? 读操作 ? A0=0,读IRR\ISR\中断类型号→CPU 问题:解决1址3读问题,用位控制定义读入法 ? A0=1,仅读IMR→CPU

? 写操作 ? A0=0, CPU →ICW1\OCW2\OCW3 问题:解决1址3写问题,用位识别写入法 ? A0=1, CPU →ICW2\ICW3\ICW4\OCW1 问题:解决1址4写问题,用同址顺序写入法

第8章 中 断 技 术 1. 8259A的初始化控制字及初始化编程 初始化控制字ICW(Initialization Control Word)是在计算机启

动的过程中设定完成的,计算机启动起来后,8259A就按初始
设定的状态工作。 1) 8259A初始化的顺序 8259A有四条初始化控制字ICWl、ICW2、ICW3和ICW4, 由于8259A只有一根地址线,因此对各个控制字的操作是按照 一定的顺序并结合某些数据位来进行寻址设置的。8259A初始 化的顺序如图8.9所示。

第8章 中 断 技 术
ICW(A =0, D =1) 1 0 4

ICW1\ICW2
为必写初始化命令字 ICW3\ICW4
ICW(A =0) 2 0 SNGL=0? 是 ICW(A =0) 3 0 否 否

图 8.9 8259A

为选写初始化命令字
ICW2\ICW3\ICW4 采用同址顺序写入法

注意:ICW1的地址不同

ICW的IC =1? 1 4 是 ICW(A =1) 4 0

的 初 始 化 顺 序

初始化完,准备接受中断请求输入

第8章 中 断 技 术 2) 各初始化控制字的功能 (1) ICW1——芯片控制初始化命令字

A 0 0

D 7 A 7

D 6 A 6

D 5 A 5

D 4 1

D 3

D 2

D 1

D 0 1: 需要ICW 4(8086模式下总为1) 0: 不需要ICW 4 1: 单片8259 0: 多片级联 1: 间隔为4 0: 间隔为8 1: 电平触发 0: 边沿触发

LTIM ADI SNGL IC 4

8080(85)系统 中断向量地址
同址识别位

图8.10 ICW1的格式

第8章 中 断 技 术 (2) ICW2在——中断类型号初始化命令字
A0 1 D7 T7 D6 T6 D5 T5 D4 T4 D3 T3 8259自动将中断请求输 入引脚的序号IRn填入 D2 D1 D0

中断向量码高5位 (由初始化程序设定)
D2~D0: IR0~IR7的编码 注意:中断类型号的低3位

D7~D3: 中断类型号的高5位 注意:中断类型号的高5位由用户编程定义 中断类型号的低3位自动生成 保证IR0~IR7连续

第8章 中 断 技 术 在初始化编程时要保持ICW2的低三位为“0”,如设定ICW2为 “11111000”(F8H)。如果某一中断源IRn有中断请求,将n填入 ICW2的低3位,与高5位共同组成该中断源的中断向量码。
ICW2 D7 D6 D5 D4 D3 D2 D1 D0 中断向量 码 F8H F8H F9H FAH FBH 中断源

1
1 1 1 1

1
1 1 1 1

1
1 1 1 1

1
1 1 1 1

1
1 1 1 1

0
0 0 0 0

0
0 0 1 1

0
0 1 0 1

IR0 IR1 IR2 IR3

1
1 1 1

1
1 1 1

1
1 1 1

1
1 1 1

1
1 1 1

1
1 1 1

0
0 1 1

0
1 0 1

FCH
FDH FEH FFH

IR4
IR5 IR6 IR7

第8章 中 断 技 术 (3) ICW3——主/从8259A初始化命令字

? 用于8259A的级联,若系统中只有一片8259A,则不用ICW3; 是否需要ICW3,取决于ICWl中的SNGL位的状态。
主控ICW 3 A 0 1 D 7 S7 D 6 S6 D 5 S5 D 4 S4 D 3 S3 D 2 S2 D 1 S1 D 0 S0

1:相应的IR 端接有从属8259A n 0:不接8259 从属ICW 3 A 0 1 D 7 0 D 6 0 D 5 0 D 4 0 D 3 0 D 2 ID 2 D 1 ID 1 D 0 ID 0

3 位编码为从属8259A接入 主控8259A相应IR n端的编号 n

第8章 中 断 技 术 (4) ICW4——方式控制初始化命令字 ? 只有在ICW1的IC4=1时才使用
A 0 1 D 7 0 D 6 0 D 5 0 D 4 D 3 D 2 D 1 D 0 1:8086(88) 模式 0:8080(85)模式 1:自动EOI方式 0:非自动EOI方式 0X:非缓冲方式 10: 缓冲方式/从属片 11: 缓冲方式/主控片 1: 特殊全嵌套方式 0: 一般嵌套方式 SFNMBUF M/S AEOI ?PM

图8.13 ICW4格式

第8章 中 断 技 术 2. 8259A的控制命令字及操作方式编程 ? ICW按顺序写入(先写) ?ICW1→ ICW2→ (ICW3)→ (ICW4) ?ICW2、 ICW3、 ICW4为同址顺序写入法 ?OCW按需要写入(后写) ?OCW1、 OCW2、 OCW3无写入顺序 ?OCW2、 OCW3为同地址位识别写入法

第8章 中 断 技 术 具体寻址条件如下: 当A0=1时,寻址OCW1; 当A0=0,D4=0,D3=0时,寻址OCW2; 当A0=0,D4=0,D3=1时,寻址OCW3。

第8章 中 断 技 术 2) 8259A的操作命令 (1) OCW1——写IMR寄存器操作命令字
A 0 1 D 7 M 7 D 6 M 6 D 5 M 5 D 4 M 4 D 3 M 3 D 2 M 2 D 1 M 1 D 0 ??

0:允许IR 7 1:屏蔽IR 7



0:允许IR 0 1:屏蔽IR 0

M7~M0 对应于IMR各位;

M=1表示该位中断被屏蔽
M=0表示该位允许中断

第8章 中 断 技 术 (2) OCW2——中断优先权选择、中断结束操作命令字
A0 0 D7 R D6 SL D5 EOI D 4 0 D3 0 D2 L2 D1 L1 D0 L0

IR的级别编码 0 0 1 0 0 0 1 1 1 1 一般EOI(正在服务的ISR复位) 1 特殊EOI(L~L2指定的ISR复位) 0 1 一般EOI, 正在服务的IR优先级置为最低 0 自动EOI下置循环优先级 0 自动EOI下清循环优先级 1 特殊EOI, 正在服务的IR优先级置为最低 0 不执行EOI, L~L2指定的优先级置为最低 0 0 无操作

R:优先权循环控制位 SL:中断源选择位 EOI:中断结束命令

0 1 1 0 1 1 0

第8章 中 断 技 术 (3) OCW3。——多功能操作命令字
A0 0 D7 X D6 D5 D4 0 D3 1 0 0 0 1 D2 P D1 RR D0 RIS

ESMMSMM

0 X:无效 1 0: 复位特殊屏蔽方式 1 1: 设置特殊屏蔽方式

0 X:无效 1 0: 在下一读指令读IRR 1 1: 在下一读指令读ISR X X:查询命令(下一读指令中断状态字)

第8章 中 断 技 术 5. 中断结束方式 8259A中的内部服务寄存器ISR用来记录哪一个中断源正在 被CPU服务,当中断结束时,必须给8259A一个命令,以清除 ISR的相应位。8259A有两种中断结束方式。 1) 自动结束方式(AEOI)

这种方式不需要EOI命令,对8086/8088系统,8259A在第2
个INTA脉冲的后沿自动执行使ISR的相应位复位。由于这种方式 在中断服务过程中使ISR相应位复位,就有可能响应优先级更低 的中断,因此不适合有中断嵌套的情况。

第8章 中 断 技 术 2) 非自动结束方式(EOI) 这种方式是在中断处理程序中提供一条EOI(中断结束)命令,

使8259A中的ISR相应位复位。如果是级联方式,则必须送两个
EOI命令,第一个先送从属8259A,第二个送主控8259A,特别 是在特殊嵌套的情况下,必须按此次序发送。

EOI命令由OCW2来设置。

第8章 中 断 技 术 7. 读8259A的状态 CPU可以读出8259A内部的IRR、ISR、IMR寄存器的状态,

以便进行有关分析处理。
1) 读中断请求寄存器IRR

IRR中保存着申请中断的各输入级。若A0=0,OCW3的
RR=1、RIS=0,则可用读命令读取IRR的状态。若输出一个

OCW3,令其中RR=1、RIS=1,则用读命令可以读入中断服务
寄存器ISR的状态,其中既可以看到在服务过程中中断源的情况, 也可以看到是否处于中断嵌套的情况。

第8章 中 断 技 术 2) 读中断服务寄存器ISR ISR的内容为正在服务的各个中断优先级,在中断响应或中 断结束命令EOI时,ISR的内容被修改。使A0=0,OCW3的RR=1、 RIS=1,则可用读命令读取ISR的状态。 3) 读中断屏蔽寄存器IMR IMR内容是被屏蔽的各中断请求级。当A0=1时,则可用读 命令读取IMR的状态。 另外,如果OCW3发出查询命令(P=1),同时又发出了读寄 存器命令(RR=1),则查询优先于读寄存器。当查询操作完成后,

再执行读寄存器操作。

第8章 中 断 技 术 8.8259A的级联
8259A CAS 0
INTA

8259A
INTA

IR 0

INT CAS 0 CAS 1 CAS 2 8259A
INTA

CAS 1 CAS 2

CPU INT

SP / EN

+5 V

SP / EN

IR 0 IR 1 IR 2 IR 3 IR 4 IR 5 IR 6 IR 7


IR 0 INT CAS 0 CAS 1 CAS 2
SP / EN

图8.18 8259A的级联


IR 7


IR 7

第8章 中 断 技 术 8.4.5 Intel 8259A的应用举例 1. 中断接口的设计 将单片8259A接入8088系统中,设计其端口地址为FFF0H 和FFF1H,其具体连接如图8.19所示。8259A由于只有一根地址 线,因此它在系统中只占用两个端口地址。8259A内部的7个命 令寄存器和3个状态寄存器的寻址是将这两个端口地址结合操

作命令、特定数据位、严格的写入次序等来实现对8259A内部
寄存器的寻址,如表8-6所示。

第8章 中 断 技 术
系统总线 D0 D 0 8259A





IR 0 IR 1 IR 2 IR 3 IR 4 IR 5 IR 6 IR 7

外设0

D7
IOR IOW

D 7 RD WR INTA INT A 0 ≥1

INTA INTR A0 A1 A2 A3 A4 A 15


外设7

&

CS
& +5 V SP / EN



图8.19 8259A在系统中的连接

第8章 中 断 技 术 表8-6 8259A内部寄存器的寻址控制
A0 0 1 0 0 0 0 0 1 0 1 D4 D3

RD
0 0 1 1 1

WR
1 1 0 0 0

操 作 读ISR、IRR及中断状态寄存 器 读IMR 写OCW2 写OCW3 写ICW1

1

1

0

写OCW1、ICW2、ICW3、 ICW4

第8章 中 断 技 术 2. 中断程序的编写 当把8259A接入系统后,就需要编写该接口的中断程序。 中断程序由两个部分组成:中断接口的初始化程序和中断处理 程序。我们以图8.19为例,来说明中断程序的编写。

1) 初始化中断控制器8259A
初始化包括两个方面,一是初始化8259A的初始状态,二

是完成中断向量表的设置。
2) 编写中断处理程序

第8章 中 断 技 术

(1) 初始化8259A。由于8259A的ICW有严格的写入次序,因
此,编程时必须根据其规定的初始化顺序对四个ICW进行初始化 操作。

针对图8.19,其初始化程序如下:
8259A:MOV MOV OUT MOV MOV OUT MOV OUT DX,0FFF0H ;8259A口地址,A0=0 AL,13H DX,AL DX,0FFF1H AL,0F8H DX,AL AL,03H DX,AL ;初始化字“00010011”送ICW1 ;单片,边沿触发,需要ICW4 ;8259A口地址,A0=1 ;初始化字“11111000”送ICW2 ;设置起始中断向量码(IR0)为F8H ;初始化字“00000011”送ICW4 ;8086/8088模式,AEOI,非缓冲,一般全嵌套方式

第8章 中 断 技 术 (2) 设置中断向量。对IBM-PC/XT机,是在计算机启动过 程中将中断向量表写入内存的。对用户自行设计的中断接口, 当初始化完成后,需要人为设置中断向量表,以使设计的中断 向量与相应的中断处理程序建立连接。这样,当CPU响应这些

中断源的中断请求时,便能根据中断向量找到相应的处理程序,
进行相应的中断服务。 假设8个中断源对应的中断处理程序在内存中存放的地址标 号为PROG0(IR0)、PROG1(IR1)、PROG2(IR2)、…、 PROG7(IR7),则中断向量表的设置程序如下:

第8章 中 断 技 术
INT_IRO:MOV AX,0 MOV MOV MOV MOV 处 MOV MOV 处 AX,SEG PROG0 [SI+2],AX ;取得IR0中断处理程序的段地址 ;段地址写入中断向量对应的“4*F8+2”地址 DS,AX SI,3E0H ;设置IR0对应的中断向量表 ;段地址设定在内存的最底端 ;IR0的中断类型码(F8H)对应的内存地址“4*F8” ;偏移地址写入中断向量对应的“4*F8”地址

AX,OFFSET PROG0 ;取得IR0中断处理程序的偏移地址 [SI],AX

如果设置IR1对应的中断向量表,根据ICW2,IR1对应的中

断向量为F9H,只要将上述程序的F8H换为F9H,PROG0换为
PROG1,即可完成IR1对应中断向量表的设置。

第8章 中 断 技 术
依此类推,IR7对应的中断向量表设置程序应为:

INT_IR7MOV
MOV MOV MOV MOV

AX,0 ;设置IR7对应的中断向量表
;段地址设定在内存的最底端 ;IR7的中断向量(FFH)对应的内存地址“4*FF”

DS,AX SI,3FCH

AX,OFFSET PROG7;取得IR7中断处理程序的偏移地址 [SI],AX ;偏移地址写入中断向量对应的“4*FF”地址处

MOV
MOV

AX,SEG PROG7;取得IR7中断处理程序的段地址
[SI+2],AX ;段地址写入中断向量对应的“4*FF+2”地址处

第8章 中 断 技 术

(3)中断子程序结束
如果ICW4中的D1位(即AEOI)为0,则意味着采 用非自动中断。因此,在中断子程序结束前必须发EOI命 令和IRET命令。 MOV AL,00100000H ;写OCW2命令,固定优先权,当前中断源,中 断结束,D4D3=00,表示写的是OCW2。使ISR相应位复位 (即发EOI命令) OUT 20H,AL IRET;开放中断允许,并从中断返回


相关文章:
微机原理第八章
微机原理第八章_电子/电路_工程科技_专业资料。第八章作业 8.1 根据接口电路的功能,简要说明 I/O 接口电路应包括 哪些电路单元? 解:I/O 接口电路包括的电路...
微机原理第8章习题与答案
微机原理第8章习题与答案_教育学_高等教育_教育专区。习题一、选择题 1.可编程计数/定时器 8253 的工作方式共有___,共有___个 I/O 口。 A. 3 种,4 B...
微机原理_第二版_课后作业第一~八章(朱金钧)
微机原理_第二版_课后作业第一~八章(朱金钧)_理学_高等教育_教育专区。第 1 章计算机基础知识 教材习题解答 1. 计算机中为什么都采用二迚制数而丌采用十迚制数...
微机原理第八章参考答案
微机原理第八章参考答案十三、同步式、异步式和半同步式数据传输各有何特点? 答: 同步式数据传输的特点是要求接在总线上的所有设备的响应速度必须与同步时钟一致,...
第八章微机原理课后习题参考答案_2012
微机原理答案微机原理答案隐藏>> 第八章课后习题参考答案一、填空题 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 二、选择题 1.B 2.C 3.C 4.D 5.C 6...
微机原理—第八章
微机原理第八章_计算机硬件及网络_IT/计算机_专业资料。微机原理答案—陈慈发 8.1 (1)输入/输出: 数据锁存器和缓冲器, 用以解块微处理器与外围设备之间速度...
微机原理作业第8章
微机原理 第2章 作业 3页 1下载券 微机原理作业及答案 33页 1下载券 微机原理作业一 2页 1下载券微​机​原​理​作​业​第​8​章 ...
第八章微机原理习题答案
第​八​章​微​机​原​理​课​后​习​题​答​案微机原理习题答案第八章习题答案一、 名词解释 1、解释 INTR 和 INTA 信号的作用。...
《微机接口与原理技术》第8章 习题及参考解答
北​京​邮​电​大​学​出​版​社​第​二​版第8 章 习题及参考解答 1.计时器在计算机中有哪些用途? 解 计时器在计算机中有如下用途...
微机原理习题答案8章
微机原理习题答案8章_工学_高等教育_教育专区。第 8 章 中断系统与可编程中断控制器 8259A 1. 什么叫中断?8086 微机系统中有哪几种不同类型的中断? 答:在 ...
更多相关标签:
微机原理第五章答案 | 微机原理第四章答案 | 微机原理第四章 | 微机原理第三章答案 | 微机原理第三章 | 微机原理第七章答案 | 微机原理第七章 | 微机原理第四章作业 |