数字电子基础技术应用 12_第1页
数字电子基础技术应用 12_第2页
数字电子基础技术应用 12_第3页
数字电子基础技术应用 12_第4页
数字电子基础技术应用 12_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

中断概念(12.5)

和流程图(14.5)西安交通大学电气工程学院宁改娣

博士

教授MCU内部结构框架与CPU交换信息的主要分为两种器件:存储器和IO端口。端口是指CPU可以直接访问的控制、状态、数据寄存器CPU控制或访问I/O端口的方式一般有两种:查询和中断2026/1/30CPU最小系统支持模块(WD、LP、PLL…)

片内总线芯片引脚程序与数据存储器片内外设(寄存器)片内外设接口IO端口:(控制寄存器、

状态寄存器数据寄存器)CPU控制或访问I/O端口的两种方式(详见12.5节)程序查询方式:CPU不断地查询I/O接口中状态寄存器,了解外设的情况,外设准备好进行数据处理。由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据的循环查询中。CPU的利用率相当低。CPU查询多个I/O设备只能串行工作,外设与CPU交换数据的实时性也很差,重要外设数据不能及时处理。但程序查询方式编程简单,无需了解中断机制。中断方式——要用中断,必须清楚以下概念。2026/1/3012.5.3CPU中断概念

“中断”顾名思义,就是中止CPU正在进行的工作过程去处理另一事务,处理之后再继续原来工作过程。2026/1/3012.5.3CPU中断概念(续)不同型号的处理器中断控制逻辑不同,但概念一样。中断一般分为:可屏蔽中断和不可屏蔽中断;优先级2026/1/30MSP430G2x53InterruptVectorAddresses2026/1/30

做为定时器用时?P1.3按键中断外设接口的中断一般都属于可屏蔽中断(maskable),即软件可屏蔽。CPU上电复位后一般都是禁止可屏蔽中断的!InterruptVectorAddresses中断向量表将CPU与中断服务程序联系起来!用户必须清楚存储器配置中,CPU的中断表在哪?2026/1/30cmd文件memory命令中内容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}:InterruptVectorAddresses中断向量表中存放对应中断源服务程序的入口地址或放跳转指令(每个CPU采取其中一种方式)。MSP430G2x53,MSP430G2x13MixedSignalMicrocontrollerdatasheet(Rev.J)——中断向量表为:Theinterruptvectorsandthepower-upstartingaddressarelocatedintheaddressrange0FFFFhto0FFC0h(一旦中断到这里找服务程序入口地址,MSP430G2x53表中放中断服务程序的入口地址。).Thevectorcontainsthe16-bitaddressoftheappropriateinterrupthandlerinstructionsequence.2026/1/30cmd文件memory命令中内容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}MSP430G2x53中断向量表(表中√存入口地址)2026/1/30P1.3按键中断比如,P1.3按键中断,用户必须在0FFE4~5H单元存放P1.3中断服务程序的入口地址(中断向量)。程序处理如下:P1.3中断举例2026/1/30中断向量表——查C27A存放的什么?2026/1/30没允许的中断向量表:C27A单元是什么?软件抗干扰!InterruptVectorAddresses上电复位一般属于不可屏蔽中断,优先级最高!思考:跑马灯程序上电后程序如何走的?PC?实验观察上电后的PC以及程序走向(因为仿真器与最小系统在一块板子,因此仿真器程序占用了空间)。Iftheresetvector(locatedataddress0FFFEh)contains0FFFFh(forexample,flashisnotprogrammed),theCPUgoesintoLPM4immediatelyafterpower-up.也就是说,上电复位向量表中0FFFEH~FFFFH单元存放的是FFFFH两个字节,说明没有用户程序(实验查看上电后的Flash内容?)体现出低功耗处理!该系列芯片低功耗显著!2026/1/30cmd文件memory命令中内容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}2026/1/30cmd文件memory命令中内容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}

了解MSP430G2x53CPU与中断相关Reg

