版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第七七章章 中断系统中断系统 7.1 8086/8088CPU中断系统中断系统 7.1.1 中断系统的基本概念 7.1.2 中断的分类 7.1.3 计算机中断处理的步骤 7.2 Intel 8259A可编程中断控制器可编程中断控制器 7.3 中断程序举例中断程序举例本章学习目标本章学习目标 掌握有关中断的基本概念、中断优先级、中断嵌掌握有关中断的基本概念、中断优先级、中断嵌套、中断屏蔽、中断向量等基本概念。套、中断屏蔽、中断向量等基本概念。 了解了解8086/8088中断系统中的中断源分类中断系统中的中断源分类 掌握可编程中断控制器掌握可编程中断控制器8259A的功能、内部结构、的功能、内部
2、结构、工作方式及初始化命令和操作命令的定义、使用工作方式及初始化命令和操作命令的定义、使用方法,服务程序的基本编写方法。方法,服务程序的基本编写方法。7.1.1 中断系统基本概念中断系统基本概念1、中断实质上是一过程,当CPU执行程序过程中,由于随机事件(包括CPU内部的和外部的事件)引起CPU暂时停止正在执行的程序,而转去执行一个用于处理该事件的程序(中断服务程序),中断程序处理完后,又返回到被中止的程序断点处继续执行。2、中断系统的作用(1)分时处理 (2)故障处理 (3)实时处理7.1.2 中断的分类中断的分类8086/8088可以处理256种不同类型的中断,每个中断对应一个中断向量码(
3、 0-255 )。CPU按照向量码的不同来识别不同的中断源。中断源:引起程序中断的事件。1、外部中断:由硬件电路或外设接口产生的。 可屏蔽中断 不可屏蔽中断(1)通过INTR引脚将中断信号送入CPU通过NMI引脚将中断信号送入CPU(2)级数:在一个系统中,通过8259A的配合工作可有几十个;(3)是否受IF的影响若有中断请求,能否响应,取决于IF,优先级的高低。若有中断请求,不论当前正在做什么事,都会在执行完当前指令后立即响应并进入中断服务程序。(4)优先级别:受硬件、软件的限制;(5)触发方式:电平触发,高电平有效,其引脚的高电平必须维持到CPU响应中断结束。上升沿触发,之后维持2个时钟周
4、期的高电平。(6)向量码:由用户设计,硬件连线决定中断向量码、优先次序。(7)处理一般外部设备的中断用于处理系统中出现的重大故障或紧急事件。2、内部中断/软件中断:与外部硬件完全无关。(1)由CPU的某些运算错误引起的中断CPU在运行程序时,会发现一些运算中的错误,此时CPU就会中断程序,让用户去处理。A、除法错中断:除数为零,或商超过了结果寄存器所能表示的最大范围。处理:该中断的服务处理一般由系统软件进行处理。B、溢出中断:算术运算的结果,导致OF=1专用指令 :INTO,必须与算术指令配合。处理方法:算术运算后,+INTO处理方法:算术运算后,+INTO当OF=1,则产生溢出中断当OF=0
5、,继续执行下一条指令 算术运算后,-INTO当OF=1,不会向CPU发中断,会导致错误的运算结果。当OF=0,不会导致错误的运算结果。(2)由调试程序debug设置的中断 软件对Flags的设置引发的中断调试程序过程中,为了检查中间结果或寻找程序中的错误,在程序中设置断点或进行单步跟踪。为了实现该功能,由中断指令实现。A、单步中断:TF=1,单步执行程序。每执行完一条指令,自动产生单步中断,暂时中断程序的运行,检查结果。产生中断时,CPU自动将PSW、CS、IP SP,清除TF、IF。由于进入单步中断处理程序时,TF=0,不再处于单步工作方式,而以正常方式工作。当单步处理结束后,SP IP、C
6、S、PSW,CPU又返回到单步工作方式。B、断点中断:由debug调试程序时,用命令设置断点。CPU执行到断点时便产生了中断。INT 3(单字节指令)原因:执行指令INT 3 INT 3可插在程序的任何地方(断点)处理:该中断服务处理,显示有关寄存器、存储器的内容。(3)执行指令INT n引起的中断 INT n;SP SP-2,SP+1:SP PSW IF 0,TF 0 SP SP-2,SP+1:SP CS SP SP-2,SP+1:SP IP IP 4n+1:4n CS 4n+3: 4n+ 2 IRET;IP SP+1:SP, SP SP+2 CS SP+1: SP ,SP SP+2 PSW
7、 SP+1: SP ,SP SP+25.1.3 计算机中断处理的步骤处理一个中断的过程,就是妥善处理以下一些基本问题的过程:1)何时检查中断输入信号及其处理办法。2)如何把控制转给中断服务程序。3)如何保护和恢复中断的现场。4)如何识别中断源。5)如何识别优先级较高的中断。6)如何开放和关闭中断。计算机中断处理的步骤计算机中断处理的步骤1、中断请求2、中断允许 3、中断优先权4、中断响应5、中断处理6、中断返回1、中断请求:、中断请求:CPU如何识别有无中断请求信号。如何识别有无中断请求信号。(1)边沿触发:CPU根据中断请求端上有无上升沿或下跳沿来决定中断请求信号是否有效。一般情况下,CPU
8、能够立即予以响应的中断可采用。例NMI。(2)电平触发方式:CPU根据中断请求端上有无稳定的电平信号(高低电平取决于CPU的设计)来确定中断请求信号是否有效。一般,CPU不能立即响应的中断采用。例INTR。但为保证产生的中断被CPU处理,INTR信号应保持到该信号被CPU响应为止。CPU响应后,INTR信号还应及时撤除,以免造成多次响应。2、中断允许(屏蔽):、中断允许(屏蔽):CPU查询是否开中断。IF=0,禁止中断;IF=1,开放中断3、中断判优:、中断判优:解决请求中断事件的识别,优先级的顺序问题。 系统具有多个中断源,由于中断产生的随机性,有可能在某一时刻两个以上的中断源同时发生中断请
9、求,而CPU往往只有一条中断请求线,并且任一时刻只能响应并处理一个中断,这就要求CPU能识别是哪些中断源申请了中断并找出优先级最高的中断源并响应之,在其处理完后,再响应级别较低的中断源的请求优先权的判别方法:(1)软件判优:软件安排各中断源的优先级别。优先级别:由查询顺序决定特点:优先权安排灵活,但所花时间长,中断源较多的情况下,中断响应的实时性差。CPU中断请求寄存器并行输入端口DBINTRIRQ0IRQ7 Y Y Y N N N 保护现场 检查 IRQ1 的中断状态是否为 “ 1” 检查 IRQ2 的中断状态是否为“1” 检查 IRQ3 的中断状态是否为“1” IRQ1 的服务程序 IRQ
10、2 的服务程序 IRQ3 的服务程序 恢复现场 中断返回 中断处 理入口 (2)硬件判优:利用硬件电路安排各中断源的优先级别。将所有的中断源构成一个菊花链,各中断源在链中的前后顺序是根据中断优先级别的高低来排列的,排在链前面的高优先级别的中断会自动封锁低优先级别的中断。I/O DATA BUS中断请求SYNPOL1号设备2号设备n号设备CPU(3)中断向量法:不同的中断源对应不同的中断向量码的方法来确定中断源。硬件中用一个中断优先权判别器判别出哪个中断请求的优先级别最高,然后在CPU响应中断时把此中断源所对应的中断向量码送给CPU,CPU根据中断向量码找到相应的中断服务程序入口,对此中断进行处
11、理。 INTR1 INTA1 INTM1 INTR2 INTA2 INTM2 INTRn INTAn INTMn 中 断 优 先 权 编 码 电 路 设备接口 1 IR IM 设备接口 2 IR IM 设备接口 n IR IM INTR INTA 向量地址 主机 中断嵌套当CPU正在处理中断时,有更高优先级别的中断请求,并且IF=1,CPU转去响应更高级别的中断请求,屏蔽掉低级别的中断请求,形成中断嵌套。 4、中断响应:(1)中断响应的条件有中断请求信号中断请求没有被屏蔽 中断是开放的 CPU在现行指令执行结束时响应中断(2)CPU何时检测到中断请求 中断请求何时发生是随机的。CPU在每条指令
12、执行的最后一个时钟周期检测中断引脚上有无请求信号。(3)中断响应的时间及条件 CPU在现行指令执行结束后,马上响应中断。 当前执行的指令是STI或IRET,则他们执行完后再执行一条指令,CPU才去响应中断。(4)中断响应过程 发出中断响应信号。获取中断向量码n并暂存。 将PSW压入堆栈,同时清IF、TF。 断点保护。即将当前IP、CS压入堆栈保护 获取中断服务程序的入口地址。5、中断处理:通过执行中断服务程序完成 保护现场 开中断(允许中断嵌套)。 执行中断服务程序。注意不易过长和过于复杂。在中断服务程序中停留的时间越短越好,否则程序易出错,也影响对其他中断源的及时处理。一般方法是,只执行必须
13、执行的操作,其他放到其他程序。 关中断,确保有效恢复到被中断程序的现场。 恢复现场 开中断 中断返回。中断服务程序框图与程序示例中断服务程序框图与程序示例 中断服务程序入口 CPU 响应中断后 自动关中断保护现场 开中断 中断服务 关中断 恢复现场 开中断 中断返回 入口地址: PUSH AX ;保护现场 PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH SP PUSH BP STI ;开中断 ;中断服务 CLI ;关中断 POP BP ;恢复现场 POP SP POP DI POP SI POP DX POP CX POP BX POP AX STI
14、;开中断 IRET ;中断返回 结尾部分 主体部分 起始部分 返回本节返回本节6、中断向量和中断向量表、中断向量和中断向量表中断向量中断向量:中断服务程序的入口地址。每个中断向量占4个字节。中断向量表:中断向量表:中断服务程序入口地址表。是中断向量码与它相应的中断服务程序入口地址之间的转换表。中断向量地址:中断向量地址:中断服务程序入口地址的存储地址。 中断向量地址(偏移地址)与中断向量码之间的关系是4n。中断向量表003 FFH 003 FCH 00080H 0007CH 00014H 00012H 0000CH 00008H 00004H 00000H 专用 中断向量 (5 个) 系统保留
15、 中断向量 (27 个) 用户可用 中断向量(224 个) 16 位 CS IP 255 号向量 32 号向量 31 号向量 5 号向量 4 号向量 (溢出) 3 号向量 2 号向量(非屏蔽) 1 号向量(单步) 0 号向量(除法错) 中断向量的设置:中断向量的设置:如何将中断服务程序入口地址送入中断类型码所对应中断向量表中1、采用DOS系统功能调用。即INT 21H的25H号功能调用。2、将中断服务程序的入口地址直接装入中断向量表中。 1中断优先级别中断优先级别中断源优先级除法错、INT n,INT O最高NMIINTR单步(陷阱)最低中断优先级顺序小结7.2 Intel 8259A可编程中
16、断控制器可编程中断控制器 7.2.1 8259A的框图和引脚的框图和引脚 7.2.2 中断触发方式和中断响应过程中断触发方式和中断响应过程 7.2.3 工作方式工作方式 7.2.4 屏蔽中断源的方式屏蔽中断源的方式 7.2.5 结束中断处理的方式结束中断处理的方式 7.2.6 中断级联方式中断级联方式 7.2.7 8259A初始化命令字和操作方式命令字初始化命令字和操作方式命令字返回本章首页返回本章首页7.2.1 8259A的框图和引脚的框图和引脚1功能功能管理和控制80 x86的外部中断请求实现中断判优提供中断向量屏蔽中断输入使用单片8259A可以管理8级中断,采用级联方式,最多可管理64级
17、中断2、结构框图、结构框图 D7 D0 SP/EN CAS0 CAS1 CAS2 RD WR A0 CS 控制逻辑中断服务寄存器ISR 中断判优器 中断请求寄存器IRR 中断屏蔽寄存器IMR INTA INT 内部总线 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 读写控制逻辑数据总线缓冲器级联缓冲比较器3、8259A的引脚的引脚 VCC A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS2 CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND 1 8259A 28 2 27 3
18、26 4 25 5 24 6 23 7 22 8 21 9 20 10 19 11 18 12 17 13 16 14 15 4、8259A的工作原理及中断响应过程的工作原理及中断响应过程(1)外部设备在中断请求输入线(IR7 IR0)上发了中断请求,使中断请求寄存器IRR的相应位置位。(2)IRR的内容与IMR的内容的非相“与”,结果送给优先级分析器。中断优先级分析器把优先级最高的中断请求送到控制电路。 (3)控制电路将接收到的中断请求向CPU输出INT信号。 (4)若CPU是处在开中断状态,则在当前指令执行完以后,接收到INT信号,输出一个中断响应脉冲,进入第一个中断响应周期。(5)825
19、9A的脚上收到脉冲信号,就将最高优先级所对应的IRR位清除,并将对应的ISR位置位。(6)CPU启动第二个中断响应周期,输出另一个脉冲,在这个周期8259A向数据总线输出一个中断向量码。 (7)CPU读取该中断向量码,把它乘以4,得到中断服务程序入口地址,转入该中断服务程序。这样一个中断响应周期就完成了。5、8259A寄存器及寄存器及I/O端口的识别端口的识别CSRDWRA0功能8259A端口PC/XT机端口0010读IRR,ISR偶地址20H0011读IMR奇地址21H0100写ICW1,OCW2,OCW3偶地址20H0101写ICW2,ICW3,ICW4,OCW1奇地址21H011无操作
20、1无操作 返回本节返回本节7.2.2 中断管理方式中断管理方式1、优先级设置方式、优先级设置方式(1)一般完全嵌套方式:)一般完全嵌套方式:中断优先级分配固定级别07级,IR0具有最高优先级,IR7优先级最低。但优先级顺序可通过程序来改变处理某级中断时,只允许高级中断进入,实现中断嵌套,禁止同级或低级中断请求进入。中断结束方式:普通EOI方式,自动AEOI方式。 (2)特殊完全嵌套方式)特殊完全嵌套方式用于级连系统,且仅适用于主片,确定从片内部优先级的工作方式;中断优先级固定;处理某级中断时,允许同级(同一从片上,优先级高的中断;对主片,认为同级中断)、高级(主片上其它优先级较高);特殊EOI
21、方式(3)优先级自动循环方式)优先级自动循环方式 a、用于系统中多个中断源优先级相等的场合; b、优先级别可以改变,一个中断源得到服务以后,它的优先级别变为最低,将最高优先级赋给原来比它低一级的中请;IRR 0 0 0 1 0 0 1 0优先级 7 6 5 4 3 2 1 0IR1被服务后优先级 5 4 3 2 1 0 7 6 C、AEOI、普通EOI方式(4)优先级特殊循环方式)优先级特殊循环方式 A、优先级别可以改变,一个中断源得到服务以后,它的优先级别变为最低,将最高优先级赋给原来比它低一级的中请; b 、 初始最低优先级由程序规定,最高优先级也就确定了。不是固定IR0为初始最高级; C
22、、特殊EOI方式。 2、中断结束方式、中断结束方式 使ISR中ISRn清零的工作,什么时刻使ISR中对应位置0 。(1)中断自动结束方式中断自动结束方式: 任何一级中断被响应后,ISR对应位置1。在CPU进入中断响应周期,发第二个INTA脉冲(后沿),8259A将自动把ISR中的对应位清除。 。(2)一般的中断结束方式一般的中断结束方式 任何一级中断处理结束返回上一级程序前,CPU向8259A传送EOI结束命令字(必须放在IRET前),8259A就会把当前的ISR中的最高IS位(反映了最后一次被响应和被处理的中断)复位(ISRn=0相当于结束了当前正在处理的中断)。(3)特殊的中断结束方式)特
23、殊的中断结束方式CPU向8259A发特殊EOI方式命令字,指出要清除当前ISR中的哪一位ISRn。3、中断源屏蔽方式、中断源屏蔽方式(1) 普通屏蔽方式普通屏蔽方式 将IMR某位置1,则它对应的IRi就被屏蔽,使对应的中断请求被屏蔽,不能从8259A送到CPU;将IMR某位清0,则允许该IRi中断传送给CPU。 (2)特殊屏蔽方式)特殊屏蔽方式希望一个中断服务程序能动态地改变系统的优先级结构。注意事项:在中断处理程序中使用。操作:在IRi的处理中,若希望使除IRi以外的所有IR中断请求均可被响应的话,则首先设置特殊屏蔽方式,再编程(用OCW1对IMR)将IRi屏蔽掉(使IMR中的ImRi位置1
24、),同时会使ISR中的IsRi 位复位。这样,除了正在服务的这级中断被屏蔽(不允许产生进一步的中断外),其它各级中断全部开放。 4、中断级联方式、中断级联方式(1)缓冲方式:8259A通过总线驱动器和数据总线相连,这就是缓冲方式。(2)非缓冲方式:当系统中只有单片8259A时,一般将它直接与数据总线相连。 5、中断请求方式、中断请求方式(1)边沿触发方式:上升沿(2)电平触发方式:高电平(3)中断查询方式:外设通过边沿或电平触发方式向8259A提中断,而CPU通过软件查询方式来确认中断源。具有中断、查询二者特点 B7B0 T 74LS245 OE A7A0 DT/R INTR DEN 局部数据
25、总线 B7B0 T 74LS245 OE A7A0 SP/EN D7D0 从控 B CAS2-0 INTA INT SP/EN D7D0 从控 A CAS2-0 INTA INT SP/EN D7D0 主控制器 INT IR5 IR6 INTA CAS2-0 +5V 1k B7B0 OE 74LS245 T A7A0 +5V 1k +5V 1k 系统数据总线 INTA 8259A缓冲方式下级连结构缓冲方式下级连结构8259A非缓冲方式下级连结构非缓冲方式下级连结构 地址总线 控制总线 数据总线 CS A0 DB INTA INT CAS0 8259A 从控 A CAS1 CAS2 SP/EN
26、IRQ7 IRQ0 CS A0 DB INTA INT CAS0 CAS1 8259A 主控 CAS2 IRQ7 IRQ0 SP/EN 7 6 5 4 3 2 1 0 CS A0 DB INTA INT CAS0 8259A 从控 B CAS1 CAS2 SP/EN IRQ7 IRQ0 GND 7 6 5 4 3 2 1 0 GND 7 6 5 4 3 2 1 0 VCC 7 6 5 4 3 2 1 0 CS A0 DB INTA INT CAS0 8259A 从控 B CAS1 CAS2 SP/EN IRQ7 IRQ0 CS A0 DB INTA INT CAS0 8259A 从控 B CA
27、S1 CAS2 SP/EN IRQ7 IRQ0 CS A0 DB INTA INT CAS0 8259A 从控 B CAS1 CAS2 SP/EN IRQ7 IRQ0 CS A0 DB INTA INT CAS0 8259A 从控 B CAS1 CAS2 SP/EN IRQ7 IRQ0 7.2.3 8259A初始化命令字和操作方式命字初始化命令字和操作方式命字1初始化命令字初始化命令字ICW(1)ICW1(2)ICW2(3)ICW3(4)ICW4(5)初始化命令字的编程顺序)初始化命令字的编程顺序ICW1命令字命令字 A0 0 偶地址端口 D7D6D5D4D3D2D1D0XXX1LTIMXSN
28、GLIC4 特征位 1电平触发 0边沿触发 1单片方式 0级连方式 1要ICW4 0不要ICW4 ICW2命令字 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 8259A 填入T7 T6 T5 T4 T3 0 0 0 中断类型号的高5位主主8259A的的ICW3命令字命令字 1-IRi输入引脚接从片的INT 0-IRi输入引脚未接从片的 INT A0 D7 D6 D5 D4 D3 D2 D1 D0 S3 S2 S1 S0 S4 S5 S6 S7 1 从从8259A的的ICW3命令字命令字 A0 D7 D6 D5 D4 D3 D2 D1 D0 0 S2 S1 S0 0 0 0 0 1
29、 该从片的INT引脚与主片的哪一个引脚相连ICW4命令字命令字 1-8088/8086CPU 0-8080/8085CPU 1-自动 EOI 方式 0-非自动 EOI 方式 1-特殊完全嵌套方式 0-一般完全嵌套方式 0 非缓冲方式 1 0 缓冲方式从片 1 1 缓冲方式主片 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI uPM x8259A初始化命令字的顺序 开始 初始化 ICW1 初始化 ICW2 是否用级连方式? 初始化 ICW3 是否用 ICW4 ? 初始化 ICW4 准备接近中断请求 结束 Y Y Y N N 2操作命令字操
30、作命令字OCW(1)OCW1:OCW1是中断屏蔽命令字,D7D0分别控制对应的IRQ7IRQ0上的中断请求被屏蔽还是开放。“1”是屏蔽,“0”是开放。(2)OCW2: OCW2是用来设置中断优先级循环方式和发送EOI命令。通过偶地址写OCW2且命令字的D4D3位都是“0”,标志着是对OCW2设置,若D4D3位是01则是OCW3,D4为1则是ICW1。D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1 M0D7D6D5D4D3D2D1D0RSLEOI00L2L1L0 (3)OCW3: OCW3用于控制读中断状态、查询及屏蔽方式,此时要求8259A的引脚A0为0即偶地址D7D6D5D4D3D2D1D0XESMMSMM01PRRRIS7.3 中断程序举例中断程序举例 7.3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年蚯蚓粉项目投资价值分析报告
- 2025至2030年水磨镜项目投资价值分析报告
- 一年级数学(上)计算题专项练习汇编
- 家政临时用工居间协议
- 服装店装修停工协议
- 超市装修工程设计协议
- 生猪养殖环保运输协议样本
- 医院护理质控小组职责与实施方案
- 高端别墅设计委托合同书
- 2024年度海南省公共营养师之二级营养师模拟考试试卷B卷含答案
- 餐饮行业智慧餐厅管理系统方案
- 2025年度生物医药技术研发与许可协议3篇
- 电厂检修安全培训课件
- 殡葬改革课件
- 2024企业答谢晚宴会务合同3篇
- 双方个人协议书模板
- 车站安全管理研究报告
- 玛米亚RB67中文说明书
- 中华人民共和国文物保护法
- 五年级数学(小数四则混合运算)计算题专项练习及答案
- NB_T 10533-2021 采煤沉陷区治理技术规范_(高清最新)
评论
0/150
提交评论