实时时钟生成方法及装置的制造方法

文档序号:9827893阅读:519来源:国知局
实时时钟生成方法及装置的制造方法
【技术领域】
[0001]本发明涉及实时时钟技术领域,尤其涉及一种实时时钟生成方法及装置。
【背景技术】
[0002]实时时钟(Real Time Clock,简称RTC)是一种不需要通讯同步授时即可实现时间计算的时钟,通过低频脉冲计数器对石英晶体振荡器输出的脉冲数进行统计,当统计的低频脉冲数达到石英晶体振荡器的标称频率值时,实时时钟累计一秒,同时输出一个频率为IHz的脉冲,低频脉冲计数器清零,从新开始计数,从而实现对时间的连续计算和输出。
[0003]实时时钟一般采用标称频率为32768Hz的石英晶体振荡器,即当脉冲计数器统计的脉冲数达到32768个时,RTC输出一个频率为IHz的脉冲,实现一秒的输出。然而,石英晶体振荡器容易受到外界环境的影响,实际上一秒时间脉冲计数器统计到的脉冲数可能并不是32768个,有可能是32769或32767或其它值,出现上述误差时,实时时钟每天会产生约2.64秒的误差。
[0004]实时时钟出现较大误差的一个主要原因是石英晶体振荡器的标称频率较小,当出现误差时对时间的精确度影响较大。因此现有的实时时钟一般都设置有高频时钟,根据高频时钟频率值和石英晶体振荡器频率值,计算I秒中对应的高频脉冲的个数,通过统计高频脉冲的个数来实现频率为IHz的脉冲输出。
[0005]但是,现有的高频时钟自身也存在一定的误差,因此导致实时时钟输出的频率为IHz的脉冲并不精确。

【发明内容】