16Bit的CPU,内部寄存器都是16BitCPU主要任务是:读取、翻译、执行程序指令。后续详解PC、SPSR(GIE)GeneralGlobleInterruptEnable上次课的汇编循环指令看到用R12寄存器,不写汇编程序可以不了解这些Reg可屏蔽中断的使能2026/1/30cmd文件memory命令中内容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}可屏蔽中断使能最多有三级门槛(各CPU不一样):个体、整组、全体。MSP430G2x53要使能某个中断源,必须把各对应中断源个体使能位使能,然后GIE允许。比如,P1.3按键要中断,必须看P1.3模块的使能位,并使GIE使能中断。例如,P1.7引脚连接一个按键,该按键按下将触发P1.7引脚中断,P1.0引脚连接LED灯。按下按键,LED灯亮灭的状态反转。要了解GPIO结构及寄存器,中断允许?请求信号有效性?附件2P48-P1.7的原理图2026/1/30P1.7设置为输入,设置上拉电阻熟悉中断相关模块原理及寄存器GPIO中断相关的寄存器2026/1/30与门,显然1使能在P1.7引脚连接一个按键,该按键按下将触发P1.7引脚中断,P1.0引脚连接LED灯。按下按键,LED灯亮灭的状态反转。程序如下:2026/1/30状态清0是否需要??

P1.7输入DIR??

CPU响应中断后如果不清除

标志位,用户退出中断前必须清0!!!中断嵌套概念MCU中有大量中断源,出厂都设置了优先级一般是高优先级中断可以打断低优先级的中断服务MSP430G2553是个例外(实验验证,可以任意嵌套)2026/1/30MSP430x5xxandMSP430x6xxFamily中断响应过程,不同CPU类似但不全相同!!SR2026/1/30中断嵌套??P1是多源中断,P1.0~P1.7一个入口MSP430中断返回过程

清楚CPU中断做了什么,才知道用户程序应该做什么!!2026/1/30中断的响应过程总结1)中断申请:硬件或软件向CPU发出中断申请。(用户1)2)中断的允许:对于可屏蔽中断而言

(用户软件处理2)3)中断判优:多数微控制器内部有优先级排队判优电路4)中断检测:CPU自动处理的,用户不必关心5)保护断点并获取中断入口地址:PC(用户处理向量表3)6)中断服务程序中保护现场:“现场”是指执行原程序所用到的相关寄存器资源。(用户压栈,C程序自动保护)7)中断返回:汇编中断服务程序最后要有一条中断返回指令,该指令自动从堆栈中恢复断点地址给IP或者PC,继续执行原来程序。不同处理器会稍有区别!用户要特别关注中断使能位和标志位在CPU响应中断后如何处理的?2026/1/30MCU可屏蔽中断总结要正常响应中断用户要关注三个方面(也是排查中断故障的思路):①中断源MCU出厂后中断源数量是确定的。比如,8051有5个,TIC2000最多96个,MSP430最多64个每个中断源要能够提出中断(会举手)。比如,定时器中断,如果不计数一定不会溢出产生中断请求。2026/1/30MCU可屏蔽中断总结②中断使能和中断标志位上电后一般是禁止中断的,初始化中要使能。使能一般最多有三个门槛:个体、组、全体。要关注CPU响应后对使能位的处理。有些处理器响应一次会自动禁止中断。如果要中断嵌套,也要注意中断服务程序中使能可否允许?比如,MSP430可否中断嵌套?中断标志位响应后要清除,一直举手可能重复中断。有些标志位是CPU自动,有些需要用户清除。2026/1/30MCU可屏蔽中断总结③中断向量表和中断向量中断向量表是CPU找用户中断服务程序的地方出厂后向量表的位置是确定的。上电复位是优先级最高的中断,所以向量表一般就在PC所指位置上下。中断向量是指表中填写的内容。有些处理器是写跳转指令;有些是直接填写中断服务程序的首地址。故障排查:比如P1.3所接按键进入不了其服务程序?是中断源吗?按键了吗?允许了没?向量表处理没?2026/1/30程序流程图(14.5节)

程序流程图用于表示程序执行的顺序,包括转移和循环等。在程序开发过程中画流程图,主要以下好处:1)帮助程序员清晰软件编写思路;2)避免出现重大的代码逻辑错误,造成后期更改困难;3)有利于团队合作;4)便于他人了解程序。2026/1/30中断流程图错误画法!主程序流程图错误示例:叫“中断服务程序”比

温馨提示

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

评论

0/150

提交评论