ARM嵌入式系统基础及应用第一版 教学课件 ppt 作者 黄俊 全书 第5章

上传人:E**** 文档编号:89337957 上传时间:2019-05-23 格式:PPT 页数:59 大小:417KB
返回 下载 相关 举报
ARM嵌入式系统基础及应用第一版 教学课件 ppt 作者 黄俊 全书 第5章_第1页
第1页 / 共59页
ARM嵌入式系统基础及应用第一版 教学课件 ppt 作者 黄俊 全书 第5章_第2页
第2页 / 共59页
ARM嵌入式系统基础及应用第一版 教学课件 ppt 作者 黄俊 全书 第5章_第3页
第3页 / 共59页
ARM嵌入式系统基础及应用第一版 教学课件 ppt 作者 黄俊 全书 第5章_第4页
第4页 / 共59页
ARM嵌入式系统基础及应用第一版 教学课件 ppt 作者 黄俊 全书 第5章_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《ARM嵌入式系统基础及应用第一版 教学课件 ppt 作者 黄俊 全书 第5章》由会员分享,可在线阅读,更多相关《ARM嵌入式系统基础及应用第一版 教学课件 ppt 作者 黄俊 全书 第5章(59页珍藏版)》请在金锄头文库上搜索。

1、第5章 中断在嵌入式系统中的应用,5.1 中断概述 5.2 Windows CE下的中断处理分析 5.3 本章小结,CPU对外围设备进行控制时,如果周期性地查询硬件的工作状态,那么CPU的利用率将会很低。因为绝大多数外围设备并不是一直处于工作状态,它们在大部分的时间内都是处于空闲状态,所以如果这个时候还要占用CPU资源,则是对资源的一种极大的浪费。尤其对于一个嵌入式操作系统,需要具有高实时性的指标。因此,就需要引入一种新的机制中断来解决这个问题。,5.1 中 断 概 述,5.1.1 中断原理 所谓中断,是指处理事情的一个“过程”,这一过程一般是由计算机内部或外部某种紧急事件引起并向主机发出请求

2、处理的信号,主机在允许的情况下响应请求,暂停正在执行的程序,保存好“断点”处的现场,转去执行中断处理程序,处理完中断服务程序后自动返回到原断点处,继续执行原程序,这一处理过程称为“中断”。比如当定时器计数归零时、有键盘信号输入时、有异步事件发生时等,CPU都需要暂停当前的工作,转去执行相应的事件处理子程序,待执行完毕后再回到断点处,继续执行原来的程序,这就形成了一次中断过程。,凡是能引起中断的外部设备或内部原因,都称为中断源。通常中断源包括:输入/输出设备、实时控制过程中的各种参数、故障源以及软件中断等。 由于中断请求是随机发生的,因此CPU在响应中断时需要从多个外设中识别出提出中断请求的设备

3、。只有正确识别了中断源,CPU才能找到相应的中断服务程序入口地址,转入中断服务程序并为之服务。识别中断源有两种方法:查询法和矢量法。,1. 查询法 查询法是一种软件程序查询的方式,它需要必要的硬件支持。基本流程是:当CPU收到中断请求信号时,通过执行一段查询指令对外设进行逐个询问,直至找到发出中断请求的设备。查询法流程如图5.1所示。 查询法的优点是硬件简单,程序层次分明,查询的顺序就决定了设备的优先级,而且只要改变程序中的查询顺序即可改变中断源的优先级,而不必改变硬件连接。其缺点是由于要对外设进行逐个询问因此造成运行速度慢,实时性差,CPU的使用效率低。,图5.1 查询法流程图,2. 矢量法

4、 矢量法是一种硬件查询方法。当CPU响应某个外设的中断请求时,它会要求外设提供中断类型号,CPU根据该中断类型号自动指向相应的中断服务程序的入口地址,转入中断服务程序进行处理。矢量法主要通过硬件实现,其优点在于识别中断源时不需占用CPU的额外时间,在中断响应周期即可完成。,5.1.2 中断的分类 Intel 80x86可以处理256种类型的中断源,按照中断源与CPU的相对位置关系可以将中断分为内部中断和外部中断。 1. 内部中断 内部中断也称软中断,是由于微处理器内部执行程序时检测到异常或执行软中断指令时所引起的程序中断,与外部中断电路无关。内部中断可以分为除法错中断、单步中断、指令中断和溢出

