收藏 分享(赏)

经典教材_微机原理及应用和汇编语言程序设计课件chap_8.ppt

上传人:天天快乐 文档编号:1288049 上传时间:2018-06-22 格式:PPT 页数:72 大小:615.50KB
下载 相关 举报
经典教材_微机原理及应用和汇编语言程序设计课件chap_8.ppt_第1页
第1页 / 共72页
经典教材_微机原理及应用和汇编语言程序设计课件chap_8.ppt_第2页
第2页 / 共72页
经典教材_微机原理及应用和汇编语言程序设计课件chap_8.ppt_第3页
第3页 / 共72页
经典教材_微机原理及应用和汇编语言程序设计课件chap_8.ppt_第4页
第4页 / 共72页
经典教材_微机原理及应用和汇编语言程序设计课件chap_8.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

1、第八章 中断,上课认真听讲,下课按时完成布置的习题,这门课就一定不会挂!,学习目的了解 8259A芯片的内部结构描述芯片的工作原理熟悉 8259A芯片的工作方式掌握芯片的编程方法重点8259A工作原理与应用,在查询式的传输方式下,CPU要不断地查询外设的状态,当外设未准备好时,CPU就只能循环等待,不能执行其它程序,这样就浪费了CPU的时间,降低了主机的利用率。为了解决这个矛盾,提出了中断传送方式:即当CPU进行主程序操作时,外设的数据已存入输入端口的数据寄存器;或端口的数据输出寄存器已空,由外设通过接口电路向CPU发出中断请求信号,CPU在满足一定的条件下,暂停执行当前正在执行的主程序,转入

2、执行相应能够进行输入/输出操作的子程序,待输入/输出操作执行完毕之后CPU即返回继续执行原来被中断的主程序。这样CPU就避免了把大量时间耗费在等待、查询状态信号的操作上,使其工作效率得以大大地提高。,8.1 中断原理,能够向CPU发出中断请求的设备或事件称为中断源。,微机系统引入中断机制后,使CPU与外设(甚至多个外设)处于并行工作状态,便于实现信息的实时处理和系统的故障处理。,中断方式的原理示意图,中断的概念,中断:外设向CPU发中断请求,CPU接收到中断请 求并在一定条件下,暂时停止执行原来的程 序而转去处理中断,处理好中断服务再返回 继续执行原来的程序,就称为一个中断过程。中断是CPU被

3、动的响应外设要求服务。1、中断源:(1)数据输入/输出设备请求中断 (2)定时时间到申请中断 (3)满足规定条件申请中断 (4)电源掉电 (5)故障报警申请中断 (6)程序调试设置中断,2、CPU响应中断的条件 (1)无总线请求 (2)CPU允许中断:IF=1 (3)CPU执行完当前指令3、CPU响应中断要自动完成的任务: (1)关中断 (2)保护断点(IP,CS,FLAG入栈) (3)给中断服务程序的入口地址,4、中断处理过程,保护现场:保护主程序中的一些寄存器值 开中断 :开放优先级更高的中断执行中断服务程序恢复现场:是与保护现场对应的,但要注意数据恢复的次序,以免混乱。 中断返回:(使用

4、中断返回指令IRET)不能使用一般的子程序返回指令RET, 5、中断源的识别: 查询(软件识别) 硬件识别:外设提供中断申请信号和中断矢量,6.中断优先级,当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。 软件查询法只需有简单的硬件电路,如将A、B、C三台设备的中断请求信号“或”后作为系统INTR,这时,A、B、C三台设备中只要至少有一台设备提出中断请求,都可以向CPU发中断请求。进入中断服务子程序后,再用软件查询的方式分别对不同的设备的服务,查询程序的设计思想同查询式,查询的前后顺序就

5、给出了设备的优先级。,简单硬件方法以链式中断优先权排队电路为例基本设计思想:将所有的设备连成一条链,靠近CPU的设备优先级最高,越远的设备优先级别越低,则发出中断响应信号,若级别高的设备发出了中断请求,在它接到中断响应信号的同时,封锁其后的较低级设备使得它们的中断请求不能响应,只有等它的中断服务结束以后才开放,允许为低级的设备服务。,专用硬件方式采用可编程的中断控制器芯片,如Intel8259A。有了中断控制器以后,CPU的INTR和引脚不再与接口直接相连,而是与中断控制器相连,外设的中断请求信号通过IR0IR7进入中断控制器,经优先级管理逻辑确认为级别最高的那个请求的类型号会经过中断类型寄存

6、器在当前中断服务寄存器的某位上置1,并向CPU发INTR请求,CPU发出信号后,中断控制器将中断类型码送出。在整个过程中,优先级较低的中断请求都受到阻塞,直到较高级的中断服务完毕之后,当前服务寄存器的对应位清0,较低级的中断请求才有可能被响应。,8.2 8086中断系统,一、8086中断的分类中断系统:可以处理256种中断,一个中断对应一个类型码,类型码为0255。两类:软件中断、硬件中断 非屛蔽中断:由NMI引入 可屛蔽中断:由INTR引入,硬件中断,软件中断(内部中断):即根据某条指令或者对标志寄存器中某个标志的设置而产生,它与硬件电路无关,常见的如除数为0,或用INT n指令产生。,F