[0006]本发明实施例解决的问题是如何避免高频时钟自身误差导致的实时时钟输出频率为IHz的脉冲不精确。
[0007]为解决上述问题,本发明实施例提供一种实时时钟生成方法,包括:
[0008]采用低频计数器及高频计数器分别对晶体振荡器产生的低频脉冲及高频时钟产生的高频脉冲进行同步计数;
[0009]当所述低频计数器计数得到的低频脉冲个数达到预设脉冲个数时,获取对应的所述高频计数器计数得到的第一高频脉冲个数,所述预设脉冲个数为所述晶体振荡器标称频率值对应的脉冲个数;
[0010]获取当前温度下晶体振荡器的频率补偿值;
[0011]根据所述预设脉冲个数、所述第一高频脉冲个数以及所述当前温度下晶体振荡器的频率补偿值,计算得到第二高频脉冲个数;
[0012]当所述实时时钟接收到的高频脉冲个数为所述第二高频脉冲个数时,输出一个频率为IHz的脉冲。
[0013]可选的,所述实时时钟生成方法还包括:以预设的周期将所述高频计数器内的计数值清零,并重新进行计数。
[0014]可选的,所述预设的周期为I秒。
[0015]可选的,根据所述低频脉冲个数、所述第一高频脉冲个数以及所述当前温度下晶体振荡器的频率补偿值,计算得到第二高频脉冲个数,包括:采用如下公式计算第二高频脉冲个数:
[0016]M = N+2 X (fVf2) X cal,
[0017]其中:M为所述第二高频脉冲个数,N为所述第一高频脉冲个数,为所述高频时钟的标称频率值,f2为所述晶体振荡器标称频率值,cal为当前温度下所述晶体振荡器的频率补偿值。
[0018]可选的,所述晶体振荡器标称频率值&为32768Hz,所述高频时钟的标称频率值f ι为 20MHz。
[0019]为解决上述问题,本发明实施例还提供一种实时时钟生成装置,包括:
[0020]计数单元,用于采用低频计数器及高频计数器分别对晶体振荡器产生的低频脉冲及高频时钟产生的高频脉冲进行同步计数;
[0021]第一获取单元,用于当所述低频计数器计数得到的低频脉冲个数达到预设脉冲个数时,获取对应的所述高频计数器计数得到的第一高频脉冲个数,所述预设脉冲个数为所述晶体振荡器标称频率值对应的脉冲个数;
[0022]第二获取单元,用于获取当前温度下晶体振荡器的频率补偿值;
[0023]计算单元,用于根据所述预设脉冲个数、所述第一高频脉冲个数以及所述当前温度下晶体振荡器的频率补偿值,计算得到第二高频脉冲个数;
[0024]输出单元,用于当所述实时时钟接收到的高频脉冲个数为所述第二高频脉冲个数时,输出一个频率为IHz的脉冲。
[0025]可选的,所述实时时钟生成装置还包括:清零单元,用于以预设的周期将所述高频计数器内的计数值清零,并重新进行计数。
[0026]可选的,所述计算单元用于采用M = N+2X (fi/fz) Xcal计算第二高频脉冲个数,其中,M为所述第二高频脉冲个数,N为所述第一高频脉冲个数,匕为所述高频时钟的标称频率值,f2为所述晶体振荡器标称频率值,cal为当前温度下所述晶体振荡器的频率补偿值。
[0027]与现有技术相比,本发明实施例的技术方案具有以下优点:
[0028]通过分别采用低频计数器和高频计数器对晶体振荡器产生的低频脉冲和高频时钟产生的高频脉冲进行同步计数,可以获取当低频计数器计数得到的低频脉冲个数达到预设值时的高频脉冲个数。由于对高频时钟产生的高频脉冲进行计数,根据计数得到的高频脉冲个数计算输出频率为IHz的脉冲所需的高频脉冲个数,而不是直接利用高频时钟的标称频率值计算输出频率为IHz的脉冲所需的高频脉冲个数,因此可以避免因高频时钟自身误差而导致实时时钟输出的频率为IHz的脉冲不精确的问题。
[0029]进一步,当实时时钟每输出一个频率为IHz的脉冲后,将高频计数器内的计数器以Is为周期进行清零,可以保证实时时钟输出的频率为IHz的脉冲更精确。
【附图说明】
[0030]图1是本发明实施例中的一种实时时钟生成方法的流程图;
[0031]图2是本发明实施例中的一种实时时钟生成装置的结构示意图。
【具体实施方式】
[0032]现有的实时时钟一般都设置有高频时钟,根据高频时钟频率值和石英晶体振荡器频率值来计算I秒中对应的高频脉冲的个数,通过统计高频脉冲的个数来实现频率为IHz的脉冲输出。但是,现有的高频时钟自身也存在一定的误差,高频时钟在一定时间内输出的脉冲个数与其标称频率值存在差异,因此导致实时时钟输出的频率为IHz的脉冲并不精确。
[0033]本发明实施例中,通过分别采用低频计数器和高频计数器对晶体振荡器产生的低频脉冲和高频时钟产生的高频脉冲进行同步计数,可以获取当低频计数器计数得到的低频脉冲个数达到预设值时的高频脉冲个数。由于对高频时钟产生的高频脉冲进行计数,根据计数得到的高频脉冲个数计算输出频率为IHz的脉冲所需的高频脉冲个数,而不是直接利用高频时钟的标称频率值计算输出频率为IHz的脉冲所需的高频脉冲个数,因此可以避免因高频时钟自身误差而导致实时时钟输出的频率为IHz的脉冲不精确的问题。
[0034]为使本发明实施例的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0035]本发明实施例提供了一种实时时钟生成方法,参照图1,以下通过具体步骤进行详细说明。
[0036]步骤S101,采用低频计数器及高频计数器分别对晶体振荡器产生的低频脉冲及高频时钟产生的高频脉冲进行同步计数。
[0037]在具体实施中,晶体振荡器可以是石英晶体振荡器,石英晶体振荡器的标称频率值为32768Hz。也就是说,石英晶体振荡器在Is内产生的脉冲个数应该恰好为32768个。高频时钟可以是实时时钟芯片内部设置的高频时钟,也可以是外接的高频时钟。高频时钟的标称频率可以根据实际需要进行确定,例如,高频时钟的频率可以为20MHz,也可以为24MHz或其它值。
[0038]在本发明一实施例中,在实时时钟进行工作时,石英晶体振荡器和高频时钟分别同步产生低频脉冲和高频脉冲。通过低频计数器对石英晶体振荡器产生的低频脉冲进行计数,通过高频计数器对高频时钟产生的高频脉冲进行计数,且低频计数器和高频计数器分别对低频脉冲及高频脉冲进行同步计数。
[0039]步骤S102,当所述低频计数器计数得到的低频脉冲个数达到预设脉冲个数时,获取对应的所述高频计数器计数得到的第一高频脉冲个数。
[0040]在具体实施中,预设脉冲个数可以为晶体振荡器的标称频率值对应的脉冲个数。当低频计数器计数得到的低频脉冲个数达到晶体振荡器的标称频率值时,高频计数器停止计数,获取高频计数器计数得到的第一高频脉冲个数。
[0041]例如,在本发明一实施例中,晶体振荡器为石英晶体振荡器,石英晶体振荡器的标称频率值为32768Hz,即预设脉冲个数为32768个。当低频计数器计数得到的低频脉冲个数为32768个时,停止计数,并获取当前时刻下高频计数器中计数得到的高频脉冲个数。
[0042]步骤S103,获取当前温度下晶体振荡器的频率补偿值。
[0043]在本发明一实施例中,由于晶体振荡器为石英晶体振荡器,而石英晶体振荡器容易受到外界环境的影响,例如,外界温度的影响,不同的温度对应的石英晶体振荡器的实际振荡频率并不相同。因此,需要先获取当前温度下石英晶体振荡器的频率补偿值。
[0044]在本发明一实施例中,石英晶体振荡器频率偏差与温度关系式可以为:
[0045]Etemp= aX (T-T。) 2+E。,其中,E胃为石英晶体振荡器相对标称频率,即32768Hz的频率偏差,a为石英晶体振荡器的二次温度系数,只与石英晶体振荡器本身有关,T为当前振荡器的温度,T。为标准温度,单位均为热力学温度开尔文(K),T。一般为296K,即室温23°C,E。为石英晶体振荡器在T。时相对于标称频率的频率偏差。根据上述公式以及当前温度,即可计算出当前温度下石英晶体振荡器的振荡频率,从而可以计算出当前温度下石英晶体振荡器的频率补偿值。
[0046]步骤S104,根据所述预设脉冲个数、所述第一高频脉冲个数以及所述当前温度下晶体振荡器的频率补偿值,计算得到第二高频脉冲个数。
[0047
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1