第6章微型计算机的中断系统_第1页
第6章微型计算机的中断系统_第2页
第6章微型计算机的中断系统_第3页
第6章微型计算机的中断系统_第4页
第6章微型计算机的中断系统_第5页
已阅读5页,还剩124页未读, 继续免费阅读

下载本文档

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

文档简介

1、第6章 微型计算机的中断系统 教学内容:中断的基本概念,中断的类型,中断向量表,中 断源的识别,中断响应和处理过程;8259A中断控制器,功能 与结构,8259A的编程,中断优先权的确定,应用举例。 教学重点: 深刻理解8086CPU的中断结构,中断类型,中断 矢量,中断响应过程。了解8259A的编程结构及寄存器的作用, 理解8259A工作方式、有关命令和初始化编程及其在PC机和 实际中的应用。 教学难点:中断嵌套;中断向量表(实模式、保护模式下); 8259A的编程 2 6.1 中断原理 6.2 8086 CPU中断系统 6.3 可编程中断控制器8259A 6.4 中断方式输入输出 6.5

2、8259A在微机系统中的应用 6.6 *现代微机中断控制 3 6.1 中断原理 6.1.1 6.1.1 中断的基本概念中断的基本概念 1中断 由于某个事件的发生,CPU暂停当前正在执行的程序,转 而执行处理该事件的一个程序。 该程序执行完成后,CPU接着执行被暂停的程序。 这个过 程称为中断。 4 2 2中断源中断源 引发中断的事件称为中断源引发中断的事件称为中断源 内部中断内部中断(在(在CPU内部的中断源):内部的中断源): 程序异常(运算溢出等),程序异常(运算溢出等), 陷阱中断(例如,单步运行程序等),陷阱中断(例如,单步运行程序等), 软件中断(执行特殊指令)等。软件中断(执行特殊

3、指令)等。 外部中断外部中断(发生在(发生在CPU外部的中断):外部的中断): 外部故障(电源故障,存储器读写校验错)外部故障(电源故障,存储器读写校验错) 外部事件(定时时间到,外部特殊信号)外部事件(定时时间到,外部特殊信号) IO事件(外部设备完成一次事件(外部设备完成一次IO操作,请求数据传输)操作,请求数据传输) 5 3 3中断识别中断识别 用若干位二进制表示的中断源的编号。用若干位二进制表示的中断源的编号。 4 4中断断点中断断点 由于中断的发生,某个程序被暂停执行。由于中断的发生,某个程序被暂停执行。 该程序中即将执行,由于中断没有被执行的那条指令的地该程序中即将执行,由于中断没

4、有被执行的那条指令的地 址称为中断断点,简称断点。址称为中断断点,简称断点。 6 5 5中断服务程序中断服务程序 处理中断事件的程序段称为中断服务程序。处理中断事件的程序段称为中断服务程序。 如:故障中断服务程序,输入输出中断服务程如:故障中断服务程序,输入输出中断服务程 序。序。 不同类型的中断需要不同的中断服务程序。不同类型的中断需要不同的中断服务程序。 中断服务程序不同于一般的子程序:中断服务程序不同于一般的子程序: 子程序由某个程序调用,它的调用是由程序设子程序由某个程序调用,它的调用是由程序设 定的,它的执行时间是确定的。定的,它的执行时间是确定的。 中断服务程序由某个事件引发中断服

5、务程序由某个事件引发 ,它的执行一般,它的执行一般 是随机的,不确定的。是随机的,不确定的。 7 6 6中断系统中断系统 为实现计算机的中断功能而配置的为实现计算机的中断功能而配置的相关硬件、软相关硬件、软 件的集合称为中断系统件的集合称为中断系统。 8 6.1.2 6.1.2 计算机采用中断控制技术主要用在以下方面:计算机采用中断控制技术主要用在以下方面: 1. 提高并行处理能力 实现CPU和多个外设同时工作,提高CPU效率。 2. 实时处理能力 计算机应用于实时控制时,对外部事件及时响应。 故障处理能力 及时处理故障,不影响其他程序的运行。 4多道程序或多重任务的运行 在操作系统的调度下,

6、运行多道程序或多重任务。 9 以下概念是非抢占式、抢占式调度与是非抢占式、抢占式内核,中 断及服务程序对任务调度的影响(补充不考试) 时 间 低优先级任务 ISR ISR使高优先级任务就绪 低优先级任务释放CPU 高优先级任务 1 2 3 4 5 6 7 非抢占式调度 10 抢占式调度 时 间 低优先级任务 ISR ISR使高优先级任务就绪 高优先级任务 1 2 3 4 5 6 7 11 时 间 低优先级任务ISR高优先级任务 1 2 3 4 5 内核服务 非抢占式内核 12 时 间 低优先级任务ISR高优先级任务 1 2 3 4 5 内核服务 抢占式内核 13 6.1.3 6.1.3 中断管

7、理中断管理 1. 对中断全过程的控制 中断源发出中断请求时,CPU能决定是否响应这一中断。 若允许响应这个中断请求,CPU在保护断点后,将控制转移到 相应的中断服务程序去 中断处理完,CPU返回到断点处继续执行被中断的程序。 14 2. 2. 中断源的识别中断源的识别 软件识别软件识别: 响应中断后,响应中断后, CPU进入中断处理程序。进入中断处理程序。 在这个程序里,在这个程序里,CPU逐个查询各中断源的状态,逐个查询各中断源的状态, 确确 定是哪一个设备申请了中断。定是哪一个设备申请了中断。 硬件识别:硬件识别: 响应中断后,响应中断后, CPU进入一个进入一个“中断响应周期中断响应周期

