第7章 中断系统及8237ADMA控制器.详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(8)中断控制逻辑 控制逻辑是8259A的内部控制器。根据中断请求寄存器IRR的置 位情况和中断屏蔽寄存器IMR设置的情况,通过优先级判别器PR判 定优先级,向8259A内部及其他部件发出控制信号,并向CPU发出中 断请求信号INT,接收CPU的中断响应信号 INTA ,使中断服务寄存 器ISR相应位置1,并使中断请求寄存器IRR相应位清0。 当CPU第二 个 INTA 信号到来,控制8259A送出中断类型号,使CPU转入中断服 务子程序。如果方式控制字ICW4的中断自动结束位为1,则在第二 个 INTA 脉冲结束时,将8259A中断服务寄存器ISR的相应位清0。
3、中断嵌套管理 中断嵌套——CPU响应了一个中断请求,正在中断处理中,又 有一个中断源发出中断请求。 若发出中断请求的中断源的优先权级别更高,中断系统使CPU 暂停当前的中断服务,转而响应和处理中断优先级更高的中断请求, 处理结束后,再返回原优先级较低的中断服务。
若发出中断请求的中断源的优先权级别低于当前正在处理的中 断源,CPU不予响应,等待当前中断处理结束后,再予以响应。
具有锁存功能的8位寄存器,用于寄存所有外部中断请求。当8
个中断请求IR0~IR7中任何一个的输入上升为高电平时,IRR中相 应的位置1,该位在中断响应过程中被清除。
(5)中断服务寄存器ISR 8位寄存器,用于存放正在被服务的中断级。在中断响应的第 一个INTA周期将ISR相应位置1,同时对应的IRR位复位。ISR的复位 由8259A中断结束方式决定。若是自动结束方式,则由CPU在第二个 INTA周期后沿将其复位;若是非自动结束方式,则由CPU发送的中 断结命令将其复位。允许多重中断时,ISR多位同时被置成1。 (6)中断屏蔽寄存器IMR 8位寄存器,用于寄存要屏蔽的中断级。该寄存器的每一位对 应一个中断级,1表示屏蔽该级中断请求,0表示开放该级中断请求。 寄存器内容可以通过软件以屏蔽命令设置。各屏蔽位相互独立(屏 蔽高优先级的中断不会影响低优先级的中断)。 (7)优先权比较器PR 用于存放IRR中各请求信号的优先级,并排队判优,若中断允 许嵌套时,所选最高优先级还要和ISR中内容比较,以实现高优先 级的嵌套中断。
4)溢出中断——中断类型号是4。指令为INTO,如果该指令的 上一条指令使标志位OF=1,则在执行指令INTO时产生溢出中断。 5)指令中断——中断类型号是n。指令格式为INT n。指令中 断和INT、INTO一样,都能引起CPU的中断响应,但INT、INTO为单 字节指令,且中断类型号是固定的,而INT n是双字节指令,类型 号n是指令给出的。
例7-1 某中断源的类型号为34,且已知部分中断向量表如图 7-11所示,试求中断服务程序入口的物理地址。 解: 34*4=136 即中断向量地址为: 88H 查中断向量表得中断向量为: A123H:B678H 中断服务程序入口的物理地址为: AC8A8H
7.2.4 中断程序设计 中断程序设计分为主程序设计和中断服务子程序设计两部分: 主程序用来完成相关的初始化工作,为实现中断做好准备;中断服 务子程序—用来完成相关的中断处理工作。 1、主程序设计 初始化工作分三部分: ① CPU本身工作的初始化 ② 中断控制器8259A的初始化 ③ 通用接口的初始化 2、中断服务子程序设计 中断服务子程序含有以下七个部分: (1)保护中断时的现场。 (2)若允许中断嵌套,则设置开中断。 (3)执行中断处理程序。 (4)设置关中断, (5)给中断命令寄存器送中断结束命令EOI。 (6)恢复中断时的现场。 (7)用中断返回指令IRET返回主程序。
(2)硬件排队方式 图7-5是一个用硬件编码器和比较器构成的优先权排除电路。 其中共有8个中断源,任一个中断源有中断请求时,通过“或” 门可以产生一个中断请求信号。 如果当前不在中断处理中,则“与”门2打开,中断请求“与” 门2进入CPU。
如果当前正在某一中断处理中(即已响应了一个中断请求), 但此中断源的优先级低于正在请求中断的中断源,则“与”门1打 开,中断请求“与”门1进入CPU;若正在处理中的中断源的优先级 高于正在请求中断的中断源,则这个请求中断的中断源被阻隔,暂 时无法进入CPU,将等待正在处理的中断结束后才能进入CPU。 (3)专用中断控制器
1.8259A的外部引脚信号及结构
引脚信号如图7—12b,引脚信号的作用见表7—2。
2. 8259A的内部结构
(1)数据总线缓冲器
用于与CPU进行数据交换。 (2)读/写控制逻辑 用于实现读/写操作。 (3)级联缓冲/比较器
用于控制多片8259A的级联,使得中断级可以最多扩展至64级。
扩展时用一片主片,多片从片。 (4)中断请求寄存器IRR
7.3 中断控制器Intel8259A
8259的功能:
1)具有8~64级的中断优先权管理功能(多于8级时,必须通 过级连扩展实现)。
2)每一级都可以通过编程实现中断屏蔽或开放。
3)在中断响应周期,8259A可以自动提供相应的中断类型号。 4)可以通过编程来选择8259A的各种工作方式及任意设定中断 类型号。 7.3.1 8259A的引脚信号及结构
第 7章
中断系统及8237ADMA控制器
教学内容
7.1 中断系统 7.1.1 中断的概念及其作用 7.1.2 中断处理系统 7.2 8086CPU的中断系统 7.2.1 8086CPU的中断源 7.2.2 8086CPU的中断响应过程 7.2.3 中断向量表 7.2.4 中断程序设计 7.3 中断控制器Intel8259A 教学目标 掌握8086中断系统结构,特点及使用。
内部中断的特点: ① 内部中断的类型号都是固定的,或是在中断指令中给定的。 不需要进入INTA总线周期获取类型号; ② 不受中断允许标志位IF的影响; ③ 用一条指令或由某个标志位启动进入中断处理程序,这样 的中断没有随机性。
2、中断源的优先级
7.2.2
8086CPU的中断响应过程
7.2.2 8086CPU的中断响应过程 1、内部中断和非屏蔽中断的 响应及处理过程 1) 中断请求ห้องสมุดไป่ตู้检测。 2) 确定中断向量地址。将中 断类型号乘以4获得中断向量地址。 3)保护各标志位状态和屏蔽 INTR中断和单步中断。将标志寄 存器入栈,并清除IF、TF标志。 4)保存断点。将断点地址 (即IP和CS)入栈。 5)执行中断服务程序。从中 断向量表中取出中断服务程序的 入口地址送到IP和CS,在中断服 务程序中要保护现场。 6)中断返回。执行IRET指令, 从堆栈中取回断点地址送IP和CS。
2、可屏蔽中断 1) 中断请求与检测。CPU每执行一条指令后都会检测INTR上有 无中断请求。 2) 判断是否响应。如果IF=1,则在执行完当前指令后响应中 断请求。 3)确定中断向量地址。执行连续两个中断响应总线周期,第 一个周期通知中断源中断请求已被响应,第二个周期中断源将中断 类型号送上数据总线的低8位,CPU在T4的前沿从数据总线上获得中 断类型号。然后将中断类型号乘以4得到中断向量地址。 以下4)、 5)、 6)与内部与非屏蔽中断相同。 4)保存断点。将断点地址(即IP和CS )入栈。 5)执行中断服务程序。从中断向量表中取出中断服务程序的 入口地址送到IP和CS,在中断服务程序中要保护现场。 6)中断返回。执行IRET指令,从堆栈中取回断点地址送IP和 CS。
7.3.2 8259A的工作方式 8259A共有6种工作方式。 1.中断请求方式 (1)边沿触发器方式 中断请求输入端(IR0~IR7)的上升沿实现中断请求。 (2)电平触发方式 中断请求输入端(IR0~IR7)的高电平实现中断请求。要求高 电平保持到中断请求被响应,且在中断返回前撤除,否则将引起又 一次中断。 (3)中断查询方式 8259A不向CPU发INT信号,由CPU不断查询8259A,当发现有中 断请求时,就转入相应的中断服务程序。查询时,系统先关中断, 然后将查询方式命令字OCW3送到8259A,再对8259A执行一条输入指 令,8259A便将一个如下格式的查询字送上数据总线。 D7 D6 D5 D4 D3 D2 D1 D0 I W2 W1 W0 I=1表示有设备请求中断服务。W2W1W0组成的代码表示当前中 断请求的最高优先级。
4、中断处理过程 一般包括中断请求、 中断优先级判断、中断响 应、中断服务和中断返回5 个基本阶段。
7.2 8086CPU中断系统 7.2.1 8086CPU的中断源 8086CPU的中断系统可处理256个中断,可分为两大类:外部中 断和内部中断。
1、中断源的类型 (1)外部中断(硬件中断) 分为非屏蔽中断和可屏蔽中断两种。 1)非屏蔽中断 通过NMI引脚进入CPU。只要NMI引脚有中断请求,CPU就必须响 应,常用作处理重大故障和紧急情况。 2)可屏蔽中断 通过引脚INTR进入CPU。CPU对此中断请求是否响应由标志位IF 决定,当IF=1时才能响应。 (2)内部中断(软件中断) 1)单步中断——中断类型号是1。当标志位TF=1时,CPU每执 行一条指令就产生一个单步中断。 2)除法出错中断——中断类型号是0。当除数为0或商超出了 限定范围时产生此中断。 3)断点中断——中断类型号是3。用于在程序调试时设置断点。
重点内容 1 中断的概念及其作用。 2 中断处理(中断源识别、优先级判断、嵌套管理、处理过 程)。 3 8086CPU中断系统。 难点内容
8086CPU中断系统。
学时数
4学时
7.1 中断系统 7.1.1 中断的概念及其作用 1、中断的概念 中断——计算机在执行正常程序的过程中出现内部或外部某些 事件的请求时,CPU暂时停止当前程序的正常执行,转去执行请求 事件的处理操作,CPU在事件处理结束后再回到被暂时中断了的程 序继续往下执行。
7.2.3 中断向量表 中断向量——是中断服务程序入口地址。 中断向量表——是中断服务程序入口地址表。 中断向量地址——是中断向量在中断向量表中的位置。 中断向量地址与中断类型号之间的关系可表示为:中断向量地 址=中断类型号*4 。 8086中断系统最多可有256个中断源,每个中断有一个中断类 型号(0~255),每个类型号对应一个中断向量,每个中断向量4 个字节,前两个字节是偏移量IP,后两个字节是段基址CS,256个 中断向量占用最低1KB内存,即0~3FFH。中断向量表如图7-10所示。 8086的前5个中断向量是专用的,接下来的27个中断向量由操 作系统使用,剩下的中断向量可以由用户使用。
2.中断源屏蔽方式 (1)普通屏蔽方式 在中断屏蔽寄存器IMR中写入中断屏蔽字。1使对应中断输入被 屏蔽,0则对应中断输入被允许。 (2)特殊屏蔽方式 用于屏蔽当前已响应的中断,并将ISR中的对应位清0,以开放 其他优先权较低的中断输入。在进入中断后在中断屏蔽寄存器IMR 中将已响应的中断输入对应位置1,使当前已响应的中断被屏蔽, 其他优先权较低的中断输入被开放。注意应先设置特殊屏蔽方式, 然后建立屏蔽信息。在中断服务程序结束时应退出特殊屏蔽方式。 3.中断嵌套方式 (1)全嵌套方式 初始化后的默认工作方式。 IR0的优先级最高,IR0~IR7优先 级依次降低。只有高优先级的中断请求可以中断低优先级的中断请 求。一个中断请求被响应后,它自身(即同级)的再次请求也不能 被响应。
向量中断由每个中断源经接口电路向CPU提供中断源的设备标
志,CPU将程序转向相应中断设备的中断处理。向量中断技术如图
7-2所示,当CPU响应中断后,由中断源提供中断地址信息,引导程 序进入中断服务程序的入口。
2、中断优先级判断 中断优先级判断的具体方法可分为:软件查询、硬件排队和专 用中断控制器。 (1)软件查询方式 在CPU响应中断后,通过用户编程采用程序查询的方法确定中 断源的优先级。查询的顺序决定了各中断源的优先级。 软件查询方法的优点是接口电路简单,且优先权次序可以按查 询的先后顺序而改变。缺点是中断源较多时,由查询转到相应中断 服务程序的时间较长,因而,此方法一般用于中断源较少、实时性 要求不高的场合。
2、中断系统的作用 (1)并行处理 (2)实时处理 (3)故障处理 7.1.2 中断处理系统 一个完整的中断处理系统必须实现以下功能: 中断源识别、中断优先级判断、中断嵌套管理以及CPU的中断 响应、中断服务和中断返回。 1、中断源识别 中断源——引起程序中断的事件。 在具有多个中断源的系统中,CPU需要识别哪一个中断源有中 断请求。常用的中断技术有单线中断、多线中断和向量中断三种。 单线中断通过查询中断源提供中断地址信息。 多线中断每个中断源有一根输入线,由于CPU引脚线有限而只 能管理少量的中断源。
相关文档
最新文档