微型计算机课件中断_第1页
微型计算机课件中断_第2页
微型计算机课件中断_第3页
微型计算机课件中断_第4页
微型计算机课件中断_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第4章 微型计算机的中断系统 4.1 中断原理中断原理4.2 8086 CPU中断系统中断系统 4.3 可编程中断控制器可编程中断控制器8259A 4.4 中断方式输入输出中断方式输入输出 24.1 中断原理 中断的基本概念中断的基本概念 1 中断中断 由于某个事件的发生,由于某个事件的发生,CPU暂停当前正在执暂停当前正在执行的程序,转而执行处理该事件的一个程序。行的程序,转而执行处理该事件的一个程序。 该程序执行完成后,该程序执行完成后,CPU接着执行被暂停的接着执行被暂停的程序。程序。 这个这个过程过程称为中断。称为中断。32 中断源中断源p 引发中断的事件称为中断源引发中断的事件称为

2、中断源p 内部中断(在内部中断(在CPU内部的中断源):内部的中断源): 程序异常(运算溢出等),程序异常(运算溢出等), 陷阱中断(例如,单步运行程序等),陷阱中断(例如,单步运行程序等), 软件中断(执行特殊指令)等。软件中断(执行特殊指令)等。p 外部中断(发生在外部中断(发生在CPU外部的中断):外部的中断): 外部故障(电源故障,存储器读写校验错)外部故障(电源故障,存储器读写校验错) 外部事件(定时时间到,外部特殊信号)外部事件(定时时间到,外部特殊信号) IO事件(外部设备完成一次事件(外部设备完成一次IO操作,请求数据传输)操作,请求数据传输)43 中断类型中断类型用若干位二进

3、制表示的中断源的编号。用若干位二进制表示的中断源的编号。4 中断断点中断断点由于中断的发生,某个程序被暂停执行。由于中断的发生,某个程序被暂停执行。该程序中即将执行,由于中断没有被执行的那条指令的地址该程序中即将执行,由于中断没有被执行的那条指令的地址称为中断断点,简称断点。称为中断断点,简称断点。55 中断服务程序中断服务程序处理中断事件的程序段称为中断服务程序。处理中断事件的程序段称为中断服务程序。 如:故障中断服务程序,输入输出中断服务程序。如:故障中断服务程序,输入输出中断服务程序。不同类型的中断需要不同的中断服务程序。不同类型的中断需要不同的中断服务程序。中断服务程序不同于一般的子程

4、序:中断服务程序不同于一般的子程序: 子程序由某个程序调用,它的调用是由程序设定的,子程序由某个程序调用,它的调用是由程序设定的, 它的执行时间是确定的。它的执行时间是确定的。 中断服务程序由某个事件引发,它的执行一般是随中断服务程序由某个事件引发,它的执行一般是随 机的,不确定的。机的,不确定的。6 6 中断系统中断系统为实现计算机的中断功能而配置的相关硬件、软件的集合为实现计算机的中断功能而配置的相关硬件、软件的集合称为中断系统。称为中断系统。7中断工作方式的特点中断工作方式的特点1. 并行处理能力并行处理能力 实现实现CPU和多个外设同时工作,提高和多个外设同时工作,提高CPU效率。效率

5、。 2. 实时处理能力实时处理能力 计算机应用于实时控制时,对外部事件及时响应。计算机应用于实时控制时,对外部事件及时响应。故障处理能力故障处理能力及时处理故障,不影响其他程序的运行。及时处理故障,不影响其他程序的运行。 4 多道程序或多重任务的运行多道程序或多重任务的运行 在操作系统的调度下,运行多道程序或多重任务。在操作系统的调度下,运行多道程序或多重任务。8中断管理中断管理1. 对中断全过程的控制对中断全过程的控制 中断源发出中断请求时,中断源发出中断请求时,CPU能决定是否响应能决定是否响应这一中断。这一中断。 若允许响应这个中断请求,若允许响应这个中断请求,CPU在保护断点后,在保护

6、断点后,将控制转移到相应的中断服务程序去将控制转移到相应的中断服务程序去 中断处理完,中断处理完,CPU返回到断点处继续执行被中返回到断点处继续执行被中断的程序。断的程序。92. 中断源的识别中断源的识别 p 软件识别软件识别: 响应中断后,响应中断后, CPU进入中断处理程序。进入中断处理程序。 在这个程序里,在这个程序里,CPU逐个查询各中断源的状态,确逐个查询各中断源的状态,确 定是哪一个设备申请了中断。定是哪一个设备申请了中断。p 硬件识别硬件识别: 响应中断后,响应中断后, CPU进入一个进入一个“中断响应周期中断响应周期”。在这个周期里,申请中断的设备向在这个周期里,申请中断的设备