8、”。 在这个周期里,申请中断的设备向在这个周期里,申请中断的设备向CPU发送它的发送它的 中断类型中断类型。 15 3 3中断的优先权中断的优先权 (级级) 优先权优先权(级级): 16 (1)软件查询法 (2)分类申请法 (3)链式优先权排队菊花链法 (4)可编程中断控制器“向量”优先权排队 17 中断程序入口 Y N Y N Y N 保护现场 是A设备 是B设备 是C设备 恢复现场 开中断,返回 A中断服务程序 B中断服务程序 C中断服务程序 软件查询方法流程图 18 图 6-1 设备设备3 接口接口 设备设备2 接口接口 设备设备1 接口接口 +5V CPU以以 及总线及总线 控制逻控制

9、逻 辑辑 INTA INTR INTA INTR 1 INTA 中断请求中断请求 1=有有 0=无无 中断应答中断应答 菊花链中断优先级排队电路 19 4. 4. 中断嵌套中断嵌套 CPU在处理中断过程中,如果出现了级别更高的中断在处理中断过程中,如果出现了级别更高的中断 请求,请求,CPU停止执行低级中断的处理程序而去优先处停止执行低级中断的处理程序而去优先处 理高级中断。理高级中断。 等高级中断处理完毕后,再接着执行低级的未处理完等高级中断处理完毕后,再接着执行低级的未处理完 的程序。的程序。 这种中断处理方式称为多重(级)中断或中断嵌套。这种中断处理方式称为多重(级)中断或中断嵌套。 C

10、PU在响应中断时已将在响应中断时已将IF清零,一定要在中断处理程清零,一定要在中断处理程 序中加入开中断指令,才有可能进行中断嵌套。序中加入开中断指令,才有可能进行中断嵌套。 20 中断嵌套 主程序主程序 外设1中断服务程序外设1中断服务程序 外设2中断服务程序外设2中断服务程序 IRETIRET 外设1外设1 中断请求中断请求 外设2外设2 中断请求中断请求 响应中断1响应中断1响应中断2响应中断2 中断返回中断返回 中断返回中断返回 21 main() . .; a=0; b=1; c=2; void (void) 保护现场; .; a1=0; b1=1; c1=2; 中断返回; void

11、 (void) 保护现场; .; a2=0; b2=1; c2=2; 中断返回; 22 6.1.4 6.1.4 中断过程中断过程 1中断源请求中断 (1)外部中断源 由外部硬件产生可屏蔽或不可屏蔽中断的请 求信号; (2)内部中断源 在程序运行过程中发生了指令异常或其他情 况。 (3)中断屏蔽 CPU用程序的方法允许某些中断源发出中断请 求,而禁止某些中断源请求中断 在外设的接口内增设一个中断屏蔽触发器 Q=0时,中断请求不能发往INTR; 适当地设定中断屏蔽触发器的状态,可以控制中断 请求信号是否能够送到INTR端 23 2 2中断响应中断响应 (1) 响应响应可屏蔽可屏蔽中断必须同时具备以

12、下条件:中断必须同时具备以下条件: CPU处于允许中断状态(处于允许中断状态(IF=1);); 没有不可屏蔽中断请求和总线请求没有不可屏蔽中断请求和总线请求; 当前指令执行结束。当前指令执行结束。 (2) 响应响应不可屏蔽不可屏蔽中断必须同时满足以下条件:中断必须同时满足以下条件: 没有总线请求;没有总线请求; 当前指令执行结束。当前指令执行结束。 (3) 响应响应内部中断内部中断的条件:的条件: 当前指令执行结束。当前指令执行结束。 24 CPU接受中断请求后转入中断响应周期:接受中断请求后转入中断响应周期: (1)识别中断源,取得中断源的中断类型;)识别中断源,取得中断源的中断类型; (2

13、)将标志寄存器)将标志寄存器FLAGS和和CS、IP(断点)(断点)先后压入先后压入 堆栈保存;堆栈保存; (3)清除自陷标志位)清除自陷标志位TF和中断允许标志位和中断允许标志位IF; (4)获得相应的中断服务程序入口地址,转入中断服务)获得相应的中断服务程序入口地址,转入中断服务 程序。程序。 中断响应周期 25 图 6-3 中断过程 识别中断源识别中断源 FLAGS, CS, IP进栈FLAGS, CS, IP进栈 清TF, IF标志清TF, IF标志 读中断向量表读中断向量表 转入中断服务程序转入中断服务程序 保护现场保护现场 开中断开中断 中断处理中断处理 关中断关中断 恢复现场恢复

14、现场 中断返回中断返回 主程序主程序中断响应周期中断响应周期中断服务程序中断服务程序 断点断点 26 3 3中断服务中断服务 (1)保护现场)保护现场: 保护中断服务时要使用的寄存器保护中断服务时要使用的寄存器(压栈压栈); (2)开中断)开中断: 中断服务时能响应更高级的中断请求;中断服务时能响应更高级的中断请求; (3)中断处理:执行输入输出或非常事件的处理;)中断处理:执行输入输出或非常事件的处理; (4)关中断)关中断: 恢复现场时不被新的中断打扰;恢复现场时不被新的中断打扰; (5)恢复现场)恢复现场: 将堆栈中保存的内容弹出;将堆栈中保存的内容弹出; (6)中断返回)中断返回 :通

