CN103257670B - 嵌入式系统及其计时方法 - Google Patents

嵌入式系统及其计时方法 Download PDF

Info

Publication number
CN103257670B
CN103257670B CN201210041592.2A CN201210041592A CN103257670B CN 103257670 B CN103257670 B CN 103257670B CN 201210041592 A CN201210041592 A CN 201210041592A CN 103257670 B CN103257670 B CN 103257670B
Authority
CN
China
Prior art keywords
value
timer
initial value
count
count value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210041592.2A
Other languages
English (en)
Other versions
CN103257670A (zh
Inventor
袁堂夫
邹义生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING FUSION VIDEO TECHNOLOGY CO., LTD.
Original Assignee
BEIJING FUSION VIDEO TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING FUSION VIDEO TECHNOLOGY Co Ltd filed Critical BEIJING FUSION VIDEO TECHNOLOGY Co Ltd
Priority to CN201210041592.2A priority Critical patent/CN103257670B/zh
Publication of CN103257670A publication Critical patent/CN103257670A/zh
Application granted granted Critical
Publication of CN103257670B publication Critical patent/CN103257670B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Microcomputers (AREA)

Abstract

本发明提供一种嵌入式系统及其计时方法,所述嵌入式系统包括:时间校准模块,用于获取系统的校准时间;时钟电路,用于产生时钟信号;计时器,用于接收所述时钟信号,并根据接收到的所述时钟信号的数量进行计数,得到一计数数值,在所述计数数值达到预设数值时,生成一中断事件通知,并获取所述计数数值达到预设数值所需的时长;处理器,用于在接收到所述中断事件通知后,执行中断服务程序,所述执行中断服务程序包括:统计所述中断服务程序的执行次数,并根据所述时长、所述执行次数以及所述校准时间,计算系统当前时间。本发明能够在不增加实时时钟电路的基础上实现嵌入式系统的精确计时,并可避免处理器执行程序指令用时所带来的时间累积误差。

Description

嵌入式系统及其计时方法
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及一种嵌入式系统及其计时方法。
背景技术
嵌入式系统是半导体技术和软件技术面向应用的综合,已经有数十年的历史,如今已经随处可找到它们的踪影。各种消费电子产品、交通工具、通信产品、自动化控制系统等其中都会集成嵌入式系统,用于对整个产品、系统进行控制以及进行人机交互,从而让产品更加智能、灵活、易用,使产品具有更加强大的功能。
在集成嵌入式系统的产品中,产品的很多功能是基于时间或定时的,如在特定的时间开/关机、特定时间执行某项功能等。在一些复杂、成本较高的嵌入式系统中,电路中会集成实时时钟电路,软件一般也会包含操作系统,实现较为准确的系统时间比较方便。但针对一些低成本的嵌入式系统,无论是所用微处理器,还是系统电路设计,出于成本等考虑,往往不集成实时时钟电路。另外,很多低成本的嵌入式系统甚至不使用操作系统,整个应用软件运行于单任务状态。在这些低成本的嵌入式系统中,要想获取比较精确的时间,并不是一件容易的事情。
发明内容
有鉴于此,本发明提供一种嵌入式系统及其计时方法,能够在不增加实时时钟电路的基础上实现嵌入式系统的精确计时。
为解决上述问题,本发明提供一种嵌入式系统,包括:
时间校准模块,用于获取系统的校准时间;
时钟电路,用于产生时钟信号;
计时器,用于接收所述时钟信号,并根据接收到的所述时钟信号的数量进行计数,得到一计数数值,在所述计数数值达到预设数值时,生成一中断事件通知,并获取所述计数数值达到预设数值所需的时长;
处理器,用于在接收到所述中断事件通知后,执行中断服务程序,所述执行中断服务程序包括:统计所述中断服务程序的执行次数,并根据所述时长、所述执行次数以及所述校准时间,计算系统当前时间。
可选的,所述计时器还包括:
第一计时模块,用于在每接收到一所述时钟信号时,将所述计数数值加一,并获取所述计数数值从所述计时器的初始值递增计数到第一预设数值所需的时长;或
第二计时模块,用于在每接收到一所述时钟信号时,将所述计数数值减一,并获取所述计数数值从所述初始值递减计数到第二预设数值所需的时长;
可选的,所述处理器还包括:
计时器重置模块,用于在执行所述中断服务程序时,重置所述计时器的初始值。
可选的,所述处理器还包括:
误差获取模块,用于获取从接收到所述中断事件通知至重置所述计时器的初始值之间所述计时器的计数数值,作为误差值,并计算所述误差值与所述初始值的和值;
其中,所述计时器重置模块,还用于将所述和值作为所述计时器的初始值,并重置所述计时器的初始值。
本发明还提供一种嵌入式系统的计时方法,包括:
接收时钟电路产生的时钟信号,并采用计时器根据接收到的所述时钟信号的数量进行计数,得到一计数数值,在所述计数数值达到预设数值时,生成一中断事件通知;
获取所述计数数值达到预设数值所需的时长;
获取系统的校准时间;
在接收到所述中断事件通知后,执行中断服务程序,所述执行中断服务程序包括:统计所述中断服务程序的执行次数,并根据所述时长、所述执行次数以及所述校准时间,计算系统当前时间。
可选的,所述根据接收到的所述时钟信号的数量进行计数,得到一计数数值的步骤之前还包括:
为计数数值设置一初始值;
所述根据接收到的所述时钟信号的数量进行计数,得到一计数数值的步骤包括:
在每接收到一所述时钟信号时,将所述计数数值加一,并获取所述计数数值从所述初始值递增计数到第一预设数值所需的时长;或
在每接收到一所述时钟信号时,将所述计数数值减一,并获取所述计数数值从所述初始值递减计数到第二预设数值所需的时长;
可选的,所述计数数值从所述初始值递增计数到第一预设数值所需的时长的计算公式如下:
δt=(L1-pri)*T
其中,δt为计数数值从所述初始值递增计数到第一预设数值所需的时长,pri为所述初始值,L1为所述第一预设阈值,T为时钟周期;
所述计数数值从所述初始值递减计数到第二预设数值所需的时长的计算公式如下:
δt=(pri-L2)*T
其中,δt为计数数值从所述初始值递减计数到第二预设数值所需的时长,pri为所述初始值,L2为所述第二预设阈值,T为时钟周期。
可选的,所述执行中断服务程序的步骤还包括:
重置所述计时器的初始值。
可选的,所述重置所述计时器的初始值的步骤包括:
获取从接收到所述中断事件通知至重置所述计时器的初始值之间的所述计时器的计数数值,作为误差值,并计算所述误差值与所述初始值的和值;
将所述和值作为所述计时器的初始值,并重置所述计时器的初始值。
可选的,所述计数数值包括高位计数段和低位计数段,所述将所述和值作为所述计时器的初始值,并重置所述计时器的初始值的步骤包括:
将所述和值作为所述计时器的初始值,仅重置所述计时器的初始值的高位计数段的值。
本发明具有以下有益效果:
在实现精确计时的同时,不需要增加硬件设计的成本,不需辅助的电路设计,只需借助计时器通过软件的方式完成,不会引入任何的时间误差,并且可完全避免处理器执行程序指令用时所带来的时间累积误差。
附图说明
图1为本发明实施例的嵌入式系统的一结构示意图;
图2为本发明实施例的计数数值的结构示意图;
图3为本发明实施例的嵌入式系统的计时方法的流程示意图;
图4为本发明实施例的嵌入式系统的另一结构示意图;
图5为本发明实施例的嵌入式系统的运行方法的流程示意图;
图6为本发明实施例的嵌入式系统的执行中断服务程序的方法的流程示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图1所示为本发明实施例的嵌入式系统的一结构示意图,所述嵌入式系统包括:
时间校准模块101,用于获取系统的校准时间;时钟电路102,用于产生时钟信号;
计时器103,用于接收所述时钟电路产生的时钟信号,并根据接收到的所述时钟信号的数量进行计数,得到一计数数值,在所述计数数值达到预设数值时,生成一中断事件通知,并获取所述计数数值达到预设数值所需的时长;
处理器104,用于在接收到所述中断通知事件后,执行中断服务程序,所述执行中断服务程序包括:统计所述中断执行程序的执行次数,并根据所述时长、所述执行次数以及所述系统的校准时间,计算系统当前时间。
下面对上述各模块的结构和工作原理进行详细说明。
(1)时间校准模块
本发明实施例中,可以在嵌入式系统运行后的任意时刻,通过时间校准模块101对系统时间进行校准,得到系统的校准时间。例如在系统初始化后进行,或者在计时器初始化后进行。
此外,所述时间校准模块101可以通过多种方式对系统时间进行校准,例如,通过提供一人机交互界面由用户输入时间,或者,通过连接其他系统通过私有或公用协议完成系统时间的同步和校准,例如通过NTP(NetworkTimeProtocol,网络时间协议)协议对系统时间进行校准。
(2)时钟电路
时钟电路102中可以包括一时钟源和一震荡电路,所述时钟源可以是一石英晶体或其他替代元件,所述时钟源和所述震荡电路相互配合,产生时钟信号。
此外,所述时钟电路102除了具有产生时钟信号的功能之外,还可以具有对时钟信号进行分频、倍频等的功能,即将时钟源产生的时钟信号转换成多个不同频率的时钟信号,并分别发送给所述嵌入式系统中的需要不同频率的时钟信号的多个电路模块。
(3)计时器
本发明实施例中,可以首先为所述计时器103的计数数值设置一初始值pri,将所述计时器103设置成在所述初始值pri的基础上递增计数,或者,将所述计时器103设置成在所述初始值pri的基础上递减计数。
下面分别对所述计时器103递增计数和递减计数的过程进行说明。
当所述计时器103被设置成递增计数时,所述计时器103每接收到所述时钟电路102发送过来的一个时钟信号时,便将计数数值加一,直至所述计时器103的计数数值达到第一预设数值L1(例如计时器103对应的溢出值),当所述计时器103的计数数值达到第一预设数值L1时,生成一中断事件通知,通知所述处理器104执行中断服务程序。
此外,所述计时器103还需要计算所述计数数值从所述初始值递增计数到第一预设数值所需的时长δt,所述时长δt的计算公式如下:
δt=(L1-pri)*T
其中,δt为计数数值从所述初始值递增计数到第一预设数值所需的时长,pri为所述初始值,L1为所述第一预设阈值,T为时钟周期。
当所述计时器103被设置成递减计数时,所述计时器103每接收到所述时钟电路102发送过来的一个时钟信号时,便将计数数值减一,直至所述计时器103的计数数值达到第二预设数值L2(例如零值),当所述计时器103的计数数值达到第二预设数值L2时,生成一中断事件通知,通知所述处理器104执行中断服务程序。
此外,所述计时器103还需要计算所述计数数值从所述初始值递减计数到第二预设数值所需的时长δt,所述时长δt的计算公式如下:
δt=(pri-L2)*T
其中,δt为计数数值从所述初始值递减计数到第二预设数值所需的时长,pri为所述初始值,L2为所述第二预设阈值,T为时钟周期。
基于上述描述,本发明实施例的计时器103还可以包括:
第一计时模块,用于在每接收到一所述时钟信号时,将所述计数数值加一,并获取所述计数数值从所述计时器的初始值递增计数到第一预设数值所需的时长;或
第二计时模块,用于在每接收到一所述时钟信号时,将所述计数数值减一,并获取所述计数数值从所述初始值递减计数到第二预设数值所需的时长。
(4)处理器
处理器104在接收到计时器103发送的中断事件通知时,执行一中断服务程序,执行中断服务程序包括:统计所述中断服务程序的执行次数CNT,并根据所述执行次数CNT、所述计时器103计算得到的时长δt以及所述系统的校准时间,计算系统当前时间。
所谓中断,是嵌入式系统为计时器103提供的一种机制,当计时器103的计数数值达到预设数值(例如计数数值溢出时)时,则产生一中断事件通知,并第一时间发送给处理器104。
本实施例中,可以预先为计时器103的中断注册一个中断服务程序,当计时器103产生中断时,处理器104会临时停止当前执行的任务(本实施例中不考虑中断优先级、任务调度等问题),执行计时器103对应的中断服务程序,完成后再返回去执行先前的任务。
下面对中断服务程序执行时,计算系统当前时间的方法进行详细说明,主要包括以下步骤:
1)获取系统的校准时间。
在系统初始化后,可以首先进行系统时间的校准,从外部获取准确的时间(例如通过NTP协议获取时间或者提供人机交互界面由用户直接输入时间),将从外部获取的时间作为校准时间。此外,在进行系统时间校准时,还需要同时将中断服务程序的执行次数CNT清零。
举例来说,校准时间为2011年10月10日3点3份3秒。
2)获取计时器的计数数值达到预设数值所需的时长δt。
3)统计中断服务程序的执行次数CNT。
4)计算CNT与δt的乘积。
CNT*δt的值代表了计时器103的工作时长。
5)计算校准时间与CNT*δt之和,得到系统当前时间。
假如计算出的CNT*δt的值为864008秒(10天零8秒),系统当前时间即为2011年10月20日3点3分11秒。
本发明的其他实施例中,所述处理器104也可以通过其他计算方法计算系统当前时间。
举例来说,计时器103会设置一个系统初始时间,例如为1970年1月1体0点0分0秒,处理器104可以采用获取到的校准时间减去系统初始时间,得到一个时间差值M,并将CNT的值修改为CNT+(M/δt),然后计算系统初始时间与CNT*δt之和,得到系统当前时间。
本发明实施例中,所述处理器104还可以在每次执行中断服务程序时,将计时器103的计数数值重置成初始值pri。在处理器104执行其他任务,包括校准系统时间等,计时器103仍会按照自身的既定节拍运行,并在计时器到达计时阀值时产生计时器中断。
但是,每次执行中断服务程序的时候,简单将计数器103的值重置为初始值pri会产生一个时间误差,下面对这个时间误差的产生原因和消除该误差的方法做说明。
上述实施例中,处理器104在接收到中断事件通知后,需要先处理完当前正在处理的任务片段,并保护现场,然后再执行中断服务程序,本发明实施例中,将处理器104在接收到中断事件通知到开始执行中断服务程序之间的这段时间称为中断潜伏期。
由于中断潜伏期的存在,处理器104在重置计时器的初始值时,如果简单将计时器103的初始值重置为pri,会出现计时误差,具体理由如下:
假设从计时器产生中断到计时器中断服务程序被执行的时间长度为t1,处理器从开始执行计时器中断服务程序到重置计时器的计数数值的时间长度为t2,计时器被重置为pri到计时器溢出的时间为δt。
那么,可以看出如果计时器被简单重置为初始值pri,则计时器每溢出一次(计时器中断服务程序被执行一次)所用的时间应该为δt+t1+t2。其中,t1和t2就是累计时间时产生的误差,这两个值一般很小且值不固定,但长期累积就会产生巨大的误差,需要将其消除掉,将计时器中断服务程序被执行的平均间隔时间精确控制在δt值上。
下面对如何消除上述由软件引入的计时误差的方法进行详细说明。
本发明实施例中,可以通过调整重置的计时器103的计数数值,将“中断潜伏期”+“中断服务程序执行到重置计数数值所需时间”这个时间误差减掉。
具体消除过程如下:
当计时器103以递增方式计数时,在计时器103溢出后,可以将计时器103设置为将计数数值自动清零,并继续从0开始递增计数。假设中断服务程序重置计时器的初始值时,计时器的计数数值为y,则y*T=“中断潜伏期”+“中断服务程序执行到重置计数数值所需时间”。此时,可以将pri+y作为新的初始值,重置计时器的计数数值。
如果直接将计数数值重置为pri+y,则可能也会引入误差,因为处理器在执行重置操作时(该重置操作包括读取y值,并与pri相加,然后将得到相加和写回计时器),需要执行时间,而在此期间,计时器仍在不断递增,从而引入、增加了“y与pri相加、相加和写入计时器等”指令执行所需要时间。
为了解决重置操作引起的计时误差,本发明实施例中,如图2所示,可以将计数数值分为两段高位计数段(Hreg)和低位计数段(Lreg),其中,低位计数段从bit[0]~bit[x+1],高位计数段从bit[x+2]~bit[n],高位计数段和低位计数段共具有n+1个二进制比特。
另外,需要说明的是,本发明实施例中,设置初始值pri时,需要确保pri的值转换为二进制时对应的bit[0]~bit[x+1]的值都为0,确保δt值小于1秒,以便获得一个合适的最小时间粒度。最好使的1秒恰好是δt的整数倍,如δt取值50毫秒、100毫秒、500毫秒等值,以便在执行中断服务程序时方便地根据δt和CNT值(中断服务程序被执行的次数)计算年月日时分秒的值;δt不要太小,否则中断服务程序会被过度频繁执行,消耗大量的CPU计算运算资源。
假设所述计时器103被设置成递增计数,所述计时器103每接收到所述时钟电路102发送过来的一个时钟信号,便将计数数值加一,直至所述计时器103的计数数值溢出(计数数值达到2n+1,2n+1即上述预设数值),当所述计时器103的计数数值溢出时,生成一中断事件通知,通知所述处理器104执行中断服务程序。
此外,所述计时器103还需要计算所述计数数值从所述初始值递增计数到溢出值所需的时长δt,δt的计算公式如下:
δt=(2n+1-pri)*T
其中,pri为计数数值的初始值,2n+1为计数数值的溢出值,T为时钟周期,*号为乘号。
假设计数数值为pri时,Hreg的值为P,Lreg的值为Q(由上文提到的pri取值原则可知,Q=0);计数数值为y时,Hreg的值为p,Lreg的值为q。
由此可得出:
pri+y=P*(2x+2)+Q+p*(2x+2)+q=(P+p)*(2x+2)+q
本发明实施例中,重置计数数值时,只需对Hreg进行重置,而Lreg继续进行递增计数,Lreg继续计数的目的就是要要消除t1+t2这个误差。
上面提到了,计时器溢出时,计数数值会清零,并从0开始递增计数。当处理器经过了中断潜伏期(时间长度为t1),开始执行计时器中断服务程序,从开始执行中断服务程序到执行重置计时器(Hreg,Lreg)用时为t2,在这个过程中,Lreg还在继续计数,且其起始值为0。当在中断服务程序中执行重置计时器指令的那一刻,只需要查看Lreg此时的计数值就能够知道想知道t1+t2的值了,假定这一刻的Lreg值为q,那么t1+t2=q*T。其中,T为计时器输入时钟信号的周期。
重置计数数值的初始值时,不是简单重置为pri,而是重置为pri+q,那么下次计时器溢出的时间间隔就不是δt时长了,而是δt-(t1+t2),这样就会把上次中断产生时引入的t1+t2这个时间误差给抵消掉。
本发明实施例中,将处理器执行计数数值重置指令所需要的时间也考虑进来,在重置计数数值时,只对Hreg部分进行操作,Lreg不操作(继续做计数),处理器执行计数数值重置指令所需要的时间也会被抵消掉,以便保证计时程序完全不会引入计时时间误差。
另外,在对计数数值进行Hreg、Lreg分段的时候,Lreg段共有x+2个bit位,其最大值为qmax,其中,qmax*T>“中断潜伏期”+“中断服务程序执行到重置计数数值所需时间”,也就是在中断事件发生到重置计数数值的过程中,Lreg位段不能向Hreg位段进位。
上述实施例中,是以计时器递增计数为例进行说明。
当计时器103被设置成递减计数,所述计时器103每接收到所述时钟电路102发送过来的一个时钟信号,便将计数数值减一,直至所述计时器103的计数数值归零(此时,零值即上述预设数值),当所述计时器103的计数数值归零时,生成一中断事件通知,通知所述处理器104执行中断服务程序。
此外,所述计时器103还需要计算所述计数数值从所述初始值递减计数到零值所需的时长δt,δt的计算公式如下:
δt=pri*T
其中,pri为计数数值的初始值,T为时钟周期,*号为乘号。另外,为了消除计时误差,所述计时器103的计数数值归零后,可以将计时器103的计数数值设置为2n+1-1,并继续递减计数,以获取计时误差。
基于上述描述,本发明实施例的处理器还包括:
误差计算模块,用于获取从接收到所述中断事件通知至重置所述计时器的初始值之间所述计时器的计数数值;
所述计时器重置模块,还用于在执行所述中断服务程序时,将所述计时器的初始值重置为预设初始值加所述中间潜伏期及部分程序指令执行时间对应的计数数值。
通过上述实施例提供的嵌入式系统,在实现精确计时的同时,不需要增加硬件设计的成本,不需辅助的电路设计。只需借助计时器通过软件的方式完成,不会引入任何的时间误差。嵌入式系统的时间精度仅与时钟源的精度相关,经过实验和理论计算得知,采用50ppm精度的时钟源,本发明实施例的嵌入式系统每天可能出现的最大时间误差是4.32秒,采用10ppm精度的时钟源,本发明实施例的嵌入式系统每天可能出现的最大时间误差是0.864秒。
对应于上述嵌入式系统,本发明实施例还提供一种嵌入式系统的计时方法,如图3所示,所述嵌入式系统的计时方法包括以下步骤:
步骤301,接收时钟电路产生的时钟信号,并采用计时器根据接收到的所述时钟信号的数量进行计数,得到一计数数值,在所述计数数值达到预设数值时,生成一中断事件通知;
步骤302,获取所述计数数值达到预设数值所需的时长;
步骤303,获取系统的校准时间;
步骤304,在接收到所述中断事件通知后,执行中断服务程序,所述执行中断服务程序包括:统计所述中断服务程序的执行次数,并根据所述时长、所述执行次数以及所述校准时间,计算系统当前时间。
本发明实施例中,可以首先为计数数值设置一初始值,将所述计时器设置成在所述初始值的基础上递增计数,或者,将所述计时器设置成在所述初始值的基础上递减计数。
即,上述根据接收到的所述时钟信号的数量进行计数,得到一计数数值的步骤包括:
在每接收到一所述时钟信号时,将所述计数数值加一,并获取所述计数数值从所述初始值递增计数到第一预设数值所需的时长;或
在每接收到一所述时钟信号时,将所述计数数值减一,并获取所述计数数值从所述初始值递减计数到第二预设数值所需的时长;
所述计数数值从所述初始值递增计数到第一预设数值所需的时长的计算公式如下:
δt=(L1-pri)*T
其中,δt为计数数值从所述初始值递增计数到第一预设数值所需的时长,pri为所述初始值,L1为所述第一预设阈值,T为时钟周期;
所述计数数值从所述初始值递减计数到第二预设数值所需的时长的计算公式如下:
δt=(pri-L2)*T
其中,δt为计数数值从所述初始值递减计数到第二预设数值所需的时长,pri为所述初始值,L2为所述第二预设阈值,T为时钟周期。
为了消除软件引入的计时误差,本发明实施例中,所述执行中断服务程序的步骤还包括:重置所述计时器的初始值。
所述重置所述计时器的初始值的步骤包括:
获取从接收到所述中断事件通知至重置所述计时器的初始值之间的所述计时器的计数数值,作为误差值,并计算所述误差值与所述初始值的和值;
将所述和值作为所述计时器的初始值,并重置所述计时器的初始值。
为了消除软件计时误差,所述计数数值被分为高位计数段和低位计数段,所述将所述和值作为所述计时器的初始值,并重置所述计时器的初始值的步骤包括:将所述和值作为所述计时器的初始值,仅重置所述计时器的初始值的高位计数段的值。
通过上述实施例提供的计时方法,在实现精确计时的同时,不需要增加硬件设计的成本,不需辅助的电路设计。只需借助计时器通过软件的方式完成,不会引入任何的软件执行所带来的时间误差。嵌入式系统的时间精度仅与时钟源的精度相关。
如图4所示为本发明实施例的嵌入式系统的另一结构示意图,所述嵌入式系统包括:微处理器、时钟源、RAM和ROM,其中微处理器又包括:CPU核心单元(相当于上述实施例中的处理器104)、计时器(相当于上述实施例中的计时器103)和时钟电路。其中,时钟源和所述时钟电路配合相当于上述实施例中的时钟电路102。
如图5所示,本实施例的嵌入式系统的运行过程如下:
步骤501,系统上电启动;
步骤502,系统初始化;
步骤503,计时器初始化,注册中断服务程序;
其中,计时器初始化包括:设置计时器的初始值;设置计时器递增或递减计数;输入时钟周期T等。
步骤504,校准系统时间;
步骤505,运行其他各项任务。
如图6所示,本实施例的时嵌入式系统执行中断服务程序的过程包括以下步骤:
步骤601,进入中断服务程序;
步骤602,重置计时器的计数数值的值;
步骤603,统计中断服务程序的执行次数CNT;
步骤604,根据δt和CNT,计算系统当前时间;
步骤605,退出中断服务程序。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (3)

