版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌套向量中断 中断的概念中断的概念 CPU正在执行程序时,单片机外部或内部发生的某一事件 ,请求CPU迅速去处理。 CPU暂时中止当前的工作,转到中断服务处理程序处理所 发生的事件。 处理完该事件后,再回到原来被中止的地方,继续原来的 工作,这称为中断。 CPU处理事件的过程,称为CPU的中断响应过程。 执行主 程序 主程序 继续执行 主程序 中断请求 中断响应 执行 中断 处理 程序 中断返回 对事件的整个处理过程,称为对事件的整个处理过程,称为中断处理中断处理(或中断服务或中断服务,ISR,ISR)。)。 中断方式中断方式优点优点:大大地大大地提高了提高了CPU的工作效率。的工作效率。 能
2、够实现中断处理功能的部件称为能够实现中断处理功能的部件称为中断系统中断系统 1. 能实现中断响应、中断处理(服务)、中断返回和中断屏蔽。这 是中断系统最基本的功能。 2. 能实现中断优先级管理。即当有多个中断源同时申请中断时,CPU 能够优先响应最紧急的中断申请。 3. 能实现中断嵌套。即当CPU正在为优先级较低的中断源服务时,具 有较高优先级的中断源提出中断申请,此时中断系统应当允许较 高优先级的中断源中断较低优先级的中断源,待较高优先级的中 断处理完成后,再接着处理较低优先级的中断。这种中断服务程 序再被中断的过程称为中断嵌套。一般的中断系统应能够处理多 级中断嵌套 中断系统需要解决的问题
3、:中断系统需要解决的问题: 产生中断的请求源称为产生中断的请求源称为中断请求源中断请求源。 常见的中断源有:常见的中断源有: 一般的一般的I/OI/O设备,如键盘、打印设备。设备,如键盘、打印设备。 数据通道中断源,如数据通道中断源,如ADAD等。等。 实时时钟。实时时钟。 故障源故障源 中断源向中断源向CPUCPU提出的处理请求,称为提出的处理请求,称为中断请求中断请求( (或中断申请或中断申请) )。 进入中断进入中断保护现场保护现场中断处理恢复现场中断处理恢复现场 中断返回中断返回 u首先,CPU应收到一个可靠的中断请求信号,且该中断请求信 号应一直保持到它被响应为止。如果中断请求信号中
4、途撤销, 则CPU将不再响应。 u其次,在中断请求的同时,没有更高级的请求信号发生。如果 它们同时发生,CPU将先处理优先级别较高的请求。 u第三,CPU内部应处在开中断(允许中断)状态。 u第四,CPU至少要在当前指令执行完成时才可能响应中断。 异常/中断 v 系统异常是Cortex-M3内核自带的一些异常,比如复位、 总线Fault和SysTick等等 v 外设中断是指制造CPU的厂家加入的,比如串口、定时器 中断等等 v 异常和中断都可以“中断”正常执行的代码流 v 区别在于: v 异常是Cortex-M3内核产生的“中断”信号,在执行指令 或访问存储器时产生的,对Cortex-M3 内
5、核来说是“同 步”的 v 而中断是Cortex-M3内核外部(片上外设或外部中断信号 )产生的“中断”信号中断请求信号一般来自内核的外部 片上外设或外扩的设备等,对Cortex-M3 内核来说 是“异步”的。 NVIC(Nested Vectored Interrupt Controller) Cortex-M3 处理器在内核水平上搭载了一个中断控制器 嵌套向量中断控制器 NVIC 功能: 1 可嵌套中断支持 所有异常都可被赋予不同的优先级,当前异常的优先级被 存储在特殊功能寄存器PSRs的专用字段中,当一个新的 异常发生时,硬件会自动进行优先级比较,若发现最新异 常的优先级较高,处理器则会中
6、断当前的服务例程(或者 是普通程序),而响应新来的异常即抢占了低优先级 异常。 NVIC 功能 2.向量中断支持 当开始响应一个中断后,Cortex-M3 会自动定位一张向 量表,根据中断号从表中找出相应中断的入口地址,然后 跳转过去执行 3.动态优先级调整支持 优先级在中断运行期间可以通过软件进行修改。在中断服 务例程执行完成前,中断是被锁定的,无法进行深度激活 ,避免了意外重入的风险。 4.中断延迟大大缩短 Cortex-M3 为了缩短中断延迟,引入了多个新特性。包 括中断现场的自动保护与恢复,“咬尾中断”和“晚到中 断”机制的支持 5 中断可屏蔽 通过设置BASEPRI、PRIMASK
7、和FAULTMASK 等寄 存器, 既可屏蔽优先级低于某个阈值的中断,也可以屏 蔽所有中断,保证时间关键的任务能在最后期限前完成。 异常类型 v Cortex-M3 在内核水平上搭载了一个异常响应系统,支 持11 种系统异常和240 个外部中断输入,如表2.9 所列 。其中,编号115 对应的是系统异常,大于等于16 的则 全是外部中断。除了个别异常有固定的优先级外,其它异 常的优先级都是可编程的。系统异常和外部中断通过不同 的寄存器组进行控制。 v 系统异常是Cortex-M3 内核支持的基本异常,与具体的 芯片无关,而外部中断则是与芯片相关的,芯片厂商会根 据需要和用途设计中断源数目(1-
8、240)和优先级的位数 。LPC1700 系列Cortex-M3 支持35 个外部中断和32 个 中断优先级。 异常向量表 当有中断发生并得到响应时,处理器首先将定位其中断服务函数的入 口地址,以便进行相应的处理。中断向量即是指中断服务程序的入口 地址,在Cortex-M3 中,规定内存储器的最低一部分区域用来存放 中断向量(共256 个),称这一片内存区为向量表。缺省情况下, Cortex-M3中的向量表位于Flash 空间的零地址处,表中每个向量占 用4 个字节 中断的具体行为 一个中断输入被认为有效后,就会被挂起。即使一段时间 后该中断的中断源取消了此次请求,挂起状态仍然会被保 存,直到
9、此中断成为系统中最高的优先级时,就会得到处 理器的响应 但是,如果挂起中断在得到响应之前,其挂起状态被清除 了(通过修改PRIMASK 或FAULTMASK 寄存器),则此 次中断请求无效,中断的挂起状态在NVIC 的寄存器中是 可写的,用户通过修改相关寄存器可挂起一个中断,也可 清除一个中断。 中断的具体行为 v 当某中断的服务例程开始执行时,就称此中断进入了“活 跃”状态,并且其悬起位会被硬件自动清除。在一个中断 活跃后,直到其服务例程执行完毕,并且返回(亦称为中 断退出)后,才能对该中断的新请求予以响应(单实例) 。当然,新请求在得到响应时,亦是由硬件自动清零其悬 起标志位。中断服务例程
10、也可以在执行过程中把自己对应 的中断重新悬起 中断的具体行为 如果在执行某中断的服务函数期间,中断源一直保持请求 信号有效,该中断就会在其服务程序返回后再次被挂起, 同样,若中断在服务例程执行过程中释放了请求,但在服 务例程返回前又发出了新的请求信号,则处理器会记住此 动作,将再次挂起该中断 中断的具体行为 如果中断在得到响应之前,其请求信号以脉冲的形式出现 若干次,则被视为只有一次请求 中断的具体行为 中断源中断源 v 每一个外围设备可以有一条或几条中断线连接到向量中断 控制器。多个中断源也可以共用一条中断线。除过ARM内 核指定的某些标准外,哪一条中断线连接到哪一个中断源 是无关紧要的或没
11、有优先级的 寄存器 每个外部中断都在NVIC的下列寄存器中“挂号”: 使能与除能寄存器 挂起与“解挂”寄存器 优先级寄存器 活动状态寄存器 另外,下列寄存器也对中断处理有重大影响 异常掩蔽寄存器(PRIMASK, FAULTMASK以及 BASEPRI) 向量表偏移量寄存器 软件触发中断寄存器 优先级分组位段 寄存器 寄存器 v 中断使能设置寄存器 l 使能中断 l 决定当前使能的是哪个中断。 v 该寄存器的一个位对应一个中断(共32 个中断)。置位 中断使能设置寄存器的位可以使能相应的中断。 v 当挂起(pending)中断的使能位置位时,处理器会根据 其优先级将其激活。使能位清零时,虽然其
12、中断信号有效 ,可以将中断挂起,但不管其优先级如何,该中断都不能 被激活。因此被禁能的中断可以当作一个被锁存的GPIO 位。用户无需调用中断就可以直接对它进行读取和清零操 作。 v 1= 使能中断 v 0= 禁能中断 寄存器 v 中断使能清除寄存器 l 禁能中断 l 决定当前被禁能的中断 v 该寄存器的一个位对应一个中断(共32 个中断)。置位 中断使能清除寄存器的位可以禁能相应的中断。 1= 禁能中断 0= 使能中断 v 中断挂起(pend)设置寄存器 l 将中断强制挂起 l 决定当前被挂起的中断 v 该寄存器的一个位对应一个中断(共32 个中断)。置位 中断挂起设置寄存器的位可以挂起相应的
13、中断。 v 写中断挂起设置寄存器操作对已经挂起或已经被禁能的中 断没有影响 1= 挂起相应的中断 0= 不挂起相应的中断 v 中断挂起清除寄存器 l 清除挂起中断 v 决定当前正在挂起哪个中断 v 该寄存器的一个位对应一个中断(共32 个中断)。置位 中断挂起清除寄存器的位可以让相应的挂起中断变为不激 活状态。 v 写中断挂起清除寄存器操作对那些已经激活的中断没有影 响,除非这些中断也正处于挂起状态。 外部中断输入 概述 LPC1700系列ARM具有4路外部中断,可以设置为2种类型: 边沿触发: 上升沿触发 下降沿触发 电平触发: 高电平触发 低电平触发 中断信号下降沿触发 外部中断输入 边沿
14、触发中断 下降沿触发类型中断的请求和清除时序。 T1T2 T1时刻,中断信号有下降沿产生,中断控制器向CPU 发出中断请求。 1 T2时刻,CPU执行完成中断控制器的中断服务程序, 清除中断,中断信号回复到高电平。 2 中断信号低电平触发 外部中断输入 电平触发中断 低电平触发类型中断的请求和清除时序。 T1T3 T1时刻,中断信号开始由高电平转为低电平。 1 T2时刻,中断控制器确认中断信号是低电平后,将向 CUP发出中断请求。 2 T2 T3时刻,CPU执行完成中断控制器的中断服务程序, 清除中断,中断信号回复到高电平。 3 外部中断源34 (EINT0) 外部中断源35 (EINT1)
15、外部中断源36 (EINT2) 外部中断源37 (EINT3) ARM 处理器核 嵌套 向量 中断 控制 器 (NVIC) 外部中断输入 外部中断源 LPC1700系列微控制器几乎所有的外设部件都可以 产生中断。其中外部中断含有4个独立的中断输入。 系统控制模块功能汇总 名称描述访问复位值 EXTINT外部中断标志寄存器R/W0 EXTMODE外部中断方式寄存器R/W0 EXTPOLAR外部中断极性寄存器R/W0 寄存器汇总 外部中断输入 寄存器汇总 可以通过设置PINSELx寄存器选择对应引脚为外部中 断输入引脚。 1 可以通过设置EXTPOLAR和EXTMODE确定外部中断 的触发信号。
16、2 可以控制把CPU从掉电模式唤醒。 3 有效中断信号设置中断标志。 4 管脚 连接控制 外部中断 极性控制 外部中断 方式控制 中断标志 PINSELx EXTPOLAREXTMODEEXTINT CPU 其它部件 1 2 3 外部中断 极性控制 外部中断 方式控制 掉电 唤醒控制 中断标志 EXTPOLAREXTMODE EXTINT EXTWAKE 管脚 连接控制 PINSELx CPU 其它部件 寄存器汇总 中断相关寄存器 EXTINTEINT0 7 : 40 EINT1 1 EINT2 2 EINT3 3 若引脚上出现了符合要求的信号,EXTINT寄存器中对应的中断标志 将被置位。向
17、该寄存器的EINT0EINT3位写入1,可将其清零。 外部中断标志寄存器(EXTINT): 注意:在电平触发方式下,清除中断标志只有在引脚处于无效状态时才可 实现。比如设置为低电平中断,则只有在中断引脚恢复为高电平后才能清 除中断标志。 设置该寄存器允许相应的外部中断将处理器从掉电模式唤醒。实现掉 电唤醒不需要在向量中断控制器(VIC)中使能相应的中断。该寄存器的 低四位(EXTWAKE3:0)分别对应外部中断30。 外部中断唤醒寄存器(EXTWAKE): 控制寄存器 EXTWAKEEXTWAKE0 7 : 40 EXTWAKE1 1 EXTWAKE2 2 EXTWAKE3 3 外部中断方式控
18、制寄存器(EXTMODE): 该寄存器控制着外部中断输入信号的有效触发方式,低四位分别对应 外部中断30。对应位为0时,电平触发外部中断;对应位为1时,边沿 触发外部中断。 控制寄存器 EXTMODEEXTMODE0 7 : 40 EXTMODE1 1 EXTMODE2 2 EXTMODE3 3 外部中断极性控制寄存器(EXTPOLAR): 电平触发方式下:对应位为0时,低电平触发外部中断;对应位为1时, 高电平触发外部中断。边沿触发方式下:对应位为0时,下降沿触发外部中 断;对应位为1时,上升沿触发中断。 控制寄存器 EXTPOLAREXTPOLAR0 7 : 40 EXTPOLAR1 1
19、EXTPOLAR2 2 EXTPOLAR3 3 设置说明 相应位设置值 信号波形 极性控制寄存器 (EXTPOLAR) 方式控制寄存器 (EXTMODE) 低电平触发0(低)0(电平) 高电平触发1(高)0(电平) 下降沿触发0(下降)1(边沿) 上升沿触发1(上升)1(边沿) 中断信号波形与设置方式 外部中断输入 外部中断的设置 LPC1700系列ARM的电平中断可以设置为电平中断和 边沿中断。 当EXTMODE0 = 0时,外部中断0设置为电平触发。 当EXTMODE0 = 1时,外部中断0设置为边沿触发。 注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复
20、。 低电平 高电平 EINT0 0 EXTMODE0 = 0 EXTPOLAR0 高电平中断 低电平中断 上升沿中断 下降沿中断 边沿 中断 VIC 外 部 中 断 0 0 1 1 0 1 电平 中断 外部中断输入 外部中断的设置 LPC1700系列ARM的电平中断可以设置为电平中断和 边沿中断。 当EXTMODE0 = 0时,外部中断0设置为电平触发。 当EXTMODE0 = 1时,外部中断0设置为边沿触发。 注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 EINT0 0 EXTMODE0 = 1 EXTPOLAR0 高电平中断 低电平中断 上升沿中断
21、下降沿中断 电平 中断 VIC 外 部 中 断 0 0 1 1 0 1 下降沿 上升沿 边沿 中断 外部中断输入 电平中断设置 低电平 注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 LPC1700系列ARM的电平中断可以设置为高电平触发和 低电平触发。 当EXTPOLAR0 = 0时,外部中断0设置为低电平触发。 当EXTPOLAR0 = 1时,外部中断0设置为高电平触发。 EINT0 0 EXTMODE0 = 0 EXTPOLAR0 = 0 高电平中断 低电平中断 上升沿中断 下降沿中断 电平 中断 边沿 中断 VIC 外 部 中 断 0 0 1 1
22、0 1 外部中断输入 电平中断设置 EINT0 0 EXTMODE0 = 0 EXTPOLAR0 = 1 高电平中断 低电平中断 上升沿中断 下降沿中断 电平 中断 边沿 中断 VIC 外 部 中 断 0 0 1 1 0 1 注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 LPC1700系列ARM的电平中断可以设置为高电平触发和 低电平触发。 当EXTPOLAR0 = 0时,外部中断0设置为低电平触发。 当EXTPOLAR0 = 1时,外部中断0设置为高电平触发。 高电平 外部中断输入 边沿中断设置 EINT0 0 EXTMODE0 = 1 EXTPOLA
23、R0 = 0 高电平中断 低电平中断 上升沿中断 下降沿中断 电平 中断 边沿 中断 VIC 外 部 中 断 0 0 1 1 0 1 注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 LPC1700系列ARM的边沿中断可以设置为上升沿触发和 下降沿触发。 当EXTPOLAR0 = 0时,外部中断0设置为下降沿触发。 当EXTPOLAR0 = 1时,外部中断0设置为上升沿触发。 下降沿 外部中断输入 边沿中断设置 EINT0 0 EXTMODE0 = 0 EXTPOLAR0 = 1 高电平中断 低电平中断 上升沿中断 下降沿中断 电平 中断 边沿 中断 VIC
24、 外 部 中 断 0 0 1 1 0 1 注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 LPC1700系列ARM的边沿中断可以设置为上升沿触发和 下降沿触发。 当EXTPOLAR0 = 0时,外部中断0设置为下降沿触发。 当EXTPOLAR0 = 1时,外部中断0设置为上升沿触发。 上升沿 外部中断输入 外部中断的设置中断标志 EXTINT0 EXTINT1 EXTINT2 EXTINT3 触发外部中断0 触发外部中断1 触发外部中断2 触发外部中断3 外部中断标志寄存器 EXTINT 注意:外部中断标志写“1”清零。 外部中断输入 外部中断应用示例 初始化EINT0(P2.10)为电平中断: 初始化EINT0为下降沿中断: 清除所有外部中断标志: PINSEL4 = (PINSEL4 EXTMODE = EXTMODE EXTINT = 0 x0F; PINSEL4= (PINSEL4 EXTMODE = EXTMO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年三只熊的早餐说课稿
- 2025-2026学年北师大版数学初一说课稿
- 2025-2026学年大班特别的名字说课稿
- 2025-2026学年1到2岁做糖果的说课稿
- 2025-2026学年多声部合唱说课稿
- 2026下半年下半年小学数学教资面试乘除专项题库
- 2026下半年小学英语教资面试语法试讲
- 《德信诚学习》课件
- 解决问题二年级上册解决问题专项复习
- 虽有佳肴我的课件
- 《DB65-T 8003-2023 建设工程电子文件与电子档案管理标准》
- 2026年软件正版化工作实施方案
- 健身房投资入股协议书样本
- 钢板仓工程专项施工方案
- GB/T 45939-2025光伏组件封装用共挤胶膜
- NBT 11127-2023 在用钢丝绳芯输送带报废检测技术规范
- 母婴同室院感管理课件
- 农村初中生大五人格与生命意义感的内在关联探究
- 基层治保会培训课件
- 2025至2030年中国杭州房地产行业市场竞争现状及未来趋势研判报告
- TD/T 1024-2010县级土地利用总体规划编制规程
评论
0/150
提交评论