一种免时基硬件校准的电子日历精确校时方法

申请号 CN201410023080.2 申请日 2014-01-17 公开(公告)号 CN103728877A 公开(公告)日 2014-04-16
申请人 安徽理工大学; 发明人 李良光; 夏许可; 司莎莎; 曹玲玲; 余芳芳; 赵舒畅;
摘要 本 发明 公开了一种免时基 硬件 校准的 电子 日历精确校时方法,通过使用 单片机 内部的EEPROM,在电子日历运行过程中,记录用户两次时间校对的时间间隔;通过这两次时间校对与准确时间所产生的误差,计算出电子日历每天的误差;在每天的零点(00:00:00)时刻,对电子日历的时间进行自动校准,去除每天的误差时间,从而能够避免生产厂家繁琐的时基硬件校准和电子日历的累积误差效应,克服晶体存在的分散性误差。本发明所采用的技术方案,能够在不增加任何硬件 电路 的 基础 上,实现对误差的自动校准,并且能够省去生产厂家时基硬件精确度校正的繁琐生产流程,缩短产品的生产周期,降低生产的成本。
权利要求

1.一种免时基硬件校准的电子日历精确校时方法,其特征在于:通过使用单片机内部的EEPROM,在电子日历运行过程中,记录用户两次时间校对的时间间隔;通过这两次时间校对与准确时间所产生的误差,计算出电子日历每天的误差;在每天的零点(00:00:00)时刻,对电子日历的时间进行自动校对,去除每天的误差时间,从而能够避免生产厂家繁琐的时基硬件校准和电子日历的累积误差效应,克服晶体存在的分散性误差。
2.根据权利要求1所述的一种免时基硬件校准的电子日历精确校时方法,其特征在于:生产厂家无需对生产后的电子日历进行繁琐的时基硬件精确度校正,能够省去生产流程中的时基校正,降低生产的成本。
3.根据权利要求1所述的一种免时基硬件校准的电子日历精确校时方法,其特征在于:无需增加任何硬件电路,完全通过软件的方式来实现消除时间积累误差。
4.根据权利要求1所述的一种免时基硬件校准的电子日历精确校时方法,其特征在于:通过在每天的特定时刻进行自动校对,有效避免电子日历的累积误差效应;能够很好地克服由于环境温度变化、晶振的频率老化等所引起的晶振频率偏差对电子日历造成的时间误差,提高了电子日历的精确度,长期日平均误差可达毫秒级。
5.根据权利要求1所述的一种免时基硬件校准的电子日历精确校时方法,其特征在于:用户通过两次时间校正后,电子日历便能够通过程序进行时基误差自动计算并调整,避免了用户以后的繁琐操作。
6.根据权利要求1所述的一种免时基硬件校准的电子日历精确校时方法,其特征在于:不改变用户的时间校对的操作流程,不增加用户的操作难度,完全通过软件方式实现时间校正。
7.根据权利要求1所述的一种免时基硬件校准的电子日历精确校时方法,其特征在于:在每天特定时间设置校准标志位,校准完成后,将校准标志位清零,防止出现当时钟当前时间比调整后的时间快的时候,完成校准以后再次到达零点钟,重复校准进入死循环的情况。

说明书全文

一种免时基硬件校准的电子日历精确校时方法

技术领域

[0001] 本发明涉及电子日历计时误差软件校准技术领域,特别是涉及一种高精度、软件实现的时间校准方法,能够避免生产厂家繁琐的时基硬件校准和电子日历的累积误差效应,克服晶体精度的抛物线特征导致的误差,以及晶振频率老化引起的误差。

背景技术