1.一种嵌入式系统,其特征在于,包括:
时间校准模块,用于获取系统的校准时间;
时钟电路,用于产生时钟信号;
计时器,用于接收所述时钟信号,并根据接收到的所述时钟信号的数量进行计数,得到一计数数值,在所述计数数值达到预设数值时,生成一中断事件通知,并获取所述计数数值达到预设数值所需的时长;
处理器,用于在接收到所述中断事件通知后,执行中断服务程序,所述执行中断服务程序包括:统计所述中断服务程序的执行次数,并根据所述时长、所述执行次数以及所述校准时间,计算系统当前时间;
所述计时器还包括:
第一计时模块,用于在每接收到一所述时钟信号时,将所述计数数值加一,并获取所述计数数值从所述计时器的初始值递增计数到第一预设数值所需的时长;或
第二计时模块,用于在每接收到一所述时钟信号时,将所述计数数值减一,并获取所述计数数值从所述初始值递减计数到第二预设数值所需的时长;
所述处理器还包括:
计时器重置模块,用于在执行所述中断服务程序时,重置所述计时器的初始值;
误差获取模块,用于获取从接收到所述中断事件通知至重置所述计时器的初始值之间所述计时器的计数数值,作为误差值,并计算所述误差值与所述初始值的和值;
其中,所述计时器重置模块,还用于将所述和值作为所述计时器的初始值,并重置所述计时器的初始值;所述计数数值包括高位计数段和低位计数段,所述将所述和值作为所述计时器的初始值,并重置所述计时器的初始值具体为:将所述和值作为所述计时器的初始值,仅重置所述计时器的初始值的高位计数段的值。
2.一种嵌入式系统的计时方法,其特征在于,包括:
接收时钟电路产生的时钟信号,并采用计时器根据接收到的所述时钟信号的数量进行计数,得到一计数数值,在所述计数数值达到预设数值时,生成一中断事件通知;
获取所述计数数值达到预设数值所需的时长;
获取系统的校准时间;
在接收到所述中断事件通知后,执行中断服务程序,所述执行中断服务程序包括:统计所述中断服务程序的执行次数,并根据所述时长、所述执行次数以及所述校准时间,计算系统当前时间;
所述根据接收到的所述时钟信号的数量进行计数,得到一计数数值的步骤包括:
在每接收到一所述时钟信号时,将所述计数数值加一,并获取所述计数数值从所述计时器的初始值递增计数到第一预设数值所需的时长;或
在每接收到一所述时钟信号时,将所述计数数值减一,并获取所述计数数值从所述初始值递减计数到第二预设数值所需的时长;
所述执行中断服务程序的步骤还包括:
重置所述计时器的初始值;
所述重置所述计时器的初始值的步骤包括:
获取从接收到所述中断事件通知至重置所述计时器的初始值之间的所述计时器的计数数值,作为误差值,并计算所述误差值与所述初始值的和值;
将所述和值作为所述计时器的初始值,并重置所述计时器的初始值;
所述计数数值包括高位计数段和低位计数段,所述将所述和值作为所述计时器的初始值,并重置所述计时器的初始值的步骤包括:
将所述和值作为所述计时器的初始值,仅重置所述计时器的初始值的高位计数段的值。
3.如权利要求2所述的嵌入式系统的计时方法,其特征在于:
所述计数数值从所述初始值递增计数到第一预设数值所需的时长的计算公式如下:
δt=(L1-pri)*T
其中,δt为计数数值从所述初始值递增计数到第一预设数值所需的时长,pri为所述初始值,L1为所述第一预设阈值,T为时钟周期;
所述计数数值从所述初始值递减计数到第二预设数值所需的时长的计算公式如下:
δt=(pri-L2)*T
其中,δt为计数数值从所述初始值递减计数到第二预设数值所需的时长,pri为所述初始值,L2为所述第二预设阈值,T为时钟周期。
CN201210041592.2A 2012-02-21 2012-02-21 嵌入式系统及其计时方法 Expired - Fee Related CN103257670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210041592.2A CN103257670B (zh) 2012-02-21 2012-02-21 嵌入式系统及其计时方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210041592.2A CN103257670B (zh) 2012-02-21 2012-02-21 嵌入式系统及其计时方法

