楊宇飛,原玉磊,朱亞峰,李崇輝
(1.信息工程大學(xué) 測繪學(xué)院,河南鄭州 450052;2.河南工業(yè)大學(xué) 信息學(xué)院,河南 鄭州 450001)
在科技快速進步、經(jīng)濟飛速發(fā)展的今天,理論研究、科學(xué)實驗和工程技術(shù)諸多領(lǐng)域都對授時設(shè)備的精度,穩(wěn)定度,便攜性等提出了越來越高的要求[1,2]。由于地球的自轉(zhuǎn)運動和恒星自身位置的不斷變化,在天文測量中,測站與觀測目標(biāo)的相對位置是不斷變化的,在觀測目標(biāo)位置的同時必須記錄相對應(yīng)的時刻,時間記錄的精度直接影響著觀測的精度。
傳統(tǒng)的天文作業(yè)中所采用的收錄時號、時間比對、時鐘守時獲取時間的方法,存在操作復(fù)雜、便攜性差等缺點[1]。本文研發(fā)的授時系統(tǒng)是利用DS12C887溫補時鐘芯片在單片機平臺上建立的。該系統(tǒng)具有功耗低、體積小、攜帶方便、操作容易等優(yōu)點[3],其精度也可以滿足常規(guī)的天文測量作業(yè)以及其他一些授時服務(wù)的要求。
授時系統(tǒng)主要分為基本模塊和功能模塊2個部分,基本模塊主要負責(zé)控制系統(tǒng)運行、參數(shù)設(shè)置、信號輸入輸出、系統(tǒng)比時和數(shù)據(jù)處理等工作,功能模塊負責(zé)實現(xiàn)各種具體的功能。系統(tǒng)的總體構(gòu)成如圖1所示。
1.1.1 基本模塊
圖1 授時系統(tǒng)的硬件構(gòu)成Fig 1 Hardware structure of timing system
1)單片機:授時系統(tǒng)使用的是STC89C52RC單片機芯片。該芯片由STC公司生產(chǎn),內(nèi)部含有Flash E2PROM儲存器,內(nèi)部程序儲存空間為8 kB[4]。STC單片機內(nèi)部RAM(隨機讀寫存儲器)為512 B,其作用主要是負責(zé)控制整個系統(tǒng)的工作,并負責(zé)與電腦、測量設(shè)備進行通信。
2)計算機:系統(tǒng)使用的是普通的臺式機,E5300 2.6 GHz處理器,其主要負責(zé)對單片機進行初始化、時間比對,輔助單片機設(shè)置各種參數(shù)以及數(shù)據(jù)處理等工作。
1.1.2 功能模塊
1)DS12C887數(shù)字溫補時鐘芯片:DS12C887是一種純數(shù)字的時鐘芯片,也是授時系統(tǒng)的核心部件。該芯片內(nèi)部有一個精密的溫度補償電路監(jiān)測電源狀態(tài),如果檢測到主電源掉電時,它可以自動切換到備用電源供電[5]。DS12C887將時鐘電路、晶振以及外圍電路、鋰電池及其相關(guān)電路等集成到一起,并具有與微處理器并行的接口,可方便地用于對時鐘精度要求較高的各種智能化儀器儀表中。
2)DS18B20溫度傳感器:DS18B20是一種支持“單總線”接口的數(shù)字溫度傳感器。它具有體積小、功耗低、精度高、抗干擾能力強、對處理器要求低等特點,可直接將溫度轉(zhuǎn)換成串行的數(shù)字信號供單片機處理。它的適用電壓范圍為3.0~5.5V,測溫范圍 -55~ +125℃,在 -10 ~85℃精度為0.5℃,可在0.1 s內(nèi)測出溫度數(shù)據(jù)。
1.2.1 單片機系統(tǒng)控制軟件
授時系統(tǒng)的單片機內(nèi)嵌系統(tǒng)控制軟件是在Keil編譯語言平臺上開發(fā)的,并在構(gòu)建授時系統(tǒng)時寫入單片機的ROM儲存器中。
單片機運行時,其內(nèi)部的軟件通過改變單片機各個針腳在不同時刻輸出的電平狀態(tài),實現(xiàn)對外圍電路的控制和數(shù)據(jù)的傳輸。
授時系統(tǒng)中采用的單片機內(nèi)部軟件負責(zé)對溫補時鐘芯片、溫度芯片的數(shù)據(jù)采集,與測量設(shè)備、計算機等外圍設(shè)備的數(shù)據(jù)通信,以及對溫補時鐘芯片的鬧鐘中斷、計算機設(shè)置時間外部中斷申請的處理。
1.2.2 時間比對軟件
授時系統(tǒng)的時間比對軟件是在VC++集成開發(fā)環(huán)境下編寫的。軟件利用VC++提供的MSComm控件,通過加載控件、初始化并打開串口、捕獲串口事件、串口數(shù)據(jù)讀寫和關(guān)閉串口等步驟,實現(xiàn)計算機與單片機的串口通信[6]。
當(dāng)系統(tǒng)進行比時時,軟件負責(zé)接收并記錄授時系統(tǒng)發(fā)出的時間、溫度數(shù)據(jù),然后對數(shù)據(jù)進行誤差分析,求出授時系統(tǒng)時間與標(biāo)準(zhǔn)時間的偏差,并對其進行修正。
當(dāng)授時系統(tǒng)加電運行時,溫補時鐘芯片根據(jù)自身的實時鐘每秒向單片機發(fā)出一個中斷申請,單片機檢測到中斷申請后,先向串口發(fā)送一個脈沖信號供外部設(shè)備準(zhǔn)確記錄時間,然后,再讀取中斷申請時刻溫補時鐘芯片的日、時、分、秒值和DS18B20溫度芯片采集的溫度值,并通過串口發(fā)送給外圍設(shè)備。圖2為系統(tǒng)的工作流程圖。
圖2 授時系統(tǒng)工作流程Fig 2 Flow chart of timing system
DS12C887溫補時鐘芯片有幾個針腳控制數(shù)據(jù)的輸入輸出:CS針腳為片選端,AS針腳為地址選通輸入端,R/W為讀寫輸入端,DS針腳為數(shù)據(jù)選擇或讀輸入腳,IRQ為中斷輸出端。它還有一個分時復(fù)用地址數(shù)據(jù)總線負責(zé)與外部通信。授時系統(tǒng)中DS12C887溫補時鐘芯片與單片機的連接方式如圖3所示。
圖3 溫補時鐘芯片與單片機連接圖Fig 3 Connecting diagram between DS12C887 and SCM
時鐘芯片有4個控制寄存器,用于保存芯片的各種設(shè)置信息參數(shù)[5]。系統(tǒng)首次運行時,需要對時鐘芯片的控制寄存器A,控制寄存器B進行設(shè)置,初始化溫補時鐘芯片。向控制寄存器A中寫入0x20,開啟晶振,保持時鐘運行,向控制寄存器B中寫入0x36,允許鬧鐘中斷輸出。設(shè)置初始時間和鬧鐘,令溫補時鐘芯片每秒產(chǎn)生一個鬧鐘中斷。
DS18B20溫度傳感器與單片機的連接比較簡單,只需將其I/O口與單片機的一個I/O口連接,并將相應(yīng)的電源連接即可。
DS18B20溫度傳感器開始工作時,需要先對其進行初始化。讀取溫度時,單片機向溫度傳感器發(fā)出溫度轉(zhuǎn)換指令,傳感器會將溫度數(shù)據(jù)存放在內(nèi)部9字節(jié)的RAM中,供單片機讀取。單片機讀取數(shù)據(jù)經(jīng)過轉(zhuǎn)換,判斷正負后就可以得到實際的溫度值。
授時系統(tǒng)的比時的基準(zhǔn)時間是GPS(global positioning system)提供的高精度UTC(coordinated universal time)時間。授時系統(tǒng)所用的GPS計時器提取的GPS秒脈沖上升沿的時刻與GPS時刻相差在50 ns以內(nèi),與標(biāo)準(zhǔn)的GPS時刻相差在 1 μs以內(nèi)[7]。
授時系統(tǒng)每次比時需要5 min。系統(tǒng)比時時,授時系統(tǒng)和GPS接收機同時向計算機發(fā)射秒脈沖及其發(fā)射時間。計算機同時記錄下GPS提供的UTC時間以及其所對應(yīng)的計算機counter時間,授時系統(tǒng)的脈沖時間以及其所對應(yīng)的計算機的counter時間,并將它們保存記錄。通過數(shù)據(jù)處理從而求出溫補時鐘芯片的鐘差鐘速。
時鐘時間與正確時間之間的差值,稱為這個時鐘在這一瞬間的鐘差,用u表示[2]。若時鐘的鐘面時為t',正確時為t,則
鐘差在單位時間內(nèi)的變化稱為鐘速,用ω表示
式中u2,u1分別為時鐘在鐘面時x2和x1瞬間鐘差。
授時系統(tǒng)的精度包括短期的計時穩(wěn)定性和長期的計時穩(wěn)定性。性能優(yōu)良的授時系統(tǒng)不僅要求在短時間內(nèi)計時穩(wěn)定,不出現(xiàn)大的隨機跳變,也要求在長時間計時時,與標(biāo)準(zhǔn)時間偏差較小,不出現(xiàn)大的系統(tǒng)偏差。
數(shù)據(jù)處理的步驟是先利用GPS提供的UTC時間計算出計算機counter時間的鐘差,并進行最小二乘擬合,剔除擬合殘差大于2倍中誤差的數(shù)據(jù)[8,9],并再次進行最小二乘擬合,可以得到利用計算機counter時間計算GPS時間的公式。根據(jù)授時系統(tǒng)比時數(shù)據(jù)中的計算機counter時間求出授時系統(tǒng)秒脈沖到達計算機所對應(yīng)的GPS時間,并進行最小二乘擬合,計算出授時系統(tǒng)的鐘差鐘速。圖4為鐘差鐘速的計算步驟。
圖4 鐘差鐘速計算步驟Fig 4 Calculation procedure of clock error and clock rate
本文利用授時系統(tǒng)的時間比對平臺進行時間比對試驗,以檢驗授時系統(tǒng)的計時精度。
對短時間的實驗數(shù)據(jù)進行處理分析,可以得出授時系統(tǒng)在短時間內(nèi)的鐘差變化。圖5是實驗所得的一段1 min的授時系統(tǒng)鐘差數(shù)據(jù)進行一次線性最小二乘擬合后的鐘差殘差。
圖5 1 min鐘差線性擬合殘差Fig 5 Linear fitting residual error of 1min clock error
由圖5可以看出:系統(tǒng)在短時間內(nèi)鐘差比較穩(wěn)定,隨機跳變在10-5s以內(nèi)。
天文測量對授時系統(tǒng)的鐘速穩(wěn)定性要求較高,一等天文測量對授時設(shè)備的要求是10h鐘速互差不超過10ms/h,圖6是連續(xù)55 h時間比對實驗的數(shù)據(jù)計算所得的鐘速。
圖6 授時系統(tǒng)長時間鐘速變化Fig 6 Long-term change clock rate of timing system
從圖中可以看出:系統(tǒng)的鐘速穩(wěn)定在3~6.5 ms/h之間,鐘速最大互差為3.5 ms/h,符合一等天文測量的要求。
本文基于DS12C887溫補時鐘芯片設(shè)計實現(xiàn)了一個新型天文授時系統(tǒng)。該系統(tǒng)每隔一秒向外部設(shè)備發(fā)射一組時間數(shù)據(jù)和溫度數(shù)據(jù),可實現(xiàn)長時間自動計時測溫,而且系統(tǒng)可以進行時間比對,進一步提高授時精度。連續(xù)多天的實驗表明:該系統(tǒng)運行穩(wěn)定,精度較高,可以滿足一般天文測量和其他外部設(shè)備的授時需求。
[1]李征航,魏二虎,王正濤,等.空間大地測量學(xué)[M].武漢:武漢大學(xué)出版社,2010:37-43.
[2]李鐘明,王崇華,王志源,等.大地天文學(xué)[M].鄭州:信息工程大學(xué),2003.
[3]原玉磊,張 超,楊宇飛.一種基于單片機的授時系統(tǒng)[J].國外電子測量技術(shù),2010,29(12):81 -84.
[4]郭天祥.新概念51單片機教程[M].北京:電子工業(yè)出版社2009:323-342.
[5]林國清,李見為,王崇文.一種新型的時鐘日歷芯片DS12C887[J].國外電子元器件2002(3):61 -63.
[6]李景峰,楊麗娜,潘 恒.Visual C++串口通信技術(shù)詳解[M].北京:機械工業(yè)出版社2010:51-57.
[7]張 超,鄭 勇,李長會.GPS在天文測量中的應(yīng)用[J].全球定位系統(tǒng),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,F(xiàn)CCC 2010,2010:206 -209.
[9]朱永興,張 超.應(yīng)用抗差最小二乘處理天文測量時間比對數(shù)據(jù)[J].測繪信息與工程,2010,35(3):21 -23.