15、过中断返回指令:通过中断返回指令,弹出弹出IP,CS,FLAGS, 程序回到被中断的地址,恢复中断前的状态。程序回到被中断的地址,恢复中断前的状态。 27 6.2 8086 CPU中断系统 6.2.1 80866.2.1 8086的中断类型的中断类型 中断类型中断类型:用用8位二进制表示,可以有位二进制表示,可以有256个不同的中断个不同的中断; 中断请求输入引脚中断请求输入引脚:NMI、INTR; INT 0(除法溢出)除法溢出)溢出中断(溢出中断(INTO)INT n指令指令 NMI INTR 单步中断。单步中断。 28 可分为: A 外部中断 (1)可屏蔽中断INTR、(2)非可屏蔽中断

16、NMI B 内部中断 (1)除数零中断、(2)单步执行中断、(3)溢出中断、 (4)指令中断 29 图 6-4 不可屏蔽中断不可屏蔽中断 8086微处理器中断逻辑微处理器中断逻辑 INT n 指令指令 INT 3 指令指令 INTO 指令指令 除法除法 溢出溢出 单步单步 中断中断 8259A NMI INTR 可可 屏屏 蔽蔽 中中 断断 请请 求求 8086 CPU中断 30 1. 1. 可屏蔽中断可屏蔽中断 IF= 0时,时,CPU不响应不响应INTR的中断请求的中断请求; IF= 1时,时,CPU响应响应INTR的中断请求。的中断请求。 用用STI指令使指令使IF=1,称为开中断;,称

17、为开中断; 用用CLI指令使指令使IF=0,称为关中断。,称为关中断。 系统复位后,或系统复位后,或CPU响应了任何一种中断后,都响应了任何一种中断后,都 会使会使IF=0。 使用使用STI指令使指令使IF=1,确保中断开放。,确保中断开放。 可屏蔽中断源由可屏蔽中断源由8259A统一管理,每片统一管理,每片8259A可以可以 接接 受受8个外部设备的中断请求。个外部设备的中断请求。 31 2 2不可屏蔽中断不可屏蔽中断 NMI接收上升沿触发的中断请求信号接收上升沿触发的中断请求信号; 输入脉冲应大于两个时钟周期输入脉冲应大于两个时钟周期; CPU对对NMI中断请求的响应,不受中断允许标中断请

18、求的响应,不受中断允许标 志位志位IF控制控制; NMI中断类型码固定为中断类型码固定为2。 32 3 3内部中断内部中断 (1)除法溢出中断除法溢出中断(n=0):): 除数为零或商超过寄存器所能表达的范围。除数为零或商超过寄存器所能表达的范围。 (2)单步中断单步中断(n=1) : TF=1,每执行完一条指令产生一次中断。,每执行完一条指令产生一次中断。 用于实现单步操作,是强有力的调试手段。用于实现单步操作,是强有力的调试手段。 (3)断点中断断点中断 (n=3) : INT 3指令产生一个中断类型码为指令产生一个中断类型码为3的断点中断的断点中断。 (4)INTO指令指令 (n=4)

19、: OF=1,则,则INTO指令引起类型码为指令引起类型码为4的内部中断;的内部中断; OF=0,此指令不起作用,程序顺序执行。,此指令不起作用,程序顺序执行。 (5) INT n指令指令 33 1 实模式实模式(8086) 中断向量中断向量:中断服务程序的入口地址的指示器:中断服务程序的入口地址的指示器; 8086的中断向量表从内存的中断向量表从内存00000H开始存放;开始存放; 每个中断服务程序入口地址占用每个中断服务程序入口地址占用4个字节;个字节; 中断服务程序入口的偏移地址存入两个低地址字节,中断服务程序入口的偏移地址存入两个低地址字节, 入口的段基址存入两个高地址字节;入口的段基

20、址存入两个高地址字节; 256个中断向量占用个中断向量占用00000H003FFH共共1024个字节。个字节。 6.2.2 中断向量表 34 中断向量表由三部分组成。 (1)中断类型号04为专用中断指针,占用0000H0013H的20 个字节,并且用户不能对其修改。 (2)中断类型号513为保留中断指针,占用0013H007FH的 108个字节,这是Intel公司保留的中断指针,用户不应使用。 (3)中断类型号32255为用户使用的中断指针,占用 0080H03FFH的896个字节,它可由用户指定。 35 图6-5 8086的中断向量表 0000H 0004H 0008H 000CH 0010

21、H 0014H 0080H 用户使 用的中 断指针 备用 的中 断指 针 除数零中断 单步中断 NMI 中断 单字节中断 溢出中断 专 用 的 中 断 指 针 CS IP 36 37 38 AH=35H AL=中断类型中断类型 INT 21H 把原有的中断向量送把原有的中断向量送ES:BX AH=25H AL=中断类型中断类型 DS:DX=中断向量中断向量 INT 21H 把新的中断向量送中断向量表把新的中断向量送中断向量表 39 2保护模式使用中断描述符表 保护模式为32位寻址。中断描述符表IDT每一表项对应一 个中断向量号,表项称为中断门描述符、陷阱门(单步运行)描 述符。这些门描述符为8

