一种基于温补时钟芯片的授时系统*

2012-07-25 05:34杨宇飞原玉磊朱亚峰李崇辉
传感器与微系统 2012年3期
关键词:钟差串口时钟

杨宇飞,原玉磊,朱亚峰,李崇辉

(1.信息工程大学 测绘学院,河南郑州 450052;2.河南工业大学 信息学院,河南 郑州 450001)

0 引言

在科技快速进步、经济飞速发展的今天,理论研究、科学实验和工程技术诸多领域都对授时设备的精度,稳定度,便携性等提出了越来越高的要求[1,2]。由于地球的自转运动和恒星自身位置的不断变化,在天文测量中,测站与观测目标的相对位置是不断变化的,在观测目标位置的同时必须记录相对应的时刻,时间记录的精度直接影响着观测的精度。

传统的天文作业中所采用的收录时号、时间比对、时钟守时获取时间的方法,存在操作复杂、便携性差等缺点[1]。本文研发的授时系统是利用DS12C887温补时钟芯片在单片机平台上建立的。该系统具有功耗低、体积小、携带方便、操作容易等优点[3],其精度也可以满足常规的天文测量作业以及其他一些授时服务的要求。

1 系统总体设计

1.1 系统的硬件构成

授时系统主要分为基本模块和功能模块2个部分,基本模块主要负责控制系统运行、参数设置、信号输入输出、系统比时和数据处理等工作,功能模块负责实现各种具体的功能。系统的总体构成如图1所示。

1.1.1 基本模块

图1 授时系统的硬件构成Fig 1 Hardware structure of timing system

1)单片机:授时系统使用的是STC89C52RC单片机芯片。该芯片由STC公司生产,内部含有Flash E2PROM储存器,内部程序储存空间为8 kB[4]。STC单片机内部RAM(随机读写存储器)为512 B,其作用主要是负责控制整个系统的工作,并负责与电脑、测量设备进行通信。

2)计算机:系统使用的是普通的台式机,E5300 2.6 GHz处理器,其主要负责对单片机进行初始化、时间比对,辅助单片机设置各种参数以及数据处理等工作。

1.1.2 功能模块

1)DS12C887数字温补时钟芯片:DS12C887是一种纯数字的时钟芯片,也是授时系统的核心部件。该芯片内部有一个精密的温度补偿电路监测电源状态,如果检测到主电源掉电时,它可以自动切换到备用电源供电[5]。DS12C887将时钟电路、晶振以及外围电路、锂电池及其相关电路等集成到一起,并具有与微处理器并行的接口,可方便地用于对时钟精度要求较高的各种智能化仪器仪表中。

2)DS18B20温度传感器:DS18B20是一种支持“单总线”接口的数字温度传感器。它具有体积小、功耗低、精度高、抗干扰能力强、对处理器要求低等特点,可直接将温度转换成串行的数字信号供单片机处理。它的适用电压范围为3.0~5.5V,测温范围 -55~ +125℃,在 -10 ~85℃精度为0.5℃,可在0.1 s内测出温度数据。

1.2 系统的软件构成

1.2.1 单片机系统控制软件

授时系统的单片机内嵌系统控制软件是在Keil编译语言平台上开发的,并在构建授时系统时写入单片机的ROM储存器中。

单片机运行时,其内部的软件通过改变单片机各个针脚在不同时刻输出的电平状态,实现对外围电路的控制和数据的传输。

授时系统中采用的单片机内部软件负责对温补时钟芯片、温度芯片的数据采集,与测量设备、计算机等外围设备的数据通信,以及对温补时钟芯片的闹钟中断、计算机设置时间外部中断申请的处理。

1.2.2 时间比对软件

授时系统的时间比对软件是在VC++集成开发环境下编写的。软件利用VC++提供的MSComm控件,通过加载控件、初始化并打开串口、捕获串口事件、串口数据读写和关闭串口等步骤,实现计算机与单片机的串口通信[6]。

当系统进行比时时,软件负责接收并记录授时系统发出的时间、温度数据,然后对数据进行误差分析,求出授时系统时间与标准时间的偏差,并对其进行修正。

2 系统实现

2.1 授时系统工作流程

当授时系统加电运行时,温补时钟芯片根据自身的实时钟每秒向单片机发出一个中断申请,单片机检测到中断申请后,先向串口发送一个脉冲信号供外部设备准确记录时间,然后,再读取中断申请时刻温补时钟芯片的日、时、分、秒值和DS18B20温度芯片采集的温度值,并通过串口发送给外围设备。图2为系统的工作流程图。

图2 授时系统工作流程Fig 2 Flow chart of timing system

2.2 DS12C887温补时钟芯片实现

DS12C887温补时钟芯片有几个针脚控制数据的输入输出:CS针脚为片选端,AS针脚为地址选通输入端,R/W为读写输入端,DS针脚为数据选择或读输入脚,IRQ为中断输出端。它还有一个分时复用地址数据总线负责与外部通信。授时系统中DS12C887温补时钟芯片与单片机的连接方式如图3所示。

图3 温补时钟芯片与单片机连接图Fig 3 Connecting diagram between DS12C887 and SCM

时钟芯片有4个控制寄存器,用于保存芯片的各种设置信息参数[5]。系统首次运行时,需要对时钟芯片的控制寄存器A,控制寄存器B进行设置,初始化温补时钟芯片。向控制寄存器A中写入0x20,开启晶振,保持时钟运行,向控制寄存器B中写入0x36,允许闹钟中断输出。设置初始时间和闹钟,令温补时钟芯片每秒产生一个闹钟中断。

