ch6_中断与定时技术_第1页
ch6_中断与定时技术_第2页
ch6_中断与定时技术_第3页
ch6_中断与定时技术_第4页
ch6_中断与定时技术_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

2019/9/17,1,嵌入式系统原理与应用技术 袁志勇 王景存 章登义 刘树波 北京: 北京航空航天大学出版社, 2009.11 主讲:兰建平,2019/9/17,2,第6章 中断与定时技术,6.1 中断概述 6.2 S3C2410中断系统 6.3 定时器工作原理 6.4 S3C2410定时器,2019/9/17,3,中断概述,中断是指计算机在执行某一程序的过程中, 由于计算机系统内、 外的某种原因, 而必须中止原程序的执行, 转去执行相应的处理程序, 待处理结束之后, 再回来继续执行被中止的原程序的过程。 采用了中断技术后的计算机, 可以解决CPU与外设之间速度匹配的问题, 使计算机可以及时处理系统中许多随机的参数和信息, 同时, 它也提高了计算机处理故障与应变的能力。 “中断”与“查询”相比: 执行效率 实时性 ,定义,当CPU在执行程序的过程中,外部事件向 CPU 发出信号,请求 CPU 迅速去处理,于是, CPU暂时中止执行当前程序,转去处理相应的事件,待处理完毕后,再继续执行原来被中止的程序,这样的过程称为 “中断”。 中断系统主要用需要及时处理的高速随机事件或信号,对于那些看来非常重要的信号(诸如急停开关、限位开关、键盘等),其响应速度要求并不高,切不可滥用中断。 中断执行过程:,2019/9/17,4,中断的优点,a. 中断可以解决快速的 CPU 与慢速的外设之间的矛盾,使 CPU 和外设同时工作。CPU在启动外设工作后继续执行主程序,同时外设也在工作。每当外设做完一件事就发出中断申请,请求 CPU 中断它正在执行的程序,转去执行中断服务程序(一般情况是处理输入/输出数据),中断处理完之后,CPU 恢复执行主程序,外设也继续工作。这样,CPU 可启动多个外设同时工作,大大地提高了 CPU 的效率。 b. 在实时控制中,现场的各种参数、信息均随时间和现场而变化。这些外界变量可根据要求随时向 CPU 发出中断申请,请求 CPU 及时处理中断请求。如中断条件满足,CPU 马上就会响应,进行相应的处理,从而实现实时处理。 c. 针对难以预料的情况或故障,如掉电、存储出错、运算溢出等,可通过中断系统由故障源向 CPU 发出中断请求,再由 CPU 转到相应的故障处理程序进行处理。,2019/9/17,5,中断源,中断源是指在计算机系统中可以向CPU发出中断请求的来源。 通常有I/O设备、实时控制系统中的随机参数和信息故障源等。,2019/9/17,6,2019/9/17,7,中断向量,当微处理器响应中断后,要求中断源提供一个地址信息,该地址信息称为中断向量(或中断矢量),微处理器根据这个中断向量转移到该中断源的中断服务程序处执行 固定中断向量 各个中断源的中断服务入口地址是固定不变的,由微处理器设计时已经确定,系统设计者不能改变。多数单片机系统的中断即是如此。 可变中断向量 中断服务程序的入口地址不是固定不变的,系统设计者可以根据自己的需要进行设置。优点:设计比较灵活,用户可根据需要设定中断向量表在主存中的位置 。缺点:中断响应速度较慢。,2019/9/17,8,多数微处理器系统中都有多个中断源,为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级,中断优先级,硬件方式中断原理图,中断优先级及中断嵌套,在使用中断嵌套时应特别注意堆栈深度,堆栈深度不够时,将导致中断返回错误,不能返回到原来的断点。,2019/9/17,9,2019/9/17,10,中断响应的一般过程,(1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断请求,且CPU处于开中断状态下, 则响应中断。 (2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场是用堆栈指令将原程序中用到的寄存器推入堆栈。 (3) 中断服务, 即为相应的中断源服务。 (4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在恢复现场前要关中断, 以防止现场被破坏。在恢复现场后应及时开中断。 (5) 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计数器, 从而使CPU继续执行刚才被中断的程序。,S3C2410中断系统,S3C2410X中断控制器有56个中断源,对外提供24个外中断输入引脚,内部所有设备都有中断请求信号,例如DMA控制器、UART、IIC等等。 S3C2410X的ARM920T内核有两个中断,IRQ中断和快速中断FIQ。 中断仲裁:当中断控制器接收到多个中断请求时,其内的优先级仲裁器裁决后向CPU发出优先级最高的中断请求信号或快速中断请求信号。,2019/9/17,11,中断系统结构,主要由中断源和控制寄存器两大部分构成,其寄存器主要有4种:模式、屏蔽、优先级、挂起(标志)寄存器等。,2019/9/17,12,2019/9/17,13,中断优先级仲裁器及工作原理,中断系统有6个分仲裁器和1个总仲裁器,每一个仲裁器可以处理6路中断。,2019/9/17,14,主要设置各个外中断源的触发方式、滤波,外中断控制寄存器,2019/9/17,15,EINT07-中断请求信号触发方式选择 000:低电平触发 001:高电平触发 01x:下降沿触发 10x:上升沿触发 11x:双边沿触发 第3、7、11、15、19、23、27、31位-保留,(1)EXTINT0-外中断触发方式控制寄存器0,2019/9/17,16,EINT815-中断请求信号触发方式选择 000:低电平触发 001:高电平触发 01x:下降沿触发 10x:上升沿触发 11x:双边沿触发 第3、7、11、15、19、23、27、31位-保留,(2)EXTINT1-外中断触发方式控制寄存器1,2019/9/17,17,EINT1623-外中断请求信号触发方式选择 000:低电平触发 001:高电平触发 01x:下降沿触发 10x:上升沿触发 11x:双边沿触发 第3、7、11、15、19、23、27、31位-为FILTEN 各引脚滤波控制位 0:禁止滤波 1:使能滤波,(3)EXTINT2-外中断控制寄存器2,2019/9/17,18,主要设置各个外中断源的滤波器设置,外中断滤波控制寄存器,2019/9/17,19,外中断屏蔽、标志寄存器,2019/9/17,20,外中断屏蔽寄存器,各位: 0:允许中断 1:禁止中断 注意: EINT0- EINT3不能在此被屏蔽,在SRCPND中屏蔽。,2019/9/17,21,外中断标志寄存器,各位: 0:无中断请求 1:有中断请求 注意:对某位写1,则清除相应标志,即清为0.,2019/9/17,22,GSTATUS3、4: 复位时被清0,其它情况下其数据不变。 用户可以用于保存数据。,外中断状态寄存器,2019/9/17,23,中断控制器专用寄存器 有8个专用寄存器,主要使用前5个寄存器,2019/9/17,24,该寄存器也就是中断标志寄存器 各位: 1:对应中断源有中断请求 0:对应中断源无中断请求 注意:必须在中断处理程序中对其标志位清0。其方法为写1.,1、SRCPND-中断源挂起(标志)寄存器,2019/9/17,25,该寄存器是设置各中断源是FIQ中断还是IRQ中断 各位: 1:对应中断源设为FIQ中断模式 0:对应中断源设为IRQ中断模式,2、INTMOD-中断模式寄存器,2019/9/17,26,各位: 1:屏蔽对应中断源 0:开放对应中断源,3、INTMSK-中断屏蔽寄存器,2019/9/17,27,4、PRIORITY-中断优先级寄存器,ARB_SELn-n组优先级顺序控制位 00:REQ0, 1, 2, 3, 4, 5 01:REQ0, 2, 3, 4, 1, 5 10:REQ0, 3, 4, 1, 2, 5 11:REQ0, 4, 1, 2, 3, 5 ARB_MODEn-n组优先级循环控制位 0:优先顺序固定不变 1:优先顺序循环,每响应一次中断,其顺序循环改变一次,但REQ0、REQ5位置不变。,2019/9/17,28,各位: 1:对应的中断源被响应,且正在执行中断服务 0:对应中断源未被响应 注意:必须在中断处理程序中对其服务标志位清0。方法为对某位写1便清除为0。 即在清除SRCPND中相应位后,要清除该寄存器相应位。,5、INTPND-中断服务(挂起)寄存器,2019/9/17,29,该寄存器的偏移值指示在INTPND中显示的中断源 各位: 1:对应的中断源,在INTPND中被置位 说明:当在中断服务程序中对SRCPND、INTPND中的标志位清0时,该寄存器的对应位自动清0。,6、INTOFFSET-中断偏移寄存器,2019/9/17,30,7、SUBSRCPND-子中断源请求标志寄存器,对有多个中断源的外设,显示其具体的中断请求 各位: 1:对应的子中断源有请求 0:对应的子中断源无请求 注意:在中断服务程序中,需要对其置1的标志位清0。,2019/9/17,31,8、INTSUBMSK-子中断源屏蔽寄存器,对有多个中断源的外设,对具体的中断源进行屏蔽 各位: 1:屏蔽对应的子中断源 0:开放对应的子中断源,2019/9/17,32,中断举例,流程图,2019/9/17,33,定时器工作原理,定时器是嵌入式系统中常用的部件,也称为定时/计数器。其主要用作定时功能或计数功能 。,定时/计数器内部原理图,2019/9/17,34,S3C2410芯片中的定时部件有多个,不同的定时部件有不同的应用。主要分为以下三部分 定时器及PWM 看门狗定时器 实时钟RTC,S3C2410定时器,S3C2410X定时器的主要特性,2019/9/17,35,5个16位定时器; 2个8位预分频器和2个4位分频器; 可编程PWM输出占空比; 具有初值自动重装连续输出模式和单脉冲输出模式; 具有死区生成器。 S3C2410有5个16位的定时器,定时器03具有PWM(脉宽调制)功能。定时器4是一个内部定时器,没有输出引脚,供内部使用。定时器0有死区产生器,通常用于大电流设备控制。 有2个8位预分频器和2个4位分频器。定时器0 和定时器1 分享同一个8 位的预分频器和分频器,定时器2、3、4 分享另一个预分频器和分频器,分频器有1/2、1/4、1/8、1/16这4种分频值。定时器从分频器接收自己的时钟信号,时钟分频器从相应的预分频器接收时钟信号。,PWM(脉宽调制)概念,2019/9/17,36,PWM(脉宽调制):就是只对一方波序列信号的占空比按照要求进行调制,而不改变方波信号的其它参数,即不改变幅度和周期,因此脉宽调制信号的产生和传输,都是数字式的。 用脉宽调制技术可以实现模拟信号:如果调制信号的频率远远大于信号接受者的分辨率,则接收者获得的是信号的平均效果,不能感知数字信号的0和1,其信号大小的平均值与信号的占空比有关,信号的占空比越大,平均信号越强,其平均值与占空比成正比。只要带宽足够(频率足够高或周期足够短),任何模拟信号都可以使用PWM 来实现。 PWM技术的应用:借助于微处理器,使用脉宽调制方法实现模拟信号是一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。,2019/9/17,37,定时器及PWM,Timer部件内部功能框图,定时器结构图,2019/9/17,38,工作原理,2019/9/17,39,(1)定时器工作过程 装入初值、启动计数,计数结束产生中断请求,并且可以重装初值连续计数。如下图所示。,2019/9/17,40,(2)初值自动重装、手动装载和双缓冲 初值自动重装功能: 5个定时器都具有此功能。当计数器中值减到0后,若设置了自动重装功能,则在下一计数周期开始前将初值装入计数器重新计数。 初值手动装载功能:在启动计数前,必须使用手动装载功能将初值装入计数器,而初值自动重装仅是一次计数结束后重新装入初值。 双缓冲功能:如果定时器正在工作,此时写入新的数据到TCNTBn、或者到TCMPBn,该写入的数据不影响本次定时器的操作。当定时器到达0后下一次运行定时器时,新写入的TCNTBn、或者TCMPBn才生效。,2019/9/17,41,(3)PWM输出 寄存器TCMPB的作用:当计数器TCNT中的值减到与TCMPB的值相同时,TOUT的输出值取反。改变TCMPB的值,便改变了输出方波的占空比。 TOUT的输出可以设置为反相输出,如下图所示。,2019/9/17,42,(4)死区产生器 死区的概念:是一小段时间间隔,在这个时间间隔内,禁止两个开关同时处于开启状态。死区是在功率设备控制中常采用的一种技术,防止两个开关同时打开起反作用。 S3C2410的timer0具有死区发生器功能,可用于控制大功率设备。,死区发生器开启前后输出波形对比,2019/9/17,43,(5)DMA请求模式 S3C2410中定时器的DMA功能:系统中的5个定时器都有DMA请求功能,但是在同一时刻只能设置一个使用DMA功能,通过设置其DMA模式位来实现。 DMA请求过程:定时器可以在任意时间产生DMA请求,并且保持DMA请求信号(nDMA_REQ)为低直到定时器收到ACK信号。当定时器收到ACK信号时,它使请求信号变得无效。 DMA请求与中断的关系:如果一个定时器被配置为DMA模式,该定时器不会产生中断请求了。其他的定时器会正常的产生中断。,2019/9/17,44,计数时钟和输出计算 1)定时器输入时钟频率f Tclk (即计数时钟频率) : f Tclk=f pclk(Prescaler+1) 分频值 式中:Prescaler,预分频值,0-255;分频值为1/2、1/4、1/8、1/16。 2)PWM输出时钟频率 : PWM输出时钟频率= f Tclk TCNTBn 3)PWM输出信号占空比(即高电平持续时间所占信号周期的比例): PWM输出信号占空比 = TCMPBn TCNTBn,2019/9/17,45,定时器最大、最小输出周期 设PCLK的频率为50MHz,经过预分频和分频器后,送给定时器的可能计数时钟频率由表4-7-1给出。 表4-7-1 定时器最大、最小输出周期,2019/9/17,46,定时器专用寄存器 共有6种、17个寄存器,TCNTBn-Timern计数初值寄存器(计数缓冲寄存器),16位 TCMPBn-Timern比较寄存器(比较缓冲寄存器),16位 TCNTOn-Timern计数读出寄存器,16位,2019/9/17,47,Dead zone length-死区宽度设置位 其值N为: 0255,以timer0的定时时间为单位 死区宽度为:(N+1)timer0的定时时间 Prescaler1-timer2、3、4的预分频值 其值N为: 0255 输出频率为:PCLK (N+1) Prescaler0- timer0、1的预分频值 其值N为: 0255 输出频率为:PCLK (N+1),1、TCFG0-预分频器配置寄存器,2019/9/17,48,2、TCFG1-DMA模式与分频选择寄存器,DMA mode-DMA通道选择设置位 0000:不使用DMA方式,所有通道都用中断方式 0001:选择timer0 0010:选择timer1 0011:选择timer2 0100:选择timer3 0101:选择timer4 011X:保留 MUX4 MUX0-timer4timer0分频值选择 0000:1/2 0001:1/4 0010:1/8 0011:1/16 01XX:选择外部TCLK0、1(对timer0、1是选TCLK0,对timer4、3、2是选TCLK1),2019/9/17,49,TL4TL0-计数初值自动重装控制位 0:单次计数 1:计数器值减到0时,自动重新装入初值连续计数。 TUP4TUP0-计数初值手动装载控制位。 0:不操作 1:立即将TCNTBn中的计数初值装载到计数寄存器TCNTn中。 说明:如果没有执行手动装载初值,则计数器启动时无初值。,3、TCON-定时器控制寄存器,2019/9/17,50,TR4TR0-TIMER4TIMER0运行控制位 0:停止 1:启动对应的TIMER TO3TO0- TIMER4TIMER0输出控制位 0:正相输出 1:反相输出 DZE-TIMER0死区操作控制位 0:禁止死区操作 1:使能死区操作,3、TCON-定时器控制寄存器(续),2019/9/17,51,定时器的使用 1、定时器初始化方法 (1)写TCFG0,设置计数时钟的预分频值和Timer0死区宽度; (2)写TCFG1,选择各个定时器的分频值和DMA、中断服务; (3)对TCNTBn和TCMPBn分别写入计数初值和比较初值; (4)写TCON,设置计数初值自动重装、手动装载初值、设置反相输出; (5)再写TCON,清除手动装载初值位、设置正相输出、启动计数。 2、定时器停止运行方法 写TCON,禁止计数初值自动重装。(一般不使用运行控制位停止运行),2019/9/17,52,定时器操作例子 (1)按照前面初始化定时器;设置TCNTBn=160(50+110),TCMPBn=110;手动装入初值后,又重设TCNTBn=80, TCMPBn=40; (2)启动定时器,按第一个初值计数; (3)与第一个比较值相同,输出取反; (4)第一次计数结束,自动重装初值80、40; (5)在第一次中断处理程序又重设TCMPBn=60; (8)在第二次中断处理程序禁止自动重装初值,准备结束计数; (10)第三次计数结束,不再计数。,50 110 40 40 20 60,1 2 3 4 6 7 9 10,5 8,TOUTn,2019/9/17,53,看门狗定时器,当系统程序出现功能错乱,引起系统程序死循环时,看门狗定时器产生一个具有一定时间宽度的复位信号,迫使系统复位,恢复系统正常运行。恢复系统程序的正常运行。 S3C2410芯片的看门狗定时器有两种工作模式 带中断请求信号的常规时隙定时器 产生内部复位信号的定时器,看门狗控制寄存器(WTCON)

温馨提示

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

评论

0/150

提交评论