22、字节长,对应256个中断向量号,IDT 表长为2KB。由中断描述符表寄存器IDTR来指示IDT的内存地 址。 以中断向量号乘以8作为访问IDT的偏移,读取相应的中断 门/陷阱门描述符表项。门描述符 给出中断服务子程序入口地 址(段,偏移),其中32位偏移量装入EIP寄存器,16位的段值 装 入CS寄存器。由于此段值是选择符,还必须访问GDT或 LDT,才得到段的基地址。 40 41 1. 1. 不可屏蔽中断不可屏蔽中断NMINMI 不受不受CPU内部中断允许标志内部中断允许标志IF的约束,优先权高的约束,优先权高 于于INTR; 中断类型号中断类型号2;采用边沿触发(上升沿)方式;采用边沿触发

23、(上升沿)方式 (1)标志寄存器压入堆栈)标志寄存器压入堆栈 (2)清除)清除IF标志和标志和TF标志标志 (3)保存断点,把断点处的)保存断点,把断点处的CS和和IP内容先后压入堆栈内容先后压入堆栈 (4)取出中断服务程序的入口地址,送入)取出中断服务程序的入口地址,送入IP和和CS (5)进入中断服务程序)进入中断服务程序 用途用途:主板上:主板上RAM奇偶错,奇偶错, I/O通道中的奇偶校验错,通道中的奇偶校验错, 8087协处理器异常中断。协处理器异常中断。 6.2.3 8086对外部中断的响应 42 2 2可屏蔽中断可屏蔽中断INTRINTR 外设的中断请求首先送到外设的中断请求首先

24、送到8259A,按照中断优先权排,按照中断优先权排 队队; 电平触发方式,高电平有效。电平触发方式,高电平有效。 响应过程响应过程: 第一个第一个INTA总线周期,通知外部做好准备;总线周期,通知外部做好准备; 第二个第二个INTA总线周期,从外部获取中断类型号;总线周期,从外部获取中断类型号; 43 T1T2T3T4T1T2T3T4 中断号 CLK(时钟) ALE(地址允许) LOCK(总线锁存) INTA(中断应答) D0D7(数据) 中断响应周期 2 1 44 执行总线写周期,把FLAGS压入堆栈,并清除IF,TF; 执行总线写周期,把CS内容压栈; 执行总线写周期,把IP内容压栈; 执

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

26、断请求信号,输入。 A0: 地址线,输入,用于选择内部端口。地址线,输入,用于选择内部端口。 CS#: 片选信号,输入、低电平有效。片选信号,输入、低电平有效。 RD#: 读信号,输入、低电平有效。读信号,输入、低电平有效。 WR#: 写信号,输入、低电平有效。写信号,输入、低电平有效。 INTA#: 中断响应信号,输入、低电平有效。中断响应信号,输入、低电平有效。 INT: 中断请求信号,输出、高电平有效。中断请求信号,输出、高电平有效。 CAS2CAS0:双向的级联线:双向的级联线,这三条信号是这三条信号是8259A级连时构成级连时构成 8259A的主从式级连结构。的主从式级连结构。 SP

27、/EN: 主从设备设定主从设备设定/缓冲器读写控制,双向双功能缓冲器读写控制,双向双功能 6.3.2 8259A引脚及内部结构 47 图6-6 8259A引脚 48 图 6-7 8259A的内部结构 49 1.1.中断请求寄存器中断请求寄存器IRRIRR 锁存外部设备送来的锁存外部设备送来的IR7IR0中断请求信号中断请求信号; 中断请求线变为高电平时,中断请求线变为高电平时,IRR中与之对应的一位被置中与之对应的一位被置1; 寄存器的内容可以被寄存器的内容可以被CPU读出。读出。 2.2.中断屏蔽寄存器中断屏蔽寄存器IMRIMR 记录对每一级中断的屏蔽信号;记录对每一级中断的屏蔽信号; 置置

28、1时,对应的外部中断请求线被屏蔽;时,对应的外部中断请求线被屏蔽; 设置设置IMR起到改变中断请求优先级的效果。起到改变中断请求优先级的效果。 8259A的内部结构 50 3.3.中断服务状态寄存器中断服务状态寄存器ISRISR 记录当前正在被服务的所有中断级记录当前正在被服务的所有中断级; CPU响应响应IRi中断请求,中断请求,ISR中对应第中对应第i位置位置1; 中断处理结束前,要使用指令清除这一位中断处理结束前,要使用指令清除这一位; 寄存器可以被寄存器可以被CPU读出。读出。 4.4.优先级处理器优先级处理器 识别和管理各中断请求信号的优先级别识别和管理各中断请求信号的优先级别; 多

29、个中断请求信号同时出现时,优先权处理器根据多个中断请求信号同时出现时,优先权处理器根据 控制逻辑规定的优先级规则和控制逻辑规定的优先级规则和IMR的内容来判断这的内容来判断这 些请求信号的最高优先级。些请求信号的最高优先级。 51 5 5控制逻辑控制逻辑 初始化命令字寄存器初始化命令字寄存器ICW1ICW4: 在系统初始化时置入,工作过程中保持不变。在系统初始化时置入,工作过程中保持不变。 操作命令字寄存器操作命令字寄存器OCW1OCW3: 工作过程中根据需要设定。工作过程中根据需要设定。 6 6 数据总线缓冲器数据总线缓冲器 8 8位的双向三态缓冲器,是位的双向三态缓冲器,是8259A825