Publications (2)

Publication Number Publication Date
CN103257670A CN103257670A (zh) 2013-08-21
CN103257670B true CN103257670B (zh) 2016-06-01

Family

ID=48961633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210041592.2A Expired - Fee Related CN103257670B (zh) 2012-02-21 2012-02-21 嵌入式系统及其计时方法

Country Status (1)

Country Link
CN (1) CN103257670B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183930A (zh) * 2015-06-16 2015-12-23 北京天诚盛业科技有限公司 设置和使用硬件定时器的方法以及装置
CN105528015A (zh) * 2015-12-22 2016-04-27 恒宝股份有限公司 一种软时钟的实现方法及应用装置
DE102016214117A1 (de) 2016-08-01 2018-02-01 Siemens Aktiengesellschaft Ermitteln einer Ausführungszeit eines Anwenderprogramms
CN106814789B (zh) * 2017-01-25 2020-07-03 腾讯科技(深圳)有限公司 一种计时方法及装置
CN107045425B (zh) * 2017-03-07 2020-01-10 记忆科技(深圳)有限公司 一种高精度计时子系统的实现方法
CN106940665B (zh) * 2017-03-24 2021-04-20 惠州Tcl移动通信有限公司 一种基于移动终端的时间校正控制方法、系统及移动终端
CN107659305A (zh) * 2017-10-19 2018-02-02 郑州云海信息技术有限公司 一种基于cpld的时钟计数方法、装置及介质
CN108156324B (zh) * 2017-12-28 2020-07-14 Tcl移动通信科技(宁波)有限公司 一种移动终端及其wifi自动关闭的方法、及存储介质
CN110174870B (zh) * 2019-05-17 2020-10-30 珠海格力电器股份有限公司 Plc定时方法、plc定时器及plc控制器
CN110411474A (zh) * 2019-07-22 2019-11-05 杭州沃朴物联科技有限公司 计步方法、设备、介质、装置、鸡牌和养殖管理系统
CN110765045B (zh) * 2019-09-19 2021-08-03 苏州浪潮智能科技有限公司 一种基于fpga的中断延时计数系统及方法
CN111611186B (zh) * 2020-05-26 2021-11-02 大唐微电子技术有限公司 一种嵌入式芯片中传输控制方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07219673A (ja) * 1994-02-03 1995-08-18 Hitachi Ltd 電子機器
CN101043253A (zh) * 2006-06-26 2007-09-26 华为技术有限公司 一种获取高精度时间的方法
CN101546169A (zh) * 2009-04-15 2009-09-30 北京航空航天大学 时间校准方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028210B2 (en) * 2003-05-20 2006-04-11 Siemens Energy & Automation, Inc. System and method for automatically correcting timers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07219673A (ja) * 1994-02-03 1995-08-18 Hitachi Ltd 電子機器
CN101043253A (zh) * 2006-06-26 2007-09-26 华为技术有限公司 一种获取高精度时间的方法
CN101546169A (zh) * 2009-04-15 2009-09-30 北京航空航天大学 时间校准方法和装置