7、向CPU发送它的中断类型。发送它的中断类型。103 中断的优先权中断的优先权 优先权优先权:有多个中断源同时提出中断请求时,有多个中断源同时提出中断请求时,CPU响应中断的优先次序。响应中断的优先次序。(1 1)软件查询法)软件查询法 (2 2)分类申请法)分类申请法 (3 3)链式优先权排队)链式优先权排队菊花链法菊花链法(4 4)可编程中断控制器)可编程中断控制器“向量向量”优先权排队优先权排队11图图4-1设备设备3接口接口设备设备2接口接口设备设备1接口接口+5VCPU以以及总线及总线控制逻控制逻辑辑INTAINTRINTAINTR1INTA中断请求中断请求1=有有0=无无中断应答中断

8、应答菊花链中断优先级排队电路菊花链中断优先级排队电路124. 中断嵌套中断嵌套p CPU在处理中断过程中,如果出现了级别更高的中断在处理中断过程中,如果出现了级别更高的中断 请求,请求,CPU停止执行低级中断的处理程序而去优先处停止执行低级中断的处理程序而去优先处 理高级中断。理高级中断。p 等高级中断处理完毕后,再接着执行低级的未处理完等高级中断处理完毕后,再接着执行低级的未处理完 的程序。的程序。p 这种中断处理方式称为多重(级)中断或中断嵌套。这种中断处理方式称为多重(级)中断或中断嵌套。p CPU在响应中断时已将在响应中断时已将IF清零,一定要在中断处理程清零,一定要在中断处理程 序中

9、加入开中断指令,才有可能进行中断嵌套。序中加入开中断指令,才有可能进行中断嵌套。13中断嵌套 主程序主程序外设1中断服务程序外设1中断服务程序外设2中断服务程序外设2中断服务程序IRETIRET外设1外设1中断请求中断请求外设2外设2中断请求中断请求响应中断1响应中断1响应中断2响应中断2中断返回中断返回中断返回中断返回14中断过程中断过程1中断源请求中断中断源请求中断(1)外部中断源外部中断源 由外部硬件产生可屏蔽或不可屏由外部硬件产生可屏蔽或不可屏蔽中断的请求信号;蔽中断的请求信号;(2 2)内部中断源内部中断源 在程序运行过程中发生了指令异在程序运行过程中发生了指令异常或其他情况。常或其

10、他情况。(3 3)中断屏蔽中断屏蔽 CPU用程序的方法允许某些中断源发用程序的方法允许某些中断源发出中断请求,而禁止某些中断源请求中断出中断请求,而禁止某些中断源请求中断 在外设的接口内增设一个中断屏蔽触发器在外设的接口内增设一个中断屏蔽触发器 Q=0时,中断请求不能发往时,中断请求不能发往INTR; 适当地设定中断屏蔽触发器的状态,可以控制中断适当地设定中断屏蔽触发器的状态,可以控制中断 请求信号是否能够送到请求信号是否能够送到INTR端端152 中断响应中断响应 (1 1) 响应可屏蔽中断必须同时具备以下条件:响应可屏蔽中断必须同时具备以下条件: CPU处于允许中断状态(处于允许中断状态(

11、IF=1);); 没有不可屏蔽中断请求和总线请求没有不可屏蔽中断请求和总线请求; 当前指令执行结束。当前指令执行结束。(2 2) 响应不可屏蔽中断必须同时满足以下条件:响应不可屏蔽中断必须同时满足以下条件: 没有总线请求;没有总线请求; 当前指令执行结束。当前指令执行结束。(3 3) 响应内部中断的条件:响应内部中断的条件: 当前指令执行结束。当前指令执行结束。16CPU接受中断请求后转入中断响应周期:接受中断请求后转入中断响应周期:(1)识别中断源,取得中断源的中断类型;)识别中断源,取得中断源的中断类型;(2)将标志寄存器)将标志寄存器FLAGS和和CS、IP(断点)先后压入断点)先后压入

12、 堆栈保存;堆栈保存;(3)清除自陷标志位清除自陷标志位TF和中断允许标志位和中断允许标志位IF;(4)获得相应的中断服务程序入口地址,转入中断服务获得相应的中断服务程序入口地址,转入中断服务 程序。程序。中断响应周期中断响应周期17图图4-3中断过程中断过程识识别别中中断断源源F FL LA AG GS S, , C CS S, , I IP P进进栈栈清清T TF F, , I IF F标标志志读读中中断断向向量量表表转转入入中中断断服服务务程程序序保保护护现现场场开开中中断断中中断断处处理理关关中中断断恢恢复复现现场场中中断断返返回回主主程程序序中中断断响响应应周周期期中中断断服服务务程

13、程序序断断点点183 中断服务中断服务 (1)保护现场保护现场: 保护中断服务时要使用的寄存器保护中断服务时要使用的寄存器(压栈压栈);(2)开中断开中断: 中断服务时能响应更高级的中断请求;中断服务时能响应更高级的中断请求;(3)中断处理中断处理:执行输入输出或非常事件的处理;:执行输入输出或非常事件的处理;(4)关中断关中断: 恢复现场时不被新的中断打扰;恢复现场时不被新的中断打扰;(5)恢复现场恢复现场: 将堆栈中保存的内容弹出;将堆栈中保存的内容弹出;(6)中断返回中断返回 :通过中断返回指令:通过中断返回指令,弹出弹出IP,CS,FLAGS, 程序回到被中断的地址,恢复中断前的状态。