7、8-1 8086中断的分类,二、中断矢量和中断矢量表 256个类型的中断源。 每个类型存放一个中断矢量(中断向量、中断指针),一个中断矢量由四个字节组成: 2个高地址字节:存放中断服务程序的代码段的段值; 2个低地址字节:存放中断服务程序的偏移地址。 中断矢量表放在内存的0段0单元开始的单元。,中断矢量表,256个中断: 5个专用中断 保留中断(27个) 共用户定义的中断(224个)例如:21H为DOS系统调用。 INT 21H,09功能:显示字符串。,三、硬件中断,NMI引入非屏蔽中断;INTR引入可屏蔽中断1、NMI非屏蔽中断: CPU立即响应 优先级最高 处理重大事故 非屏蔽中断类型号为

8、:02H2、可屏蔽中断 由外设发出的中断由INTR引入,当IF=1时,CPU将响应这一中断请求。 IF的清除与设置,可由指令完成。,四、硬件中断响应过程,1、可屏蔽中断的响应过程:(1)读中断类型码(2)将标志寄存器的值推入堆栈(3)清中断允许标志IF和单步中断TF(4)保护断点,将CS、IP推入堆栈(5)根据中断类型码,找到中断向量(6)根据中断向量转入相应的中断处理子程序,Fig 8.2 8086对中断的响应,2、硬件中断响应周期时序,INTR为高电平时,向CPU发出中断请求;标志位IF=1(开中断),CPU就会响应中断。中断响应要用两个总线周期:第一个中断响应周期 T1状态:AD15-A

9、D0浮空,IF=1 T2、T3状态:给出中断响应信号INTA。 第二个中断响应周期;被响应的外设数据线送一个字节的中断矢量类型, CPU读入后,从中断矢量表上找到中断服务程序的入口地址。,Fig 8.3 8086的中断响应总线周期,五 软件中断,即通过中断指令来使CPU执行中断处理子程序的方法,特点如下:中断类型码由指令提供,不需执行中断响应总线周期,也不受IF标志的影响。正在执行软件中断时,若来NMI,则立即响应,若来可屏蔽中断,只要条件允许(如IF1,当前指令执行完)也可响应。软件中断,由于其处理程序是定位装配的(中断向量表),又可方便地用INT n指令调用,因此在使用中和一般的子程序没有

10、两样,并且原则上是0255种类型均可使用。,六 中断类型号的获取,1) INT n (1)、标志寄存器入栈; (2)、清标志位TF、IF; (3)、CS、IP值入栈; (4)、计算中断地址: n 4 :低地址单元入IP 高地址单元入CS 2) INTO:溢出中断 3) 中断返回IRET,CS的值:n 4+2IP的值:n 4例:类型号为20H的中断向量放在 0000:0080H开始的4个单元中。,0000:0080,10203040,CS=4030HIP=2010H,20H号中断向量为:4030:2010H,例:INT 21H操作结果:1)、标志寄存器入栈, 2)、清TF、IF 3)、CS、IP

11、入栈 4)、计算中断矢量存放地址: 21H 4= 84 H,IP 2000HCS 3000H,8.3 中断控制器8259A,8259A的功能:中断优先权管理中断屏蔽自动中断矢量转移 8259A特点:单片8259可处理8级中断级联时:最多可用9片处理64级中断8259A的片内寻址:A0=1、0,一、 8529A的芯片内部结构1. 数据总线缓冲2.读写控制逻辑3.级联缓冲比较4.中断请求寄存器5.中断服务寄存器6.中断屏蔽寄存器 7.优先权判别电路8.控制电路 在8086系统中,CPU和8259A的所有数据传送都在数据总线的低8位上进行。地址总线的A1与8259A的A0相连,以保证数传都在总线的低

12、8位中进行。,8259A的内部结构,8529A的引脚,1.D7-D0:双向数据输入/输出引脚,用以与CPU进行信息交换。 2.IR7-IR0:8级中断请求信号输入引脚,规定的优先级为IR0IR1IR7。 3.INT:中断请求信号输出引脚,高电平有效,用以向CPU发中断请求,应接在CPU的INTR输入端。 4. :中断响应应答信号输入引脚,应接在CPU的中断应答信号 输出端,8259A将其中最高级别的中断请求的中断类型码送出;。 5. :读控制信号输入引脚,实现对8259A内部有关寄存器内容的读操作。 6. :写控制信号输入引脚,实现对8259A内部有关寄存器的写操作。,7. :片选信号输入引脚

13、,决定了8259A的端口地址范围。 8. A0:8259A两组内部寄存器的选择信号输入引脚,决定8259A的端口地址。 A00ICW1、OCW2、OCW3; A01 ICW2ICW4、OCW19. CAS2-CAS0:级连信号引脚,当8259A为主片时,为输出;否则为输入,可实现芯片的级连,这三个引脚信号的不同组合000111,刚好对应于8个从片。10. : 为级连管理信号输入引脚,在非缓冲方式下,若8259A在系统中作从片使用,则 ;在缓冲方式下, 用作8259A外部数据总线缓冲器的启动信号。11. +5V、GND:电源和接地引脚,8259A的工作原理如下:,中断请求寄存器IRR分别和IR7

