基于嵌入式系统的定时器装置及定时方法制造方法及图纸

技术编号:13328965 阅读:79 留言:0更新日期:2016-07-11 19:09
本发明专利技术公开了一种基于嵌入式系统的定时器装置和定时方法,其中该装置包括:定时器、请求定时模块、时间数据处理模块和定时器休眠模块,请求定时模块用于接收控制系统的定时请求,根据该请求创建定时请求信号,并向时间数据处理模块发送定时请求信号;时间数据处理模块,用于接收请求定时模块发来的定时请求信号,读取定时器的当前定时参数,然后根据时间差值算法对定时器的定时时长进行实时检测判断,定时器休眠模块用于接收时间数据处理模块发来的定时结束信号,根据该信号清除相应的定时请求信号,为下一次定时请求做初始化准备。本发明专利技术定时时间灵活性强、使用简单方便,实现了工业控制系统中延时、定时多重性和多样性的要求,且定时精度高。

【技术实现步骤摘要】

本专利技术涉及一种基于嵌入式系统的定时器装置及定时方法,具体阐述了嵌入式系统控制器的定时器装置的设计方法及应用层定时器算法。
技术介绍
随着工业自动控制技术的规模化发展,控制过程中多任务、多层次的复杂控制要求向各工业控制系统提出了新的挑战。要使系统稳定、可靠地运行,控制内容常常要求控制系统延时或定时向外设发出各种不同的控制信号,以满足不同时序、不同功能的控制要求。因此,需要控制系统具有多个相互独立而又标准相同的定时器来实现控制功能。嵌入式系统集成了输入输出口、RS232和485通信串口,是一款功能丰富的一体控制器(以下简称控制器)。其硬件系统结构精简、内核小、成本低、灵活方便且实时性高,已逐渐发展成为嵌入式系统开发研究中的主流部件。然后,控制器有可供用户使用的相互独立的定时器,例如timer0~4,除此之外,若控制系统还要求实现其他更多的延时、定时功能,则多是通过使用for函数进行一定次数的空循环来达到延时、定时效果,这种方式不但定时时间难以精确判定,而且在延时时间未结束时,CPU始终停留在延时功能程序段内,不会扫描其他程序段内容,可见,这种定时方式不仅占用了大量系统内存,还拖慢了CPU处理事件的时间进程。然而,由于硬件资源的限制,不可能为每一个定时应用单独配置一个硬件定时器。这种有限的定时器个数和日益复杂的自动控制要求之间的矛盾,无疑成了控制器在嵌入式开发领域中发展的绊脚石。为了解决这个问题,本文提出一种基于嵌入式系统的定时器的设计方法,基于ADS编译器在单个硬件定时器的基础上创建多个定时器,以实现在硬件资源有限的情况下满足多点同时定时的控制要求。
技术实现思路
本专利技术涉及一种基于嵌入式系统的软件定时器设计,针对工业控制过程中经常需要在不同之处同时使用定时功能,而嵌入式系统中有的相互独立的定时器,例如timer0~4,提出一种基于嵌入式系统的软件定时器的设计方法。本专利技术公开了一种基于嵌入式系统的定时器设计方法,包括定时启动、运行、停止三个阶段,分别对应软件定时系统的请求定时模块、数据处理模块和定时器休眠模块。三个阶段分别由不同的API函数完成。一种基于嵌入式系统的定时器装置,包括:定时器、请求定时模块、时间数据处理模块和定时器休眠模块,其中:请求定时模块用于接收控制系统的定时请求,根据该请求创建定时请求信号,并向时间数据处理模块发送定时请求信号;时间数据处理模块,用于接收请求定时模块发来的定时请求信号,读取定时器的当前定时参数,然后根据时间差值算法对定时器的定时时长进行实时检测判断,当定时时长达到预定定时时长时,创建定时结束信号,并将其传递给控制系统和定时器休眠模块;定时器休眠模块用于接收时间数据处理模块发来的定时结束信号,根据该信号清除相应的定时请求信号,为下一次定时请求做初始化准备。所述的定时器装置,优选的:所述定时器包括递减计数器和定时计数缓冲寄存器,时间数据处理模块包括定时中断次数计数器、计数结束标志位、中断溢出位、中断溢出计数器;所述定时请求信号包括:①定时器编号T_num,②预定定时时长C_time,③定时初始参数P_init;所述时间数据处理模块对定时器的定时时间进行实时检测包括,实时读取当前定时参数P_curt,然后根据时间差值算法对定时时长进行实时检测判断:时间差值=当前定时参数-初始定时参数,当时间差值大于等于请求的定时时长,即Δ=P_curt-P_init≥C_time时,定义“计数结束”标志变量F_tup为“1”,并输出给控制系统;所述中断溢出位F_of在定时中断次数计数器的计数值未发生溢出时为0,发生溢出时置为1。所述的定时器装置,优选的:所述定时初始参数P_init和当前定时参数P_curt都是结构体变量,P_init包括定时器递减计数器的初始计数值P_0,定时中断次数计数器的初始计数值P_C0以及中断溢出计数器的初始计数值P_OC0;P_curt包括定时器递减计数器的当前计数值P_t,定时中断次数计数器的当前计数值P_Ct以及中断溢出计数器的当前计数值P_OCt。所述的定时器装置,优选的:请求信号发出后,请求定时模块将计数结束标志位中的标志变量F_tup设为“0”,每接收一个脉冲递减计数器的值P_t减1,每当P_t减为0时,定时器向时间数据处理模块发送信号,根据该信号,定时中断次数计数器的计数值P_Ct的值加1,定时计数缓冲寄存器中的值自动重载到递减计数器中;当P_Ct的值达到其上限值P_Climit时,中断溢出计数器的计数值P_OCt加1,时间数据处理模块将中断溢出位置1,同时将P_Ct清零。所述的定时器装置,优选的:所述时间数据处理模块按如下方式对定时器的定时时长进行计算:1)当F_of=0时,表示定时器中断次数累计没有发生溢出,当前定时时长按如下公式计算: Δ n = Δ n 1 + T b a s e × ( Δ n 2 + Δ n 3 ) - - - ( 1 ) ]]>其中: Δ n 1 = ( T 0 n 1 - Tt 1 ) 本文档来自技高网
...

