付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022/9/4 12:251S3C44B0X中断控制器SA06011109李燕SA06011121宋宣辰 2022/9/4 12:252主要内容 一.引入 二.中断源 三.中断优先级 四.中断模式 五.中断系统中的特殊功能寄存器 六.简单中断应用编程示例2022/9/4 12:253一.引入1.S3C44B0X芯片简介 S3C44B0X是Samsung公司生产的基于ARM7TDMI体系结构的16/32位微处理器片,它在ARM7TDMI核的基础上集成了丰富的外围功能模块。其结构图如下:2022/9/4 12:254一.引入(续)2022/9/4 12:255一.引入(续)2.中断 中断是计算机
2、中一个很重要的概念,中断技术的引入使计算机的发展和应用都大大推进了一 步,可以说没有中断技术,就没有目前计算机的广泛应用。 中断是指在CPU处理 某项事务时,如果外部或内部发生了紧急事件,要求CPU暂停正在运行的工作转而去处理这个紧急事件,待处理完毕再回到原先被中断的地方,继续原来的工作的过程。 由此定义又引出了中断中的其它概念,诸如中断源,中断优先级,中断嵌套等。2022/9/4 12:256一 .引入(续)3.S3C44B0X中断控制器概述 任务 在片内外围和外部中断源组成的多重中断发生时,经过优先级的判断选择其中一个中断,通过FIQ或IRQ向ARM 内核发出FIQ或IRQ 中断请求。具有
3、30个中断源 1个看门狗定时器中断,6个定时器中断,6个 UART中断 8个外部中断,4个DMA中断,2个RTC中断, 1个ADC中断 1个IIC中断,1个ISO中断。 2022/9/4 12:257一.引入(续)S3C44B0X支持新的中断处理模式称为矢量中断模式 一般的中断模式在进入所需的中断服务程序前需要很长的中断响应时间,为了解决这一问题,S3C44B0X提供了一种新的中断模式-矢量中断模式。它具有CISC结构微控制器的特征,能够缩短中断响应时间。 2022/9/4 12:258一.引入(续)4.类比介绍方法 8位的MCU(单片机)是早期的嵌入式系统的核心部件,至今在许多领域它仍被广泛
4、的应用。Intel公司的MCS-51系列就是其中典型的代表。在此,将通过MCS-51的中断系统和S3C44B0X中断控制器的类比来阐述S3C44B0X中断控制器的功能和应用。 目的:希望这种由已知到类似的未知,由简单到复杂的方式更容易让大家接受. 当然,重点仍是S3C44B0X的中断控制器。2022/9/4 12:259二.中断源1 .MCS-51中断源 MCS-51系列单片机有5个中断源,其中2个外部中断,2个定时器中断和1个串行口接收/发送中断。2.S3C44B0X中断源 相比51系列而言,其中断源更为丰富,正如前面所介绍,它共有30个中断源。其中26个中断源是单独的,4个外部中断(EIN
5、T4/5/6/7)是逻辑“或”关系共用一个中断源,另外两个UART错误中断也是共用同一个中断源,其具体描述见下表: 2022/9/4 12:2510二.中断源(续)2022/9/4 12:2511二.中断源(续)注意:EINT4, EINT5, EINT6和EINT7分享同一个中断请求源,中断服务程序ISR要通过读取EXTINTPND3-0寄存器来区别这4个中断源,并在处理结束时通过将EXTINTPND3-0中对应位写1来清除该位。 2022/9/4 12:2512三.中断优先级1 .MCS-51的中断优先级 51的5个中断源的优先级可分为两类,即高优先级中断和低优先级中断,这可以通过对中断优
6、先级寄存器相应位的置1清0来设置,具体它遵循以下基本准则: 低优先级中断可被高优先级中断请求所中断。 同级的中断请求不能打断正在执行的同级中断,同级中断内部按中断源的自然优先顺序响应。 外部中断0 定时/计数器0 外部中断1 定时/计数器1 串行口最高 最低中断源自然优先级顺序2022/9/4 12:2513三.中断优先级(续)2.S3C44B0X的中断优先级 由于S3C44B0X有30个中断源,其相应的中断优先级的产生则更为复杂。 S3C44BOX中断优先级的决定有两种方式:通过软件查询决定中断优先级,该方式在跳到相应服务程序之前需要一个较长的延迟时间;通过硬件决定中断优先级:矢量中断模式。
7、 2022/9/4 12:2514三.中断优先级(续) 中断优先级产生模块只为IRQ中断服务。如果应用向量模式并且在INTMOD寄存器中一个中断源配置为ISR ,则这个中断将被中断优先级产生模块来处理。 .中断优先级产生模块 其示意如下:2022/9/4 12:2515三.中断优先级(续)2022/9/4 12:2516三.中断优先级(续) .中断优先级 结合上图,可得出S3C44B0X中断优先级遵循 以下准则:FIQ的优先级总是高于IRQ的优先级SGA,SGB,SGC,SGD的优先级高于SGKA和SGKB。而SGA,SGB,SGC,SGD之间的优先级是可编程的或由轮循方法决定。在SGKA和S
8、GKB中,SGKA的优先级高于SGKB的优先级mGA,mGB,mGC,mGD的优先级高于mGKA和mGKB。而mGA,mGB,mGC,mGD之间的优先级是可编程的或由轮循方法决定。在mGKA和mGKB中,mGKA的优先级高于mGKB的优先级2022/9/4 12:2517四.中断模式1.MCS-51的中断模式 51采用的是向量中断模式,即发生中断时,将中断向量地址装入PC,以便进入相应的中断服务程序。它的5个中断源的中断向量地址见右表: 由于这些中断向量的地址的距离是很近的,实际应用时 ,通无常是在入口处放置一条跳转指令,使之转向中断服务程序的实际入口 。当然,如果中断服务程序的小于8KB 时
9、,也可直接存放。中断源向量地址外部中断00003H定时器0000BH外部中断10013H定时器1001BH串行口0023H2022/9/4 12:2518四.中断模式(续)2.S3C44B0X的中断模式 它有 2 种类型的中断模式,FIQ(快速中断请求)或 IRQ(普通中断请求)。而这其中又有向量中断模式和非向量中断模式的区分。 向量中断模式(仅对IRQ) 在前面我们介绍过S3C44B0X中断控制器支持一种新的中断模式,即向量中断模式,此模式可以缩短中断响应时间。 2022/9/4 12:2519四.中断模式(续) 通常情况下,ARM 核在收到IRQ 中断请求后,会在0X00000018地址处
10、执行一条指令,但在向量中断模式下,当ARM核从0 x00000018处取指令时,中断控制器会数据总线上加载分支指令,这些分支指令使程序计数器能够对应到每个中断源的中断向量地址,而这些跳转到每个中断源向量地址的分支指令可由中断控制器产生。 在各个中断源对应的中断向量地址中,存放的是跳转到相应中断服务程序的程序代码。 相应矢量地址处分支指令的机器代码按如下计算: 2022/9/4 12:2520四.中断模式(续)分支指令机器代码= 0 xea000000 +( - - 0 x8)2) 其中destination address为中断服务线程ISR 的开始地址,vector address 为中断源
11、在中断相量表中的地址,即分支指令所在地址,分支指令机器代码有硬件自动产生。 通常机器代码都是反汇编后自动产生的,因此不必真像上面那样去计算。 下表是各个中断源所对应的中断向量地址:2022/9/4 12:2521四.中断模式(续) 2022/9/4 12:2522四.中断模式(续)非向量中断模式 在此模式下,通过分析I_ISPR/F_ISPR,IRQ/FIQ处理器将移动PC至相应的中断服务程序入口.IRQ的中断源代码如下:2022/9/4 12:2523四.中断模式(续)2022/9/4 12:2524五.中断系统中的特殊功能寄存器 在中断系统中,许多功能,诸如中断优先级,中断屏蔽等都是通过对
12、特殊功能寄存器的设置而实现的.在此,将具体介绍各种寄存器.1.MCS-51中的特殊功能寄存器 TCON 88H2022/9/4 12:2525五.中断系统中的特殊功能寄存器(续) 这是一个8位的寄存器,与中断相关的有6位. IEi(i=0,1):当外部引脚INTi出现中断请求信号时,由硬件置位IEi,CPU响应中断后由硬件将其复位. IFi(i=0,1):当其为0时,表示外部中断为电平触发 当其为1时,表示外部中断为边沿触发 TFi(i=0,1):当定时/计数器Ti计数溢出时,由硬件将其置为1,响应中断后再由硬件将其清零.SCON 98H2022/9/4 12:2526 五.中断系统中的特殊功
13、能寄器(续) RI:串口接收中断请求标志 当串口接收至第8位时,由硬件将其置位 TI:串口发送中断请求标志 当串口发完8位数据时由硬件将其置位 在这里并没有如上提到硬件复位问题.其实当CPU响应中断时,并不自动去复位RI/TI,因此必须通过软件来清0.IE(中断允许) A8H2022/9/4 12:2527五.中断系统中的特殊功能寄存器(续) EA:全局中断允许 ES:串口中断允许 ETi(i=0,1):定时/计数器溢出中断允许 ETi(i=0,1)外部中断 允许 当全局中 断允许位设置为0时,则屏蔽了所有的中断,当其设置为 1时,开放了中断,但是具体的情况还要看各个中断源的中断允许位.IP(
14、中断优先级)B8H相应位为1时,表示是高优先级中断相应位为0时,表示是低优先级中断2022/9/4 12:2528五.中断系统中的特殊功能寄存器(续)2.S3C44B0X中断控制器中的特殊功能寄存器 相比51系列而言,S3C44B0X中断控制器中所涉及的特殊功能寄存器则更为繁多,各自的设置也更为复杂.INTCON(中断控制寄存器)2022/9/4 12:2529五.中断系统中的特殊功能寄存器(续) 从表中可以看出,INTCON寄存器的0位是FIQ使能位,1是IRQ中断使能位2则是说明IRQ使用的是否为向量中断模式2022/9/4 12:2530五.中断系统中的特殊功能寄存器(续)INTPND(
15、中断挂起寄存器)该寄存器相当于51系列中断系统中的特殊功能寄存器TCON,即每一位对应着一个中断源(独立)是中断请求的标志.当中断请求产生时,相应的位会被置为1,但是它不会自动清0,因此中断服务程序中必须加入对I_ISPC和F_ISPC写1的操作来清除挂起条件.具体结构如下:2022/9/4 12:2531五.中断系统中的特殊功能寄存器(续)2022/9/4 12:2532五.中断系统中的特殊功能寄存器(续)INTMOD(中断模式寄存器) 该寄存器与INTPND的结构类似,共有26位,每一位对应着一个中断源.当某一位置为1时,对应的中断会由ARM7TDMI内核以FIQ的模式来处 理;反之当某一
16、位置为0时,中断会以IRQ模式来处理. 当然,这要结合INTCON相关位的设置,即是否允许IRQ/FIQ2022/9/4 12:2533五.中断系统中的特殊功能寄存器(续)INTMSK(中断屏蔽寄存器) 该寄存器共有28位,其中一位是全局屏蔽位,一位保留,其余的26位分别对应一个中断源.它的功能与51中的IE 类似.当Global=1时,屏蔽所有中断,Global=0时,才开放中断,但最终中断是否被屏蔽,还要看各个具体中断源所对应的屏蔽位的设置.2022/9/4 12:2534五.中断系统中的特殊功能寄存器(续) 如果使用了向量中断模式,则在中断服务程序中改变了INTMSK的值,这时并不能屏蔽
17、相应的中断过程,因为该中断在中断屏蔽寄存器之前已被中断挂起寄存器锁定了。要解决这个问题,就必须在改变中断屏蔽寄存器后,在清除相应的挂起位(挂起位的清除方式在前面也提到过).2022/9/4 12:2535五.中断系统中的特殊功能寄存器(续)与IRQ向量模式相关的寄存器 在前面介绍的中断优先级产生模块中,包含了5个单元:1个主单元和4个从单元,这其中都有四个中断源是可编程的.即从单元的sG/A/B/C/D和主单元mG/A/B/C/D. I_PSLV 2022/9/4 12:2536五.中断系统中的特殊功能寄存器(续)注:即使相应的中断源没有用到,I_PSLV中的各项也必须配置成不同的优先级 .2
18、022/9/4 12:2537五.中断系统中的特殊功能寄存器(续)具体优先级是如何决定的,可简单看下表:2022/9/4 12:2538五.中断系统中的特殊功能寄存器(续) I_PMST 它决定了主单元中4个中断源的中断优先级,具体见下表:2022/9/4 12:2539五.中断系统中的特殊功能寄存器(续)注:即使相应的中断源没有用到,I_PMST中的各项也必须配置不同的优先级2022/9/4 12:2540五.中断系统中的特殊功能寄存器(续) I_CSLV 它表示了在从群中各中断源当前的优先级状态。当使用轮询方式时,I_CSLV和I_PSLV可能不同。2022/9/4 12:2541五.中断
19、系统中的特殊功能寄存器(续) I_CMST 它表示了各主群当前的优先级状态。2022/9/4 12:2542五.中断系统中的特殊功能寄存器(续)I_ISPR(中断服务挂起寄存器) 它表示了正在被响应的中断, 虽有多个中断挂起位被打开,但只有1位发生作用.2022/9/4 12:2543五.中断系统中的特殊功能寄存器(续) I_ISPC/F_IS PC 其作用是清除中断挂起寄存器INTPND中的挂起位.在前面介绍INTPND时我们知道挂起位不像51中的某些中断请求标志位,可以由硬件自动清0,它必须通过I_ISPC/F_ISPC相应位的写1才能清除。2022/9/4 12:2544五.中断系统中的
20、特殊功能寄存器(续) 在这里,还要提到的寄存器是与中断的触发方式有关的。我们在前面看到51中TCON的IF0,IF1位可用来设定其外部中断的触发方式,那么在S3C44B0X的中断控制器中其外部中断的触发方式又是如何确定的呢?其实留意前面课程我们可以知道这样一个寄存器: EXTINT(外部中断控制寄存器) 2022/9/4 12:2545五.中断系统中的特殊功能寄存器(续)2022/9/4 12:2546五.中断系统中的特殊功能寄存器(续) 对于其它的片内外围中断源,其中断触发方式都有它相应的特殊寄存器的某些位来决定,例如对于UART的收发中断,有 UCONi(UART控制寄存器)2022/9/
21、4 12:2547六.简单中断应用编程示例1.MCS-51中断编程示例 设计一程序实时显示外部引脚0上出现负跳变信号的计数(=255) ORG 0000H /从000H开始执行 AJMP MAIN /转至主程序 ORG 0003H /外部中断0对应的中断向量地址 AJMP IP0 /转至中断服务程序 ORG 0030H /主程序从0030H开始 MAIN:MOV SP,#60H /设堆栈指针 SET IT0 /设外部中断0为边沿触发,以计数负跳变 SET EA /CPU中断开放 SET EX0 /开外部中断0 MOV R7,#00H /R7清0,用于计数 LP: ACALL DISP /调用 显示子程序 AJMP LP /循环 IP0: INC R7 /中断服务程序,计数器加1 RETI /中断返回 2022/9/4 12:2548六.简单中断应用编程示例(续)2.S3C44B0X中断编程示例 以S3C44B0X开发板为平台,利用板上的两个中断按钮SB2和SB3SB完成以下简单功能:当按下SB2时,8段数码管显示0-9和A-F;当按下SB3时,8段数码管显示F-A和9-0. .外部中断初始化 void init_Ext4567(void) rINTMOD=0 x0; /使用IRQ中断模式 rINTCON=0 x1;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄石市2026年初三一轮复习阶段性考试(英语试题文)试题含解析
- 2026年四川省成都市天府第七中学初三下期中考试(英语试题文)试题含解析
- 2026年四川省部分地区重点中学中考英语试题原创模拟卷(六)含解析
- 卒中患者康复护理中的护理管理
- 学校学群众路线活动心得体会
- 统计学在经济学中的实际应用
- 客房营销活动方案(3篇)
- 临沧营销方案餐饮(3篇)
- 商铺包装营销方案(3篇)
- 室内广告应急预案(3篇)
- 讲好法院故事:消息写作与新闻摄影实战指南
- 《宫颈癌预防与治疗》课件
- 2025年黑龙江商业职业学院高职单招语文2019-2024历年真题考点试卷含答案解析
- (省统测)贵州省2025年4月高三年级适应性考试(选择性考试科目)生物试卷(含答案)
- 人流术后避孕服务规范
- 9.1.1 平面直角坐标系的概念(教学设计)-(人教版2024)
- DB33T 1337-2023 河湖水库清淤技术规程
- 1.2自然资源与人类活动的关系课件中图版(2019)高中地理选择性必修3
- 《氢科学技术应用》课件-3-1 氢气的储存
- 大模型原理与技术-课件 chap11 大模型评测
- 计件保底工资合同书
评论
0/150
提交评论