5、中断四类。,(1) 除法错中断(0型中断):在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,将产生一个向量为0的内部中断。 如: MOV BL, 0 DIV BL ;BL=0,产生除法错中断 又如: MOV AX, 200H MOV BL, 1 DIV BL ;商为200H,不能用AL表示,产生除法错中断,(2) 单步中断(1型中断):若单步标志TF为1,则在每条指令执行结束后产生一个向量号为1的内部中断,使程序单步执行。单步中断常用于实现对程序的单步调试。 (3) 指令中断:在指令INT n时产生的一个中断向量号为n(0255)的内部中断。其中向量号为3的指令常用于程序调试中设置

6、断点,调试器可以用该断点查看随程序执行而动态变化的事件情况。 (4) 溢出中断(4型中断):在执行溢出中断指令INT O时,若溢出标志位OF为1,则产生一个向量号为4的中断。一般在算术指令后安排一条INT O指令,以便于处理溢出错误。,如: MOV AX,3000H ADD AX,6000H INT O ;3000H+6000H=9000H,溢出,OF=1,产生溢出中断,内部中断有以下特点: 中断向量号是由CPU自动提供的,不需要在执行中断响应总线周期时去读取向量号。 除单步中断外,所有的内部中断都无法屏蔽,即都不能通过执行CLI指令使内部中断允许标志位IF清零来屏蔽对它们的响应。 除单步中断

7、外,任何内部中断的优先权都比外部中断高。,2. 外部中断 外部中断也称硬件中断,是由微处理器外部设备引起的中断。外部中断是外设随机产生的,它发生中断的时间通常是不确定的,可能在程序执行的任何位置发生,因此外部中断是真正意义上的中断。而内部中断是由程序执行引起的异常指令产生的,它产生中断的时间是可以预知的,而且可以根据需要在程序中进行设定,所以内部中断又称为异常中断。外部中断可以分为非屏蔽中断和可屏蔽中断两种。,(1) 非屏蔽中断:外部设备的中断请求信号通过NMI管脚引入CPU。它不受中断允许标志位IF 的影响,即使在关中断(IF=0)的情况下,CPU也能在当前指令执行完毕后就立即响应NMI管脚

8、上的中断请求。 非屏蔽中断主要用于处理系统的意外或故障,如电源掉电前的数据保护、存储器读写错误或受到严重干扰时的处理。在多数嵌入式系统中,都将NMI中断输入引脚设置为无效状态,因此这类中断不会在嵌入式系统中发生。,(2) 可屏蔽中断:外部设备发出的中断请求信号先暂存在中断源接口电路的中断请求触发器中,然后通过INTR管脚引入CPU。中断允许标志位IF的状态决定了CPU是否响应中断。当IF=0时,中断请求将被屏蔽;只有在IF=1时,CPU才能响应中断源的请求,在执行完当前指令后就予以响应。 外部中断主要用于微处理器和外设之间交换数据。,内部中断和外部中断的区别包括: 中断引发的方式不同。内部中断

9、是由于CPU执行INT n指令时引起的中断;外部中断是由CPU以外的硬件设备发出的中断请求而引发的中断,且中断的发生具有随机性。 CPU响应的条件不同。对于外部可屏蔽中断,只有在CPU开中断时才能响应,且硬中断有响应周期而软中断没有。 CPU获得中断类型码的方式不同。响应内部中断时,中断类型码是固定的或由INT n指令本身提供的;对于外部中断,中断类型码是由中断控制器提供的。 中断处理程序的结束方式不同。,5.1.3 中断优先级及其判别 外部设备发出的中断请求信号都是通过INTR引脚引入微处理器的,而CPU只有一个INTR引脚,一次只能处理一个中断请求。当系统中有多个中断源同时提出中断请求时,

10、CPU必须确定首先为哪一个中断提供服务,因此需要考虑设置中断优先级的问题。中断优先级是指中断源被响应和处理的优先等级,设置优先级的目的是为了在有多个中断源同时发出中断请求时,CPU能够按照中断请求优先级顺序进行响应并处理,即首先响应优先级别最高的中断源的请求,处理完毕后,再响应优先级别较低的中断源。,设置中断优先权的另一个作用是支持中断嵌套,即当CPU正在处理当前中断时,能响应更高级别的中断请求,而屏蔽掉同级或较低级别的中断请求。在后面的章节中将对中断嵌套作详细介绍。 确定中断源的优先级可采用两种方法:一种是用软件查询的方法来确定中断优先权;另一种是用硬件优先权排队电路来确定。,(1) 软件查

