0 卖盘信息
BOM询价
电子百科词库 >定时器

定时器

[ 浏览次数:约2642次 ] 发布日期:2016-12-14


1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。它利用机械钟带动开关来控制煤气阀门。起初每周上一次发条,1918年使用电钟计时后,就不用上发条了。随着生活水平的提高,定时器的用途也越来越广泛。比如对开水机、热水器的定时控制,现在有了大功率定时器,定时开机、定时关机,实现节能、安全、健康的使用。人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。现在的不少家用电器都安装了定时器来控制开关或工作时间。


定时器

目录
定时器的种类
定时器的工作原理
定时器的电路图
定时器的管理模块
定时器的基本操作



定时器的种类


1、 接通延时型定时器:接通延时型定时器是各种PLC中最常见最基本的定时器,这种定时器在 SIEMENS的PLC中,称为SD型定时器。

2、 断开延时型定时器:这种定时器是当输入条件00000为ON时无延时作用,只有在输入条件00000为OFF时产生延时作用。在SIEMENS的PLC中,称为SF型定时器。

3、保持型接通延时定时器:这种定时器是当输入条件00000为ON后,即产生锁存功能,即使输入条件00000又变为OFF,仍视输入条件为ON,当定时器的当前值等于设定值时,定时器动作,这种定时器在SIEMENS的PLC中,称为SS型定时器。

4、脉冲型定时器:这种定时器是当输入条件00000为ON后,定时器即时动作,但经过定时器所设定的时间后,即使输入条件00000仍为ON,定时器却变为OFF状态。即这种定时器ON状态的维持时间是由设定值决定的。如果00000为ON的时续时间小于定时器的设定值,定时器的ON状态维持时间为输入条件00000为ON的持续时间。这种定时器在SIEMENS的PLC中,称为SP型定时器。

5、扩张型脉冲定时器:这种定时器与脉冲型定时器的区别是,只要输入条件00000出现了ON状态,不管其持续时间多长,均可使定时器为ON的维持的时间与定时器的设定值一致。这种定时器在SIEMENS的PLC中,称为SE型定时器。

定时器按结构可分为机械式、电动式和电子式:


  1、机械式定时器  以发条为原动力,用擒纵调速器控制走时精度,通过齿轮传动和凸轮,按时间控制机构预置的时段操纵执行机构动作。计时精度要求不高的定时器(如风扇定时器、洗衣机定时器、厨房用定时器、照相暗房用定时器、电视机控制用定时器、电灯开关定时器),一般采用无固有振动周期的调速器。这些定时器都是在手动上发条的同时预置时限,定时精度不高,但结构简单,使用方便。计时精度要求高、定时范围在3~12小时的定时器,一般采用摆轮游丝调速器。


  2、电动式定时器  用交流同步电动机或石英步进电机驱动,通过齿轮传动和凸轮簧片触点机构,按预置的时段或时刻控制执行机构。其中短时段控制的电动式定时器可用于程序控制式洗衣机、洗碗机、微波炉、烘箱及时间继电器等;长时段电动式定时器是一种24小时或7天程序控制的开关装置,可预置开关动作多次,最短时间控制间隔一般为15分钟,可用于用户用电情况监控、照明控制、实验室装置控制、空调器控制和自动生产线上某些设备的定时控制等。


  3、电子式定时器  利用石英振荡器或民用交流电的标准频率,经过分频计数组成时间累加器或数字钟,按照预置的时间编码输出控制信号。这种定时器走时精确,时间设定没有误差,定时精度高,控制程序多。其中长时段定时器最小控制时段一般为1分钟,配上微处理器后能精确地编制一年的时间程序,组成多路可编程序的定时器。电子式定时器在工业自动化控制系统中应用广泛,它也是节约能源管理中一种有效的技术措施。电子定时器类的电子定时开关钟,可用于按高、平、低峰用电收取不同电费制度的场合,它将一天内的用电高峰、平峰、低谷时间在定时开关中设定,并分别接通3种电表进行计费。电子式定时器在科学实验中和在微波炉、电饭锅、洗衣机等电器中也有使用



   定时器的工作原理


   定时器根据其输入条件导致完成动作的不同可分为接通延时型定时器、断开延时型定时器、保持型接通延时定时器、脉冲型定时器和扩张型脉冲定时器五种。其中,接通延时型定时器也称为SD型定时器,是PLC(可编程逻辑控制器)中最基本的一种;断开延时型定时器也称为SF型定时器,当其输入条件为OFF即断开时才会起到延时作用;保持型接通延时定时器也称为SS型定时器,当输入条件为ON即接通时起到锁存功能,若输入条件由ON变为OFF时,仍认为输入条件为ON起到保持作用;脉冲型定时器也称为SP型定时器,当输入条件为ON时立刻发生动作,但动作属于脉冲型,仅能维持定时器的设定时间,若设定时间过后,即使输入条件为ON,定时器也处于OFF状态,若设定时间内,输入条件变为OFF,则动作停止;扩张型脉冲定时器也称为SE型定时器,其与脉冲型定时器相类似,不同之处仅在于输入条件为ON时,即使在设定时间内条件变为OFF,动作仍不停止,扩张到设定时间为止。

   接下来我们以PLC中的定时器为例来说明定时器的结构,并在下一部分中解释其工作原理。PLC中的定时器根据累积的时钟脉冲来完成计时的功能,其主要由一个存储器、一个设定值寄存器和一个当前值寄存器构成,其中,设定值寄存器用于存储设定时间值,当前值寄存器用于存储当前时间值。

   当定时器输入条件满足计时要求时开始计时,设定值寄存器存储设定时间值不变,当前值寄存器存储当前时间值随时间发生变化,一旦当前时间值增加到与设定时间值相同,定时器发生动作,常开触点接通而常闭触电断开,并通过程序作用于被控制对象,以达到控制时间的目的。