14、程序回到被中断的地址,恢复中断前的状态。194.2 8086 CPU中断系统8086的中断类型的中断类型中断类型中断类型:用用8位二进制表示,可以有位二进制表示,可以有256个不同的中断个不同的中断;中断请求输入引脚中断请求输入引脚:NMI、INTR;中断优先级中断优先级: INT 0(除法溢出)除法溢出)溢出中断(溢出中断(INTO)INT n指令指令 NMI INTR 单步中断。单步中断。20图图4-4不可屏蔽中断不可屏蔽中断8086微处理器中断逻辑微处理器中断逻辑INT n指令指令INT 3指令指令INTO指令指令除法除法溢出溢出单步单步中断中断8259ANMIINTR可可屏屏蔽蔽中中断

15、断请请求求8086 CPU中断中断211. 可屏蔽中断可屏蔽中断 IF= 0时,时,CPU不响应不响应INTR的中断请求的中断请求;IF= 1时,时,CPU响应响应INTR的中断请求。的中断请求。用用STI指令使指令使IF=1,称为开中断;称为开中断;用用CLI指令使指令使IF=0,称为关中断。称为关中断。系统复位后,或系统复位后,或CPU响应了任何一种中断后,都会使响应了任何一种中断后,都会使IF=0。应使用应使用STI指令使指令使IF=1,确保中断开放。确保中断开放。可屏蔽中断源由可屏蔽中断源由8259A统一管理,每片统一管理,每片8259A可以接可以接受受8个外部设备的中断请求。个外部设

16、备的中断请求。222 不可屏蔽中断不可屏蔽中断 NMI接收上升沿触发的中断请求信号接收上升沿触发的中断请求信号;输入脉冲应大于两个时钟周期输入脉冲应大于两个时钟周期;CPU对对NMI中断请求的响应,不受中断允许中断请求的响应,不受中断允许标志位标志位 IF控制控制;NMI中断类型码固定为中断类型码固定为2。233 内部中断内部中断 (1)除法溢出中断除法溢出中断(n=0):): 除数为零或商超过寄存器所能表达的范围。除数为零或商超过寄存器所能表达的范围。(2)单步中断单步中断(n=1) :TF=1,每执行完一条指令产生一次中断。每执行完一条指令产生一次中断。用于实现单步操作,是强有力的调试手段

17、。用于实现单步操作,是强有力的调试手段。(3)断点中断断点中断 (n=3) : INT 3指令产生一个中断类型码为指令产生一个中断类型码为3的断点中断。的断点中断。(4)INTO指令指令 (n=4) : OF=1,则则INTO指令引起类型码为指令引起类型码为4的内部中断;的内部中断; OF=0,此指令不起作用,程序顺序执行。此指令不起作用,程序顺序执行。(5) INT n指令指令24中断向量中断向量:中断服务程序的入口地址;中断服务程序的入口地址; 8086的中断向量表从内存的中断向量表从内存00000H开始存放;开始存放; 每个中断向量占用每个中断向量占用4个字节;个字节; 中断服务程序入口

18、的偏移地址存入两个低地址字节,中断服务程序入口的偏移地址存入两个低地址字节, 入口的段基址存入两个高地址字节;入口的段基址存入两个高地址字节; 256个中断向量占用个中断向量占用00000H003FFH共共1024个字节。个字节。的中断向量表的中断向量表25图图4-58086的的中中断断向向量量表表26AH=35H AL=中断类型中断类型 INT 21H 把原有的中断向量送把原有的中断向量送ES:BX AH=25HAL=中断类型中断类型DS:DX=中断向量中断向量 INT 21H 把新的中断向量送中断向量表把新的中断向量送中断向量表271. 不可屏蔽中断不可屏蔽中断NMI 不受不受CPU内部中

19、断允许标志内部中断允许标志IF的约束,优先权高于的约束,优先权高于INTR; 中断类型号中断类型号2;采用边沿触发(上升沿)方式;采用边沿触发(上升沿)方式(1)标志寄存器压入堆栈)标志寄存器压入堆栈(2)清除)清除IF标志和标志和TF标志标志(3)保存断点,把断点处的)保存断点,把断点处的CS和和IP内容先后压入堆栈内容先后压入堆栈(4)取出中断服务程序的入口地址,送入)取出中断服务程序的入口地址,送入IP和和CS(5)进入中断服务程序)进入中断服务程序用途用途:主板上主板上RAM奇偶错,奇偶错, I/O通道中的奇偶校验错,通道中的奇偶校验错, 8087协处理器异常中断。协处理器异常中断。对