30、9A与系统数据总线的接口。与系统数据总线的接口。 52 7 7读读/ /写控制逻辑写控制逻辑 接收、执行接收、执行CPU的读的读/写命令。写命令。 8 8级联缓冲级联缓冲/ /比较器比较器 在级联方式的主在级联方式的主/从结构中,用来控制从结构中,用来控制8259A的级联。的级联。 缓冲器:缓冲器: SP/EN输出低电平时,开启双向缓冲器。输出低电平时,开启双向缓冲器。 级联比较器级联比较器: 主主8259A:用:用CAS2CAS0输出被选中从片代码;输出被选中从片代码; 从从8259A: 接收主器件送来的从片选择代码接收主器件送来的从片选择代码 53 1 18259A8259A的工作过程的工

31、作过程 (1)中断源在)中断源在IR0IR7上产生中断请求上产生中断请求; (2)中断请求被锁存,经)中断请求被锁存,经IMR“屏蔽屏蔽”,送优先权电路判优,送优先权电路判优; (3)控制逻辑接收中断请求,向)控制逻辑接收中断请求,向CPU输出输出INT信号信号; (4)CPU接受接受8259A的的INT信号,信号,进入连续两个进入连续两个INTA周期周期。 (5)优先级电路将最高优级权对应)优先级电路将最高优级权对应ISR中的位置位;中的位置位; (6)第二个)第二个INTA周期周期8259把中断类型号输出到数据总线;把中断类型号输出到数据总线; 6.3.3 8259A的工作方式 54 该中

32、断类型码的生成: 中断类型码 用户在对8259初始 化编程时设定 由中断请求线IRi的进制编 码决定,由8259自动插入 填写 D7 D3 D2 D1 D0 ( 7)CPU读取中断类型号,转移到相应的中断处理程序。 (8)中断处理结束前,向8259A发送EOI(中断结束)命 令,使ISR相应位复位,本次中断到此结束。 55 2 28259A8259A的优先权管理的优先权管理 (1)固定优先级固定优先级 中断源的优先级由它所连接的引脚编号决定中断源的优先级由它所连接的引脚编号决定; : 中断优先权级别固定,中断优先权级别固定,IR0优先权最高,优先权最高,IR7最低最低。一中。一中 断正被处理时

33、,只有更高优先级的事件可以打断当前的中断处理断正被处理时,只有更高优先级的事件可以打断当前的中断处理 过程而被服务。单片使用。过程而被服务。单片使用。 IR7IR6IR5IR4IR3IR2IR1IR0 76543210 最低级 最高级 默认优先级默认优先级 56 2) 特殊全嵌套 : 接收同一引脚上的第二次中断请求。一中断正 被处理时,允许同级或更高优先级的事件可以打断当 前的中断处理过程而被服务。 注: 特殊全嵌套仅用于多个8259A级连时的主8259A, 而不能用于从属8259A或单8259A系统。 57 D. 主 825 9A IR 0 IR 1 IR 2 IR 3 IR 4 IR 5

34、IR 6 IR 7 一般嵌套方 式: 从片的INT被 主片封锁, 故更高级别 的IR0-IR2中 断也无法得 到响应 特殊嵌套方式: 因主片不封锁 从片的INT, 故级别高的 IR0-IR2中断可 以得到响应。 (但IR3-IR7仍 被本从片封锁) C. 假定IR3发 生中断,并获 得服务 一般嵌套方 式:IR4的 中断被服务 时,这些中 断将被封锁。 B. 特殊嵌套 方式:IR4 的中断被 服务时, 只封锁 IR5-IR7。 A. IN T E. 从 825 9A IN T IR 0 IR 1 IR 2 IR 3 IR 4 IR 5 IR 6 IR 7 一般全嵌套方式与特殊全嵌套方式的区别

35、去 C P U 58 普通全嵌套方式(默认方式) 一中断正被处理时,只有更高优先级的事件可以打断 当前的中断处理过程而被服务。 特殊全嵌套方式 一中断正被处理时,允许同级或更高优先级的事件可 以打断当前的中断处理过程而被服务。 注: 特殊全嵌套仅用于多个8259A级连时的主8259A,而不能 用于从属8259A或单8259A系统。 59 (2)循环优先级 各个中断申请具有大体相同的优先级; 有优先权自动循环方式和优先权特殊循环方式。 中断源轮流处于最高优先级,即自动中断优先级循环 初始优先级顺序可用编程改变 某中断请求IRi被处理后,其优先级别自动降为最低, 原来比它低一级的中断上升为最高级

36、IR7IR6IR5IR4IR3IR2IR1IR0 7654321021076543 最低级 最高级最高级最低级 ISR内容内容 IR7IR6IR5IR4IR3IR2IR1IR0 IR4的服务结束以前的服务结束以前 0101000001000000 IR4的服务结束以后的服务结束以后 ISRi 60 3.3.中断屏蔽方式中断屏蔽方式 (1)普通屏蔽方式)普通屏蔽方式 通过将中断屏蔽字写入通过将中断屏蔽字写入IMR实现;实现; 写入某位为写入某位为“1”,对应的中断请求被屏蔽;为,对应的中断请求被屏蔽;为“0”开开 放放。 (2)特殊屏蔽方式特殊屏蔽方式 提供了允许较低优先级的中断能够得到响应的特