14、IR0相对应,IRR接收外部的中断请求。接到某一引脚的中断请求后,IRR中的对应位便置1。中断屏蔽寄存器IMR中的对应位为1表示此中断已加屏蔽,为0表示此中断未加屏蔽可通过而进入中断优先级裁决器PR作裁决。PR对新进入的中断请求和ISR中当前正在处理的中断比较,从而决定哪一个优先级更高,是否使8259A的输出端INT为1。,如CPU的IF为1,CPU执行完当前指令后,就可以响应中断。CPU从INTA线上往8259A回送两个负脉冲。,第一个负脉冲到达时,8259A完成以下动作:1. 使IRR的锁存功能失效2. 使当前中断服务寄存器ISR中的相应位置13. 使IRR寄存器中的相应位即刚才设置的位清

15、0。第二个负脉冲到达时,8259A完成下列动作: 1. 将中断类型寄存器的内容ICW2送到数据总线的D7D0, CPU将此作为中断类型码。 2. 如果ICW4 中的中断自动结束位为1,那么,在第二个 INTA脉冲结束时,8259A会将第 一 INTA脉冲到来时设置的当前中断服务寄存器ISR的相应位清0。,二、8259A的工作方式,1.中断触发方式 (1)边沿触发方式 8259A将中断请求输入端出现的上升沿,作为中断请求信号 。(2)电平触发方式 8259A将中断请求输入端出现的高电平作为中断请求信号。当中断输入端出现1个中断请求并得到响应后,输入端必须及时撤除高电平。,不论采用什么方式引入中断

16、,8259应将当前被相应的中断类型码n通过数据总线传给CPU。中断类型码的形成: D7D6D5D4D3 D2D1D0 0 0 0 IR0 0 0 1 IR1 1 1 1 IR7D3-D7位由用户通过软件定义。例如定义D3-D7=10001时,该8级中断的类型码顺序为88H-8FH.,2. 优先级的管理方式 (1)完全嵌套方式 在对8259进行初始化后,没有设置其它优先级方式,则自动按此方式工作. 特点:在全嵌套方式中,中断请求按优先级IR0IR7级进行处理,IR0级中断的优先级最高。 当一个中断被响应时,中断类型码被放到数据总线上,ISR中的对应位ISn被置1,然后进入中断服务程序。一般情况下

17、(除了中断自动结束方式外),在CPU发出中断结束命令(EOI)前,此对应位一直保持“1”。,(2)优先级自动循环方式 用在:多个中断源优先级相等的场合。 特点:优先级是在变化的,一个设备中断处理完 后,它的优先级自动降为最低。 由8259A的操作命令字OCW2决定。(3) 特殊全嵌套方式 用于:多片级联方式, 特殊全嵌套方式仅设置在主片中. 特点: 和全嵌套方式基本相同,不同的是:在处理某以及中断时,可响应同级中断,从而实现对同 级中断请求的特殊嵌套.,3.中断屏蔽方式(1)普通屏蔽方式 用OCW1命令将中断屏蔽寄存器IMR的相应位置“1”。(2)特殊屏蔽方式 用于中断处理程序中。当要允许优先

18、级低的中断进入,可采用特殊屏蔽方式. 可用OCW3的D6D5=11设置,此时除IMR中置1位对应的中断被屏蔽外,其它置0位对应的中断无论优先级高低都可得到相应。,(1)中断自动结束方式: 用于系统中只有一片8259A,多个中断不会嵌套的情形。系统一进入中断处理,就将当前中断服务寄存器ISR的对应位清除。对8259A来说,好像已经结束了当前中断。 在命令字ICW4中将AEOI(D1)位置“1”。(2)一般的中断结束方式: 用在全嵌套的情形。 CPU用OUT指令往8259A偶地址发一个EOI命令,8259A将使ISR最高非零IS位清0。结束当前正在处理的中断。,4. 结束中断处理的方式(EOI),

19、(3)特殊的中断结束方式,发一条特殊中断结束命令,命令中指出了要清除当前ISR的哪个IS位。 往偶地址端口输出OCW2命令。 OCW2中:EOI=1、SL=1、R=0是特殊中断结束命令。 OCW2中:L2、L1、L0指出了要对哪个IS位复位。,EOI命令的使用,三.8259A的级联使用,主片:SP/EN接+5V从片:SP/EN接地。,级联方式:一片主8259,2片从8259,主 接5V,从8259 接地.1号从8259的INT接主8259的IR6 2号从8259的INT接主8259的IR4可管理22级中断一片8259A只能管理8级中断,两级级联情况下可管理的中断源最多为64级。,特殊嵌套方式的使用,设1号从8259:IR7有申请,并响应1号从8259向主8259的IR6发申请,并得到响应现在,1号从8259:IR0有申请,而IR0的优先级别高于IR7,应该响应IR0,应该允许IR0进入。解决办法:使用特殊全嵌套方式,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报