[0002] 目前的电子日历,采用的是石英晶振作为时基实现实时时钟(RTC)计时,通过单片机控制实现时间的显示。石英晶振采用的是32.768kHz晶体,32768是2的15次方,比较容易分频产生1Hz的时基频率。典型的32.768kHz晶体不能够在宽温度范围内提供较高精度,在整个温度范围内精度呈抛物线型。此外,晶体分散性误差在±100ppm以内,相当于一天慢或快8.64秒,即每年(以365天计算)最大误差3153.6秒。
[0003] 由于晶振本身存在的误差直接影响了实时时钟的计时精度,目前现有的解决方案主要有两大类:一类是采用时钟芯片时基硬件精确校正方式,另一类是采用系统误差校正方式。
[0004] 采用时钟芯片时基硬件精确校正方式:
[0005] 时基晶振的正常频率范围为32760Hz~32775Hz,通过调整晶振的负载电容能够对晶振的振荡频率进行微调,目前生产厂家便是采用这种校正方式。通过微调晶振的负载电容调整晶振的频率,使晶振的频率尽可能接近32.768kHz。在图1中,C1和C2为晶振的负载电容,一般C2为一个固定电容(5pF),C1为可调电容(3.3pF~20pF)。在调整的过程中,工作人员需要不断调整可调电容C1来微调晶振的频率。为了达到较高的精度,工作人员需要不断进行微调、观测,这样耗时较长。同时,由于分布电容的存在,原本的负载电容(3.3pF~20pF)比较小,很难达到较高的精度。对于这个调整的过程,即使是经验丰富的员工,仍然要花费较长的时间进行校准。
[0006] 采用系统误差校正方式:
[0007] 1、无线报时电台时间信号校准。中国科学院国家授时中心短波授时台(BPM),每天24小时连续不断地以四种频率(2.5MHz,5MHz,10MHz,15MHz同时保证3种频率)交替发播标准时间、标准频率信号,覆盖半径超过3000公里,授时精度为毫秒(千分之一秒)量级。短波授时的基本方法是由无线电台发播时间信号(简称时号),用户用无线电接收机接收时号,然后进行本地校准。利用短波时号进行时频传递与校准方法增加了电子日历的电路复杂度和成本,对于要求同步偏差在1ms量级的用户特别有利,适合于高端或特殊用户。
[0008] 2、网络定时自动校准。计算机在每次的开机连接网络之后,可与Internet时间服务器进行一次同步,实现对时间的校对。这种方式的前提条件是用户的时钟系统必须连接计算机网络,并且打开网络自动时间校对功能。
[0009] 通过无线报时电台时间信号校准方式,其硬件电路比较复杂;通过网络定时自动校准方式,必须要有网络的连接,这两种方案都很难在低成本、普及型电子日历上实现。

发明内容

[0010] 为了解决以上存在的问题,本发明提供了一种免时基硬件校准的电子日历精确校时方法,能够避免生产厂家繁琐的时基硬件精确校正和电子日历的累积误差效应,克服晶体存在的分散性误差。
[0011] 本发明所采用的技术方案是:
[0012] 通过使用单片机内部的EEPROM,在电子日历运行过程中,记录用户(或生产厂家)相隔一段时间的两次时间校准的时间间隔。通过这两次时间校对与准确时间所产生的误差,自动计算出电子日历每天的误差。在每天的零点(00:00:00)时刻,对电子日历的时间进行自动校准,去除每天的误差时间,从而能够避免生产厂家繁琐的时基硬件校准和电子日历的累积误差效应,克服晶体精度的抛物线特征导致的误差,以及晶振频率老化引起的误差。
[0013] 与现有技术相比,本发明的有益效果是:
[0014] 1、由于晶振本身误差不大,可以通过这种方式免除生产过程中时基硬件精确校对,简化生产流程,降低产品成本。
[0015] 2、通过在每天的特定时刻(午夜)进行自动校准,可有效避免了电子日历的累积误差效应,提高了电子日历的计时精确度,长期日平均误差达毫秒级。
[0016] 3、无需增加任何硬件电路,完全通过软件的方式来实现。
[0017] 4、通过两次时间校准后,电子日历便能够通过程序进行自动误差校准,避免了用户以后的校时操作;校正数据存储在单片机内部的EEPROM中,即使单片机系统断电,校正数据仍然可以保存。
[0018] 5、不改变用户的时间校对操作流程,不增加用户的操作难度。
[0019] 6、在每天特定时间设置校准标志位,校准完成后,将校准标志位清零,防止出现当时钟当前时间比调整后的时间快的时候,完成校准以后再次到达零点钟,再一次校准,使系统进入死循环的情况。附图说明
[0020] 图1为:一种免时基硬件校准的电子日历精确校时方法的整体结构图。
[0021] 图2为:一种免时基硬件校准的电子日历精确校时方法的程序控制流程图
[0022] 图3为:一种免时基硬件校准的电子日历精确校时方法的误差计算子程序流程图。
[0023] 图4为:一种免时基硬件校准的电子日历精确校时方法的时间校准子程序流程图。
[0024] 图5为:一种免时基硬件校准的电子日历精确校时方法的用户时间校对流程图。