11、询方法与中断源识别中的查询法相同,实际上,在识别中断源时就已经纳入了中断优先权的判别。先被查询的中断源具有较高的优先权,因为当CPU查到该外设有中断请求时,就立即转入中断服务程序为之服务,而不会再继续向下查找。 采用软件查询方法的优点是实现电路比较简单;软件查询的顺序就是中断优先权的顺序,不需要专门的优先权排队电路;需要修改中断优先权顺序时可以通过直接修改软件查询的顺序来实现,而不必对硬件进行修改。其缺点是速度慢,从逐位检测查询到转入相应的中断服务程序所耗费的时间较长,实时性差,特别是当中断源较多时尤为突出。,(2) 硬件优先权排队电路又称为菊花链式优先权排队电路。它是利用外设连接在排队电路的

12、物理位置来决定其中断优先权的,排在最前面的优先权最高,排在最后面的优先权最低。在菊花链中断机制一节将对其做详细的介绍。,5.1.4 中断处理过程 当微处理器需要与外设进行数据传送时,有多种传送方式。在查询传送方式下,两者需要交互时,微处理器首先查询外设的工作状态。只有当外设处于就绪状态时才能进行数据传输,因此微处理器浪费了大量时间在状态查询循环中,降低了系统的工作效率。而采用中断传送方式时,微处理器可正常执行主程序,当外设需要与处理器进行信息交互时,通过硬件信号的形式,向微处理器引脚发送有效的请求信号进行中断请求。微处理器会在每条指令的最后一个时钟周期去采样中断请求输入引脚的状态。一个完整的中

13、断过程包括中断请求、中断响应、中断服务和中断返回四个基本过程。,(1) 中断请求:外设需要中断时向CPU发送中断请求信号,但处理器不是对每一个中断请求都予以响应,中断请求信号只有在满足一定条件时,微处理器才进入中断响应总线周期。需要满足的条件包括以下几点: 中断源发出的中断请求信号能一直保持,直至CPU响应这个中断后,才能将中断请求清除。 每一个外设的接口电路中都有中断屏蔽触发器,只有当此触发器为“1”时,外设的中断请求才能被送至CPU。 CPU内部有一个中断允许触发器,只有当其为“1”时,CPU才能响应中断;若其为“0”,即使INTR线上有中断请求,CPU也不会响应。,(2) 中断响应:在满

14、足以上的中断条件后,CPU就会响应中断。具体操作包括: 关中断:CPU在响应中断后,会发出中断响应信号,并自动关闭中断,以禁止响应其他可屏蔽中断的请求。 断点保护:断点是指中断前CPU状态寄存器的当前内容及发生程序转移前下一条指令的存储地址。 CPU响应中断后, 将自动保护断点,把断点处的指令指针值(IP)和段基址(CS)压入堆栈中,以保证中断处理完毕后能返回到原来的断点处。,图5.2 中断处理过程流程图, 保护现场:为了使主程序的执行不受中断处理程序的影响,故要把断点处有关寄存器的内容和标志位的状态全部压入堆栈保护起来,这样,当中断处理完成后返回主程序时,CPU能够恢复中断前主程序的状态,保

15、证主程序的正确执行。若允许中断嵌套,保护现场后要将中断打开,以响应更高优先级的中断请求。,(3) 中断服务:响应中断后,系统通过中断控制器提供的中断向量形成中断入口地址,使CPU能够正确进入中断服务程序进行中断处理。为了尽量减少占用微处理器的时间,中断服务程序应该短小简洁。在中断服务程序执行完毕后还需要执行以下两个操作: 恢复现场:把所保存的各个寄存器的内容和标志位的状态从堆栈中弹出,送回CPU中原来的位置。在恢复现场前要关中断,以防止现场被破坏。 开中断:恢复现场后要将中断打开,否则微处理器在中断返回后无法再次响应可屏蔽中断。,(4) 中断返回:执行中断返回指令IRET,将堆栈内保存的断点地

16、址弹出,程序返回原来的断点处,继续执行原来的主程序。流程图如图5.2所示。 中断处理过程的程序代码实现如下: PUSH AX ;保护现场 PUSH SP STI ;开中断 ;中断服务,CLI ;关中断 POP SP ;恢复现场 POP AX STI ;开中断 IRET ;中断返回,以上介绍了中断的一些基本概念,下面本书将就Windows CE下的中断处理进行详细的分析。,5.2 Windows CE下的中断处理分析,5.2.1 Windows CE中断的相关概念 首先介绍一些Windows CE常用到的概念。 1. IRQ(Interrupt ReQuest) 物理中断请求 IRQ指外部设备通过CPU的中断引脚向CPU发送中断信号。例如,在X86架构的CP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号