版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章
S12中断系统
S12中断系统概述
S12中断优先级
S12中断程序设计实例
前言
中断是用以提高计算机工作效率的一种重要技术,最初它只是作为计算机与外设交换信息的一种同步控制方式而提出的,但随着计算机技术的发展,特别是CPU速度的迅速提高,对计算机内部机制的要求也越来越高,希望计算机能随时发现各种错误,当系统出现意想不到的事件时,能及时妥善处理。于是,中断的概念得以延伸,除了传统的外部事件(硬件)引起的中断事件外,还有CPU内部软件中断的概念。所谓中断,是指CPU在正常执行程序的过程中,由于内部/外部事件或由程序的预先安排,引起了CPU暂时中断当前程序的运行,而转去执行由内部/外部事件或预先安排的时间而需要执行的中断服务子程序,在中断服务子程序执行完毕后,CPU再重新回来执行当前的程序。利用中断可以大大提高CPU的工作效率。实现中断功能的控制逻辑称为中断机构或中断系统。前言 尽管单片机或者微控制器中的中断系统各不相同,但中断系统的基本功能是相同的:能实现中断响应、中断处理(服务)、中断返回和中断屏蔽;能实现中断优先级排队(管理);能实现中断嵌套。4.1S12中断系统概述
S12系列单片机的中断属于异常情况处理的一部分,异常情况处理还包括复位,所以本章除论述了S12系列单片机的中断系统,也简要介绍了S12系列单片机的几种复位情况。正常情况下,单片机有序的执行相应程序,按照明确的获取-解码-执行的方式顺序处理各种指令。程序计数器记录了下一条程序指令位于内存中的位置,即使当程序为了相应分支或跳转指令而偏离了正常的顺序处理,但仍然是在顺序事件处理的控制范围之内。可能发生的异常情况会打破这种事件处理的顺序流,将一个正常程序流的中断归为一个异常情况,异常情况不一定总是和错误相关联的,中断是在一个处理器上运行多个系统的有效方法。通过上面的论述可以知道,S12程序运行时可能发生的异常可分为两类:复位和中断,而中断又进一步分为可屏蔽中断和不可屏蔽中断。S12系列单片机的异常分类如图4.1所示。4.1S12中断系统概述4.1S12中断系统概述
4.1.1S12单片机的复位· S12系列单片机共有四种事件可以触发系统复位。 (1)外部复位
S12配备一个标记为RESET的低电平有效复位引脚,当该引脚电压为低电平时,触发复位。 (2)上电复位 在S12的VDD引脚上的一个正向变化将触发上电复位,这意味着当给S12上电时,它以一个已知的、确定的设置启动。4.1S12中断系统概述
4.1.1S12单片机的复位 (3)计算机工作正常(COP)复位
COP系统允许S12检测软件运行故障,通常COP在软件开发过程中是关闭的。但是,一旦某个基于S12的系统完全运行后,这是一项重要的安全保障功能之一。COP系统包含一个用户设置的倒计数定时器,一旦定时器过期,则触发一个系统复位。为了防止定时器过期,执行的程序必须在倒计数定时器失效之前,向ARM/RESETCOP定时器寄存器(COPRST)中写入$55和$AA。若某个程序陷入一个死循环,它将不能发送上述必须的信息,因此将产生COP复位。为了有效地实现这个功能,向COPRST寄存器中写入$55的代码应该有策略的分布在程序的重要部分,写入$AA的代码则可以放在程序的其他部分。这样,一旦微控制器在某代码处运行失效,将不会产生需要的代码序列($55或$AA),这样就会触发COP复位。可以在程序设计中设置多对$55和$AA,实现错误恢复功能。4.1S12中断系统概述
4.1.1S12单片机的复位 (4)时钟监控复位 当系统时钟频率低于某个预设置值或停止工作时,将触发时钟监控复位。 当上述事件触发复位时,S12单片机在程序计数器中放置一个复位向量,处理器执行启动例程。COP复位和时钟监控复位具有各自的复位向量。4.1S12中断系统概述
4.1.2S12单片机的中断
S12系列单片机的中断分为可屏蔽中断和不可屏蔽中断。S12的编程模型中有一个条件代码寄存器,如图6.2所示,其中的X位和I位与中断相关,X位是不可屏蔽中断的屏蔽位,置为“1”则不可屏蔽中断被关闭,置为“0”则允许不可屏蔽中断;I位是可屏蔽中断的屏蔽位,置为“1”则可屏蔽中断被关闭,置为“0”则允许可屏蔽中断。在系统复位时,这些中断屏蔽位默认为“1”,所以单片机复位后,不可屏蔽中断和可屏蔽中断都处于关闭状态。4.1S12中断系统概述
4.1.2S12单片机的中断
1.不可屏蔽中断
不可屏蔽中断包括软件中断、非法指令陷阱和
中断,下面简要介绍常用的几个不可屏蔽中断。 (1)软件中断
SWI实质上是一条指令,但其执行过程与中断相同,即通过中断矢量确定目标地址,中断矢量为$FFF6~$FFF7,它自动保存MCU的寄存器和返回地址,最后必须通过RTI指令返回。 (2)非法指令陷阱
MCU正常工作时,每次获得的都是由汇编或编译程序生成的有效操作码,MCU能够正确解释并执行它们,但当受到干扰或系统出现混乱时,可能得到无法识别的操作码,即非法指令,这时MCU自动产生一次中断,中断矢量地址为$FFF8~$FFF9。4.1S12中断系统概述
4.1.2S12单片机的中断
1.不可屏蔽中断
(3)XIRQ XIRQ是非屏蔽中断引脚,无论MCU处于哪种运行状态,该引脚一旦被拉成低电平,MCU执行完当前指令后,都会响应该中断,中断矢量为$FFF4~$FFF5。该中断一般用于系统掉电检测、硬件故障等重要事件处理,当MCU处于等待或暂停模式时,该中断将唤醒MCU。4.1S12中断系统概述
4.1.2S12单片机的中断
2.可屏蔽中断
可屏蔽中断可以在程序控制下由用户开启或者关闭。可屏蔽中断的开关是条件代码寄存器(CCR)中的I位。通过清除I可以开启可屏蔽中断。S12系列单片机中的可屏蔽中断数量非常多,这里仅对做简要介绍,其他的可屏蔽中断可参见相关功能模块的章节。
S12系列单片机配备一个标记为的外部引脚,当该引脚出现低电平或者电平下降沿时,则会产生中断请求,这也是S12单片机接受外部事件中断的主要手段。有一个中断控制寄存器(INTCR)和的设置相关,如图6.3所示。4.1S12中断系统概述
4.1.2S12单片机的中断
通过该寄存器中的IRQE位和IRQEN位对IRQ中断进行设置。
IRQE:中断电平/边沿有效选择:
0表示IRQ引脚配置为低电平有效;
1表示IRQ引脚配置为下降沿有效。
IRQEN:外部IRQ中断请求使能:
0表示IRQ中断关闭;
1表示IRQ中断允许。4.1S12中断系统概述
4.1.2S12单片机的中断
3.中断堆栈操作顺序
因为中断响应过程中,会有隐含的堆栈操作,所以中断响应前,堆栈必须有效,即堆栈指针SP必须指向一个有效的RAM区,而且堆栈的大小必须不少于9个字节。中断响应堆栈操作如表6.1所示。4.2S12中断优先级
S12与多个中断源相连,所以在同一时刻可能会有两个或两个以上的中断源同时请求中断,这就要求必须根据任务的轻重缓急给每个中断源分配不同的中断优先级。当两个或两个以上中断源同时发生时,优先级高的中断将先被处理。一般来说,不可屏蔽中断的优先级高于可屏蔽中断的优先级。复位以及不可屏蔽中断的优先级从高到低依次为:4.2S12中断优先级4.2S12中断优先级4.2S12中断优先级 表6.2中的最后一列表示最高优先级中断设定寄存器(HPRIO)中可以设置的数值,通过设置该寄存器,可以将某个可屏蔽中断的优先级“推进”为可屏蔽中断中的最高优先级中断。最高优先级中断设定寄存器(INTCR)如图6.4所示。 复位后该寄存器默认值为$F2,表示IRQ($FFF2,$FFF3)中断在可屏蔽中断中的优先级最高。4.2S12中断优先级 需要注意的是,通过HPRIO设定的优先级并不表示当出现中断嵌套时,高优先级中断可以中止低优先级中断的服务程序执行,而转向高优先级中断的服务程序运行。这里高优先级作用只有当多个中断源同时请求中断时才能体现,这时S12单片机将首先响应高优先级的中断,低优先级的中断不会得到响应。4.2S12中断优先级
S12单片机默认的中断处理机制如图6.5所示。从图中可以看到,S12单片机默认状态下在进入中断服务程序时,I位自动置1,所以禁止其他可屏蔽中断,尽管在处理中断A的服务程序过程中又来了更高级别的中断B的中断请求,单片机也无法及时处理,必须等待当前中断服务程序执行完以后才能响应。4.2S12中断优先级
如果希望在S12单片机中实现中断嵌套,一个比较简单的方法是进入中断服务程序时,将可屏蔽中断屏蔽位I清零。这样可以实现如图6.6所示的中断嵌套。4.2S12中断优先级
从图6.6中可以看到,这样简单的处理也可能会带来问题,就是低优先级的中断请求会使得高优先级中断服务程序挂起。因为在中断B的服务程序中清除可屏蔽中断屏蔽位I,所以此时任何可屏蔽中断请求都可以得到处理,出现了低优先级的中断A打断高优先级B中断服务程序的情况。为了解决这个问题,可以只在中断A的服务程序中清除可屏蔽中断屏蔽位I,而在中断B的服务程序中不做处理,这样就可以得到如图6.7所示的中断处理机制,这样只有高优先级的中断请求可以打断低优先级中断的服务程序。4.3S12中断程序设计实例
本实例硬件连接如图6.8所示,PORTA端口连接1个8位拨码开关,PORTB端口连接8只LED,单片机IRQ引脚外接一个按键,按键按下为低电平。要求编程实现利用
IRQ作为中断源,采用中断方式,利用8位拨码开关控制8只LED灯的循环点亮速度,拨码开关的不同状态设置代表灯循环点亮时点亮速度值的设定。4.3S12中断程序设计实例 中断服务程序可以有两种编写方式,一种是利用中断编号关联中断服务程序;另外一种是通过在.prm文件中的声明关联中断服务程序。首先介绍利用中断编号编写中断服务程序。从表6.2中可以看到,中断向量表依次自上而下从0开始编号,IRQ中断在表格中是第7个,所以编号为6,下面是部分实例程序代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白酒的品牌创新与创业机会考核试卷
- 新型印刷材料在印刷工艺中的应用考核试卷
- 油田动态监测安全监督及工作要求考核试卷
- 未来能源技术可再生能源与能源存储创新考核试卷
- 煤炭行业的投资与融资机制考核试卷
- 地质勘查设备生物质能源利用考核试卷
- DB11∕T 3015-2018 水产品冷链物流操作规程
- 美术入门课件教学课件
- 植物盆栽课件教学课件
- 课件不兼容教学课件
- AEO认证系列-供应链安全培训
- 中小学高级职称英语全英答辩题
- 六年级上册美术课件-第1课 建筑艺术的美 ▏人美版 (共27张PPT)
- 葬礼白包DIY-A4纸直接打印
- 关于债权转让的法律意见书
- 综合科学科教研活动记录表
- 数量词病句课件
- 人教版七年级上册语文第一单元测试卷及答案(常用)
- 四年级上册信息技术课件-11电子邮件我收发 |人教版 (共20张PPT)
- 环境规划与管理全套课件完整版电子教案最新板
- (最新)国际经济学-中国人民大学题库答案
评论
0/150
提交评论