版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章第五章 中断机制中断机制w 本章学习目标与要求w 1. 掌握中断方式的原理,重点掌握中断优先级编码电路的工作原理;w 2. 理解S3C2410 的中断系统体系(记住常用的I/O部件的中断源名称、优先级别);w 3.掌握中断控制寄存器的功能、32位地址、读写方式、重点是5个寄存器的工作过程;w 4.根据实例能够看懂并修改相关的中断程序,能够分析启动代码中关于开关中断的编程代码。概述概述w嵌入式系统的硬件平台是由微处理器(或微控制器)、存储器、I/O端口及设备组成。I/O接口部件是嵌入式系统的关键组成部分。w控制I/O接口部件的方式主要有:程序查询、中断控制、DMA方式 等。w中断技术主要是
2、用于I/O接口部件与微处理器之间进行数据传输的控制,它协调了数据传输的双方的步调。中断方式是中断方式是I/OI/O端口或部件完成一个端口或部件完成一个I/OI/O操作后,产生一操作后,产生一个信号(中断信号)给微处理器,微处理器响应这个中个信号(中断信号)给微处理器,微处理器响应这个中断后,停止其当前的程序操作,而转向对断后,停止其当前的程序操作,而转向对I/OI/O的操作的操作(中断程序执行):程序计数器(中断程序执行):程序计数器PCPC的值指向的值指向I/OI/O操作要操作要完成的任务(中断服务程序例程、设备驱动程序),执完成的任务(中断服务程序例程、设备驱动程序),执行完成后,返回被中
3、断的地方继续执行程序。行完成后,返回被中断的地方继续执行程序。5.1 5.1 中断控制方式原理中断控制方式原理w 嵌入式系统中,微处理器控制I/O端口或部件的数据传送方式有2种:程序查询方式和中断方式。 w 程序查询方式是由微处理器周期性地执行一段查询程序来读取I/O端口或部件中状态寄存器的内容,并判断其状态,从而使微处理器与I/O端口或部件在进行数据、命令传送时保持同步。 程序查询方式的特点w 程序查询方式下,微处理器的效率是非常低的,因为微处理器要花费大量的时间测试I/O端口或部件的状态。并且,I/O端口或部件的数据也不能得到实时地处理。 中断方式特点w 中断方式是I/O端口或部件在完成了
4、一个I/O操作后,产生一个信号给微处理器,这个信号叫做“中断请求”,微处理器响应这个请求信号,停止其当前的程序操作,而转向对该I/O端口或部件进行新的读/写操作。w 特点: w 1,实时性能好w 2,调试复杂中断方式控制的I/O操作步骤初始化微处理器中用于中断方式的寄存器,开放中断。I/O端口或部件完成数据操作后并产生中断请求信号。当中断请求信号有效时,微处理器可能处在不可中断状态。等到微处理器允许中断时,微处理器就保存当前状态,停止它现行的操作并开始进行中断源的识别。在识别出优先级最高的中断源后,微处理器转到对应的中断服务例程入口,并应答中断,I/O端口或部件收到应答信号后,撤消其中断请求。
5、 微处理器读入或写出数据,当中断服务例程结束后,回到原来的被中断程序处继续执行。 中断源及其识别方法 w 嵌入式系统中,需要采用中断控制方式的I/O端口或部件有许多,如S3C2410芯片中就有56个中断源。而通常微处理器能够提供的中断请求信号线是有限的,如ARM920T核提供给外部的中断请求信号线仅有IRQ和FIQ两根。因此,当有中断产生时,微处理器就必须通过一定的方式识别出是哪个中断源发来的请求信号,以便转向其对应的中断服务程序例程,这就是中断源的识别。 向量识别中断 w 向量识别中断就是微处理器响应中断后,要求中断源提供一个地址信息,该地址信息称为中断向量(或叫中断矢量),微处理器根据中断
6、向量(矢量)转移到中断复位程序处执行。所以,中断向量就是中断服务程序的入口地址。w 固定中断向量:硬件电路实现,当中断源通过终端请求电路向微处理器发出中断申请信号,当满足中断响应条件时,微处理器在执行完当前指令后发出中断响应信号,执行程序。w 可变中断向量中断优先级仲裁 w 若嵌入式系统中由多个中断源,则这些中断源必须要进行中断优先级的排列。所谓优先级,指的以下两层含义:w 若有2个及2个以上的中断源同时提出中断请求,微处理器先响应哪个中断源,后响应哪个中断源。w 若1个中断源提出中断请求,并得到响应后,又有1个中断源提出中断请求,后来的中断源能否中断前一个中断源的中断服务程序。 菊花链中断优
7、先级电路:一个中断源:2个中断源:中断优先级编码电路:INTR INTA5.2 S3C24105.2 S3C2410的中断系统的中断系统w 实际上,S3C2410的中断系统分成两级,一级是控制内部外围I/O端口或部件、或者芯片外部中断引脚(EINTn)的中断控制;另一级是ARM920T核的异常中断控制,采用了固定向量中断方式。w S3C2410芯片中的中断控制器可以支持56个中断源提出的中断请求,如表6-1所示。w (表6-1见附录) (续) 这些中断源由芯片内部的I/O端口或部件如DMA控制器、UART、IIC、RTC等,以及外部中断引脚提供。 在这些中断源中,有些中断,如串行接口UARTn
8、中断和外部中断EINTn中断对于中断控制器来说都是共用的。 当S3C2410芯片的内部外围I/O端口或部件提出中断请求、或者芯片外部中断引脚(EINTn)收到中断请求时,中断控制器经过仲裁之后再请求ARM9核的FIQ或IRQ中断。 S3C2410的中断系统逻辑图(续)w S3C2410芯片中断控制器支持的56个中断源,由于其中有些中断共用中断请求信号线,因此,实际中断请求信号有32个。这32个中断请求的优先级仲裁判决机制采用了中断优先级编码判断电路原理。其裁决逻辑由7个基本裁决器组成,其中6个一级裁决器和1个二级裁决器。w S3C2410芯片的32个中断请求信号,在系统复位初始状态下,按照前图
9、中由上到下的顺序,中断优先级由高到低排列,即EINT0中断优先级最高,INT_ADC中断优先级最低。 中断控制寄存器w 用S3C2410的中断方式来控制I/O端口或部件操作时,除了要对I/O端口或部件的相应寄存器进行初始化设置外,还需对中断控制器的5个控制寄存器进行初始化设置。这5个寄存器是:源未决寄存器、中断模式寄存器、屏蔽寄存器、优先级寄存器、中断未决寄存器。 源未决寄存器w 源未决寄存器(SRCPND)由32位构成,每一位与一个中断请求信号相关联。当某个中断源请求中断服务时,SRCPND寄存器的相应位被置为1,即首先在源未决寄存器中登记。因此,该寄存器记录了哪个中断源的请求在等待处理。注
10、意:SRCPND寄存器的每一位由中断源自动设置,而不管中断屏蔽寄存器(INTMASK)中对应的位是否被屏蔽。此外,SRCPND寄存器也不受中断控制器的优先级逻辑影响。w 源未决寄存器的每一位定义见附录中表6-2中断模式寄存器中断模式寄存器w S3C2410的中断模式有2种:FIQ模式和IRQ模式。32位的INTMOD寄存器中每一位都与一个中断源相关联,确定对应的中断源中断请求采用哪种模式。如果某位被设置成1,则相应的中断按FIQ模式处理。若设置成0,则按IRQ模式处理,该模式又称为普通中断模式。(见附录中表6-3)w 注意:在S3C2410中,只能有一个中断源在FIQ模式下处理,既INTMOD
11、寄存器中只有一位可以设置为1。因此,设计者应该将最紧迫的中断源设置为FIQ模式使用。 中断屏蔽寄存器w 中断屏蔽寄存器(INTMSK)也是由32位组成,每一位与一个中断源相对应。若某位设置为1,则中断控制器不会处理该位所对应的中断源提出的中断请求。否则,如果设置为0,则对应的中断源提出的中断请求可以被处理。即使某屏蔽位设置为1,其对应的中断源产生中断请求时,相应的源未决位将设置成1。w 见附录表6-4。 优先级判别器w 优先级判别寄存器(PRIORITY)是IRQ中断模式下的中断优先级控制寄存器,每个中断源在寄存器中有3位对应,分别代表ARB_SEL的2位和ARB_MODE的1位。其地址是0
12、x4a00000c,复位初始状态为0 x0000007f。该寄存器每位的含义如表6-5所示。 中断未决寄存器中断未决寄存器w INTPND寄存器是32位寄存器,寄存器中的每一位对应一个中断源。只有未被屏蔽且具有最高优先级、在源未决寄存器中等待处理的中断请求可以把其对应的中断未决位置1。因此,INTPND寄存器中只有一位可以设置为1,同时,中断控制器产生IRQ信号给ARM920T核。在IRQ的中断服务例程里,设计者可以读取该寄存器,从而获知哪个中断源被处理。w 当INTPND寄存器的一个未决位被设置为1,只要ARM920T核内部的状态寄存器PSR中的I标志和F标志被清零,对应的中断服务例程就可以
13、开始执行。INTPND寄存器是可读写的,在中断服务例程里面必须清除中断未决位。 (续)在编程操作INTPND寄存器时,应注意以下两点:如果发生了FIQ模式的中断,那么INTPND寄存器中相应的位将不会置1,因为INTPND寄存器只对IRQ模式下的中断有效。 清除INTPND寄存器的中断未决位时要谨慎。因为,INTPND寄存器是通过写数据位1而对未决位清零的。如果INTPND寄存器为1的位试图通过写数据位0来清除,那么INTPND和INTOFFSET寄存器在某些情况下可能会具有不可预料的值。因此,切记不要往INTPND寄存器中为1的位写数据位0。清除INTPND寄存器的未决位最简捷的方法就是将I
14、NTPND寄存器的值写回到INTPND寄存器里。 S3C2410S3C2410中断控制的机制中断控制的机制w 以上5个寄存器是S3C2410中断控制器中主要的寄存器,在每个中断源的处理时,设计者均需根据要求,通过编程进行初始化设定,既确定寄存器中每一位设为0还是设为1。中断未决寄存器优先级判别器源未决寄存器屏蔽寄存器5.3 5.3 中断编程实例w 在嵌入式系统设计时,为了提高I/O端口或部件处理的实时性,往往采用中断控制方式。S3C2410芯片中使用了ARM920T核,因此,在完成I/O端口或部件的中断服务程序设计时,除了要了解各中断控制寄存器的格式外,还必须了解ARM920T核的IRQ异常中
15、断模式和FIQ异常中断模式的处理过程。因为,S3C2410芯片的56个中断源均是按照IRQ中断模式或FIQ中断模式处理的。 ARM9中断响应的过程w ARM9微处理器响应IRQ异常中断时,需要完成保护现场及进入IRQ异常模式等操作。所有这些操作描述如下。w 链接寄存器R14_irq保存有:被执行指令地址4;w 状态寄存器SPSR_irq保存有:CPSR寄存器的内容w /* 系统进入IRQ中断模式 */w 状态寄存器CPSR的位4:0被赋予:0b10010w /* 系统切换到ARM状态 */w 寄存器CPSR的位5清0,但位6不变(续)w /* 设置IRQ中断禁止位 */w 寄存器CPSR的位7
16、置1w 如果采用高向量地址配置,那么w PC寄存器被赋予0 xffff0018w 否则w PC寄存器被赋予0 x00000018w 因为,ARM920T核会把当前PC的值保存到R14_irq中,该值在ARM状态下,对应当前指令后的第2条指令的地址。IRQ中断返回时,就需要通过下面指令来实现回到断点下第1条指令处执行:w SUBSPC, LR, 4w 同时将SPSR_irq内容复制到当前CPSR中。 中断编程模式w S3C2410芯片的I/O端口或部件若采用中断方式控制操作时,其编程的内容实际上涉及四部分,既:w 建 立 系 统 中 断 向 量 表 , 并 且 设 置ARM920T核的程序状态寄存器CPSR中的F位和I位。一般情况下中断均需使用数据栈,因此,还需建立用户数据栈。这一部分内容对应的程序指令,通常编写在系统引导程序中,如3.4节中的实例。(续)(续) 设置S3C2410芯片中56个中断源的中断向量。通常需要利用未决寄存器或地址偏移寄存器来计算,若中断号还对应有子中断(如中断号为5时,对应EINT8_23),需求出子中断的地址偏移。 中断控制初始化。主要是初始化S3C2410芯片内部的中断控制的寄存器。针对某个具体的中断源,设置其中断控制模式、中断是否屏蔽、中断优先级等。(续)w 完成I/O端口或部件具体操作功能的中断服务程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 泰安市护士招聘考试题库及答案
- 天津2026年高三高考二模英语模拟试卷试题(含答案详解)
- 绥化市教师招聘考试题及答案
- 高中奥数题目及答案
- 松原市辅警招聘考试题及答案
- 26年绒毛膜癌随访质控手册
- 上饶市专职消防员招聘考试题及答案
- 学会合作融入集体生活
- 后天性骨盆狭窄护理查房
- 插花艺术初级考试试题及答案
- 河北省2025年机关事业单位经济民警技师考试题库(附答案+解析)
- 上海市2025上海申康医疗卫生建设工程公共服务中心工作人员招聘1人笔试历年参考题库附带答案详解
- 2025年湖北省农村义务教育学校教师公开招聘小学语文真题(附答案)
- 2025年潍坊市中考数学试题卷(含标准答案)
- 2025年移动l1传输认证考试题库及答案
- 《汽车发动机构造与维修(第2版)》技工中职汽车维修专业全套教学课件
- 细节描写课件
- DBJ46-048-2018 海南省建筑工程防水技术标准
- 客服基础考试试题及答案
- 《节能减排》课件
- 中医养生与脾胃调理考核试卷
评论
0/150
提交评论