37、殊手段。提供了允许较低优先级的中断能够得到响应的特殊手段。 例如:假定当前正在处理例如:假定当前正在处理IR6,先进入特殊屏蔽方式,然,先进入特殊屏蔽方式,然 后设置后设置IM6=1。这时,除。这时,除IR6外的所有中断请求均能得到外的所有中断请求均能得到 响应。响应。 采用特殊屏蔽方式并用屏蔽字对采用特殊屏蔽方式并用屏蔽字对IMR中某一位置中某一位置“1”, 会同时使会同时使ISR中对应位清中对应位清“0”。 对屏蔽位的设置部分地改变了中断优先权。对屏蔽位的设置部分地改变了中断优先权。 61 4.4.中断结束方式中断结束方式 中断结束命令(中断结束命令(EOI): 当某一当某一IRi中断被服

38、务时,中断被服务时,ISR中的相应位中的相应位ISRi=1。 当服务结束后,则必须清零该当服务结束后,则必须清零该ISRi位。使位。使ISRi=0是通过向是通过向 8259A发出中断结束命令(发出中断结束命令(EOI命令)实现的。命令)实现的。 (1)自动中断结束方式(自动中断结束方式(AEOI) 8259A在第二个中断响应周期在第二个中断响应周期INTA信号的后沿,自信号的后沿,自 动将动将ISR中被响应中断级的对应位清中被响应中断级的对应位清“0”。 (2)非自动中断结束方式(非自动中断结束方式(EOI) 从中断服务程序返回前,在从中断服务程序返回前,在向向8259A输出一输出一 个中个中

39、 断结束命令(断结束命令(EOI),把),把ISR对应位清对应位清“0”。 一般的中断结束方式一般的中断结束方式:由由8259A自动选择优先权最高的位。自动选择优先权最高的位。 特殊的中断结束命令特殊的中断结束命令:指令内指明要清除指令内指明要清除ISR中的某一位。中的某一位。 62 注意注意! 在在非自动中断结束非自动中断结束方式下,如果在方式下,如果在程序里程序里 忘了发送中断结束命令,那么,忘了发送中断结束命令,那么,8259A将不再将不再 响应这个中断以及比它级别低的中断请求。响应这个中断以及比它级别低的中断请求。 63 5. 8259A5. 8259A查询工作方式查询工作方式 工作在

40、程序查询方式时,工作在程序查询方式时,8259A不向不向CPU发发 INT信号;信号; CPU通过查询通过查询8259A了解有无中断;了解有无中断; 如果有中断发生,转入相应的服务程序。如果有中断发生,转入相应的服务程序。 设置查询方式的过程设置查询方式的过程: 关闭中断;关闭中断; 用输出指令把用输出指令把“查询方式命令字查询方式命令字”送到送到8259A; 对对8259A执行一条执行一条输入指令输入指令,读取查询字,读取查询字 查询字格式为查询字格式为: I XXXXW2WlW0(8bit) I=1,有中断请求,有中断请求,W2WlW0为最高优先级编码。为最高优先级编码。 64 初始化命令

41、字初始化命令字: 在系统初始化时写入;在系统初始化时写入; 用来设定用来设定8259的基本工作方式。的基本工作方式。 操作命令字操作命令字: 在初始化后的任何时刻写入在初始化后的任何时刻写入8259A; 用来动态地控制用来动态地控制8259A的操作。的操作。 6.3.4 8259A的编程 需要访问8259A内部寄存器! 65 需要CS#(地址译码结果)、A0、RD#(-IOR)、WR#(-IOW)和 8 位中的数据D4、D3的配合 内部寄存器的访问方法如下表: CS# RD# WR# A0 D4 D3读写操作 010 0 写写OCW2 写写OCW3 写写ICW1 写写ICW2,ICW3,ICW

42、4,OCW1(顺序顺序 写入写入) 01x 1xx 00 01 0 1 xx 读出读出IRR、ISR 读出读出IMR 66 8259的初始化流程图 注意次序不可颠倒 写写ICW1 写写ICW2 级连?级连? 写写ICW3 需需ICW4? 写写ICW4 N N Y Y 67 图 6-8 1.初始化命令字ICW(8 bit 数据) (1)初始化命令字ICW1 0 A0D7D0D2D1 SNGL D5 LTIM D4 1 D3 1 D6 1:单单片片工工作作 0:级级连连方方式式 1:电电平平触触发发 0:边边沿沿触触发发 (PC中端口地址为20H) 68 LTIM: 触发方式 =1 高电平触发 =

43、0 上升沿触发 SNGL: 级连控制 =1 单片 =0 级连 IC4: ICW4控制 =1 要写ICW4 =0 不写ICW4(默认ICW4为全0) 69 注意!注意! 向向8259A送入一条送入一条A0=0、D41的命令(的命令(ICW1): 启动启动8259A的初始化过程,的初始化过程, 相当于相当于RESET信号的作用,自动完成下列操作:信号的作用,自动完成下列操作: 清除中断屏蔽寄存器清除中断屏蔽寄存器IMR; 设置以设置以IR0为最高优先级,为最高优先级,IR7为最低优先为最低优先 级的全嵌套方式级的全嵌套方式; 固定中断优先权排序。固定中断优先权排序。 70 图 6-9 (2)初始化

44、命令字ICW2 (8 bit 数据) T7 A0 T3T4T5T6 D7D6D5D4D3D2D1D0 1 中中断断类类型型码码的的 高高五五位位T7T3 (PC中端口地址为21H) 71 T7T3: 中断向量码的高5位 T2T0: 最低3位为中断源的序号IRn 000111分别对应IR0IR7 由8259A根据中断源的序号自动填入 例如: 若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断 向量码为4FH,等等。 72 图 6-10 (3)初始化命令字ICW3(主片,8 bit 数据) A0D7D6D5D4D3D2D1D0 1 1:该该引引脚脚连连接接有有从从片片 0 0:该

45、该引引脚脚未未连连接接从从片片 S5S7S6S4S3S2S1S0 (PC中端口地址为21H) 73 图 6-11 A0D7D6D5D4D3D2D1D0 1 ID2ID0:本本从从片片连连接接 主主片片引引脚脚号号 ID0ID1ID2 (3)初始化命令字ICW3(从片, 8 bit 数据) (PC中端口地址为21H) 74 主片的级联控制字 Si=1 对应IRi线上连接了从片 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0 从片的级联控制字 ID2ID0 标识码,说明本从片连接到主片 的哪个IR引脚上。 000111分别对应IR0 IR7

46、。 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID0 75 ICW3必须与主从片的连接关系一致: 例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H, 从片的ICW3=04H。 中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从 片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者 一致的从片才可发送中断向量码。 76 图 6-12 (4)初始化命令字ICW4 (8 bit 数据) A0D7D6D5D4D3D2D1D0 1 0 x: 非缓冲方式非缓冲方式 10:缓冲方式:缓冲方式/从片从片 11:缓冲方式:

47、缓冲方式/主片主片 0SFNM00BUFAEOIM/S1 1:自动自动EOI 0:非自动非自动EOI 1:特殊全嵌套:特殊全嵌套 0:一般全嵌套:一般全嵌套 (PC中端口地址为21H) 77 级联方式级联方式: : 78 初始化程序初始化程序: MOV AL, 00010011B OUT20H, AL ; ICW1:单片,边沿触发:单片,边沿触发 MOV AL, 00001000B OUT21H, AL ; ICW2 :中断类型:中断类型08H0FH MOV AL, 00000001B OUT21H, AL ; ICW4 :非中断自动结束:非中断自动结束 IBM-PC微型计算机内8259A的工

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

49、嵌套,非缓冲 OUT 21H, AL; ICW4 : 非自动中断结束非自动中断结束 IR2 81 从片从片初始化程序初始化程序: 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 :非特殊全嵌套非特殊全

50、嵌套,非缓冲非缓冲 82 2 2操作命令字操作命令字OCWOCW 对对8259A预置完毕后预置完毕后: 8259A8259A进入设定的工作状态进入设定的工作状态; ; 准备接收由准备接收由IRIR输入的中断请求信号输入的中断请求信号; ; 按固定优先级(缺省方式)来管理中断请求。按固定优先级(缺省方式)来管理中断请求。 运行中可以写入操作控制字运行中可以写入操作控制字,对,对8259A管理中断的方式进行管理中断的方式进行 修改和设定。修改和设定。 有有OCW1OCW1、OCW2OCW2和和OCW3OCW3三个操作控制字;三个操作控制字; OCWOCW按需要选择写入按需要选择写入,没有固定顺序。

51、,没有固定顺序。 写入地址要求:写入地址要求: OCW1OCW1必须写入必须写入奇奇地址端口地址端口(A0=1)(A0=1) OCW2OCW2,OCW3OCW3必须写入必须写入偶偶地址端口地址端口(A0=0)(A0=0) 83 图 6-14 (1)操作控制字OCWl(8bit数据) (PC中端口地址为21H) 84 例例:需要屏蔽需要屏蔽IR4的中断输入,同时不改变其他中断输入的屏的中断输入,同时不改变其他中断输入的屏 蔽状态,可以用如下的三条指令实现:蔽状态,可以用如下的三条指令实现: INAL, 21H;取屏蔽寄存器当前值;取屏蔽寄存器当前值 OR AL, 00010000B;将;将D4

52、位置位置1 OUT21H, AL;写回改变后的屏蔽字;写回改变后的屏蔽字 需要清除对需要清除对IR2的中断屏蔽:的中断屏蔽: INAL, 21H;取屏蔽寄存器当前值;取屏蔽寄存器当前值 AND AL, 11111011B;将;将D2 位清位清0 OUT21H, AL;写回改变后的屏蔽字;写回改变后的屏蔽字 操作控制字OCW1应用 85 图 6-15 (2)操作控制字OCW2 (8bit数据) (PC中端口地址为20H) 用于中断结束和优先级循环 86 A0 D7 D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0 L2L0: 优先级编码 R: 优先级自动循

53、环 SL: 指定优先级 EOI: 结束中断命令 R SL EOI 0 0 1 非指定EOI 命令(NSEOI),全嵌套方式 0 1 1 指定EOI 命令(SEOI),全嵌套方式,按L2-L0编 码复位ISR 1 0 1 NSEOI 命令,优先级自动循环 1 0 0 自动EOI,设置优先级自动循环 0 0 0 自动EOI,取消优先级自动循环(固定优先级) 1 1 1 SEOI 命令,按L2-L0编码循环优先级(L2-L0设为 最低优先级) 1 1 0 按L2-L0编码循环优先级(L2-L0设为最低优先级) 87 AEOI:在第2个INTA#结束时,由8259A使ISRi自动复位; 因不保留当前正

54、在服务的中断的状态,故AEOI不能用于中断 嵌套方式 SEOI:由CPU(程序中的指令)发出一条SEOI命令,该EOI 命令中指出了所要复位的ISR的位号。 用于特殊屏蔽方式 NSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位 中优先级最高的那一位复位。 用于普通全嵌套方式 自动EOI(AEOI)(自动EOI方式) 非指定EOI(NSEOI)(正常EOI方式) 指定EOI(SEOI)(特殊EOI方式) 88 一般的中断结束命令一般的中断结束命令: MOVAL, 20H OUT20H, AL 操作控制字OCW2应用 89 图 6-16 (3)操作控制字OCW3 90 OCW3

55、用途用途: 设置设置/清除特殊屏蔽命令清除特殊屏蔽命令 发出读寄存器命令:发出读寄存器命令: 设置设置RR=1,RIS=0后,后,用用IN指令指令读偶端口读偶端口, 可以将可以将IRR读入读入CPU。 设置设置RR=1,RIS=1后,后,用用IN指令指令读偶端口,读偶端口, 可以将可以将ISR读入读入CPU。 操作控制字OCW3应用 91 发出查询命令;发出查询命令; 设置设置(D2)P=1后,用后,用IN指令指令读偶端口读偶端口, 可以将中断查询字可以将中断查询字 读入读入CPU: I X X X X W2 Wl W0(8 bit) I=1表示有中断请求,表示有中断请求,W2 Wl W0表示

56、请表示请 求服务的最高优先级编码。求服务的最高优先级编码。 操作控制字OCW3应用 92 注意: 设置了P=1的查询命令后,8259A不再通过INT引脚向CPU 发送中断请求。 要取消查询方式,可以再次发出OCW3,并使P=0。 93 例例:BIOS中读取中读取ISR寄存器的程序段:寄存器的程序段: MOV AL,00001011B; OCW3命令字命令字(读读ISR) OUT20H,AL; 写入写入OCW3端口端口 NOP;延时;延时 INAL,20H;将;将ISR内容送入内容送入AL MOV AH,AL;将;将ISR内容转存入内容转存入AH ORAL,AH;是全;是全0否否? JNZAW-

57、INT;否,转硬件中断程序;否,转硬件中断程序 操作控制字OCW3应用 94 6.4 中断方式输入输出 6.4.1 6.4.1 中断方式中断方式I/OI/O接口接口 中断方式输入过程中断方式输入过程: 外部设备输入数据;外部设备输入数据; 中断请求触发器置位;中断请求触发器置位; 接口向接口向CPU申请中断;申请中断; CPU响应中断,中断请求触发器被复位;响应中断,中断请求触发器被复位; CPU在中断服务程序中读取数据。在中断服务程序中读取数据。 95 产生中断申请信 号的单元 96 图6-17 中断方式输入接口 输输 入入 设设 备备 输输 入入 锁锁 存存 器器 中断中断 请求请求 输输

58、 入入 缓缓 冲冲 器器 地地 址址 译译 码码 1 D0D7 RD 选通选通 +5V INTA A0A15 M/IO Q U2 R 中断中断 屏蔽屏蔽 在中断服务程序中重新装载在中断服务程序中重新装载DS寄寄 存器存器 MOV BX, IN_POINTER;装载缓冲区指针;装载缓冲区指针 MOV DX, 240H 输入中断服务程序(1) 109 INAL, DX ;从输入设备读取一个数据,同时清除中断请求;从输入设备读取一个数据,同时清除中断请求 MOV BX, AL;数据存入缓冲区;数据存入缓冲区 INCBX MOV IN_POINTER, BX;修改指针;修改指针,存入内存单元存入内存单

59、元 CMP AL, 0DH;判输入是否结束;判输入是否结束 JNEEXIT INAL, 21H ORAL, 00001000B;输入结束,置;输入结束,置IR3屏蔽位屏蔽位 OUT21H, AL MOV DONE, 1;置完成标志;置完成标志 输入中断服务程序(2) 110 EXIT: CLI;关闭中断,准备中断返回;关闭中断,准备中断返回 MOV AL, 20H OUT20H, AL;向;向8259发中断结束命令发中断结束命令 POPDX;恢复现场;恢复现场 POPBX POPAX POPDS IRET;中断返回;中断返回 IN_INTRENDP CODEENDS ENDBEGIN 输入中断

60、服务程序(3) 111 一 8259A在PC/AT微型计算机中的应用 二 8259A 在80386微机系统中的应用 6.5 8259A在 PC系统中的应用 112 IBMPC/AT微型计算机系统的CPU采用80286芯 片,系统中有两个8259A芯片(如图所示)。若设置 8259A按特殊的完全嵌套方式工作,则系统中优先权 从最高至最低的排列顺序是:主片IRQ0、IRQ1、从片 IRQ0、IRQ1至IRQ7、主片IRQ3至IRQ7。 6.5.1 8259A在PC/AT微型计算机中的应用(补充,不考试) 113 IBM PC/AT的外中断的外中断 实时时钟IRQ8 定时器 IRQ0 INTOAH

温馨提示

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

评论

0/150

提交评论