欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    第五部分单片机中断和存储空间的扩展教学课件.ppt

    • 资源ID:2527280       资源大小:903.51KB        全文页数:37页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第五部分单片机中断和存储空间的扩展教学课件.ppt

    第五章 单片机中断和存储空间的扩展,5.1单片机中断 5.1.1 中断定义 5.1.2 中断工作流程 5.1.3 中断嵌套和中断优先级 5.1.4 中断潜在危险 5.2 单片机中断程序设计实例,Page 1,Lecture3 Page 2,单片机的认识与实践,中断,What and Why 中断处理流程 标志位 使能 中断服务程序ISR 中断向量表 Interrupt vector table 中断嵌套和中断优先级 nesting/prioirity 中断潜伏期 latency,Lecture3 Page 3,单片机的认识与实践,什么是中断,中断是一个需要CPU立刻处理的内部/外部事件 内部事件 : 定时器定时时间到 AD变换结束 外部事件 : 按键动作 发生外部通信 ,Lecture3 Page 4,单片机的认识与实践,中断 vs 轮询,轮询: 周期/连续的检查外部事件是否发生 消耗大量CPU的处理时间 轮询过程需要和其他功能代码结合 由于CPU需要处理其他事件(可能是无关紧要的),可能丢失关键事件 中断 由硬件来判断是否发生外部事件并通知CPU 专用的中断服务程序来处理事件,Lecture3 Page 5,单片机的认识与实践,中断 vs 轮询,中断 适于处理对响应要求非常高的事件 适于处理持续事件非常短的事件 适于低功耗的应用 程序设计较复杂 轮询 适于处理对时间响应要求低的场合 程序设计简单,Lecture3 Page 6,单片机的认识与实践,中断工作流程,内部/外部事件请求CPU处理 CPU停止正常流程,执行中断服务程序ISR ISR结束后,CPU返回正常流程,正常流程,中断请求,中断服务子程序,PC,程序计数器,Lecture3 Page 7,单片机的认识与实践,堆栈,中断的堆栈占用,正常流程,中断请求,中断处理服务程序,为什么?,保存返回地址 和寄存器上下文(Register context),Page 8,单片机的认识与实践,中断的堆栈占用,中断的寄存器入栈由CPU硬件完成 对于具体的CPU,在中断时哪些寄存器被推入堆栈/寄存器在堆栈的保存顺序是在其手册中指明的。 It is the programmers responsibility to find out from the datasheet.,Lecture3 Page 9,单片机的认识与实践,中断 vs 轮询,比如早上7点早起,要听第一节单片机课:,反复看钟 确定时间。,Lecture3 Page 10,单片机的认识与实践,中断标志位,Indications - Interrupt flag (IF) 每一个中断源都有对应的中断标志 中断标志位将引发向CPU的中断请求 通过读写操作可以清除中断标志位,What happened if IF is not cleared?,Lecture3 Page 11,单片机的认识与实践,中断控制,中断允许/禁止 全局中断控制 - enable/disable ALL interrupts CPU的CCR寄存器中一个特殊位. 在复位后,全局禁止位是置起的 中断发生后,全局禁止位也被置起 Dedicated IE one bit for each interrupt sources 通常在复位后所有的中断都被禁止了,Interrupt request,IF,Global IE,dedicated IE,Lecture3 Page 12,单片机的认识与实践,CCR(X and I bit),全局中断控制,不可屏蔽中断控制位,Lecture3 Page 13,单片机的认识与实践,CCR(X and I bit),Resets, the SWI instruction are not affected by the X and I mask bits. Interrupt service requests from the XIRQ pin are inhibited when X =1, but are not affected by the I bit. X can be set from 1 to 0 only. All other interrupts are inhibited when I = 1.,IRQ,XIRQ,Reset,MCU,快速响应的事件、 严重的错误处理,绝大多数常规应用,Lecture3 Page 14,单片机的认识与实践,中断服务子程 ISR,中断服务子程(ISR,Interrupt Service Routine) 中断服务子程不同于一般的子程序 由CPU硬件自动调用,而不是由其他程序调用 在ISR执行前,CPU已经进行了一些特殊操作 ISR需要特殊的返回处理(指令) 对每一个中断,必须调用对应的ISR - how?,SCI_RX_ISR: turn on global IE if interrupt nesting is enabled clear the IF .process rti,Lecture3 Page 15,单片机的认识与实践,中断向量表,中断向量表是一段连续的存储空间 在复位后有默认的起始位置 通过改写中断向量基址寄存器可以重新定位向量表 每个中断在向量表中都有相应的表项,该表项的值为该中断对应的服务程序的地址(地址指针) 由程序代码确定中断向量表的每个表项,Lecture3 Page 16,单片机的认识与实践,中断向量表,YES, It is also the programmers responsibility to find this information from the datasheet.,Lecture3 Page 17,单片机的认识与实践,中断优先级,多个中断同时出现时,高优先级中断先得到响应 中断优先级可以是固定的或编程指定的 固定优先级: 根据中断向量表顺序 (查查DataSheet) 设定优先级:每个中断都有优先级设置位 相同优先级的中断,按先后顺序处理,Lecture3 Page 18,单片机的认识与实践,中断嵌套,中断嵌套指CPU在执行一个中断服务程序的过程中,可以再次响应新的中断请求。 在进入中断服务程序时,CPU硬件会将全局中断使能位关闭。为了实现中断嵌套,必须在ISR开始重新允许全局中断(在有多优先级的情况下,选择允许到哪一个级别的中断)。 中断嵌套的层数 中断嵌套对堆栈的消耗很大,Lecture3 Page 19,单片机的认识与实践,Normal Process,External event,ISR,中断嵌套时的堆栈,ISR,STACK,External event,Lecture3 Page 20,单片机的认识与实践,中断的潜在危险,Global variables, While (A != 0) temp = arrayA; A-; putchar(temp); ISR: . A+;,Array 是个字符串,例如”hello!” A是一个全局变量,XIRQ的问题,Page 21,Numbering and coding systems,5.1 单片机中断 中断的定义,中断是一个需要CPU立刻处理的内部/外部事件 内部事件 : 定时器定时时间到 AD变换结束 外部事件 : 按键动作 发生外部通信 由硬件来判断是否发生外部事件并通知CPU 专用的中断服务程序来处理事件,正常流程,中断请求,中断处理服务程序,Page 22,5.1 单片机中断 中断 vs 轮询,中断 适于处理对响应要求非常高的事件 适于处理持续事件非常短的事件 适于低功耗的应用 程序设计较复杂 轮询: 周期/连续的检查外部事件是否发生 消耗大量CPU的处理时间 轮询过程需要和其他功能代码结合 由于CPU需要处理其他事件(可能是无关紧要的),可能丢失关键事件 轮询 适于处理对时间响应要求低的场合 程序设计简单,Page 23,5.1 单片机中断 中断工作流程,1、中断源:能使CPU产生中断的信号源,CPU所能支持的中断源的数目反映CPU对外部事件的处理能力。 以MC9S12XSl28为例,提供了: 114个可屏蔽的中断向量($FF10$FFF2)。 提供一个非可屏蔽中断向量XIRQ($FFF4)。 提供一个非可屏蔽软件中断(SWl) ($FFF6)。 提供一个非可屏蔽非法指令陷阱($FFF8)。 提供三个系统复位向量($FFFA$FFFE) (看门狗、时钟监视器、复位)。,Page 24,5.1 单片机中断 中断工作流程,2、中断标志:在中断源发生变化后,会置相应的中断标志,用以表明当前该中断源产生了请求事件。中断标志在系统允许的情况下,就会向CPU发出中断请求信号。多个中断源可能共用一个中断请求信号,靠查询中断标志来区分中断源。 在中断标志有效的过程中,会持续向CPU发出中断请求。因此CPU在响应了中断请求后,必须通过硬件或软件指令清除中断标志。,Page 25,5.1 单片机中断 中断工作流程,3、中断控制: (A)可屏蔽中断的允许/禁止 全局中断控制 - enable/disable ALL interrupts CPU的CCR寄存器中一个特殊位I. 在复位后,全局禁止位是置起的 中断发生后,全局禁止位也被置起 专门的允许/禁止 Dedicated IE one bit for each interrupt sources 通常在复位后,所有的专门中断都被禁止了,中断请求,中断标志,全局的中断使能,专门的中断使能,5.1 单片机中断 中断工作流程,(B)不可屏蔽中断的允许/禁止 不能禁止的中断 上电和外部按键复位 软件中断(SWl)(中断向量为$FFF6$FFF7) SWI实质上是一条指令,执行过程与中断相同,即通过中断向量确定目标地址,它自动保存MCU的寄存器和返回地址,最后必须通过RTI指令返回。但它和其他中断有所不同,首先它的出现是由程序决定的,而非外部事件,因此出现的时机是确定的。SWI的作用类似于某个子程序的调用。 非法指令陷阱(中断向量为$FFF8$FFF9) MCU执行程序时,都是执行由汇编或编译程序生成的有效的操作码,当受到干扰或系统混乱时,可能无法取得正确的操作码,这些操作码无法识别,被称为非法指令,此时MCU就会自动产生一次中断。在软件调试阶段,合理利用该中断还可以发现某些如程序跑飞、死机等的软件错误,帮助查找问题的根源。 能禁止的中断 看门狗复位 时钟监视复位 外部中断XIRQ(中断向量为$FFF4$FFF5)。在等待和停止模式,该中断可唤醒MCU。XIRQ中断一般用于系统掉电、硬件故障等重要场合。,5.1 单片机中断 中断工作流程,全局中断控制,不可屏蔽中断控制位,CLI ANDCC #$BF,Page 28,5.1 单片机中断 中断工作流程,4、中断与堆栈,堆栈,正常流程,中断处理服务程序,保存返回地址 保存现场,恢复返回地址 恢复现场,Page 29,5.1 单片机中断 中断工作流程,中断时,返回地址的保存与恢复由CPU硬件完成,至于在中断时哪些寄存器被保存以及在堆栈中的保存顺序是由具体的CPU决定的,见其工作手册。 S12XS单片机在复位后其中断被禁止,需要使用开中断指令允许CPU响应中断。响应中断时,由硬件将核心寄存器堆推入堆栈,顺序如下:,Page 30,5.1 单片机中断 中断工作流程,5、中断向量表: CPU为每个响应的中断源指定一个标号,这个标号就叫做中断向量号。每个中断的中断服务程序的地址都按照其中断向量号的顺序保存成一张表,叫做中断向量表。 中断向量表是一段连续的存储空间 在复位后有默认的起始位置 通过改写中断向量基址寄存器可以重新定位向量表 每个中断在向量表中都有相应的表项,该表项的值为该中断对应的服务程序的地址(地址指针) 由程序代码确定中断向量表的每个表项,Page 31,5.1 单片机中断 中断工作流程,5、中断向量表(P100):,Page 32,5.1 单片机中断 中断工作流程,5、中断向量表($FFFE$FF10,120个中断向量 ) S12X单片机的三个中断的中断向量地址是固定不变的,它们是: 复位向量($FFFE)。 时钟监控复位 ($FFFC)。 看门狗复位($FFFA)。 其他复位向量可通过修改中断向量基地址寄存器IVBR,将中断向量表转移到任意一个以256字节为边界的地址空间。 IVBR的地址为$0121,复位后默认值为$FF。,Page 33,5.1 单片机中断 中断工作流程,6、中断服务程序(ISR,Interrupt Service Routine) 由CPU硬件自动调用,而不是由其他程序调用 在ISR执行前,CPU已经进行了一些特殊操作 ISR需要特殊的返回处理(指令) 程序设计时需要将中断服务程序的地址填入中断向量表 7、中断嵌套 中断嵌套指CPU在执行一个中断服务程序的过程中,可以再次响应新的中断请求。 在进入中断服务程序时,CPU硬件会将全局中断使能位关闭。为了实现中断嵌套,必须在ISR开始重新允许全局中断(在有多优先级的情况下,选择允许到哪一个级别的中断)。 中断嵌套的层数 中断嵌套对堆栈的消耗很大,Page 34,Normal Process,External event,ISR,ISR,STACK,External event,5.1 单片机中断 中断工作流程,中断嵌套时的堆栈:,Page 35,5.1 单片机中断 中断工作流程,8、中断优先级 多个中断同时出现时,高优先级中断先得到响应 中断优先级可以是固定的或编程指定的 固定优先级:根据中断向量表顺序 设定优先级:每个中断都有优先级设置位 相同优先级的中断,按先后顺序处理,S12X单片机的中断优先级:,中断优先级总共分7个级别,1级最低,7级最高,0关中断; 在低优先级的中断可以通过开中断指令CLI,允许高优先级中断嵌入,相同优先级的中断不能嵌入。最多7级中断嵌套,至少占用70B堆栈空间; CCR中的IPL用来标志中断优先级。当高优先级中断嵌入低优先级时,低优先级中断的优先级等级将随CCR寄存器自动入栈,当高优先级中断退出后,CCR从堆栈中恢复原来的中断级别; 通过中断请求配置地址寄存器和数据寄存器来修改优先级。,Page 36,5.1 单片机中断 中断工作流程,8、中断优先级 中断请求配置地址寄存器INT_CFADDR($0127) 8位寄存器,仅高4位有效,用来选择128个中断请求配置数据寄存器中的连续8个。例如: 写入$E0就选择了基地址+E0、基地址+E02、基地址+EE这8个中断源 中断请求配置数据寄存器INT_CFDATA07($0128 $012F) 通过8个中断请求配置数据寄存器INT_CFDATA07,为上述的8个指定的中断源设定优先级。仅低3位有效。 中断请求配置数据寄存器复位后值为1,说明初始时所有中断源均设为最低级中断。,Page 37,5.1 单片机中断 中断潜在危险,Global variables, While (A != 0) temp = arrayA; A-; putchar(temp); ISR: . A+;,Array 是个字符串,例如”hello!” A是一个全局变量,XIRQ的问题,

    注意事项

    本文(第五部分单片机中断和存储空间的扩展教学课件.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开