20、外部中断的响应对外部中断的响应282可屏蔽中断可屏蔽中断INTR p 外设的中断请求首先送到外设的中断请求首先送到8259A,按照中断优先权排队,按照中断优先权排队;p 电平触发方式,高电平有效。电平触发方式,高电平有效。响应过程响应过程: 第一个第一个INTA总线周期,通知外部做好准备;总线周期,通知外部做好准备; 第二个第二个INTA总线周期,从外部获取中断类型号;总线周期,从外部获取中断类型号; 执行总线写周期,把执行总线写周期,把FLAGS压入堆栈,并清除压入堆栈,并清除IF,TF; 执行总线写周期,把执行总线写周期,把CS内容压栈;内容压栈; 执行总线写周期,把执行总线写周期,把IP

21、内容压栈;内容压栈; 执行总线读周期,中断服务程序入口偏移地址送入执行总线读周期,中断服务程序入口偏移地址送入IP; 执行总线读周期,中断服务程序入口段基址送入执行总线读周期,中断服务程序入口段基址送入CS。294.3 可编程中断控制器8259A 接收接收8路外部中断请求,通过级联可以扩展至路外部中断请求,通过级联可以扩展至64级;级; 优先权排队和控制,优先权方式可选;优先权排队和控制,优先权方式可选; 中断嵌套功能;中断嵌套功能; 向向CPU提供中断类型号;提供中断类型号; 对每一级编程进行屏蔽或开放。对每一级编程进行屏蔽或开放。的基本功能的基本功能30DB7DB0:双向三态数据总线双向三

22、态数据总线;IR7IR0: 外设向外设向8259A发出的中断请求信号,输入。发出的中断请求信号,输入。A0: 地址线,输入,用于选择内部端口。地址线,输入,用于选择内部端口。CS#: 片选信号,输入、低电平有效。片选信号,输入、低电平有效。RD#: 读信号,输入、低电平有效。读信号,输入、低电平有效。WR#: 写信号,输入、低电平有效。写信号,输入、低电平有效。INTA#: 中断响应信号,输入、低电平有效。中断响应信号,输入、低电平有效。INT: 中断请求信号,输出、高电平有效。中断请求信号,输出、高电平有效。CAS2CAS0:双向的级联线。双向的级联线。SP/EN: 主从设备设定主从设备设定

23、/缓冲器读写控制,双向双功能缓冲器读写控制,双向双功能引脚及内部结构引脚及内部结构31图图4-68259A引引脚脚32图图4-78259A的内部结构的内部结构332. 中断请求寄存器中断请求寄存器IRR 锁存外部设备送来的锁存外部设备送来的IR7IR0中断请求信号中断请求信号; 中断请求线变为高电平时,中断请求线变为高电平时,IRR中与之对应的一位被置中与之对应的一位被置1; 寄存器的内容可以被寄存器的内容可以被CPU读出。读出。3. 中断屏蔽寄存器中断屏蔽寄存器IMR 记录对每一级中断的屏蔽信号;记录对每一级中断的屏蔽信号; 置置1时,对应的外部中断请求线被屏蔽;时,对应的外部中断请求线被屏

24、蔽; 设置设置IMR起到改变中断请求优先级的效果。起到改变中断请求优先级的效果。344. 中断服务状态寄存器中断服务状态寄存器ISR 记录当前正在被服务的所有中断级记录当前正在被服务的所有中断级; CPU响应响应IRi中断请求,中断请求,ISR中对应第中对应第i位置位置1; 中断处理结束前,要使用指令清除这一位中断处理结束前,要使用指令清除这一位; 寄存器可以被寄存器可以被CPU读出。读出。5优先权处理器优先权处理器 识别和管理各中断请求信号的优先级别识别和管理各中断请求信号的优先级别; 多个中断请求信号同时出现时,优先权处理器根据多个中断请求信号同时出现时,优先权处理器根据 控制逻辑规定的优

25、先级规则和控制逻辑规定的优先级规则和IMR的内容来判断这的内容来判断这 些请求信号的最高优先级。些请求信号的最高优先级。356控制逻辑控制逻辑 初始化命令字寄存器初始化命令字寄存器ICW1ICW4:在系统初始化时置入,工作过程中保持不变。在系统初始化时置入,工作过程中保持不变。 操作命令字寄存器操作命令字寄存器OCW1OCW3:工作过程中根据需要设定。工作过程中根据需要设定。7 数据总线缓冲器数据总线缓冲器 8位的双向三态缓冲器,是位的双向三态缓冲器,是8259A与系统数据总线的接口。与系统数据总线的接口。368读读/写控制逻辑写控制逻辑 接收、执行接收、执行CPU的读的读/写命令。写命令。9

26、级联缓冲级联缓冲/比较器比较器 在级联方式的主在级联方式的主/从结构中,用来控制从结构中,用来控制8259A的级联。的级联。缓冲器缓冲器: SP/EN输出低电平时,开启双向缓冲器。输出低电平时,开启双向缓冲器。级联比较器级联比较器:主主8259A:用用CAS2CAS0输出被选中从片代码;输出被选中从片代码;从从8259A: 接收主器件送来的从片选择代码接收主器件送来的从片选择代码371 8259A的工作过程的工作过程(1)中断源在)中断源在IR0IR7上产生中断请求上产生中断请求;(2)中断请求被锁存,经)中断请求被锁存,经IMR“屏蔽屏蔽”,送优先权电路判优,送优先权电路判优;(3)控制逻辑

