S12增强型定时器模块.ppt
《S12增强型定时器模块.ppt》由会员分享,可在线阅读,更多相关《S12增强型定时器模块.ppt(92页珍藏版)》请在三一办公上搜索。
1、基于HCS12的嵌入式系统设计,合肥工业大学吴 晔,张 阳,滕 勤,基于HCS12的嵌入式系统设计,第9章 S12增强型捕捉定时器模块,本章内容9.1 ECT模块概述9.2 自由运行计数器及定时器基本寄存器9.3 输入捕捉功能及寄存器设置9.4 输出比较功能及寄存器设置9.5 脉冲累加器功能及寄存器设置9.6 模数递减计数器功能及寄存器设置9.7 ECT模块基础应用实例,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,【可编程定时器/计数器的特点】多种工作方式定时方式或计数方式等。计数器的模值可变计数的最大值有一定的限制,取决于计数器的位数。计数的最大值限制了定时的最大值。可以根据规定
2、的定时或计数值,当定时时间到或到达计数终点时,发出中断请求信号,以便实现定时或计数控制。【定时器】计数脉冲来自于系统时钟或经过分频后的系统时钟,即驱动信号为内部时钟脉冲;【计数器】计数脉冲来自于芯片外部引脚,即驱动信号为外部脉冲。,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,嵌入式系统中定时器/计数器模块的作用:【产生波形输出】从MCU的I/O引脚向外输出一系列符合一定时序规范的周期信号。【测量输入波形】检测MCU I/O引脚上输入的一系列周期信号的脉宽、周期或频率。【统计脉冲或边沿个数】对端口引脚输入的、由外部事件产生的触发信号进行计数。【作为定时基准】产生内部定时,例如用于定时
3、采样等。S12系列MCU的定时器模块称为增强型捕捉定时器(ECT)模块(Enhanced Capture Timer Module)。,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,9.1.1 ECT的基本组成与工作原理【ECT组成】1个16位自由运行计数器8个16位输入捕捉/输出比较(IC/OC)通道2个16位脉冲累加器1个16位模数递减计数器MDC【特点】4个输入捕捉通道具有16位缓冲(保持)寄存器4个输入捕捉通道具有可选择延迟时间的延迟计数器4个8位脉冲累加器可以通过级联形成2个16位的脉冲累加器具有4位预分频器的模数递减计数器,基于HCS12的嵌入式系统设计,9.1 ECT模
4、块概述,【ECT的运行模式】停止(STOP)模式 冻结(Freeze)模式 等待(Wait)模式 正常(Normal)模式,图9.1 ECT模块框图,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,9.1.1 ECT的基本组成与工作原理自由运行计数器:ECT的核心16位自由运行计数器,也称为自由运行主定时器。系统复位时自由运行计数器为$0000。模块运行时自由运行计数器从$0000$FFFF循环递增计数。溢出复零时置位中断标志。时钟源TIMCLK PCLK,PACLK,PACLK/256,PACLK/65536。预分频器时钟PCLK由总线时钟经过一个7位预分频器得到。预分频系数 8种。
5、,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,9.1.1 ECT的基本组成与工作原理1.输入捕捉输入捕捉(Input Capture,IC):输入引脚上的跳变沿(上升沿或下降沿)触发输入捕捉,将当前自由运行计数器中的计数值复制到通道寄存器中,并置位中断标志,如果允许中断,则产生一次输入捕捉中断。带保持寄存器的IC通道可以在不产生中断的条件下,连续记录两次自由运行计数器的值。,9.2 输入捕捉模块框图,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,9.1.1 ECT的基本组成与工作原理2.输出比较输出比较(Output Compare,OC):根据需要设置输出比较寄存器的值
6、,自由运行计数器的值与输出比较寄存器的值每隔4个总线周期比较一次,当两者相等时,会在规定的通道引脚上输出预定的电平。如果允许中断,会产生一次输出比较中断。,9.3 输出比较模块框图,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,9.3 输出比较模块框图,9.1.1 ECT的基本组成与工作原理3.脉冲累加器脉冲累加器(Pulse accumulator,PA):脉冲计数器,可以统计相应管脚上的脉冲个数或在管脚上有效电平期间对内部时钟进行计数。ECT内有4个8位脉冲累加器,与4个带缓冲的通道相联,可以级联形成2个16位的脉冲累加器。每个脉冲累加器有一个缓冲器(保持寄存器),可以在外部引脚
7、出现预定动作时,保存其累加值。,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,3.脉冲累加器根据工作方式不同,脉冲累加器的计数脉冲来自不同的渠道。【计数方式】事件计数方式计数脉冲直接来自引脚逻辑,脉冲累加器相当于计数器,对有效边沿计数,有效边沿可设定为上升沿或下降沿。输入引脚上每产生一个有效边沿跳变,脉冲累加计数器的值加1。当脉冲累加器溢出时,将置位中断标志。如果允许中断,则产生一次溢出中断。门控时间累加方式脉冲累加器相当于可控计数器。门控信号来自引脚逻辑,时钟信号来自内部时钟PACLK(=ECLK/64)。门控信号可设定为高电平有效或低电平有效,在有效电平期间,脉冲累加器对ECLK
8、/64时钟信号计数。有效电平结束时的跳变沿将停止计数,并置位中断标志。如果允许中断,则产生一次硬件中断。,基于HCS12的嵌入式系统设计,9.1 ECT模块概述(8),9.1.1 ECT的基本组成与工作原理4.模数递减计数器16位模数递减计数器(Modulus Down Counter,MDC):可以作为一个时基,定时产生中断;也可以用来产生控制信号,将输入捕捉寄存器或脉冲累加器的值锁存到各自的保持寄存器中。锁存动作可以通过程序设定为周期性的或一次性的。MDC时钟源总线时钟经过4位预分频器提供,有4个分频系数可供选择。MDC常数(加载)寄存器定时常数可自动重装载,可以根据定时的需要,向加载寄存
9、器中赋初值。但MDC的常数寄存器与其计数寄存器MCCNT使用相同的地址,加载时通过特殊的时序实现。,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,9.1.1 ECT的基本组成与工作原理4.模数递减计数器复位后,MCCNT=$FFFF。MDC启动后,MCCNT从当前值开始递减计数。当计数值减到0时,置位中断标志。如果允许中断,则向CPU发出中断请求。【计数方式】单次计数方式当计数值减到$0000时,MDC便停止计数。循环(连续)计数方式当计数值减到$0000时,自动加载定时常数,并继续递减计数。,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,9.1.2 模块内存映射ECT模块
10、的寄存器分为3类:控制寄存器、数据寄存器和状态寄存器。控制寄存器定时器系统控制寄存器TSCR1、TSCR2定时器控制寄存器TCTL1TCTL4定时器IC/OC选择寄存器 TIOS输入控制覆盖寄存器 ICOVW延迟计数器控制寄存器 DLYCT定时器中断允许寄存器 TIE输入控制系统控制寄存器 ICSYS定时器强制输出比较寄存器 CFORC输出比较7屏蔽寄存器 OC7M定时器溢出触发寄存器1 TTOV16位脉冲累加器A控制寄存器 PACTL16位脉冲累加器B控制寄存器 PBCTL模数递减计数器控制寄存器MCCTL输入控制脉冲累加器寄存器 ICPAR,基于HCS12的嵌入式系统设计,9.1 ECT模
11、块概述,数据寄存器定时器计数寄存器 TCNT定时器IC/OC寄存器 TC0TC7输入捕捉保持寄存器TC0HTC3H输出比较7数据寄存器 OC7D脉冲累加器计数寄存器 PACN0PACN38位脉冲累加器保持寄存器PA0HPA3H模数递减计数器计数寄存器 MCCNT 状态寄存器主定时器中断标志寄存器TFLG1、TFLG2脉冲累加器A标志寄存器PAFLG脉冲累加器B标志寄存器 PBFLG模数递减计数器标志寄存器 MCFLG,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,9.1.3 ECT模块的中断系统ECT模块中断源:8个定时器通道中断1个模数递减计数器向下溢出中断1个脉冲累加器A输入中断
12、1个脉冲累加器A溢出中断1个脉冲累加器B溢出中断,图9.4 ECT模块中断源,基于HCS12的嵌入式系统设计,9.1 ECT模块概述,表9.5 ECT模块中断描述,9.1.3 ECT模块的中断系统 ECT模块中断源:,基于HCS12的嵌入式系统设计,9.2 自由运行计数器及定时器基本寄存器,9.2.1 自由运行主定时器与时钟频率设置16位自由运行主定时器的工作频率决定输入捕捉/输出比较的分辨能力。定时器计数寄存器TCNT对多路转换器输出的时钟信号进行计数,当计数值从$FFFF溢出变为$0000时,主定时器中断标志寄存器TFLG2中的中断标志TOF置位,如果此时定时器系统控制寄存器TSCR2中的
13、中断允许位TOI=1,将向CPU申请中断。设置TOI=0可以禁止自由运行计数器溢出中断,向TFLG2中写入$80将清除TOF标志。,基于HCS12的嵌入式系统设计,9.2 自由运行计数器及定时器基本寄存器,9.2.1 自由运行主定时器与时钟频率设置自由运行主定时器的时钟TIMCLK由4选1多路转换器提供,时钟源的切换由16位脉冲累加器A控制寄存器 PACTL中的CLK1和CLK0控制,时钟可以是PCLK、PACLK、PACLK/256、PACLK/65536。,基于HCS12的嵌入式系统设计,9.2 自由运行计数器及定时器基本寄存器,9.2.1 自由运行主定时器与时钟频率设置其中,PCLK称为
14、P时钟,由预分频器将总线时钟进行2k分频后得到(k=07),分频系数由定时器系统控制寄存器TSCR2中的PR2、PR1和PR0决定。PACLK是16位脉冲累加器A的时钟,频率为ECLK/64。定时器系统控制寄存器TSCR1中的TEN位是TIMCLK的总开关,当TEN=0时,TIMCLK被切断,定时器停止工作,但并不影响脉冲累加器在事件计数方式下正常工作。输出比较通道7(OC7)对自由运行主定时器具有特殊的控制功能,当定时器系统控制寄存器TSCR2中的控制位TCRE=1时,如果通道7输出比较成功,则TCNT自动复位到$0000,因而可利用OC7实现TCNT在$0000$($FFFF)之间循环计数
15、。,基于HCS12的嵌入式系统设计,9.2 自由运行计数器及定时器基本寄存器,9.2.2 ECT模块的基本寄存器1.定时器系统控制寄存器1(Timer System Control Register 1,TSCR1)TEN:定时器允许位 1=允许定时器正常运行。0=禁止主定时器(包括计数器),可用于降低功耗。TSWAI:等待模式下定时器模块停止位 1=当MCU处于等待模式时,禁止定时器模块。定时器中断不能使MCU退出等待模式。0=在等待期间允许ECT模块继续运行。,基于HCS12的嵌入式系统设计,9.2 自由运行计数器及定时器基本寄存器,1.定时器系统控制寄存器1(Timer System C
16、ontrol Register 1,TSCR1)TSFRZ:冻结模式下定时器和模数计数器停止位 1=只要MCU处于冻结模式,禁止定时器和模数计数器。0=冻结模式下允许定时器和模数计数器继续运行。TFFCA:快速清除定时器所有标志位 1=对于TFLG1寄存器,读输入捕捉或写输出比较通道将清除相应通道的标志CnF。对于TFLG2寄存器,对TCNT寄存器的任何访问将清除TOF标志。对PACN3和PACN2寄存器的任何访问将清除PAFLG寄存器中的PAOVF和PAIF标志。对PACN1和PACN0寄存器的任何访问将清除PBFLG寄存器中的PBOVF标志。0=定时器标志普通清除方式。允许清除定时器标志,
17、使其正常运行。,基于HCS12的嵌入式系统设计,9.2 自由运行计数器及定时器基本寄存器,2.定时器系统控制寄存器2(Timer System Control Register 2,TSCR2)TOI:定时器溢出中断允许位 1=当TOF标志置位时,允许请求硬件中断。0=禁止定时器溢出中断。TCRE:定时器计数器复位允许 1=通过成功的输出比较7复位自由运行计数器。0=禁止计数器复位,计数器自由运行。如果TC7=$0000且TCRE=1,TCNT一直保持$0000。如果TC7=$FFFF且TCRE=1,当TCNT从$FFFF复位到$0000时,TOF将不会置位。,基于HCS12的嵌入式系统设计,
18、9.2 自由运行计数器及定时器基本寄存器,表9.6 预分频系数选择,2.定时器系统控制寄存器2(Timer System Control Register 2,TSCR2)PR2、PR1、PR0:定时器预分频器选择位,3.定时器计数寄存器(Timer Count Register,TCNT)16位主定时器是一个递增计数器,不停地对时钟信号TIMCLK进行计数,定时器计数寄存器TCNT的内容即为计数结果。,基于HCS12的嵌入式系统设计,9.2 自由运行计数器及定时器基本寄存器,9.2.2 ECT模块的基本寄存器4.主定时器中断标志寄存器2(Main Timer Interrupt Flag 2
19、,TFLG2)TOF:主定时器溢出标志当自由运行定时器溢出时,TOF=1,如果允许中断(TSCR2寄存器中TOI=1),则将引发溢出中断。向该位写1将清除TOF标志。如果TSCR1寄存器中的TFFCA=1,对TCNT的任何访问将清零TFLG2寄存器。,基于HCS12的嵌入式系统设计,9.3 输入捕捉功能及寄存器设置,9.3.1 ECT模块的输入捕捉功能当定时器IC/OC选择寄存器TIOS中的IOSn=0时,通道定义为输入捕捉。自由运行定时器启动后,边沿检测器便开始监视引脚事件,一旦引脚电平出现设定的有效跳变,自由运行计数器寄存器TCNT的当前值便被捕捉到捕捉寄存器TCn中(n=07)。有效跳变
20、边沿可以是上升沿、下降沿或任意跳变,由定时器控制寄存器TCTL3和TCTL4中的EDGxB和EDGxA位决定。要求引脚输入的最小脉宽大于2个模块时钟周期。设置EDGxB:EDGxA=00,可以关闭边沿检测器,停止该通道的捕捉。捕捉完成后,主定时器中断标志寄存器TFLG1中的中断请求标志CnF置位,如果定时器中断允许寄存器TIE中的中断允许位CnI=1,且CCR中的控制位I=1,则系统会产生一次输入捕捉中断。,基于HCS12的嵌入式系统设计,9.3 输入捕捉功能及寄存器设置,9.3.1 ECT模块的输入捕捉功能如果不采用中断方式响应引脚事件,可以置CnI=0,通过软件查询标志CnF来进行处理。各
21、个IC/OC通道可以单独发出中断请求,也可以分别关闭中断。事件处理后,可以向TFLG1寄存器的对应位写入1,清除标志CnF。ECT的IC通道组由4个标准的带缓冲通道IC0IC3(引脚PT0PT3)和4个非缓冲通道IC4IC7(引脚PT4PT7)组成。每个通道的IC/OC寄存器TCn都具有覆盖保护功能,以防止IC寄存器内容尚未读出之前,上一次捕捉的值被新值所覆盖。用户可以通过设置输入控制覆盖寄存器 ICOVW的相应位,决定是否允许某个通道用新的捕捉值覆盖上一次的捕捉值。,基于HCS12的嵌入式系统设计,9.3 输入捕捉功能及寄存器设置,1带缓冲的IC通道【带缓冲的IC通道组成】边沿检测、延迟滤波
22、、捕捉寄存器和保持寄存器。(1)边沿检测引脚逻辑电平的变化由内部边沿检测电路判别,判别规则由定时器控制寄存器TCTL3和TCTL4中的控制位EDGxB和EDGxA的状态决定,判别结果送到延迟计数器进行滤波处理。(2)延迟滤波在通道入口设置有延迟计数器,当延迟功能有效时,输入引脚检测到一个有效边沿后,延迟计数器按照预先选择的M时钟(模块时钟,等于内部总线时钟)周期数,延迟给定的时间间隔,才产生输出脉冲。延迟时间由延迟计数器控制寄存器DLYCT中的DLY1、DLY0决定。延迟计数结束后,延迟计数器自动清0。要求输入信号两个有效边沿之间的持续时间必须大于设定的延迟时间。,基于HCS12的嵌入式系统设
23、计,9.3 输入捕捉功能及寄存器设置,9.3.1 ECT模块的输入捕捉功能1带缓冲的IC通道(3)输入捕捉与锁存延迟后的有效信号送到输入捕捉逻辑,根据输入控制系统控制寄存器ICSYS控制位BUFEN的状态和输入控制覆盖寄存器 ICOVW相关位的设置,决定是否将TCNT的当前值捕捉到捕捉寄存器TCn中,以及是否将TCn中原来的捕捉值锁存到保持寄存器TCnH中。保持寄存器允许在不产生中断的条件下,连续捕捉两次不同时刻的值。当输入捕捉寄存器TCn的值被读取后或被锁存到保持寄存器TCnH中时,相应的TCn被清空。同样,当保持寄存器的内容被读出时,TCnH也被清空。根据中断允许寄存器TIE中CnI位的设
24、置,决定是否向CPU提出中断请求。,基于HCS12的嵌入式系统设计,9.3 输入捕捉功能及寄存器设置,1带缓冲的IC通道(4)带缓冲的IC通道的工作模式【工作模式】锁存模式和队列模式,由输入控制系统控制寄存器ICSYS的控制位LATQ决定。【锁存模式】每个有效的引脚事件只将自由定时器的值放入捕捉寄存器TCn,而TCn到TCnH的传送必须依赖模数递减计数器复0或其他强制锁存命令实现。当输入控制系统控制寄存器ICSYS中的LATQ=1时,为输入捕捉锁存模式。通过一个有效的输入引脚跳变,主定时器中的值被复制到捕捉寄存器TCn中(n=03)。在下述情况下,TCn中原来的捕捉值被锁存到各自的保持寄存器T
25、CnH中。这些情况包括:模数递减计数器自然回0向模数计数器直接写入$0000向模数计数器控制寄存器MCCTL强制锁存控制位ICLAT直接写1。,基于HCS12的嵌入式系统设计,9.3 输入捕捉功能及寄存器设置,【锁存模式】【1】覆盖控制如果输入控制覆盖寄存器ICOVW中的相应位NOVWx0,当发生新的输入捕捉时,输入捕捉寄存器TCn的值将被新值所覆盖。如果发生锁存操作,其保持寄存器TCnH的内容也会被覆盖。如果ICOVW寄存器中的相应位NOVWx1,TCn或TCnH必须处于清空状态才允许写入,否则不能写入新值。这样就可以在读取捕捉值或将该捕捉值转移到保持寄存器之前,避免TCn和TCnH被覆盖。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- S12 增强 定时器 模块

链接地址:https://www.31ppt.com/p-5447062.html