一种基于双时钟系统的时间校正方法与流程

文档序号:30418026发布日期:2022-06-15 12:08阅读:274来源:国知局
一种基于双时钟系统的时间校正方法与流程

1.本发明属于嵌入式系统领域,具体涉及一种基于双时钟系统的时间校正方法。


背景技术:

2.在嵌入式系统中,操作系统提供了软件方式实现的系统时钟,系统时钟通常可提供单调时间和实时时间,时间分辨率可达纳秒级。其中单调时间是指操作系统自上电开始至当前时刻所经历的时间,是绝对单调递增且无法手动更改的;实时时间指自1970年1月1日0时0分0秒至当前时刻所经历的时间,可以手动设置该时间。
3.在有日历功能要求的嵌入式系统中,通常会在系统上电阶段自动或手动对系统时钟的实时时钟进行设置,以保证通过系统时钟获取的实时时间与当前时区的时间值相同。嵌入式系统的晶振由于制作工艺、老化、环境温度等的影响,并不能完全保证谐振频率的稳定性,而晶振的频率误差又将影响系统时钟的稳定性,导致时钟发生偏差。对于时间精度要求不高的系统,通常在运行期间无须校正系统时钟,而对于时间精度要求高的系统,往往需要在运行过程中定时或不定时进行校时,以修正系统时钟受晶振稳定性影响带来的时钟偏差,使系统时钟保持准确的时间。
4.嵌入式系统通常使用rtc时钟(real time clock)为系统提供日历功能,rtc时钟电路使用精度较高的晶体振荡器作为时钟源,采用电池供电,即使嵌入式系统断电停止运行,rtc时钟也能继续保持精确地时间递增,在系统下一次上电时可使用rtc时间作为系统提供实时时钟初始化的基准时间。rtc时钟能够提供精确到秒值的时间(举例:当前真实时间为2021年7月20日9时26分30秒900毫秒,则rtc时钟返回的时间值是2021年7月20日9时26分30秒,对于低于秒值精度的时间部分无法返回),在嵌入式系统初始化阶段对系统时钟进行设置,或系统运行中对系统时钟进行校时,秒级分辨率的时间精度是比较低的,因此直接使用rtc时间校时会造成较大的校时偏差。
5.现有技术的缺点:rtc时钟本身只能提供精确到秒值的时间值,在对时间精度要求较高的嵌入式系统中,直接使用rtc时间校正系统时钟将产生较大偏差。
6.本发明目的:通过算法对作为校时基准的rtc时间进行修正,使用修正后的时间对系统时钟进行校正,以减小校时偏差,提高校时精度。


技术实现要素:

7.(一)要解决的技术问题
8.本发明要解决的技术问题是如何提供一种基于双时钟系统的时间校正方法,以解决在具有rtc时钟电路的嵌入式系统中,直接使用rtc时钟时间对系统时钟进行校时时偏差较大的问题。
9.(二)技术方案
10.为了解决上述技术问题,本发明提出一种基于双时钟系统的时间校正方法,该方法包括如下步骤:
11.步骤一:确定当前系统中的基准时钟和目标时钟,以走时稳定的rtc时钟作为基准时钟,系统主时钟则为被校时的目标时钟;
12.步骤二:确定触发校时的条件和校时任务的运行周期t;
13.步骤三:触发校时后,校时任务以周期t持续采样当前rtc时间,其中第一次采样获得的rtc时间称为起始采样值,当最新采样值与起始采样值发生秒值递增时可停止采样,并记录当前时刻rtc时间t作为校时的原始基准时间;
14.步骤四:根据校时任务的运行周期t对原始基准时间t进行二分法补偿修正,记修正后的时间为t1,t1=t+(t/2),t/2为补偿时间,则可以用t1对系统时钟进行校时。
15.进一步地,所述校时触发条件为定时触发,即:系统每运行一定时间后进行一次校时。
16.进一步地,所述校时任务的运行周期t根据校时任务的优先级p和校时精度确定。
17.进一步地,校时任务的优先级p设置为比用户程序主要任务优先级低一级。
18.进一步地,校时精度为1ms,则t确定为2ms。
19.进一步地,所述系统时钟由操作系统提供访问接口,提供纳秒级精度的时间,但在环境温度变化时可能发生走时不稳定的问题。
20.进一步地,所述rtc时钟是外接的时钟芯片电路,走时稳定,但只能提供秒级精度的时间值。
21.进一步地,所述步骤三具体包括:采样任务第n周期获取的rtc时间秒值为ts,第n+1周期获取的rtc时间秒值为ts+1,即rtc时钟的秒值发生了递增,则采用第n+1周期的采样时间作为本次校时的原始基准时间。
22.进一步地,该时间校正方法用于系统初始化阶段校时。
23.进一步地,该时间校正方法用于系统运行中校时
24.(三)有益效果
25.本发明提出一种基于双时钟系统的时间校正方法,与现有技术相比,本发明的有益效果是:
26.本发明在双时钟系统校时中增加校时任务的周期补偿信息,并重新计算修正后的基准时间,根据计算分析,本发明的校时方法最理想情况下可以保证目标时钟与基准时钟完全对齐,最不利情况下也可保证目标时钟与基准时钟的校时误差在t/2时间内(其中t为校时任务的运行周期)。例如校时任务的运行周期t为2ms时,可以保证校时误差不超过1ms,使用本方法可极大提高校时精度。
附图说明
27.图1为本发明校时任务的时间采样处理图;
28.图2为本发明涉及的校时算法的流程图。
具体实施方式
29.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
30.实时时钟real-time clock(rtc)
31.实时时钟是一种集成电路,一般称为时钟芯片,走时稳定,支持日历功能,可以提供精确到秒值的时间。
32.系统时钟
33.本文所述系统时钟指操作系统启动后根据晶振频率计时的一种时钟,可以提供纳秒分辨率的时间值。
34.双时钟系统
35.指除了系统时钟之外,还有其他外挂时钟电路的嵌入式系统,本文特指具有rtc时钟电路的嵌入式系统。
36.晶振
37.又称晶体振荡器、石英晶体或石英晶体谐振器,是利用石英晶体的压电效应来产生高精度震荡频率的一种电子器件。
38.本发明要解决的技术问题是,提供一种基于双时钟系统的时间校正方法,该方法主要用于嵌入式系统,在使用rtc时钟对系统时钟进行校正时,校时任务进行多次采样获取最佳原始基准时间,并利用校时任务的运行周期t对原始基准时间进行补偿,获得修正基准时间,利用修正基准时间对系统时钟校时可极大提高校时精确度。
39.本发明解决所述问题采用的技术方案是:提供一种基于双时钟系统的时间校正方法,该方法包括以下步骤:
40.步骤一:确定当前系统中的基准时钟和目标时钟,通常的原则是:以走时稳定的rtc时钟作为基准时钟,系统主时钟则为被校时的目标时钟;
41.步骤二:确定触发校时的条件和校时任务的运行周期t,其中校时任务的运行周期t将直接影响到校时的精度;
42.步骤三:触发校时后,校时任务以周期t持续采样当前rtc时间,其中第一次采样获得的rtc时间称为起始采样值,当最新采样值与起始采样值发生秒值递增时可停止采样(参考附图1),并记录当前时刻rtc时间t作为校时的原始基准时间;
43.步骤四:根据校时任务的运行周期t对原始基准时间t进行二分法补偿修正,记修正后的时间为t1,t1=t+(t/2),t/2为补偿时间,则可以用t1对系统时钟进行校时。
44.在轨道交通安全计算平台中,目前通常采用系统上电初始化时,直接获取rtc时间校正系统时钟,而在系统运行中不再进行系统时钟校正,或直接采用rtc时间对系统时钟进行校正。与现有技术相比,本发明的有益效果是:
45.本发明在双时钟系统校时中增加校时任务的周期补偿信息,并重新计算修正后的基准时间,根据计算分析,本发明的校时方法最理想情况下可以保证目标时钟与基准时钟完全对齐,最不利情况下也可保证目标时钟与基准时钟的校时误差在t/2时间内(其中t为校时任务的运行周期)。例如校时任务的运行周期t为2ms时,可以保证校时误差不超过1ms,使用本方法可极大提高校时精度。
46.下面进一步细述本发明的方法,具体有以下步骤:
47.步骤一:确定当前系统校时的基准时钟和目标时钟。
48.1)通常以走时稳定的时钟作为基准时钟,本案例中选择rtc时钟作为基准时钟;
49.2)以时间精度较高、但长时间运行后可能发生漂移的系统时钟作为被校时的目标时钟;
50.步骤二:确定校时触发条件和校时任务的运行周期t。校时触发条件是指校时任务在满足什么条件时触发校时处理,通常选择定时触发即可,即:系统每运行一定时间后进行一次校时。本方法使用校时任务的运行周期t对rtc时钟最佳采样时间t进行补偿,从而得到精确度更高的修正基准时间t1,其中:t1=t+(t/2),t/2为补偿时间。因此校时任务周期是否稳定将对采样频率是否正确、时间补偿是否准确产生直接影响。
51.校时任务的运行周期t根据校时任务的优先级p和校时精度确定。确定校时任务的运行周期t时主要考虑以下两方面因素:
52.一、校时任务的优先级p。对于基于优先级抢占的任务调度系统,校时任务优先级设置太低时,在运行中容易被其他高优先级的任务抢占,导致校时行为中断被挂起,从而影响补偿精确度。例如:设定校时任务周期为t,即对rtc时钟采样周期为t,补偿时间为t/2。若校时任务在运行中被其他任务抢占,且在t时间内一直得不到执行的机会,则将导致连续两次采样间隔超过t,且超出时间值无法精确获得。这样,若对采样时间t仍按照t/2值进行补偿,显然最终获得的基准时间是不准确的。因此要保证校时任务的优先级既不能太低(t时间内任务得不到执行),也没必要太高(可能中断其他重要的系统或应用任务),通常设置为比用户程序主要任务优先级低一级即可。
53.二、任务的周期t。t主要影响两方面:一是对rtc时钟的采样频率,二是对采样时间的补偿精度。周期越短、采样频率越高、补偿时间精确度越高,但周期t也不能为了追求精度而过小,否则可能造成校时任务长时间占用cpu资源,而一些优先级低的任务无法得到执行。因此周期t一般根据当前系统的校时精度要求而选用合理值,例如:当前要求校时精度为1ms,则t可确定为2ms。
54.步骤三:对rtc时钟进行采样并获得原始基准时间。
55.此步骤的主要任务是触发校时后,校时任务开始以t为周期对rtc时钟进行采样,当连续两次采样的时间发生秒值递增时,即可将最新一次的采样时间t作为校时的原始基准时间。此步骤的原理是本次采样的时间值比上一次采样的时间值递增一秒时,说明本次采样时的实际时间一定满足:采样时间《=实际时间《=(采样时间+t),t的值往往是毫秒级别的,因此可以获得比较接近实际时间的一个时间值作为原始基准时间。
56.步骤四:对原始基准时间进行补偿,获得更精确的修正基准时间。
57.由于rtc时钟的时间值只能精确到秒值,因此如果直接使用,其误差仍然是比较大的。本发明提出了使用t对原始基准时间t进行一次二分法补偿的方法,补偿后的基准时间称为修正基准时间t1,经过分析计算可以确定:使用t1作为基准时间校时,可保证校时后的目标时钟与基准时钟时间误差在t/2时间内,该误差是确定的,且可通过调整t值来减小该误差。
58.实施例1
59.与直接使用rtc时间对系统时钟进行校时的方法相比,采用校时任务的运行周期t对基准时间进行修正的方案可显著提高校时的准确性。
60.假设有嵌入式系统s,该系统内部有系统时钟和rtc时钟两种时钟,其中系统时钟由操作系统提供访问接口,可以提供纳秒级精度的时间,但其不足之处是在环境温度等因素变化时可能发生走时不稳定的问题;rtc时钟是外接的一个时钟芯片电路,走时稳定,可以提供日历功能,但其不足之处是只能提供秒级精度的时间值,无法满足嵌入式应用的精
度要求。
61.本例选择rtc时钟为基准时钟,系统时钟为目标时钟,使用rtc时间对系统时间进行校准以消除系统软件时钟在长时间运行后因走时不准产生的偏差。设置应用任务的运行周期为100ms,考虑到校时触发后频繁采样会对系统产生额外开销,本例最终选择以1小时为周期触发校时处理。本例中应用任务的周期为100ms,假设对时间精度的要求假设为5ms,则确定校时任务的周期t为10ms,则本例所示系统的基本情况为:校时任务以100ms的周期运行,且每过1小时触发一次校时处理,使系统时钟对齐rtc时钟。
62.假设某时刻系统触发了校时,则校时任务开始采样rtc时间,并将当前周期采样时间秒值与上一周期采样时间秒值做比较,例如:采样任务第n周期获取的rtc时间秒值为ts,第n+1周期获取的rtc时间秒值为ts+1,即rtc时钟的秒值发生了递增,则采用第n+1周期的采样时间作为本次校时的原始基准时间。
63.以1ms分辨率精度考量,记原始基准时间采样时的实际时间为t0,以上采样时间秒值的递增可能有以下4种情形:
64.①
第n周期采样时,实际的时间为ts秒+990毫秒,第n+1周期采样时,实际的时间t0为(ts+1)秒+0毫秒;
65.②
第n周期采样时,实际的时间为ts秒+995毫秒,第n+1周期采样时,实际的时间t0为(ts+1)秒+5毫秒;
66.③
第n周期采样时,实际的时间为ts秒+999毫秒,第n+1周期采样时,实际的时间t0为(ts+1)秒+9毫秒;
67.④
第n周期采样时,实际时间秒值为ts秒,毫秒值为990毫秒-999毫秒范围内,除990、995、999之外的其他值。
68.对原始基准时间进行补偿修正。记原始基准时间为ta,由于rtc时钟只能获取精确到秒值的时间,因此ta的毫秒、微秒、纳秒部分均为0。采用本发明所属方法,利用校时任务的运行周期t对ta进行补偿修正,则修正后的基准时间为:tb=ta+(t/2)
69.下面针对上述
①‑④
所述情形,分析计算修正基准时间与原始基准时间采样时刻的实际时间的偏差值,首先对于上述所有场景,均有ta=(ts+1)秒,tb=(ts+1)秒+(t/2),有t=10ms,则tb=(ts+1)秒+5毫秒。将tb与上述4种场景下的实际时间相比,根据δ=tb-t0,可得偏差:
70.δ1=5ms,δ2=0,δ3=4ms,0《δ4《5ms
71.由以上分析可知,使用本发明所属方法校时,可保证修正后的校时基准时间与实际时间的偏差在t/2内,本例中t为10ms,则修正后的校时基准时间偏差在5ms内,与直接采用rtc秒值时间对系统时钟校时相比,极大地提高了校时精度。
72.本发明的关键点如下:
73.1、一种新的基准时间获取算法,利用该算法可对直接获取的rtc时间进行补偿,补偿修正后的基准时间与实际时间偏差极小;
74.2、本发明的校时方法不光可用于系统初始化阶段校时,也可用于系统运行中校时。
75.本发明优点如下:
76.1、既可以用于系统上电阶段初始化时对系统时钟进行设置,也可以用于系统运行
中对系统时钟校时;
77.2、本发明提出的时间校正方法可极大降低rtc时钟时间分辨率较低带来的校时偏差,使校时更准确。
78.本发明提出了一种使用rtc时钟校时提高精度的方法,原理简单、实现容易、效果较好,目前暂未发现其他更简单的实现方案。
79.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1