定时器的电路图


定时器的电路图

定时器的管理模块


定时器是通信协议正常运行的基本要素之一,主要用于各种定时和帧重传的任务。通信协议在单片机系统上实现所使用的定时器,定时精度要求不高,但数量要求比较大。由于硬件资源有限,不可能为每一个单独任务分配一个硬件定时器,只能通过单个硬件定时器模拟多个软件定时器的方法,来满足协议中的定时应用需要。

用一定的数据结构将这些软件定时器组织起来,并提供统一的调用接口,称为“定时器管理”。目前定时器管理主要有2种实现方法:

①静态数组法。将定时器节点存储在数组中。优点是逻辑简单,占用ROM较少。但这种方案有明显的缺点:当硬件定时器中断发生时,要对所有定时器节点进行减法操作,时间开销很大,且时延不确定(与定时器数目相关)。

②delta链表法。按照定时器的定时值升序排列,形成链表。后一个定时器的定时值是前面所有定时器的值加上本节点的值。这样,在每次的时钟中断处理中,只需对第1个定时器节点进行减法操作,大大减少了时间开销。但是,该方案逻辑复杂,ROM用量大,需要频繁分配回收内存,容易形成内存碎片。

1 定时器管理模块的设计

定时器管理模块的设计基于静态数组法。使用一个定时器节点数组来保存所有的定时请求,数组的每一项代表一个可用的定时器节点。每一个定时器节点都有一个状态项,表示该定时器正处于空闲、使用或溢出状态。定时器的定时值和定时器超时后要发送的消息也存储在定时器节点中,从而实现用一个硬件定时器为用户提供多个软件定时器。

为了解决中断处理时间开销大的问题,在模块中引入一个辅助定时器,辅助定时器的值总是等于所有定时器节点中的最小定时值。在硬件定时器中断处理中,仅对辅助定时器进行减法操作,从而大大缩短了中断处理的时间。设计原理如图1所示。

定时器管理模块的设计

2定时器管理模块的实现

2.1数据结构和函数接口

定时器管理模块使用的相关数据结构定义如下:

字段state保存了定时器节点的状态,可能取值为空闲(T_FREE)、使用(T_INUSE)或溢出(T_OVERFLOW)。

字段count保存了定时器节点的定时值,最大取值为65 535。如果设置硬件定时器中断为10 ms,则软件定时器最大定时约为655 s,可以满足大多数应用需要。