27、接收中断请求,向)控制逻辑接收中断请求,向CPU输出输出INT信号信号;(4)CPU接受接受8259A的的INT信号信号,进入连续两个进入连续两个INTA周期周期(5)优先权电路将最高优先权对应)优先权电路将最高优先权对应ISR中的位置位;中的位置位;(6)第二个)第二个INTA周期把中断类型号输出到数据总线;周期把中断类型号输出到数据总线;(7)CPU读取中断类型号,转移到相应的中断处理程序。读取中断类型号,转移到相应的中断处理程序。(8)中断处理结束前,向)中断处理结束前,向8259A发送发送EOI(中断结束)命中断结束)命 令,使令,使ISR相应位复位,本次中断到此结束。相应位复位,本次

28、中断到此结束。的工作方式的工作方式382 8259A的优先权管理的优先权管理 (1)固定优先级固定优先级中断源的优先级由它所连接的引脚编号决定中断源的优先级由它所连接的引脚编号决定; 全嵌套方式全嵌套方式 :中断优先权级别固定,中断优先权级别固定,IR0优先权最高,优先权最高,IR7最低。最低。 特殊全嵌套特殊全嵌套 :接收同一引脚上的第二次中断请求。接收同一引脚上的第二次中断请求。(2)循环优先级循环优先级各个中断申请具有大体相同的优先级;各个中断申请具有大体相同的优先级;有有优先权自动循环方式优先权自动循环方式和和优先权特殊循环方式优先权特殊循环方式。39 3. 中断屏蔽方式中断屏蔽方式(

29、1)普通屏蔽方式普通屏蔽方式 通过将中断屏蔽字写入通过将中断屏蔽字写入IMR实现;实现; 写入某位为写入某位为“1”,对应的中断请求被屏蔽;为,对应的中断请求被屏蔽;为“0”开放。开放。(2)特殊屏蔽方式特殊屏蔽方式 采用特殊屏蔽方式并用屏蔽字对采用特殊屏蔽方式并用屏蔽字对IMR中某一位置中某一位置“1”, 会同时使会同时使ISR中对应位清中对应位清“0”。 对屏蔽位的设置部分地改变了中断优先权。对屏蔽位的设置部分地改变了中断优先权。404. 中断结束方式中断结束方式中断结束命令(中断结束命令(EOI):将将ISR中的相应位清中的相应位清“0”,表示中断处理结束。,表示中断处理结束。(1)自动

30、中断结束方式(自动中断结束方式(AEOI) 8259A在第二个中断响应周期在第二个中断响应周期INTA信号的后沿,自动信号的后沿,自动 将将ISR中被响应中断级的对应位清中被响应中断级的对应位清“0”。(2)非自动中断结束方式(非自动中断结束方式(EOI) 从中断服务程序返回前,在程序里向从中断服务程序返回前,在程序里向8259A输出一个中输出一个中 断结束命令(断结束命令(EOI),),把把ISR对应位清对应位清“0”。一般的中断结束方式一般的中断结束方式:由由8259A自动选择优先权最高的位。自动选择优先权最高的位。特殊的中断结束命令特殊的中断结束命令:指令内指明要清除指令内指明要清除IS

31、R中的某一位。中的某一位。41注意注意!在非自动中断结束方式下,如果在程序里忘在非自动中断结束方式下,如果在程序里忘了发送中断结束命令,那么,了发送中断结束命令,那么,8259A将不再响将不再响应这个中断以及比它级别低的中断请求。应这个中断以及比它级别低的中断请求。425. 8259A查询工作方式查询工作方式 工作在程序查询方式时,工作在程序查询方式时,8259A不向不向CPU发发INT信号;信号; CPU通过查询通过查询8259A了解有无中断;了解有无中断; 如果有中断发生,转入相应的服务程序。如果有中断发生,转入相应的服务程序。设置查询方式的过程设置查询方式的过程: 关闭中断;关闭中断;

32、用输出指令把用输出指令把“查询方式命令字查询方式命令字”送到送到8259A; 对对8259A执行一条输入指令,读取查询字执行一条输入指令,读取查询字 查询字格式为查询字格式为: I XXXXW2WlW0 I=1,有中断请求,有中断请求,W2WlW0为最高优先级编码。为最高优先级编码。43初始化命令字初始化命令字: 在系统初始化时写入;在系统初始化时写入; 用来设定用来设定8259的基本工作方式。的基本工作方式。操作命令字操作命令字: 在初始化后的任何时刻写入在初始化后的任何时刻写入8259A; 用来动态地控制用来动态地控制8259A的操作。的操作。的编程的编程44图图4-81. 初始化命令字初

33、始化命令字ICW(1)初始化命令字)初始化命令字ICW10A0D7D0D2D1SNGLD5LTIMD41D31D61:单单片片工工作作0:级级连连方方式式1:电电平平触触发发0:边边沿沿触触发发45注意!注意!向向8259A送入一条送入一条A0=0、D41的命令(的命令(ICW1):p 启动启动8259A的初始化过程,的初始化过程,p 相当于相当于RESET信号的作用,自动完成下列操作:信号的作用,自动完成下列操作: 清除中断屏蔽寄存器清除中断屏蔽寄存器IMR; 设置以设置以IR0为最高优先级,为最高优先级,IR7为最低优先级的全嵌为最低优先级的全嵌套方式套方式; 固定中断优先权排序。固定中断

34、优先权排序。46图图4-9(2)初始化命令字)初始化命令字ICW2T7A0T3T4T5T6D7D6D5D4D3D2D1D0 1中中断断类类型型码码的的高高五五位位T7T347图图4-10(3)初始化命令字)初始化命令字ICW3(主片)主片)A0D7D6D5D4D3D2D1D011:该该引引脚脚连连接接有有从从片片0 0:该该引引脚脚未未连连接接从从片片S5S7S6S4S3S2S1S048图图4-11A0D7D6D5D4D3D2D1D01ID2ID0:本本从从片片连连接接主主片片引引脚脚号号ID0ID1ID2(3)初始化命令字)初始化命令字ICW3(从片)从片)49图图4-12(4)初始化命令字

