2023年11月30日发(作者:)

2010年6月

宇航计测技术

Jun.,2010

第30卷第3期

Journal of Astronautic Metrology and Measurement

Vo1.30.No.3

文章编号:1000—7202(2010)03—0029—04 中图分类号:TM935

文献标识码:

频率修正法精确控制计算机时间

刘阳琦 罗巧梅 徐金锋

(中国人民解放军61081部队,北京100094)

摘 要 详细介绍T ̄算机的计时原理,并提出以外部时间基准作参考,通过修正计算机BIOS计时中断周

期的方法,达到修正系统时钟频率的目的,从而实现对计算机时间的精确控制。文中还对该方法的软件设计与实

现进行了详细说明,并列举出实际测试结果,验证了该方法的合理性与有效性,表明该方法是目前利用软件进行计

算机时间校准的最佳方案。

关键词 计算机时间校准 计时中断周期 频率修正法

The Method of Frequency Correction to Control

Computer Time Precisel

LIU Yang・qi LUO Qiao-mei XU Jin-eng

(The Uni 61081 of PLA,Beijing 100094)

Abstract The principle of computer time is described.To correct the system clock frequency and

achieve the precise control of computer time,a method of correcting the computer BIOS time interrupt pe—

riod is brought out,which is based on an external time standard.In addition,the method of the sofware

design and implementation is discussed in detail.The actual test results are cited to verify the rationality

and effectiveness of the method,which is the optimal program to calibrate the computer clock by sofware

at present.

Key words Computer Time calibrate Period of time interrupt Frequency correction

1 引 言

时间校准精度却一直较低,常用的校准方法有硬件

和软件方法:硬件方法是利用电子元器件搭建一块

随着计算机技术的迅猛发展,计算机已经深入到

时间码板卡,插在计算机PCI插槽里,然后利用外部

社会的各个领域并发挥着极其重要作用,人们对计算

步计算机时间;软件方法则是利用计算机系

机系统时问的绝对校准精度和网络同步精度要求也

统 供的API函数改正时问。由于目前软件校时都

越来越高,特别足对于通信、金融、军事等重要领域。

是利用系统校时函数实现,普遍精度较低(各种校

目前,计算机系统时间的校准和网络同步的常

时方法精度比较如表1所示),为此,笔者作了大量

用方法,是利用外部高精度时问慕准作为参考,如利

的研究与实验,摸索出利用频率修正的方法来校准

用北斗卫星导航系统授时、GPS授时等方式,来精确 计算机时问,该方法实现校准的计算机时问连续、稳

校准本机或授时服务器的系统时间。这些时间基准

定,且精度最好能达到0.1 ms,是利用软件进行计

都有非常好的准确度(10 量级),但是计算机本身

算机时问校准的最佳方法。

30・ 宇航计测技术 2010正

表1几种计算机校时方法精度比较

2 实现原理

2.1计算机计时原理

O 5 O 5 O 5 O O

任何计算机的计时体系都是由RTC时钟、BIOS

时钟和OS时钟三部分组成。RTC(Real Time

Clock)也被称为实时时钟、硬件时钟,是一个相对于

独立计算机的高精度计时器,通常是PC主板上一

块依靠电池供电的芯片(晶振),该计时器为整个计

算机提供一个计时标准,并存储有累计秒形式的日

期时间信息;BIOS时钟并不是真正意义上的时钟,

准确批说它是硬件(定时/计数器)和软件(时钟中

断处理程序)的结合,该计数器从RTC接收振荡脉

冲,并开始递减计数,当计数到零时,产生一个输出

脉冲,引发实时中断处理程序,然后计数器复位又开

始从头计数,目前大部分台式计算机的BIOS计数

器每秒产生64个计时中断信号,中断周期约15 625

s(一般单处理器的计算机约10 014.4 s);OS时

钟即是操作系统时钟,计算机每次开机时,操作系统

通过BIOS调用从RTC获取初始的El期时问值,并

通过响应BIOS控制的计时中断信号,维持系统时

间的运行,OS时钟以年月日、时分秒的形式呈现。

2.2计算机时钟频率修正原理

前面提到,计算机系统时钟是从RTC获取初始

时间值,并通过响应BIOS计时中断信号来维持,时

钟在每个中断周期更新一次,即增加15 625 Ixs。因

为计时中断的周期是BIOS计数器通过对RTC的振

荡计数而获得,所以其精度也受制于RTC的频率精

度,目前台式计算机的RTC频率准确度约为10。。~

10 量级,这表明BIOS通过频率计数获得的计时中

断周期在 s量级上会存在有偏差,即实际周期比

15 625 txs大或者小一些,因此,时间越长,累积的偏

差就越大,从而导致系统时钟的逐渐不准确。

如果有一个高精度的外部时间基准作参考,

确测量出计时中断的准确周期,并对其进行修正,使

其偏差变小,则可以使得系统时钟累积偏差变小,

而获得更好的准确度,实际上操作系统提供的函数

对计时中断周期的修正精度仅为0.1xs。如图1所

示,修正前计时中断周期为15 625 Ixs,时钟准确度

为2.7×10~,修正后计时中断周期为15 624.6 IXS,

时钟准确度为2.5×10一。

一r

14:26:24 14:30:36 14:34:48 14:39:00 14:43:20 I4:47:46 14:5l:58

数据时间

图1 BIOS计时中断周期修正前后时钟曲线图

如果使实际周期比理想周期偏小,则系统时钟

会逐步变慢;如果使实际周期比理想周期偏大,则系

统时钟会逐步变快,因此,可以通过对BIOS计时中

断周期的修正,即RTC时钟频率的修正,来实现对