Also Published As

Publication number Publication date
CN103257670A (zh) 2013-08-21

Similar Documents

Publication Publication Date Title
CN103257670B (zh) 嵌入式系统及其计时方法
CN102880045B (zh) 基于gps、北斗卫星、光纤b码、高精度恒温晶振的同步时钟时间输出系统
CN102929735B (zh) 一种时钟校正的方法和设备
CN104330082B (zh) 一种mems/gnss组合导航系统实时数据同步方法
CN202798718U (zh) 一种北斗gps双卫星系统电力时间同步装置
CN102291169B (zh) 一种卫星星上高精度时间同步方法
CN103076737A (zh) 基于乒乓缓冲和消息机制的高精度gps分布式授时方法
CN102412957B (zh) 一种高精度同步时钟调整方法
CN202008583U (zh) 一种同步相量测量装置时钟源
CN105718257B (zh) 基于嵌入式系统的定时器装置及定时方法
CN112653533B (zh) 一种复杂系统智能授时管理方法
CN105260255A (zh) 一种多处理器核片上系统的看门狗实现方法
CN102937819B (zh) 一种星载计算机时间标签输出系统
CN109117410B (zh) 一种基于通用异步串行通信接口的高精度对时方法
CN103078697A (zh) 一种分布式时钟同步方法
CN100501694C (zh) 处理器利用率的测量装置及方法
CN102509461A (zh) 交通信号协调控制平滑过渡及偏差校正方法
CN104730983A (zh) 一种高精度时间程控方法
CN103383539A (zh) 一种基于双时钟系统的时间测量方法
CN101089823A (zh) 计算机看门狗装置及其工作方法
KR101290785B1 (ko) 분산 제어 시스템의 시간 동기화 장치 및 방법
CN106647223A (zh) 原子钟计时的快速稳定实时调整方法
CN108873669B (zh) 一种计算机同步时钟的utc时间计算方法
CN103516288A (zh) 一种自适应的编码器测速装置和方法
CN105523210B (zh) 一种流量灌装机的智能计数方法及实现该方法的装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: BEIJING FUSION VIDEO TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: BEIJING GUOWEI INTEGRATION TECHNOLOGY CO., LTD.

Effective date: 20150112

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150112

Address after: 100015, No. 24 middle Jiuxianqiao Road, Chaoyang District, 878 east 10 floor, Beijing

Applicant after: BEIJING FUSION VIDEO TECHNOLOGY CO., LTD.

Address before: Room A218, No. 14 building 100015 Beijing city lights Zhaowei Jiuxianqiao road Chaoyang District

Applicant before: Beijing Guowei Integration Technology Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160601

Termination date: 20180221