35、初始化命令字ICW4A0D7D6D5D4D3D2D1D010 x: 非缓冲方式非缓冲方式10:缓冲方式:缓冲方式/从片从片11:缓冲方式:缓冲方式/主片主片0SFNM00BUFAEOIM/S11:自动自动EOI0:非自动非自动EOI1:特殊全嵌套:特殊全嵌套0:一般全嵌套:一般全嵌套50(5)8259A初始化初始化按以下顺序对按以下顺序对82598259A A初始化:初始化:单片单片8259A:ICW1、ICW2、ICW4级联方式级联方式:ICW1、ICW2、ICW3、ICW4注意注意:级联方式下,每一片级联方式下,每一片8259A都要独立地按上都要独立地按上 面顺序写入初始化命令字。面顺序写

36、入初始化命令字。51 单片工作,边沿触发,全嵌套;单片工作,边沿触发,全嵌套; 中断类型中断类型08H0FH,端口地址端口地址20H,21H; 非缓冲方式,非中断自动结束,非特殊全嵌套方式;非缓冲方式,非中断自动结束,非特殊全嵌套方式;初始化程序初始化程序: MOVAL, 00010011B OUT20H, AL ; ICW1:单片,边沿触发单片,边沿触发MOVAL, 00001000B OUT21H, AL ; ICW2 :中断类型中断类型08H0FH MOVAL, 00000001BOUT21H, AL ; ICW4 :非中断自动结束非中断自动结束IBM-PC微型计算机内微型计算机内825

37、9A的工作方式的工作方式52例例:二片二片8259A进行级联,边沿触发,非缓冲方进行级联,边沿触发,非缓冲方式,非自动中断结束,式,非自动中断结束,CAS0CAS2互连。互连。53主片初始化程序主片初始化程序: MOV AL, 00010001B OUT 20H, AL ; ICW1:边沿触发,级联边沿触发,级联 MOV AL, 00001000B OUT 21H,AL ; ICW2 :中断类型中断类型08H0FH MOV AL, 00000100B OUT 21H, AL ; ICW3 :IR2连有从片连有从片 MOV AL, 00010001B; ICW4 : 特殊全嵌套,非缓冲特殊全嵌套

38、,非缓冲 OUT 21H, AL; ICW4 : 非自动中断结束非自动中断结束54 从片初始化程序从片初始化程序: MOV AL, 00010001B OUT 0A0H, AL ; ICW1:边沿触发,级联边沿触发,级联 MOV AL, 01110000B OUT 0A1H, AL ; ICW2 :中断类型中断类型70H77H MOV AL, 00000010B OUT 0A1H, AL ; ICW3 :INT引脚连主片引脚连主片IR2 MOV AL, 00000001B; ICW4 :非自动中断结束非自动中断结束 OUT 0A1H, AL ; ICW4 :非特殊全嵌套非特殊全嵌套,非缓冲非缓

39、冲552 操作命令字操作命令字OCW对对8259A预置完毕后预置完毕后: 8259A进入设定的工作状态进入设定的工作状态; 准备接收由准备接收由IR输入的中断请求信号输入的中断请求信号; 按固定优先级(缺省方式)来管理中断请求。按固定优先级(缺省方式)来管理中断请求。运行中可以写入操作控制字,对运行中可以写入操作控制字,对8259A管理中断的方式进行管理中断的方式进行修改和设定。修改和设定。 有有OCW1、OCW2和和OCW3三个操作控制字;三个操作控制字; OCW按需要选择写入,没有固定顺序。按需要选择写入,没有固定顺序。56图图4-14(1)操作控制字操作控制字OCWl57例例:需要屏蔽需