具体实施方式

[0025] 下面结合附图对本发明进一步说明。
[0026] 在图1中,C1、C2为固定电容,XTAL为标称值32.768kHz的时基晶振。时基晶振为时钟芯片提供时基,通过时钟芯片分频以后产生1Hz的频率计时。单片机与时钟芯片通过I/O口读取或写入数据,通过按键对时间进行调整,通过显示模显示时钟时间。
[0027] 在图2中,单片机上电启动后,通过读取时钟芯片的寄存器数据,进行时间的显示,并且在每天的零点对时钟的时间进行校准。当用户设定时间,进入时间设定中断后,通过调用误差计算子程序,计算出时钟的误差,写入单片机内部的EEPROM。当时钟时间为零点钟时刻,通过调用时间校对子程序,对时间进行校对。当时钟时间为23点设置校对标志位Flag=1,确保时钟下一次到零点钟时能够正常校对。
[0028] 在图3中,一种免时基硬件校准的电子日历精确校时方法实现自动校准的过程如下:
[0029] 1、用户(或生产厂家)第一次拿到电子日历后,对电子日历进行第一次时间校准,设定时间T1(以秒为最小单位)。通过用户(或生产厂家)按时间设定完成键,触发单片机外部中断,调用子程序将用户设定的时间T1写入时钟芯片,同时保存在单片机内部的EEPROM中。
[0030] 2、过一段时间以后,当用户(或生产厂家)进行第二次时间校准,设定时间T2(以秒为最小单位)。通过用户(或生产厂家)按时间设定完成键,触发单片机外部中断,调用子程序将用户设定的时间T2和设定时的时钟时间T0写入单片机内部的EEPROM;通过调用运算时间误差的子程序,计算用户设定的时间与设定时的时钟时间的误差(T2-T0);再用这个误差除以两次校对时间的时间差(T2-T1)乘以一天的时间86400S,计算出校对的这段时间中,每天的时间偏差 并将这个时间偏差εT叠加原来的时间误差,将结果再存入单片机内部的EEPROM中(产品初始偏差设置为0)。
[0031] 3、在每天的零点(00:00:00),通过调用时间校对子程序,对当前的时钟时间T0进行校对(即T0=T0+εT),完成对时间的自动校准。当误差时间小于1S时,通过单片机的延时来去除误差,可以将日计时误差提高到毫秒级。
[0032] 在图4中,单片机通过读取内部EEPROM的时间误差εT,对时钟的时间进行校准。校准完成后,将校准标志位清零(Flag=0),防止出现当时钟当前时间比调整后的时间快的时候,完成校准以后再次到达零点钟,重复校准进入死循环的情况。
[0033] 在图5中,用户可以通过设定键和调整键两个按键完成对时间的校正。当用户按下设定键从日历开始调整年、月、日、小时、分钟,调整完成后写入日历芯片,同时秒清零,单片机计算出时间偏差并保存。
QQ群二维码
意见反馈