【技术保护点】
一种基于嵌入式系统的定时器装置,包括:定时器、请求定时模块、时间数据处理模块和定时器休眠模块,其特征在于:请求定时模块用于接收控制系统的定时请求,根据该请求创建定时请求信号,并向时间数据处理模块发送定时请求信号;时间数据处理模块,用于接收请求定时模块发来的定时请求信号,读取定时器的当前定时参数,然后根据时间差值算法对定时器的定时时长进行实时检测判断,当定时时长达到预定定时时长时,创建定时结束信号,并将其传递给控制系统和定时器休眠模块;定时器休眠模块用于接收时间数据处理模块发来的定时结束信号,根据该信号清除相应的定时请求信号,为下一次定时请求做初始化准备。

【技术特征摘要】
1.一种基于嵌入式系统的定时器装置,包括:定时器、请求定时
模块、时间数据处理模块和定时器休眠模块,其特征在于:
请求定时模块用于接收控制系统的定时请求,根据该请求创建定
时请求信号,并向时间数据处理模块发送定时请求信号;
时间数据处理模块,用于接收请求定时模块发来的定时请求信号,
读取定时器的当前定时参数,然后根据时间差值算法对定时器的定时
时长进行实时检测判断,当定时时长达到预定定时时长时,创建定时
结束信号,并将其传递给控制系统和定时器休眠模块;
定时器休眠模块用于接收时间数据处理模块发来的定时结束信
号,根据该信号清除相应的定时请求信号,为下一次定时请求做初始
化准备。
2.根据权利要求1所述的定时器装置,其特征在于:
所述定时器包括递减计数器和定时计数缓冲寄存器,
时间数据处理模块包括定时中断次数计数器、计数结束标志位、
中断溢出位、中断溢出计数器;
所述定时请求信号包括:①定时器编号T_num,②预定定时时
长C_time,③定时初始参数P_init;
所述时间数据处理模块对定时器的定时时间进行实时检测包括,
实时读取当前定时参数P_curt,然后根据时间差值算法对定时时长
进行实时检测判断:时间差值=当前定时参数-初始定时参数,当时间
差值大于等于请求的定时时长,即Δ=P_curt-P_init≥C_time时,

\t定义“计数结束”标志变量F_tup为“1”,并输出给控制系统;
所述中断溢出位F_of在定时中断次数计数器的计数值未发生溢
出时为0,发生溢出时置为1。
3.根据权利要求2所述的定时器装置,其特征在于:
所述定时初始参数P_init和当前定时参数P_curt都是结构体变
量,P_init包括定时器递减计数器的初始计数值P_0,定时中断次数
计数器的初始计数值P_C0以及中断溢出计数器的初始计数值P_OC0;
P_curt包括定时器递减计数器的当前计数值P_t,定时中断次数计数
器的当前计数值P_Ct以及中断溢出计数器的当前计数值P_OCt。
4.根据权利要求3所述的定时器装置,其特征在于:请求信号发
出后,请求定时模块将计数结束标志位中的标志变量F_tup设为“0”,
每接收一个脉冲递减计数器的值P_t减1,每当P_t减为0时,定时器
向时间数据处理模块发送信号,根据该信号,
定时中断次数计数器的计数值P_Ct的值加1,定时计数缓冲寄存器中
的值自动重载到递减计数器中;当P_Ct的值达到其上限值P_Climit时,
中断溢出计数器的计数值P_OCt加1,时间数据处理模块将中断溢出
位置1,同时将P_Ct清零。
5.根据权利要求4所述的定时器装置,其特征在于:所述时间数
据处理模块按如下方式对定时器的定时时长进行计算:
1)当F_of=0时,表示定时器中断次数累计没有发生溢出,当
前定时时长按如下公式计算:
Δ n = Δ n 1 + T b a s e × ( Δ n 2 + Δ n 3 ) - - - ( 1 ) ]]>其中: Δ n 1 = ( T 0 n 1 - Tt 1 ) Δ n 2 = ( Tt 2 - T 0 n 2 ) Δ n 3 = 0 - - - ( 2 ) ]]>2)当F_of=1时,表示定时器中断次数累计有溢出现象发生,
当前时间长度计算公式如下式:
Δ n = Δ n 1 + T b a s e × ( Δ n 2 + Δ n 3 ) - - - ( 3 ) ]]>其中: Δ n 1 = ( T 0 n 1 - Tt 1 ) Δ n 2 = Tt 2 + ( P _ C lim i t - T 0 n 2 ) Δ n 3 = P _ C lim i t × ( Tt 3 - T 0 n 3 - 1 ) - - - ( 4 ) ]]>式(1)、(2)、(3)和(4)中:
Tbase表示定时器的时间基数,即定时计数缓冲寄存器中用于自
动重载到递减计数器中的值;设控制系统定时器中断频率为Tirpt,则
Tbase按式(5)计算:
T b a s e = T i r p t f - - - ( 5 ) ]]>P_Climit表示定时参数P_C不发生溢出的最大极限值;
此外,用T0表示初始定时参数、Tt...

【专利技术属性】
技术研发人员:蔡锦达唐静陟俊杰张菁王德铭金政宇
申请(专利权)人:上海理工大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1