2.3 DS18B20温度传感器实现

DS18B20温度传感器与单片机的连接比较简单,只需将其I/O口与单片机的一个I/O口连接,并将相应的电源连接即可。

DS18B20温度传感器开始工作时,需要先对其进行初始化。读取温度时,单片机向温度传感器发出温度转换指令,传感器会将温度数据存放在内部9字节的RAM中,供单片机读取。单片机读取数据经过转换,判断正负后就可以得到实际的温度值。

2.4 授时系统比时平台

授时系统的比时的基准时间是GPS(global positioning system)提供的高精度UTC(coordinated universal time)时间。授时系统所用的GPS计时器提取的GPS秒脉冲上升沿的时刻与GPS时刻相差在50 ns以内,与标准的GPS时刻相差在 1 μs以内[7]。

授时系统每次比时需要5 min。系统比时时,授时系统和GPS接收机同时向计算机发射秒脉冲及其发射时间。计算机同时记录下GPS提供的UTC时间以及其所对应的计算机counter时间,授时系统的脉冲时间以及其所对应的计算机的counter时间,并将它们保存记录。通过数据处理从而求出温补时钟芯片的钟差钟速。

3 系统精度分析

3.1 钟差钟速的计算

时钟时间与正确时间之间的差值,称为这个时钟在这一瞬间的钟差,用u表示[2]。若时钟的钟面时为t',正确时为t,则

钟差在单位时间内的变化称为钟速,用ω表示

式中u2,u1分别为时钟在钟面时x2和x1瞬间钟差。

授时系统的精度包括短期的计时稳定性和长期的计时稳定性。性能优良的授时系统不仅要求在短时间内计时稳定,不出现大的随机跳变,也要求在长时间计时时,与标准时间偏差较小,不出现大的系统偏差。

数据处理的步骤是先利用GPS提供的UTC时间计算出计算机counter时间的钟差,并进行最小二乘拟合,剔除拟合残差大于2倍中误差的数据[8,9],并再次进行最小二乘拟合,可以得到利用计算机counter时间计算GPS时间的公式。根据授时系统比时数据中的计算机counter时间求出授时系统秒脉冲到达计算机所对应的GPS时间,并进行最小二乘拟合,计算出授时系统的钟差钟速。图4为钟差钟速的计算步骤。

图4 钟差钟速计算步骤Fig 4 Calculation procedure of clock error and clock rate

本文利用授时系统的时间比对平台进行时间比对试验,以检验授时系统的计时精度。

3.2 短时间计时稳定性

对短时间的实验数据进行处理分析,可以得出授时系统在短时间内的钟差变化。图5是实验所得的一段1 min的授时系统钟差数据进行一次线性最小二乘拟合后的钟差残差。

图5 1 min钟差线性拟合残差Fig 5 Linear fitting residual error of 1min clock error

由图5可以看出:系统在短时间内钟差比较稳定,随机跳变在10-5s以内。

3.3 长时间计时精度

天文测量对授时系统的钟速稳定性要求较高,一等天文测量对授时设备的要求是10h钟速互差不超过10ms/h,图6是连续55 h时间比对实验的数据计算所得的钟速。

图6 授时系统长时间钟速变化Fig 6 Long-term change clock rate of timing system

从图中可以看出:系统的钟速稳定在3~6.5 ms/h之间,钟速最大互差为3.5 ms/h,符合一等天文测量的要求。

4 结束语

本文基于DS12C887温补时钟芯片设计实现了一个新型天文授时系统。该系统每隔一秒向外部设备发射一组时间数据和温度数据,可实现长时间自动计时测温,而且系统可以进行时间比对,进一步提高授时精度。连续多天的实验表明:该系统运行稳定,精度较高,可以满足一般天文测量和其他外部设备的授时需求。

[1]李征航,魏二虎,王正涛,等.空间大地测量学[M].武汉:武汉大学出版社,2010:37-43.

[2]李钟明,王崇华,王志源,等.大地天文学[M].郑州:信息工程大学,2003.

[3]原玉磊,张 超,杨宇飞.一种基于单片机的授时系统[J].国外电子测量技术,2010,29(12):81 -84.

[4]郭天祥.新概念51单片机教程[M].北京:电子工业出版社2009:323-342.

[5]林国清,李见为,王崇文.一种新型的时钟日历芯片DS12C887[J].国外电子元器件2002(3):61 -63.

[6]李景峰,杨丽娜,潘 恒.Visual C++串口通信技术详解[M].北京:机械工业出版社2010:51-57.

[7]张 超,郑 勇,李长会.GPS在天文测量中的应用[J].全球定位系统,2002,27(1):33 -35.

[8]Li Chonghui,Zhang Jian,Yang Yufei.Analysis on prediction of long-term clock error of computer time[C]//2010 International Conference on Future Computer,Control and Communication,FCCC 2010,2010:206 -209.

[9]朱永兴,张 超.应用抗差最小二乘处理天文测量时间比对数据[J].测绘信息与工程,2010,35(3):21 -23.

猜你喜欢
钟差串口时钟
基于长短期记忆神经网络的导航卫星钟差预报
别样的“时钟”
浅谈AB PLC串口跟RFID传感器的通讯应用
古代的时钟
IGS快速/超快速卫星钟差精度评定与分析
有趣的时钟
实时干涉测量中对流层延迟与钟差精修正建模
时钟会开“花”
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索