40、要屏蔽IR4的中断输入,同时不改变其他中断输入的屏蔽的中断输入,同时不改变其他中断输入的屏蔽状态,可以用如下的三条指令实现:状态,可以用如下的三条指令实现:INAL, 21H;取屏蔽寄存器当前值取屏蔽寄存器当前值OR AL, 00010000B;将将D4 位置位置1OUT21H, AL;写回改变后的屏蔽字写回改变后的屏蔽字反之,需要清除对反之,需要清除对IR2的中断屏蔽:的中断屏蔽:INAL, 21H;取屏蔽寄存器当前值取屏蔽寄存器当前值AND AL, 11111011B;将将D2 位清位清0OUT21H, AL;写回改变后的屏蔽字写回改变后的屏蔽字操作控制字操作控制字OCW1应用应用58图图

41、4-15(2)操作控制字操作控制字OCW259一般的中断结束命令一般的中断结束命令:MOVAL, 20HOUT20H, AL操作控制字操作控制字OCW2应用应用60图图4-16(3)操作控制字)操作控制字OCW361OCW3用途用途: 设置设置/清除特殊屏蔽命令清除特殊屏蔽命令 发出读寄存器命令:发出读寄存器命令: 设置设置RR=1,RIS=0后,用后,用IN指令读偶端口,可以将指令读偶端口,可以将 IRR读入读入CPU。 设置设置RR=1,RIS=1后,用后,用IN指令读偶端口,可以将指令读偶端口,可以将 ISR读入读入CPU。操作控制字操作控制字OCW3应用应用62p发出查询命令;发出查询

42、命令; 设置设置P=1后,用后,用IN指令读偶端口,可以将中断查询字指令读偶端口,可以将中断查询字 读入读入CPU: I X X X X W2 Wl W0 I=1表示有中断请求,表示有中断请求,W2 Wl W0表示请求服务的最高表示请求服务的最高 优先级编码。优先级编码。注意注意: 设置了设置了P=1的查询命令后,的查询命令后,8259A不再通过不再通过INT引脚向引脚向 CPU发送中断请求。发送中断请求。 要取消查询方式,可以再次发出要取消查询方式,可以再次发出OCW3,并使并使P=0。操作控制字操作控制字OCW3应用应用63例例:BIOS中读取中读取ISR寄存器的程序段:寄存器的程序段:M

43、OVAL,00001011B; OCW3命令字命令字(读读ISR)OUT20H,AL; 写入写入OCW3端口端口NOP;延时延时INAL,20H;将将ISR内容送入内容送入ALMOVAH,AL;将将ISR内容转存入内容转存入AHORAL,AH;是全是全0否否?JNZAW-INT;否,转硬件中断程序否,转硬件中断程序操作控制字操作控制字OCW3应用应用644.4 中断方式输入输出中断方式中断方式IO接口接口中断方式输入过程中断方式输入过程: 外部设备输入数据;外部设备输入数据; 中断请求触发器置位;中断请求触发器置位; 接口向接口向CPU申请中断;申请中断; CPU响应中断,中断请求触发器被复位

44、;响应中断,中断请求触发器被复位; CPU在中断服务程序中读取数据。在中断服务程序中读取数据。65图图4-17中断方式输入接口中断方式输入接口输输入入设设备备输输入入锁锁存存器器中断中断请求请求输输入入缓缓冲冲器器地地址址译译码码1D0D7RD选通选通+5VINTAA0A15M/IOQU2R中断中断屏蔽屏蔽 & &QINTR66中断屏蔽触发器的作用中断屏蔽触发器的作用: 控制外设接口的中断请求信号能否发送给控制外设接口的中断请求信号能否发送给CPU。 中断屏蔽触发器可以看作该接口控制寄存器的一位中断屏蔽触发器可以看作该接口控制寄存器的一位图图4-174-17是不完整的是不完整的

45、: 没有给出中断屏蔽触发器的写入电路;没有给出中断屏蔽触发器的写入电路; 解决中断优先权的电路;解决中断优先权的电路; 向向CPU发送中断类型号的电路。发送中断类型号的电路。67图图4-18输输入入设设备备输输入入锁锁存存器器中断中断请求请求输输入入缓缓冲冲器器地地址址译译码码1D0D7RD选通选通+5VINTR(送往送往8259A)A0A15M/IOQU2R68中断方式下,完整的输入输出程序应由二个程序中断方式下,完整的输入输出程序应由二个程序模块配合完成:模块配合完成:主程序主程序:完成输入输出所需要的完成输入输出所需要的“初始化初始化”工作和结束工作;工作和结束工作;中断服务程序中断服务

46、程序:完成数据传输和输入输出控制工作。完成数据传输和输入输出控制工作。中断方式输入输出程序设计中断方式输入输出程序设计691. 主程序设计主程序设计(1) CPU初始化:初始化:设置堆栈,设置中断向量,开放中断。设置堆栈,设置中断向量,开放中断。(2)中断控制器)中断控制器8259A的初始化:的初始化:选择工作方式,设置优先级、清除屏蔽位等。选择工作方式,设置优先级、清除屏蔽位等。(3)接口的初始化:)接口的初始化:设置接口工作方式,设置中断开放位等。设置接口工作方式,设置中断开放位等。(4)中断服务程序的初始化:)中断服务程序的初始化: 设置中断服务程序使用的缓冲区指针设置中断服务程序使用的

