内容正文:
微机原理与接口技术
(第2版 )
第9章 微机中断技术
9.1 中断的基本概念
9.2 中断控制器8259A
9.3 微机的中断处理过程
9.1 中断的基本概念
9.1.1 中断的含义
9.1.2 中断源及优先级
9.1.3 中断过程及中断向量表
9.1.1 中断的含义
中断:是指在CPU正常运行程序时,由于内部或外部某个非预期事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,然后返回被中断了的程序,继续执行被暂停的程序的过程。
中断的基本流程如图9.1.1所示。
图9.1.1 中断执行基本流程
9.1.1 中断的含义
中断服务(子)程序:处理中断源,完成其所要求功能的程序,称为中断服务程序,也称为中断例行程序或中断子程。中断服务程序可以是完成数据的输入/输出操作,也可以是完成其他的操作或其他程序。
中断控制技术主要用于以下场合。
(1)及时处理计算机中的突发故障。
(2)协调主机与外设之间在工作速度上的矛盾。
(3)在实时控制系统中,及时处理各控制点的现场。
9.1.2 中断源及优先级
1)中断源:能引起中断的事件或原因
内部中断(软中断):如被0除、调试断点
外部中断(硬中断):INTR、NMI
可屏蔽中断INTR:如数据传送请求、定时
不可屏蔽中断NMI:如故障
2)中断号:微机共支持256个中断。处理器为了识别每一种中断源,将它们从0~255进行编号,并赋予一个中断类型码N。
9.1.2 中断源及优先级
3) 中断优先级
◆CPU一次(一段时间)只能处理一个中断,如果有多个中断同时或先后发出请求,必须确定各中断源的优先级,以便CPU先后处理。
(1)用软件查询方法确定中断优先级
当CPU响应中断后,用软件查询以确定是哪个外设提出的中断请求,并判断它们的优先级。
(2)优先级硬件排队电路
优先级硬件排队电路有很多种。8086系列微机采用专用中断控制器实现优先级硬件排队与管理。这里介绍一种最简单的菊花环或链式的优先级排队电路,如图9.1.3所示。
9.1.2 中断源及优先级
3) 中断优先级
图9.1.2 中断优先级软件查询方式流程
9.1.2 中断源及优先级
3) 中断优先级
图9.1.3 链式优先级硬件排队电路
9.1.2 中断源及优先级
4)中断嵌套(多重中断)
中断服务程序又被更高级服务程序中断。
图9.1.4 中断嵌套示意图
9.1.2 中断源及优先级
5)8086中断优先级
图9.1.5 PC中断源优先级排队示意图
9.1.3 中断过程及中断向量表
1.中断过程
1)中断请求
中断请求指中断源向CPU提出中断请求。
2)中断响应
3)保护断点与现场
CPU通过硬件进行断点及标志保护。在需要时,使用指令保护中断现场。
4)中断服务
CPU执行中断源所期望的中断服务程序。
5)中断返回
CPU执行中断返回指令IRET,使CPU返回到中断前的程序地址处继续执行。
9.1.3 中断过程及中断向量表
2.中断类型号和中断向量表
1)中断类型号
为每个中断源指定的一个8位的编号。
2)中断向量
中断服务程序的入口地址。
3)中断向量表
存放中断向量的存储区。
PC系列微机共有256个中断类型(00H~FFH)。以内存储器的00000H~003FFH共l024个单元作为中断向量的存储区,每个中断向量占用4个字节的存储单元,在这4个字节中包含了中断服务程序的入口地址。
9.1.3 中断过程及中断向量表
2.中断类型号和中断向量表
图9.1.6 中断向量表
9.1.3 中断过程及中断向量表
2.中断类型号和中断向量表
中断向量表安排的向量是按中断类型号N值从小到大编序的。则向量地址与中断号有如下关系。
向量地址 = 0000: N×4
例如,类型号为20H,则中断向量的存放位置为20H×4=80H,设中断服务子程序的入口地址为4030:2010,则在0000:0080H~0000:0083H中应顺序放入10H、20H、30H、40H。
$