860 likes | 1k Views
第五章 中断系统. 中断的基本概念 8086/8088 的中断系统 可编程中断控制器 8259A 8259A 在微机系统中的应用. 退出. 第一节 中断的基本概念. 一 CPU 与外设之间的数据传送控制方式 ( 即 I/O 控制方式 ) ,通常有以下三种: 程序控制方式 中断方式 DMA 方式 (Direct Memory Access) 程序控制方式 :是在 CPU 的控制下,通过执行程序指令进行的数据传送方式。又分为 “ 无条件传送 ” 和 “ 程序查询传送 ” 两种方式。. 程序控制方式.
E N D
第五章 中断系统 中断的基本概念 8086/8088的中断系统 可编程中断控制器8259A 8259A在微机系统中的应用 退出
第一节 中断的基本概念 • 一 CPU与外设之间的数据传送控制方式(即I/O控制方式),通常有以下三种: • 程序控制方式 • 中断方式 • DMA方式(Direct Memory Access) • 程序控制方式:是在CPU的控制下,通过执行程序指令进行的数据传送方式。又分为“无条件传送”和“程序查询传送”两种方式。 长江大学地物学院
程序控制方式 • 无条件传送方式:是在假定外围设备(Peripheral Device)已经准备好的情况下,直接利用输入/输出指令(IN指令,OUT指令)与外围设备传送数据,而不去检测外设的工作状态。 • 优点:控制程序简单 • 缺点:数据传送不可靠 • 程序查询方式(也称“条件传送”方式) • 主要特点:CPU通过执行程序不断读取并检测外设的状态,只有在外设确实已准备就绪的情况下,才进行数据传送;否则,还要继续不断地查询外设的状态。 长江大学地物学院
读取状态信息 读取状态信息 准备好? 忙? 否 是 是 否 输入数据 输出数据 程序控制方式 • 查询式输入、输出程序流程图 长江大学地物学院
程序控制方式 • 程序查询传送方式比无条件传送方式要准确可靠,但在此种方式下,CPU要不断查询外设的状态,占用了大量CPU时间,而真正用于数据传送的时间却很少,即CPU的工作效率很低;另外,采用这种方式,也很难满足实时系统对I/O处理的要求。因此,出现了中断控制方式。 长江大学地物学院
二 中断方式 • 中断定义:在程序运行中,出现了某种紧急事件,CPU必须中止现行程序,转去处理此紧急事件(执行中断服务程序),并在处理完毕后再返回运行程序的过程。 • 中断的全过程及有关概念: • 一个完整的中断过程包括: • 中断请求; • 中断判优; • 中断响应; • 中断处理; • 中断返回. 长江大学地物学院
二 中断方式 • 中断请求是指中断源(引起中断的事件或设备)向CPU发出的请求中断的要求; • 中断判优当有多个中断源发出中断请求时,需要通过适当的办法(软件的;硬件的;软、硬件结合的)决定究竟先处理哪个中断请求,这就是“中断判优”; • 中断响应是指CPU中止现行程序转至中断服务程序的过程; • 中断处理就是指CPU执行中断服务程序; • 执行完中断服务程序后,返回到原先被中断的程序称为“中断返回”。 • 为了能正确返回到原来程序被中断的地方(也称断点-即主程序中当前指令下面一条指令的地址),在中断服务程序的最后应专门放置一条中断返回指令。 • 另外,为了使主程序在返回后仍能从断点处继续执行,还需要在中断服务程序的开头-保护现场(通过PUSH指令实现),在中断服务程序的末尾-恢复现场(通过POP指令实现)。 长江大学地物学院
三 中断响应和处理过程 • 对于不同的中断类型(如可屏蔽中断、不可屏蔽中断;外部中断、内部中断…),处理器(CPU)进行响应和处理的具体过程并不完全相同;另外,就是对同一种中断类型(如可屏蔽中断),不同的处理器(如Z80,80X86)进行响应和处理的过程也不尽相同。 长江大学地物学院
三 中断响应和处理过程 • 中断一般由硬件(处理器内部)和软件(由程序设计者编写的中断服务程序)共同完成,即整个中断响应和处理过程是由CPU内部的有关硬件和中断处理软件密切配合完成的。 • 针对一个具体的系统(机型),中断服务程序设计者应该清楚在中断响应时,“硬件”完成了哪些操作(如FR是否已被压入堆栈),还需要“软件”(中断服务程序)完成哪些操作。 长江大学地物学院
四 中断优先级和中断嵌套 • 1.中断优先级(Priority)的解决方法 • 系统中多个中断请求可能同时出现,CPU只能按一定的次序(优先级策略)予以响应和处理,这个响应的次序称为中断优先级。一般的方法有: • 软件查询法(需要少量硬件) • 菊花链(daisy chain)优先级排队电路 • 可编程中断控制器(如8259) 长江大学地物学院
INT “或” 2 1 0 7 6 端口号=XXH CRT 键盘 打印 磁盘 磁带 (1)软件查询法 • 把各个外设的中断请求信号“相或”,产生一个总的INT信号 • 当CPU响应中断后,进入中断处理程序,在中断处理程序的开始部分安排一段带有优先级的查询程序。 • 优点:省硬件 • 缺点:中断响应慢 长江大学地物学院
设备1 设备2 设备3 接口 接口 接口 中断回答 中断请求 INT1 INT2 INT3 菊花链 逻辑电路 CPU INTR +5V 集电极开路门(OC门) INT1+INT2+INT3 (2)菊花链优先级排队电路 * 长江大学地物学院
中断请求 INTA INTR (2)菊花链优先级排队电路 • INTR=INT1+INT2+INT3 • 当INTA信号沿菊花链行进时,最靠近CPU并发出INT请求的接口将首先拦截住INTA信号,并送出中断类型码,进入相应的中断处理程序;在服务完成后撤销其请求(解除对下一级的阻塞和封锁)。 (3)可编程中断控制器(如8259) INTA 长江大学地物学院
STI 可实现 “多重嵌套” STI ……. …….. IRET IRET 五 中断嵌套 • 通常,正在执行较低级的中断服务程序时,可以响应较高级的中断请求,而将正在处理的中断暂时挂起,称为中断嵌套。 长江大学地物学院
第二节 8086/8088的中断系统 一.中断的分类:在8086/8088系统中,可将中断分为两大类(如表5.1表5.2所示): • 第一类:硬件中断:是由外部的中断请求信号启动的中断,也称为外部中断。又可分为: • 非屏蔽中断NMI:整个系统只有一个,不受IF屏蔽 • 可屏蔽中断INTR:受IF屏蔽,在中断控制器8259的统一管理下,可屏蔽中断有几个至几十个。 长江大学地物学院
中断的分类 (注意,这里的IF是CPU内部的标志寄存器的IF位,IF=0,则对所有从INTR引脚进入的中断请求均不予响应(“总开关”);另外,也可以在CPU外部的中断控制器(8259)中以及各个I/O接口电路(如8255)中对某一级中断或某个中断源单独进行屏蔽)。 • 第二类:软件中断:是由CPU内部的标志状态(如TF、OF)或执行一条中断指令(INT n),以及除数为0引起的中断,也称为内部中断。 长江大学地物学院
二 中断向量和中断向量表 • 中断向量 即中断服务程序的入口地址。 • 中断向量表是存放中断向量(中断服务程序入口地址)的一个特定的内存区域(最低地址区). • 一个中断向量占4个字节单元,其中: • 低地址的两个字节单元存放中断服务程序入口地址的偏移量(IP)-低字节在前(低地址),高字节在后(高地址); • 高地址的两个字节单元存放中断服务程序入口地址的段地址(CS)-低字节在前(低地址),高字节在后(高地址)。 长江大学地物学院
中断向量和中断向量表 • 8086/8088的中断向量表如书P80图5.1所示。 • 解释: • 8086/8088可以处理256种中断,对每种中断都指定一个中断类型号(也称中断向量号),每个中断类型号与一个中断服务程序的入口地址相对应。 • 256个中断向量要占256*4=1024个字节单元,地址编号从00000H~003FFH • 5个专用中断(类型0~类型4),它们有固定的定义和处理功能; • 27个保留的中断(类型5~类型31)。占0000:0014H~0000:007FH,共108个字节单元。这个区域供系统使用,不允许用户自行定义。 • 224个用户可定义的中断(类型32~类型255)。占0000:0080H~0000:03FFH单元;使用时,要由用户自行填写相应的中断入口地址。(其中有些中断类型已经有了固定用途,例如,类型21H的中断已用作MS-DOS的系统功能调用)。 长江大学地物学院
中断向量和中断向量表 • 由于中断向量在中断向量表是按中断类型号顺序存放的,所以每个中断向量的地址可由中断类型号×4计算出来。CPU响应中断时,需把中断类型号N乘以4,得到中断向量的对应地址4N(该中断向量所占4个字节单元的第一个字节单元的地址),然后把由此地址开始的两个低字节单元的内容装入IP寄存器:IP (4N,4N+1),再把两个高字节单元的内容装入CS寄存器:CS (4N+2,4N+3),这就是转入中断类型号为N的中断服务程序的控制过程。[N的来源,对于不同的中断类型(内部,外部:NMI、INTR)情况有所不同,详见后述] 长江大学地物学院
内存 00000H 低地址 00001H 0000CH (0000:000CH) 1E00 0 H + 0A0 0 H 1EA0 0 H 1EA00H (1E00:0A00H) 高地址 FFFFFH 中断向量和中断向量表 • 例1:若中断类型号为3,则由中断类型号取得中断服务入口地址的过程如下图所示: 中断类型号3×4 =000CH 长江大学地物学院
则:中断服务程序的入口地址为 CS=4030;IP=2010 入口地址为:43210 中断向量和中断向量表 • 例2.中断类型号为20H,中断服务程序的入口地址存放在0000:0080H开始的4个单元中。若: • (0080H)=10H • (0081H)=20H • (0082H)=30H • (0083H)=40H 长江大学地物学院
0001 0111 B 左移2位: 0101 1100 B 5 C H 中断向量和中断向量表 • 例3.中断类型号为23(17H),中断服务程序的入口地址为:2340:7890H,由于中断类型号17H对应的中断向量存放在0段的0000:005CH(17H×4=5CH)处,所以有: • (005CH)= • (005DH)= • (005EH)= • (005FH)= 90 78 40 23 长江大学地物学院
三 8086/8088中断处理流程图 长江大学地物学院
8086/8088中断处理流程图 • *8086中断优先级(Priority) • 说明: • (1)~(5)步是CPU的内部处理(由硬件自动完成) • 所有内部中断(除法错、INT n、INT0、单步)以及NMI中断不需要从数据总线上读取中断类型码,而INTR中断需读取中断类型码,中断类型码由发出INTR信号的接口提供。 长江大学地物学院
单步运行方式时发生中断的处理过程 长江大学地物学院
低地址 IP CS TF=0 IP CS 高地址 TF=1 单步运行方式时发生中断的处理过程 • 堆栈的情形: 长江大学地物学院
可屏蔽中断过程 • 见图5.3 长江大学地物学院
四 软件中断(内部中断) • 除法错中断(也称除数为0中断)-类型0 • 在执行DIV(无符号除法)或IDIV(带符号除法)指令时,若发现除数为0,则立即产生一个类型号为0的内部中断,CPU转向除法错中断处理程序。 • 溢出中断-类型4 • 若上一条指令执行的结果使溢出标识位OF被置1,则接着执行INTO指令时,将引起类型为4的内部中断,CPU转入对溢出错误处理程序,若OF=0时,INTO指令执行空操作,即INTO指令不起作用。INTO指令通常安排在算术指令之后,以便在溢出时能及时处理。如下举例: 长江大学地物学院
溢出中断服务程序: 主程序: . . . ADD AX,BX; 若OF=1 INT O … IRET 软件中断 • 软件(指令)中断(执行INT n指令引起的中断) • 双字节指令,第一个字节为操作码;第二个字节为中断类型号,该指令控制CPU转向相应的中断服务程序。 长江大学地物学院
TF=1 单步执行 ….. 软件中断 • 断点中断-类型3 • INT3或简写为INT,是单字节指令。调试程序时可以在一些关键性的地方设置断点,使CPU在此断点处执行中断服务程序。 • 单步中断-类型1 长江大学地物学院
软件中断(内部中断)的特点 • 中断类型号由CPU内部自动提供(包括由中断指令第二字节提供的中断类型号),不需去执行中断响应总线周期读取中断类型号。 • 除单步中断外,所有内部中断(除法错,INTO,INT n)均不可以用软件来屏蔽。 • 除单步中断外,所有内部中断都比外部中断优先级高。 长江大学地物学院
例如: PUSH AX PUSH BX PUSH CX … POP CX POP BX POP AX 保护现场(将需要保护的寄存器压入堆栈) STI(可选); 中断处理 恢复现场 IRET 五 中断服务程序的一般结构 …… 长江大学地物学院
PUSH FR POP AX AND AX, PUSH AX; POPF PUSH FR; FR的内容压入堆栈 POP AX; FR的内容弹出到AX OR AX,0100H; 使AX中对应TF的位置为“1”,其他位不变 PUSH AX; 修改后的AX内容压入栈 POPF 弹回到FR(TF=1) 0->TF 1->TF • 指令系统中没有单独置“1”或清“0”TF的指令,可实现如下: 长江大学地物学院
第三节 可编程中断控制器8259A(8259A Programmable Interrupt Controller-PIC) • Intel 8259A用于管理和控制80x86的外部中断请求,实现优先级判决,提供中断矢量码,屏蔽中断输入等功能。 • 使用单片8259A可以管理8级中断,采用级联方式,可扩充到64级(用9片8259A)。 长江大学地物学院
8259A IR0 IR0 . . . INT INTA • 8259A CPU • CPU 从 • 8259A IR0 . . . . . 中断请求 主 . . . INTR IR7 INTR INTA INTA 8259A IR0 . . . IR7 从 IR7 IR7 单片 级联 可编程中断控制器8259A • . 长江大学地物学院
可编程中断控制器8259A • 一、8259A的引脚功能 • 封装形式 28脚双列直插(28-pin DIP),DIP:Dual-In-Line Package , 如图所示。 长江大学地物学院
1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 VCC A0 D7 IR7 D6 IR6 INTA D5 IR5 8259A D4 IR4 D3 IR3 D2 IR2 D1 IR1 D0 IR0 INT RD CAS0 CAS1 GND CAS2 SP/EN WR CS 可编程中断控制器8259A 长江大学地物学院
CS CS CS CS WR WR WR RD RD RD 可编程中断控制器8259A • --片选信号(Chip Select)低电平有效,来自地址译码器的输出只有 有效时,CPU才能对8259A进行读写操作。 • --写信号,低电平有效,来自CPU的 输出;当 有效且 有效时,使8259A接受CPU送来的命令字。 • --读信号,低电平有效,来自CPU的 输出;且 有效且 有效时,使8259A将状态信息放到数据总路线上,供CPU检测。 长江大学地物学院
INTA 可编程中断控制器8259A • D7~ D0 :双向数据总线,接到系统数据总线的D7~ D0上,用来传送控制字、状态字和中断类型号。 • IR7~IR0 :中断请求信号,输入,来自外部接口电路。(单片时) • INT:向CPU发出的中断请求信号。(单片时)。 • :中断响应信号,由此接收CPU发来的中断响应脉冲。 长江大学地物学院
SP/ EN SP/ EN SP/ EN 可编程中断控制器8259A • A0:地址输入信号,用于对8259A内部寄存器的寻址。 • CAS2~ CAS0:级联线(CASCADELINES),传送3位标 识码,用于区分特定的从控制器。双向:对于主片为输出,对于从片为输入。 • :从片/允许缓冲器信号。双功能引脚: • 作为输入时,8259A作为主片( =1) 8259A作为从片( =0)见P99图5.8 • 作为输出时,用来启动(允许)数据总线收发器(如8286)。 *究竟是作为输入还是输出,取决于8259A是否工作于“缓冲方式”(即8259A是否通过一个“数据总线收发器”与系统总线相连)。详见后面ICW4的格式。 长江大学地物学院
CPU CAS0 INTA INTA CAS1 AD7~AD0 D7~D0 CAS2 PR IRR ISR . . . ICW1 OCW1 (IMR) A0 SP/EN ICW2 OCW2 地址 译码 ICW3 OCW3 . . . ICW4 INT CS RD WR 二、8259A的内部结构 IR0 IR7 INTR 长江大学地物学院
8259A的内部结构 • IRR—Interrupt Request Register • PR---Priority Resolver • ISR---In-Service Register • IMR---Interrupt Mask Register • ICWs---Initialization Command Words • OCWs---Operation Command Words • 7个CPU可访问的寄存器,分两组: • 初始化命令字ICW1 ~ICW4---系统初启时设定。 • 操作命令字OCW1~OCW3—系统运行时,由应用程序设定(实现对中断处理的动态管理和控制). The OCWs can be written into the 8259A anytime after initialization。 长江大学地物学院
ICW1:用偶地址写入,且D4=1 ICW2 紧接着ICW1,用奇地址写入 ICW3 ICW4 OCW1:也用奇地址写入,但不紧跟ICW1 OCW2 也用偶地址写入,但D4=0 OCW3 即: • 采用了专门的“标识位,以节省输入地址的引脚数(仅用了A0) 0 0 0 8259A的内部结构 • 7个寄存器的寻址问题: 规定:A0 长江大学地物学院
8259A的内部结构 • 8259A的处理部件: • 中断请求寄存器IRR-8位寄存器+控制逻辑 作用:接受并锁存来自IR0~IR7的中断请求信号 • 中断服务寄存器ISR 作用:保存当前正在处理的中断请求 • 优先级裁决器PR 作用:把新进入的中断请求和当前正在处理的中断进行比较,以决定哪一个优先级更高(见P90图5.7) 长江大学地物学院
INTA 8259A的内部结构 • 处理过程: • IR0~IR7上出现某一中断请求信号->IRR对应位被置“1”->由IMR的相应位决定是否将其屏蔽(屏蔽位=1,不通过;屏蔽位=0,通过)->中断请求进PR->PR把新进入的中断请求和当前正在处理的中断进行优先级比较->若新进入的中断优先级高,该中断请求被送到CPU。 • 若CPU的IF=1,CPU完成当前指令后,响应中断,在 引脚上发出两个负脉冲(执行两个中断响应总线周期,参见P90图5.4): 长江大学地物学院