47、缓冲区指针,计数器,状态位等。计数器,状态位等。注意:注意: 中断服务程序的指针、计数器、状态位等只能存放在中断服务程序的指针、计数器、状态位等只能存放在 内存单元。内存单元。 对于输出过程,应在主程序中启动第一次输出。对于输出过程,应在主程序中启动第一次输出。 输入输出完成之后,主程序要根据需要做好结束工作。输入输出完成之后,主程序要根据需要做好结束工作。 如:处理输入的数据,关闭中断等。如:处理输入的数据,关闭中断等。702. 中断服务程序设计中断服务程序设计 保护现场保护现场:把所有中断服务程序里使用、会改变值的寄存器压入把所有中断服务程序里使用、会改变值的寄存器压入 堆栈。堆栈。 开放

48、中断开放中断:允许允许CPU响应优先级更高、更紧急的中断。响应优先级更高、更紧急的中断。 输入输出处理输入输出处理: 关闭中断关闭中断:关闭中断可以避免不必要的中断嵌套,发关闭中断可以避免不必要的中断嵌套,发EOI命令。命令。 恢复现场恢复现场:按照按照“先进后出先进后出”的原则,恢复各寄存器的内容。的原则,恢复各寄存器的内容。 中断返回中断返回:用用IRET指令返回被中断的程序。指令返回被中断的程序。71中断服务程序应注意的几个问题中断服务程序应注意的几个问题: 中断服务程序要短小精悍,运行时间短,执行一次中断服中断服务程序要短小精悍,运行时间短,执行一次中断服务程序的时间要大大少于二次中断

49、的时间间隔。对于耗费时间务程序的时间要大大少于二次中断的时间间隔。对于耗费时间多的数据处理工作,应交由主程序完成。多的数据处理工作,应交由主程序完成。 一般的情况下,应避免在中断服务程序内进行一般的情况下,应避免在中断服务程序内进行DOS功能调功能调用。那样做,可能产生这些程序的用。那样做,可能产生这些程序的“重入重入”。DOS功能调用程功能调用程序不具备重入功能,会产生难以预料的结果。需要进行控制台序不具备重入功能,会产生难以预料的结果。需要进行控制台IO操作可以使用操作可以使用BIOS调用。调用。 在输入输出处理完成后,一定要向在输入输出处理完成后,一定要向8259A发送中断结束命发送中断

50、结束命令(令(EOI)。)。如果是级联的如果是级联的8259A的从片上的中断,则需要的从片上的中断,则需要向主片和从片分别发送中断结束命令。否则,该设备的下一次向主片和从片分别发送中断结束命令。否则,该设备的下一次中断就不能被响应,比它级别低的中断从此也不能被响应。中断就不能被响应,比它级别低的中断从此也不能被响应。72 一个完整的中断方式输入程序一个完整的中断方式输入程序设设: 数据端口地址为数据端口地址为240H 使用使用8259A的的IR3引脚申请中断,中断类型引脚申请中断,中断类型0BH 8259A端口地址为端口地址为20H,21H 输入以输入以“回车回车”字符表示结束。字符表示结束。

51、中断方式应用中断方式应用73DATA SEGMENTIN_BUFFERDB100 DUP(?)(?);接收缓冲区接收缓冲区,假设一次输入不超过假设一次输入不超过100字节字节IN_POINTER DW?;接收缓冲区指针接收缓冲区指针DONEDB0;完成标志,完成标志,=1表示输入已完成表示输入已完成DATA ENDS数据段定义数据段定义74CODESEGMENTASSUMECS: CODE, DS: DATABEGIN:MOVAX, SEGIN_INTR;IN_INTR是中断服务程序入口是中断服务程序入口MOVDS, AXLEADX, IN_INTRMOVAX, 250BH;AH 中为功能号,

52、中为功能号,AL中为中断类型中为中断类型 INT21H;装载装载0BH中断向量中断向量MOVAX, DATAMOVDS, AX;装载数据段段基址装载数据段段基址主程序(主程序(1)75MOVIN_POINTER, OFFSET IN_BUFFER;设置指针初值设置指针初值MOVDONE, 0 ;设置完成标志为设置完成标志为“未完成未完成”INAL, 21HANDAL, 11110111BOUT21H, AL;清除清除IR3的屏蔽位的屏蔽位STI;开放中断开放中断W:CMPDONE, 0JZW;等待完成等待完成.;结束处理;结束处理MOVAX, 4C00HINT21H主程序(主程序(2)76IN_INTRPROCFARPUSHDS;保护现场保护现场PUSHAXPUSHBXPUSHDXSTI;开放中断,允许响应更高级中断开放中断,允许响应更高级中断MOVAX, DATAMOVDS, AX;在中断服务程序中重新装载在中断服务程序中重新装载DS寄存器寄存器MOVBX,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论