字段msg指向定时器的用户消息。在启动定时器时,指向消息的指针被保存在此字段。当定时时间结束后,中断处理函数会自动发出这个消息以通知用户任务。

由于数组的下标是唯一的,可作为识别节点的唯一ID号。下文中提到的节点ID号均表示节点在数组中的下标。

定时器的数据结构和函数接口

MAX_TIMER_NUM表示系统允许的最大定时器数,其值取决于具体应用需要。

本模块提供的关键接口函数如下:

2.2定时器的初始化

使用定时器管理模块前,需要进行定时器的初始化。主要是初始化定时器节点数组,将每一个定时器节点设置为空闲状态,同时将辅助定时器置零,辅助ID指向0xFF(表示空)。

2.3定时器的启动


启动一个定时器,主要是将节点数组中一个空闲状态的节点置为使用状态。如果这个新启用的定时器,是所有定时器中定时值最小的,还要更新辅助定时器。函数以指向定时器消息的指针和定时值为参数,启动定时器流程如图2所示。成功启动定时器后,返回该定时器节点的ID号。


定时器的启动流程

2.4定时器的删除

在目标定时器到期之前,由于某种原因用户可能会要求取消定时器。如重发定时器,用户在发送数据帧后启动该定时器,并等待对方返回响应帧。如果在定时时间结束时没有收到响应帧,用户就需要重发原数据帧;如果在定时时间结束之前收到响应帧,用户就需要马上取消该定时器,然后进行下一次通信过程。

删除定时器函数以定时器节点ID号作为输入参数,将定时器节点设为空闲状态,并根据需要更新辅助定时器,流程如图3所示。

2.5定时器的驱动

定时器的驱动

软件定时器的驱动由硬件定时器提供。在硬件定时器中断中,首先将辅助定时器的值减1。如果辅助定时器值为0,则表示定时值最小的定时器已经超时,应将对应的消息发送给用户任务,将节点置为空闲状态,并重新计算其他节点的定时值,同时查找定时值最小的节点,更新辅助定时器。


定时器的基本操作

  F2810/F2812器件上有3个Q9位CPU定时器(TIMERO/1/2)。只有定时器1和2预留给实时操作系统DSP/BIOS使用,只有定时器0可以在就用程序中使用,定时器的功能如图1所示。


定时器功能框图.png

  图1 定时器功能框图


  若处理器采用30 MHz的外部时钟,经过锁相环10/2倍频后,系统的时钟工作在150 MHz。图中的定时器选择SYSCLKOUT作为定时器时钟,工作频率也是150 MHz。一旦定时器被使能(TCR-Bit 4=0),定时器时钟经过预定标计数器(PSCH:PSC)递减计数,预定标计数器产生下溢后向定时器的32位计数器(TIMH:TIM)借位p最后定时器计数器产生溢出使定时器向CPU发送中断。定时器中断结构如图2所示。


  每次预定标计数器产生溢出后使用分频寄存器(TDDRH:TDDR)中的值重新装载。同样,32位周期寄存器(PRDH[_]PRD)为32位计数器提供重新装载值。


定时器中断结构.png

  图2 定时器中断结构


定时器的比较操作

  每个通用定时器都有一个比较寄存器TxCMPR和一个PWM输出引脚TxPWM。通用定时器计数器的值一直与相关的比较寄存器的值比较,当定时器计数器的值与比较寄存器的值相等时,就产生比较匹配。可通过TxCON[l]位使能比较操作,产生比较匹配后将会有下列操作(如图所示)。


  ●匹配1个时钟周期后,定时器的比较中断标志位置位。


  ●匹配1个CPU时钟周期后,根据寄存器GPTCONA/B相应位的配置情况,PWM的输出将产生跳变。


  ●如果比较中断标志位已通过设置寄存器GPTCONA/B中的相应位启动A/D转换器,则比较中断位置位的同时产生A/D转换启动信号。


  ●如果比较中断未被屏蔽,将产生一个外设申断申请。


通用定时器比较操作功能框图.png

通用定时器比较操作功能框图


相关资讯