系统时钟快慢的控制。

3 实现方法

3.1函数说明

Windows操作系统(NT 3.5、WIN2000之后)提

供两个API函数,对计时中断周期进行修正:

BOOL GetSystemTimeAdjustment(//获取计时中断

周期调整信息

PDWORD lpTimeAdjustment,//调整计时中断周

期,单位0.1

PDWORD lpTimelncrement,//标称计时中断周

期,单位0.1xs

PBOOL lpTimeAdjustmentDiabled);//是否调整

BOOL setSystemTimeA diusment(//设置计时中断周

期调整

DWORD dwTimeAdjusment,//调整计时中断周

期,单位0.1

BOOL bTimeAdjustmentDisabied);//是否调整

需要注意的是,调用SetSystemTimeAdjustment

第3期 频率修正法精确控制计算机时间 ・31・

前,必须先调用OpenProcessToken函数赋予进程

TOKEN

NAME权限,否则会无法更改系统计时中断周期。

3.2软件设计 ADJUST—PRIVILEGES权限,然后调用Ad-

usTokenPrivieges函数赋予进程SE—SYSTEMTIME—

软件设计流程如图2所示。

图2软件设计流程图

软件在接收外部时问基准(笔者采用氢原子钟 断周期户为大于等于P 的最小整数,即可慢慢将系

的B码信号)后,计算出本机时间与基准时间的偏 统时问拉回,但如果此时Af为负,即表示系统时间

差△ ,如果△£有效且大于0.5 ms(计算机时间改正

的最高精度),则直接改正计算机时间,否则在累积 之,取P为小于等于 的最大整数。

正在往回调整,则不用再进行计时中断周期修正;

考虑到Windows操作系统是基于消息机制的多

任务系统,测量数据经常会有突跳的大数出现,这些 计算出新的计时中断周期,计算公式为

定数据量后,计算出本机的时钟频率偏差△厂,并

P =P0×(1+

数据可能导致系统频率偏差计算出现较大误差,因

此必须予以剔除。程序设计时用已有累积数据进行

最小二乘法拟合,预报下一个数据值,并用预报值对

实测值进行有效性检验。

其中Pn为当前计时中断周期,此时可以认为P

是相对准确的计时中断周期,因此,如果△ 大于控

制精度,即系统时间快于基准时问,则取新的计时中

32・ 宇航计测技术 2010矩

4 实测结果

实际测试方法如下:分频钟将原子钟输出的

5MHz信号转化为同步的B码信号和秒信号,测试 率修正与控制,能够使计算机时钟频率的准确度获得

结束语

从本文的描述可知,通过对计算机时钟频率的频

计算机实时接收B码信号,并采用频率修正法校准

本机系统时间,然后利用计算机串口输出同步秒信

号(参考本刊2009年第2期作者的文章:计算机时

间同步误差的高精度测试方法),与分频钟输出秒

进行时差测量。测量结果如图3所示。

显著提高,并实现对计算机时间的精确控制,使得计

算机时间校准精度达到亚毫秒量级。该方法已经投

入实际应用,且连续、稳定运行有一年多,从而证明该

方法切实有效、可靠,具有精度高、稳定性好等特点,

相比利用硬件实现的计算机高精度时间同步,该方法

实现简单、成本低廉,具有较高的实用价值。

本文所做的试验与测试均是在Windows平台下

进行,由于计算机硬件系统基本相同,且其他类型操

作系统平台,如UNIX、Linux等,其内核的时钟处理

机制与Windows相似,因此,同样可以通过本文描述

的方法来实现对计算机时间的精确控制。

参考文献

[1] Michael LombaMi.Computermeynchronizaton[J].

Time and frequency division national institute of stand・

ards and technology.

图3计算机时间校准实测数据曲线图

[2]ohan Nion.Implementontnuousy updatng hih—

esoluton tme provideror windows[J].MSDN.2004,

从图中可以看出,测量时差值在±0.1 ms之问

来回变化,控制精度达0.1ns(20-),这正是对计算

机时钟进行频率控制的结果。实测数据连续、稳定,

03。

[3]邢群科,温天江.基于MC146818 RTC和Int8254 PI

的一种通用时钟驱动的实现方法[J].北京:微计算机

信息,2005.

充分验证了此方法的有效性与可靠性。

[4] 贺鹏,李菁,吴海涛.计算机系统的时间服务研究与应

用[J].西安:航空计算技术,2003,9.

(上接第28页)

应速率也随之增加。(2)检测器处铯原子速率分布 并未改变。此模拟计算对指导双极型磁选态铯束

密度最大值对应速率保持在140 m/s附近,不随铯 管束光学的设计和跃迁谱线线宽公式的导出有较

炉温度升高而改变,速率分布曲线变化很小。 大帮助。

参考文献

5 结束语

铯炉准直缝至A选态磁铁出口处铯原子速率

分布服从麦克斯韦分布,分布密度最大值符合最

[1] 王义遒,王庆吉,傅济时等.量子频标原理[M].科学

出版社,I986:281.

[2] S.E.Koonin著,秦克诚译.计算物理学[M].高等教育

出版社,1992.

可几速率的理论值,随铯炉温度增加而增大。经

过微波腔和B磁铁后,在检测器处,其速率分布已

不再符合麦克斯韦分布,分布密度最大值不随铯

炉温度改变,只和束光学设计的参数有关。铯炉

温度改变只是改变了绝对原子数目,但相对分布

3] 王义遒,王庆吉,傅济时等.量子频标原理[M].科学

出版社,1986:275~282.

[4]王义遒,王庆吉,傅济时等.量子频标原理[M].科学

出版社,1986:275~302.