[发明专利]一种无累计误差的定时器控制方法在审

专利信息
申请号: 201310357952.4 申请日: 2013-08-16
公开(公告)号: CN103455402A 公开(公告)日: 2013-12-18
发明(设计)人: 陈华云;郑振贵;韦昌荣;郑福弟;刘伟峰;黄杭星 申请(专利权)人: 厦门雅迅网络股份有限公司
主分类号: G06F11/28 分类号: G06F11/28
代理公司: 厦门市诚得知识产权代理事务所(普通合伙) 35209 代理人: 李伊飏
地址: 361000 福建*** 国省代码: 福建;35
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 累计 误差 定时器 控制 方法
【说明书】:

技术领域

本发明涉及一种在计算机软件或者通信领域中无累计误差的定时器控制方法。

背景技术

在软件开发或者通信领域中经常有用到定时执行某项操作的功能,就是要在固定时间间隔去执行固定的操作。因此要用到定时器技术。

为了提高软件的可移植性,也为了能够同时实现多定时器的管理,因此定时器的实现一般都是程序自己来组织和管理,形成一个定时器管理器。不过当前的一些定时器都存在着累计误差,长时间定时将导致精度降低。累计误差基本都是出现以下两种情况:

1、在定时器管理器中注册一个定时器,然后定时查询该定时器的时间是否到达,当到达后就调用该定时器的回调函数执行相应的操作。然后再定时判断。

传统的单个定时器的流程如下图1所示:以1s定时为例,从0秒开始定时。由图1可以看出,回调函数的执行需要时间。如果要求1秒钟定时一次,100秒就需要执行100次的回调函数,可是由于回调函数需要有执行时间,累计下来后,100秒实际只能执行99次的回调函数,达不到要求,就造成定时误差、精度不够的问题。

2、定时器管理器中本身指令执行也会造成时间开销,这样也会造成累计误差。

为此,现有技术中给出了一些对定时器的累计误差进行校正的方案。例如申请号为200310112261.4的发明专利,公开了一种校正实时定时器之方法,其首先读取平均校正量、系统目前时间、以及前次校正时间,再根据公式得到累计误差值,此公式包含平均校正量、系统目前时间以及前次校正时间,再将前次校正时间设定并存储为系统目前时间,接着利用累计误差值调整系统目前时间,最后储存系统目前时间。该发明的主要目的是校正系统的时间,而系统时间的误差是由系统关机到下次开机之间造成,因为在关机的时候使用的是系统的实时时钟,由于硬件的原理才导致不准了。因此,该发明的主要目的是校正由于硬件导致的误差,对于软件运行中由于回调函数的执行时间而导致软件方面的定时器误差则没有提到。

再例如申请号为200610147438.8的发明专利,其公开了一种无积累误差和自适应定时器实现方法,该发明包括以下过程:获取当前的初始时间值,执行次数m清零;获取当前系统时间T1,将其作为本次执行的起始时间;执行任务,执行次数m增加1;用执行周期T10乘以执行次数m,得到理论执行总时间T4;用当前的系统时间值T50,减去初始时间值T0,得到实际的执行总时间T5;用理论执行总时间T4减去实际的执行总时间T5,得到需要休眠的总时间T6;如果需要休眠的总时间大于0,执行休眠,休眠时间结束后唤醒,然后判断是否需要修改执行周期,如果是,则修改执行周期,重启定时器。该发明可以通过类似积分的方式进行补偿,从而实现消除累计误差的目的,并消除单次的大扰动,且执行周期可动态调节。该发明具有以下不足:1、使用系统时间,如果某一时刻系统时间被改变了,则会使定时器混乱,无法正常工作,即无精度可言。2、该发明没有说明如何调用执行函数执行任务,就是定时器的回调函数。只说明由一个线程或进程执行。这样可能会造成执行的实时性问题,就是定时时间到了,可是却没有立马去执行回调函数,造成定时精度下降问题。3、定时器本身执行的指令所需的耗时没有计算在内,只是用估算的方式。这样就无法精确计算定时器本身指令执行的时间,因为不同的CPU频率不同,执行一条指令的时间也跟着不同。而定时器本身指令的执行时间也会造成长时间定时的累计误差。

在例如申请号 200710163912.0的发明专利,公开了一种提高定时器精度的方法,该方法包括以下过程:对比定时器计时参考点与相应的系统时间参考点所获差值,休眠补偿休眠时长且调整下一定时器计时周期休眠时长。该发明虽然在一定程度上提高了定时器精度,能避免实际定时器计时周期与理论定时器计时周期之间存在的误差随着循环次数增加而逐渐累积的问题,但是其具体方法是利用定时器的下次周期来补偿这一次的定时误差,同样也有如下几个不足:1、使用系统时间,如果某一时刻系统时间被改变了,则会使定时器混乱,无法正常工作,即无精度可言。2、按该发明的描述,每一次的定时都要进行补偿,可见定时器本身的误差就很大,连单次定时都不准。假使有个定时功能需要一秒钟执行一次操作,由于该定时器使用补偿或者删减的操作,可能导致一秒钟内执行两次操作,可能在0.1秒和0.9秒的时间内都执行到了,可见会影响定时器的精度。3、该发明未说明如何调用执行函数执行任务,就是定时器的回调函数。假使定时周期为1秒,而回调函数执行了1.5秒。那么就可能导致其中的一个定时执行操作丢掉了,导致定时器错误问题。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门雅迅网络股份有限公司,未经厦门雅迅网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310357952.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top