1 / 86

第五章 中断系统

第五章 中断系统. 中断的基本概念 8086/8088 的中断系统 可编程中断控制器 8259A 8259A 在微机系统中的应用. 退出. 第一节 中断的基本概念. 一 CPU 与外设之间的数据传送控制方式 ( 即 I/O 控制方式 ) ,通常有以下三种: 程序控制方式 中断方式 DMA 方式 (Direct Memory Access) 程序控制方式 :是在 CPU 的控制下,通过执行程序指令进行的数据传送方式。又分为 “ 无条件传送 ” 和 “ 程序查询传送 ” 两种方式。. 程序控制方式.

Download Presentation

第五章 中断系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 中断系统 中断的基本概念 8086/8088的中断系统 可编程中断控制器8259A 8259A在微机系统中的应用 退出

  2. 第一节 中断的基本概念 • 一 CPU与外设之间的数据传送控制方式(即I/O控制方式),通常有以下三种: • 程序控制方式 • 中断方式 • DMA方式(Direct Memory Access) • 程序控制方式:是在CPU的控制下,通过执行程序指令进行的数据传送方式。又分为“无条件传送”和“程序查询传送”两种方式。 长江大学地物学院

  3. 程序控制方式 • 无条件传送方式:是在假定外围设备(Peripheral Device)已经准备好的情况下,直接利用输入/输出指令(IN指令,OUT指令)与外围设备传送数据,而不去检测外设的工作状态。 • 优点:控制程序简单 • 缺点:数据传送不可靠 • 程序查询方式(也称“条件传送”方式) • 主要特点:CPU通过执行程序不断读取并检测外设的状态,只有在外设确实已准备就绪的情况下,才进行数据传送;否则,还要继续不断地查询外设的状态。 长江大学地物学院

  4. 读取状态信息 读取状态信息 准备好? 忙? 否 是 是 否 输入数据 输出数据 程序控制方式 • 查询式输入、输出程序流程图 长江大学地物学院

  5. 程序控制方式 • 程序查询传送方式比无条件传送方式要准确可靠,但在此种方式下,CPU要不断查询外设的状态,占用了大量CPU时间,而真正用于数据传送的时间却很少,即CPU的工作效率很低;另外,采用这种方式,也很难满足实时系统对I/O处理的要求。因此,出现了中断控制方式。 长江大学地物学院

  6. 二 中断方式 • 中断定义:在程序运行中,出现了某种紧急事件,CPU必须中止现行程序,转去处理此紧急事件(执行中断服务程序),并在处理完毕后再返回运行程序的过程。 • 中断的全过程及有关概念: • 一个完整的中断过程包括: • 中断请求; • 中断判优; • 中断响应; • 中断处理; • 中断返回. 长江大学地物学院

  7. 二 中断方式 • 中断请求是指中断源(引起中断的事件或设备)向CPU发出的请求中断的要求; • 中断判优当有多个中断源发出中断请求时,需要通过适当的办法(软件的;硬件的;软、硬件结合的)决定究竟先处理哪个中断请求,这就是“中断判优”; • 中断响应是指CPU中止现行程序转至中断服务程序的过程; • 中断处理就是指CPU执行中断服务程序; • 执行完中断服务程序后,返回到原先被中断的程序称为“中断返回”。 • 为了能正确返回到原来程序被中断的地方(也称断点-即主程序中当前指令下面一条指令的地址),在中断服务程序的最后应专门放置一条中断返回指令。 • 另外,为了使主程序在返回后仍能从断点处继续执行,还需要在中断服务程序的开头-保护现场(通过PUSH指令实现),在中断服务程序的末尾-恢复现场(通过POP指令实现)。 长江大学地物学院

  8. 三 中断响应和处理过程 • 对于不同的中断类型(如可屏蔽中断、不可屏蔽中断;外部中断、内部中断…),处理器(CPU)进行响应和处理的具体过程并不完全相同;另外,就是对同一种中断类型(如可屏蔽中断),不同的处理器(如Z80,80X86)进行响应和处理的过程也不尽相同。 长江大学地物学院

  9. 三 中断响应和处理过程 • 中断一般由硬件(处理器内部)和软件(由程序设计者编写的中断服务程序)共同完成,即整个中断响应和处理过程是由CPU内部的有关硬件和中断处理软件密切配合完成的。 • 针对一个具体的系统(机型),中断服务程序设计者应该清楚在中断响应时,“硬件”完成了哪些操作(如FR是否已被压入堆栈),还需要“软件”(中断服务程序)完成哪些操作。 长江大学地物学院

  10. 四 中断优先级和中断嵌套 • 1.中断优先级(Priority)的解决方法 • 系统中多个中断请求可能同时出现,CPU只能按一定的次序(优先级策略)予以响应和处理,这个响应的次序称为中断优先级。一般的方法有: • 软件查询法(需要少量硬件) • 菊花链(daisy chain)优先级排队电路 • 可编程中断控制器(如8259) 长江大学地物学院

  11. INT “或” 2 1 0 7 6 端口号=XXH CRT 键盘 打印 磁盘 磁带 (1)软件查询法 • 把各个外设的中断请求信号“相或”,产生一个总的INT信号 • 当CPU响应中断后,进入中断处理程序,在中断处理程序的开始部分安排一段带有优先级的查询程序。 • 优点:省硬件 • 缺点:中断响应慢 长江大学地物学院

  12. 设备1 设备2 设备3 接口 接口 接口 中断回答 中断请求 INT1 INT2 INT3 菊花链 逻辑电路 CPU INTR +5V 集电极开路门(OC门) INT1+INT2+INT3 (2)菊花链优先级排队电路 * 长江大学地物学院

  13. 中断请求 INTA INTR (2)菊花链优先级排队电路 • INTR=INT1+INT2+INT3 • 当INTA信号沿菊花链行进时,最靠近CPU并发出INT请求的接口将首先拦截住INTA信号,并送出中断类型码,进入相应的中断处理程序;在服务完成后撤销其请求(解除对下一级的阻塞和封锁)。 (3)可编程中断控制器(如8259) INTA 长江大学地物学院

  14. STI 可实现 “多重嵌套” STI ……. …….. IRET IRET 五 中断嵌套 • 通常,正在执行较低级的中断服务程序时,可以响应较高级的中断请求,而将正在处理的中断暂时挂起,称为中断嵌套。 长江大学地物学院

  15. 第二节 8086/8088的中断系统 一.中断的分类:在8086/8088系统中,可将中断分为两大类(如表5.1表5.2所示): • 第一类:硬件中断:是由外部的中断请求信号启动的中断,也称为外部中断。又可分为: • 非屏蔽中断NMI:整个系统只有一个,不受IF屏蔽 • 可屏蔽中断INTR:受IF屏蔽,在中断控制器8259的统一管理下,可屏蔽中断有几个至几十个。 长江大学地物学院

  16. 中断的分类 (注意,这里的IF是CPU内部的标志寄存器的IF位,IF=0,则对所有从INTR引脚进入的中断请求均不予响应(“总开关”);另外,也可以在CPU外部的中断控制器(8259)中以及各个I/O接口电路(如8255)中对某一级中断或某个中断源单独进行屏蔽)。 • 第二类:软件中断:是由CPU内部的标志状态(如TF、OF)或执行一条中断指令(INT n),以及除数为0引起的中断,也称为内部中断。 长江大学地物学院

  17. 二 中断向量和中断向量表 • 中断向量 即中断服务程序的入口地址。 • 中断向量表是存放中断向量(中断服务程序入口地址)的一个特定的内存区域(最低地址区). • 一个中断向量占4个字节单元,其中: • 低地址的两个字节单元存放中断服务程序入口地址的偏移量(IP)-低字节在前(低地址),高字节在后(高地址); • 高地址的两个字节单元存放中断服务程序入口地址的段地址(CS)-低字节在前(低地址),高字节在后(高地址)。 长江大学地物学院

  18. 中断向量和中断向量表 • 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的系统功能调用)。 长江大学地物学院

  19. 中断向量和中断向量表 • 由于中断向量在中断向量表是按中断类型号顺序存放的,所以每个中断向量的地址可由中断类型号×4计算出来。CPU响应中断时,需把中断类型号N乘以4,得到中断向量的对应地址4N(该中断向量所占4个字节单元的第一个字节单元的地址),然后把由此地址开始的两个低字节单元的内容装入IP寄存器:IP (4N,4N+1),再把两个高字节单元的内容装入CS寄存器:CS (4N+2,4N+3),这就是转入中断类型号为N的中断服务程序的控制过程。[N的来源,对于不同的中断类型(内部,外部:NMI、INTR)情况有所不同,详见后述] 长江大学地物学院

  20. 内存 00000H 低地址 00001H 0000CH (0000:000CH) 1E00 0 H + 0A0 0 H 1EA0 0 H 1EA00H (1E00:0A00H) 高地址 FFFFFH 中断向量和中断向量表 • 例1:若中断类型号为3,则由中断类型号取得中断服务入口地址的过程如下图所示: 中断类型号3×4 =000CH 长江大学地物学院

  21. 则:中断服务程序的入口地址为 CS=4030;IP=2010 入口地址为:43210 中断向量和中断向量表 • 例2.中断类型号为20H,中断服务程序的入口地址存放在0000:0080H开始的4个单元中。若: • (0080H)=10H • (0081H)=20H • (0082H)=30H • (0083H)=40H 长江大学地物学院

  22. 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 长江大学地物学院

  23. 三 8086/8088中断处理流程图 长江大学地物学院

  24. 长江大学地物学院

  25. 8086/8088中断处理流程图 • *8086中断优先级(Priority) • 说明: • (1)~(5)步是CPU的内部处理(由硬件自动完成) • 所有内部中断(除法错、INT n、INT0、单步)以及NMI中断不需要从数据总线上读取中断类型码,而INTR中断需读取中断类型码,中断类型码由发出INTR信号的接口提供。 长江大学地物学院

  26. 单步运行方式时发生中断的处理过程 长江大学地物学院

  27. 长江大学地物学院

  28. 低地址 IP CS TF=0 IP CS 高地址 TF=1 单步运行方式时发生中断的处理过程 • 堆栈的情形: 长江大学地物学院

  29. 可屏蔽中断过程 • 见图5.3 长江大学地物学院

  30. 长江大学地物学院

  31. 四 软件中断(内部中断) • 除法错中断(也称除数为0中断)-类型0 • 在执行DIV(无符号除法)或IDIV(带符号除法)指令时,若发现除数为0,则立即产生一个类型号为0的内部中断,CPU转向除法错中断处理程序。 • 溢出中断-类型4 • 若上一条指令执行的结果使溢出标识位OF被置1,则接着执行INTO指令时,将引起类型为4的内部中断,CPU转入对溢出错误处理程序,若OF=0时,INTO指令执行空操作,即INTO指令不起作用。INTO指令通常安排在算术指令之后,以便在溢出时能及时处理。如下举例: 长江大学地物学院

  32. 溢出中断服务程序: 主程序: . . . ADD AX,BX; 若OF=1 INT O … IRET 软件中断 • 软件(指令)中断(执行INT n指令引起的中断) • 双字节指令,第一个字节为操作码;第二个字节为中断类型号,该指令控制CPU转向相应的中断服务程序。 长江大学地物学院

  33. TF=1 单步执行 ….. 软件中断 • 断点中断-类型3 • INT3或简写为INT,是单字节指令。调试程序时可以在一些关键性的地方设置断点,使CPU在此断点处执行中断服务程序。 • 单步中断-类型1 长江大学地物学院

  34. 软件中断(内部中断)的特点 • 中断类型号由CPU内部自动提供(包括由中断指令第二字节提供的中断类型号),不需去执行中断响应总线周期读取中断类型号。 • 除单步中断外,所有内部中断(除法错,INTO,INT n)均不可以用软件来屏蔽。 • 除单步中断外,所有内部中断都比外部中断优先级高。 长江大学地物学院

  35. 例如: PUSH AX PUSH BX PUSH CX … POP CX POP BX POP AX 保护现场(将需要保护的寄存器压入堆栈) STI(可选); 中断处理 恢复现场 IRET 五 中断服务程序的一般结构 …… 长江大学地物学院

  36. 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的指令,可实现如下: 长江大学地物学院

  37. 第三节 可编程中断控制器8259A(8259A Programmable Interrupt Controller-PIC) • Intel 8259A用于管理和控制80x86的外部中断请求,实现优先级判决,提供中断矢量码,屏蔽中断输入等功能。 • 使用单片8259A可以管理8级中断,采用级联方式,可扩充到64级(用9片8259A)。 长江大学地物学院

  38. 8259A IR0 IR0 . . . INT INTA • 8259A CPU • CPU 从 • 8259A IR0 . . . . . 中断请求 主 . . . INTR IR7 INTR INTA INTA 8259A IR0 . . . IR7 从 IR7 IR7 单片 级联 可编程中断控制器8259A • . 长江大学地物学院

  39. 可编程中断控制器8259A • 一、8259A的引脚功能 • 封装形式 28脚双列直插(28-pin DIP),DIP:Dual-In-Line Package , 如图所示。 长江大学地物学院

  40. 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 长江大学地物学院

  41. CS CS CS CS WR WR WR RD RD RD 可编程中断控制器8259A • --片选信号(Chip Select)低电平有效,来自地址译码器的输出只有 有效时,CPU才能对8259A进行读写操作。 • --写信号,低电平有效,来自CPU的 输出;当 有效且 有效时,使8259A接受CPU送来的命令字。 • --读信号,低电平有效,来自CPU的 输出;且 有效且 有效时,使8259A将状态信息放到数据总路线上,供CPU检测。 长江大学地物学院

  42. INTA 可编程中断控制器8259A • D7~ D0 :双向数据总线,接到系统数据总线的D7~ D0上,用来传送控制字、状态字和中断类型号。 • IR7~IR0 :中断请求信号,输入,来自外部接口电路。(单片时) • INT:向CPU发出的中断请求信号。(单片时)。 •   :中断响应信号,由此接收CPU发来的中断响应脉冲。 长江大学地物学院

  43. SP/ EN SP/ EN SP/ EN 可编程中断控制器8259A • A0:地址输入信号,用于对8259A内部寄存器的寻址。 • CAS2~ CAS0:级联线(CASCADELINES),传送3位标 识码,用于区分特定的从控制器。双向:对于主片为输出,对于从片为输入。 • :从片/允许缓冲器信号。双功能引脚: • 作为输入时,8259A作为主片(   =1)  8259A作为从片(   =0)见P99图5.8 • 作为输出时,用来启动(允许)数据总线收发器(如8286)。 *究竟是作为输入还是输出,取决于8259A是否工作于“缓冲方式”(即8259A是否通过一个“数据总线收发器”与系统总线相连)。详见后面ICW4的格式。 长江大学地物学院

  44. 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 长江大学地物学院

  45. 长江大学地物学院

  46. 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。 长江大学地物学院

  47. ICW1:用偶地址写入,且D4=1 ICW2 紧接着ICW1,用奇地址写入 ICW3 ICW4 OCW1:也用奇地址写入,但不紧跟ICW1 OCW2 也用偶地址写入,但D4=0 OCW3 即: • 采用了专门的“标识位,以节省输入地址的引脚数(仅用了A0) 0 0 0 8259A的内部结构 • 7个寄存器的寻址问题: 规定:A0 长江大学地物学院

  48. 8259A的内部结构 • 8259A的处理部件: • 中断请求寄存器IRR-8位寄存器+控制逻辑 作用:接受并锁存来自IR0~IR7的中断请求信号 • 中断服务寄存器ISR 作用:保存当前正在处理的中断请求 • 优先级裁决器PR 作用:把新进入的中断请求和当前正在处理的中断进行比较,以决定哪一个优先级更高(见P90图5.7) 长江大学地物学院

  49. 长江大学地物学院

  50. INTA 8259A的内部结构 • 处理过程: • IR0~IR7上出现某一中断请求信号->IRR对应位被置“1”->由IMR的相应位决定是否将其屏蔽(屏蔽位=1,不通过;屏蔽位=0,通过)->中断请求进PR->PR把新进入的中断请求和当前正在处理的中断进行优先级比较->若新进入的中断优先级高,该中断请求被送到CPU。 • 若CPU的IF=1,CPU完成当前指令后,响应中断,在 引脚上发出两个负脉冲(执行两个中断响应总线周期,参见P90图5.4): 长江大学地物学院

More Related