第 7 章 中断控制技术
本章学习的主要内容:
中断概念及中断处理过程;
8086 的中断分类,中断类型码、中断向量;
可编程中断控制器 8259 的工作方式及编程应用。
第 7 章 中断控制技术
7.1概述
7.2 8086/8088中断系统
7.3中断控制器Intel8259
7.1 概述
一、中断的基本概念
保护断点:保护断点指的是当 CPU 响应外部设备提出的中断 请求,在转入中断服务程序之前,把主程序断点也就是将当 前的 CS 和 IP 的值保存起来,以便中断服务程序执行结束后 返回到主程序,从断点处继续执行主程序。
保护现场:保护现场指的是由于 CPU 执行中断处理程序时,
可能要使用主程序中使用过的累加器、寄存器或标志位。为 了使这些值在中断服务程序中不丢失,在进入中断服务程序 前,要将有关寄存器保护起来。在中断服务程序执行完时,
还必须恢复原寄存器的内容及原程序中断处的地址。即恢复 现场和恢复断点。
二、 中断源
中断源可以分为以下几种:
外部设备请求中断
故障强迫中断
实时时钟请求中断
数据通道中断
软件中断
三、中断系统的功能
中断处理功能
中断优先权排队功能
中断嵌套功能
四、中断处理过程
中断服务子程序的一般结构如图 7.5 所示。
五、中断优先级的排队及判别
解决优先级的问题一般可有三种方法:软件查询法、简单硬 件方法及专用硬件方法。
( 1 )软件查询法
( 2 )简单硬件方法
( 3 )专用硬件方式
返回
7.2 8086/8088 中断系统
一、中断分类及中断类型码 1 、中断的分类
2 、中断类型码
在 8086 中断系统中,无论是外部中断还是内部中断,系统 都分配给每一个中断源一个确定的中断类型码,其长度为一 个字节。由于 8086CPU 可管理 256 个中断源(包括软件中 断,系统占用的中断以及开放给用户使用的中断),所以为 每个中断都分配了一个中断类型码,其取值范围为 0 ~ 255
。
二、中断向量和中断向量表
中断向量地址指针 =4× 中断类型码
三、中断响应过程与时序
1 、软件中断(内部中断)响应过程
对于专用中断,中断类型码是自动形成的,而对于 INT n 指令,其类型码即为指令中给定的 n 。在取得了类型码后的 处理过程如下:
( 1 )把类型码乘 4 ,作为中断向量表的指针。
( 2 )把 CPU 的标志寄存器入栈,保护各个标志位。
( 3 )清除 IF 和 TF 标志,屏蔽新的 INTR 中断和单步中断。
( 4 )保存断点。
( 6 )按新的地址指针执行中断服务程序。
2 、硬件中断(外部中断)响应过程
(1) 非屏蔽中断响应
当 CPU 采样到非屏蔽中断请求时,自动提供中断类型码 2 ,然 后根据中断类型码查到中断向量表指针,其后的中断处理过 程与软件中断(内部中断)处理过程一样。
(2) 可屏蔽中断响应
中断响应流程图如 图 7.12 所示。
返回
7.3 中断控制器 Intel8259
一、 8259 的内部结构与功能 1 、 8259 功能概述
( 1 ) 8259 可以接收多个外部中断源的中断请求,并进行优先 级别判断。
( 2 ) 8259 具有提供中断向量、屏蔽中断输入等功能。
( 3 )一片 8259 可用于管理 8 级优先权中断,也可将多片 825 9 通过级连方式构成最多可达 64 级优先权中断管理系统。
( 4 )具有多种工作方式,自动提供中断服务程序入口地址,使 用灵活方便。
2 、 8259 的内部结构和工作原理 8259 的内部结构如图 7.13 所示。
8259 各主要部分的功能如下:
( 1 )数据总线缓冲器
( 2 )读 / 写控制逻辑
( 3 )级连缓冲器 / 比较器
( 4 )控制逻辑电路
( 5 )中断请求寄存器 IRR ( Interrupt Request Register )
( 6 )中断屏蔽寄存器 IMR ( Interrupt Mask Register )
( 7 )中断服务寄存器 ISR ( Interrupt Service Register )
( 8 )优先级比较器
3 、 8259 的外部引脚与功能
4 、 8259 的工作过程
( 1 )当一条或多条中断请求线 (IR0 ~ IR7) 变成高电平时,设置相应 的中断请求寄存器 IRR 位,使中断请求寄存器的 IRR 的相应位置 1 。
( 2 )在 8259 判断了中断优先权和中断屏蔽寄存器的状态后,如果条 件合适,就向微处理器发出高电平信号 INT ,请求中断服务。
( 3 ) CPU 接到中断请求信号后,如果满足条件,则响应中断,输出回 答信号, CPU 的引脚上的输出两个负脉冲。
( 4 ) 8259 接到来自微处理器的第一个脉冲时,把允许中断的最高优 先级请求位置入中断服务寄存器 ISR ,并把中断请求寄存器 IRR 中相 应的位复位,即清除中断请求。同时, 8259 准备向数据总线发送中 断类型码。
( 5 )第二个负脉冲到达时,将中断类型寄存器中的内容 ICW2 ,送到 数据总线的 D0-D7 上, CPU 以此作为相应中断的类型码。
( 6 )若 ICW4 中的中断结束位为 1 ,那么,第二个负脉冲结束时, 82 59 将 ISR 寄存器的相应位清零。否则,直至中断服务程序执行完毕
,才能通过输出操作命令字 EOI ,使该位复位。
二、 8259 的工作方式
1 、优先权的管理方式
( 1 )全嵌套方式
( 2 )特殊全嵌套方式
( 3 )优先级自动循环方式
( 4 )优先级特殊循环方式
2 、中断源的屏蔽方式
( 1 )普通屏蔽方式 ( 2 )特殊屏蔽方式
3 、结束中断处理的方式
8259 中断结束方式有自动中断结束方式和非自动中断结束方式两种,
非自动中断结束方式又分为一般中断结束方式和特殊中断结束方式两 类。
4 、中断触发方式
( 1 )边沿触发方式
( 2 )电平触发方式
5 、系统总线的连接方式
( 1 )缓冲方式
( 2 )非缓冲方式
三、中断控制器 Intel8259 控制字
1 、初始化命令字 ICWi
2 、初始化命令字的编程顺序
3 、 8259 的操作命令字
四、中断控制器 Intel8259 的级连应用
五、中断控制器 Intel8259 的应用举例
【例 1 】在 IBMPC 机中,只有一片 8259 ,可接受外部 8 级中断。在 I/O 地址 中,分配 8259 的端口地址为 20H 和 21H ,初始化条件为:边沿触发、缓 冲连接、中断结束采用 EOI 命令、中断优先级采用完全嵌套方式, 8 级中断 源的中断类型分别为 08H—0FH ,编写 8259 初始化程序。
解:根据已知, 8259 的初始化程序为:
MOV DX , 20H
MOV AL , 13H ; (00010011B) OUT DX , AL ;写入 ICW1 MOV DX , 21H
MOV AL , 08H
OUT DX , AL ;写入 ICW2 MOV AL , 0DH ;( 00001101B ) OUT DX , AL ;写入 ICW4 XOR AL , AL
OUT DX , AL ;写入 OCW1
………STI
……… 返回
返回