梁 軍 冉建華
(中國船舶重工集團公司第七二二研究所 武漢 430079)
在作為當(dāng)代科學(xué)技術(shù)和軍事技術(shù)的標(biāo)志之一的航天和導(dǎo)彈試驗中,為了實現(xiàn)對飛行器的測量(測量其位置、速度、加速度和飛行姿態(tài))和控制(控制其飛行狀態(tài)),最早提出了現(xiàn)代時間統(tǒng)一系統(tǒng)的概念和要求。時間統(tǒng)一系統(tǒng)為國防科研試驗提供標(biāo)準(zhǔn)時間和頻率信號,以實現(xiàn)整個試驗系統(tǒng)時間和頻率的統(tǒng)一[1]。
時間和頻率的統(tǒng)一通過授時來實現(xiàn)。如圖1,時間統(tǒng)一系統(tǒng)將標(biāo)準(zhǔn)時間通過無線或有線的方式傳遞給科研試驗系統(tǒng)中各個分設(shè)備,分設(shè)備在獲取標(biāo)準(zhǔn)時間后進行守時并輸出秒脈沖(1PPS)。通常秒脈沖的頻率是1Hz、脈寬可調(diào)、脈沖的上升/下降沿與秒同步,精度可達到微秒級甚至更高。秒脈沖用于有線方式的逐級時間傳遞并與時間用戶接口,同時也是考核時間精度指標(biāo)的重點測試對象。
圖1 時間統(tǒng)一系統(tǒng)授時示意圖
在完成授時工作后,檢驗系統(tǒng)中各分設(shè)備的時間和頻率的統(tǒng)一性是必須的。通常使用數(shù)字示波器來測量各分設(shè)備輸出的秒脈沖的誤差,在實際工作中存在一些不便之處,例如攜帶不方便、現(xiàn)場取電困難、不能實時完整記錄測量結(jié)果、讀取測量結(jié)果不夠直觀方便等。為此,本文提出了一種基于單片機的秒脈沖誤差測量系統(tǒng)構(gòu)建方案,對秒脈沖誤差進行實時自動測量、采集、存儲和后續(xù)數(shù)據(jù)分析。
在時間統(tǒng)一系統(tǒng)完成對系統(tǒng)中各設(shè)備的授時工作后,系統(tǒng)中各設(shè)備在獲取的標(biāo)準(zhǔn)時間上進行守時并輸出秒脈沖A,這里假定秒脈沖A下降沿與秒同步。
為了測量秒脈沖A的誤差,需要獲得一個標(biāo)準(zhǔn)秒脈沖B與之進行對比。前面所述的時間統(tǒng)一系統(tǒng)輸出的秒脈沖認為是標(biāo)準(zhǔn)的秒脈沖,但在實際試驗系統(tǒng)中分設(shè)備分布廣泛,以此為標(biāo)準(zhǔn)秒脈沖不方便測量,需要另外尋找便攜式的標(biāo)準(zhǔn)秒脈沖。實際應(yīng)用中選用GARMIN公司的GPS接收機GPS25LVS產(chǎn)生的秒脈沖作為標(biāo)準(zhǔn)秒脈沖B,它可以提供精度為±1ms的秒脈沖且脈寬可調(diào),上升沿與GPS秒同步。測量對象示意圖如圖2所示。
圖2 測量對象示意圖
綜上所述,測量對象就是在同一秒內(nèi),秒脈沖A的下降沿與秒脈沖 B的上升沿之間的時間間隔T0,T0越小說明秒脈沖A的誤差越小。同時需要注意在實際情況中,在同一秒內(nèi)秒脈沖A相對標(biāo)準(zhǔn)秒脈沖B有超前和滯后兩種可能,實際測量中也應(yīng)給出明確的結(jié)果。
使用單片機的內(nèi)置計時器對被測秒脈沖A和標(biāo)準(zhǔn)秒脈沖B的到達時間間隔進行計時,當(dāng)某個脈沖到達時啟動計時,另一個脈沖到達時停止計時,忽略對計時器進行啟動和停止等操作所帶來的誤差,則計時器停止后的時間值即為秒脈沖誤差。通過判斷在同一秒內(nèi)兩個秒脈沖引起單片機中斷的先后順序,可以明確被測秒脈沖相對標(biāo)準(zhǔn)秒脈沖是超前還是滯后。
AT89C2051單片機有兩個外部中斷源INT0、INT1,觸發(fā)方式有低電平觸發(fā)和負跳變觸發(fā)兩種方式,在測量過程中選負跳變觸發(fā)方式;內(nèi)含一個16位的計數(shù)寄存器,最大的計數(shù)量程為65536。晶振頻率選用22.1184MHz。
AT 89C2051單片機中每個機器周期內(nèi)部包含12個時鐘振蕩器周期,單片機指令的執(zhí)行時間以機器周期為單位,不難得出單周期指令的執(zhí)行時間t[2]:
當(dāng)單片機中定時/計數(shù)器模塊工作在定時器模式,計數(shù)寄存器的脈沖信號取自內(nèi)部機器周期,即晶振經(jīng)過12分頻后獲得一個脈沖源提供給單片機的定時器用,每輸入一個脈沖信號,計數(shù)寄存器加1一次。這樣,計數(shù)寄存器每加1一次所需的時間就是式(1)中的t。
該方法的核心思想是讓兩個秒脈沖的下降沿分別觸發(fā)單片機的兩個外部中斷(由于秒脈沖B的上升沿與秒同步,需要將秒脈沖B接一個反相器,這樣秒脈沖B原來的上升沿就可以觸發(fā)單片機的外部中斷),先觸發(fā)中斷的秒脈沖開啟單片機的計數(shù)器,后觸發(fā)中斷的秒脈沖關(guān)閉計數(shù)器,得到計數(shù)器的讀數(shù)n1及計數(shù)器的溢出次數(shù)n2,計算出總的計數(shù)值N:
根據(jù)得到的計數(shù)值N,可以計算出引起單片機兩次中斷的時間間隔T1:
根據(jù)此方法計算出來的T1可以近似認為是T0,后面將對T1進行必要的修正,使得 T1更接近于 T0。
根據(jù)前面介紹的測量方法,構(gòu)建了一個秒脈沖誤差測量系統(tǒng),組成框圖如圖3所示。
圖3 測量系統(tǒng)組成框圖
需要測量的是秒脈沖A的下降沿與秒脈沖B的上升沿之間的時間間隔T0,式(3)計算的時間間隔T1相對T0遺漏了部分時間:觸發(fā)單片機中斷后進入中斷服務(wù)程序的時間、計數(shù)器清零的時間、打開計數(shù)器的時間等。在實際測量中,需要對式(3)中的N進行必要的修正,即:
單片機計算出計數(shù)器的讀數(shù)n1和計數(shù)器的溢出次數(shù)n2后,將n1和n2通過單片機的串口輸入PC機的串口,由上位機軟件來計算T0并顯示,通過多次測量,將測量結(jié)果與示波器測量結(jié)果進行比較,可以確定參數(shù)C1和C2。
軟件設(shè)計部分包括51單片機的軟件設(shè)計和上位機軟件設(shè)計。
51單片機軟件的功能主要是計算并輸出單片機計數(shù)器的讀數(shù)n1、計數(shù)器的溢出次數(shù)n2及先引起單片機外部中斷的秒脈沖的特征碼(用來判斷被測秒脈沖B相對標(biāo)準(zhǔn)秒脈沖A是超前還是滯后),為了保證兩個秒脈沖的誤差測量結(jié)果是在同一秒內(nèi)進行的,由上位機軟件獲取兩個秒脈沖的時碼然后根據(jù)需要將單片機重啟,51單片機程序流程圖如圖4所示[5]。
圖4 單片機程序流程圖
上位機軟件主要實現(xiàn):監(jiān)控GPS25LVS模塊和被測設(shè)備的時碼信息,當(dāng)收到同一秒的時碼后自動將單片機重啟,保證測量系統(tǒng)的秒脈沖誤差測量值是在同一秒內(nèi)進行的;監(jiān)控、解析、顯示和存儲單片機串口傳來的測量結(jié)果數(shù)據(jù)。限于篇幅,這里不做進一步的展開。
從圖3可知,將標(biāo)準(zhǔn)秒脈沖B經(jīng)反相后接入單片機的INT0,同時將標(biāo)準(zhǔn)秒脈沖B不經(jīng)反相器(圖3中的開關(guān)K1合上)接入單片機的INT1,測量結(jié)果將是標(biāo)準(zhǔn)秒脈沖B的脈寬,圖5中給出的被測秒脈沖滯后值即為秒脈沖B的脈寬。標(biāo)準(zhǔn)秒脈沖的脈寬從20~980ms可調(diào)(用GPS配置軟件進行設(shè)置,步長20ms),用Tektronix DPO 4054示波器觀察并測量標(biāo)準(zhǔn)秒脈沖的脈寬,同時用基于單片機的秒脈沖誤差精確測量方法對標(biāo)準(zhǔn)脈沖的脈寬進行測量,以示波器的測量結(jié)果為標(biāo)準(zhǔn)值對用單片機測量的結(jié)果進行考核。
用GPS配置軟件設(shè)置GPS秒脈沖的不同脈寬,然后用示波器和單片機分別進行多次測量,部分測量結(jié)果見表1,單片機測量結(jié)果(只給出了對脈寬為20ms和980ms的秒脈沖的測量結(jié)果)如圖5所示。
表1 測量結(jié)果
通過上位機軟件可以直觀看到被測秒脈沖每秒的誤差測量值。秒脈沖的誤差最大不應(yīng)超過1s,該測量系統(tǒng)設(shè)定最大測量值小于1s,如果實際誤差大于等于1秒則給出錯誤提示,其最小測量值為15ms,量程范圍內(nèi)最大測量誤差為0.54μ s,該測量系統(tǒng)得到中船重工集團公司第七二二研究所計量檢測中心的檢定和認可。
圖5 單片機測量結(jié)果
本測量系統(tǒng)在外場試驗中攜帶方便,使用簡便。該測量系統(tǒng)給出的超前和滯后是相對的,但如果要得到絕對值,需要結(jié)合設(shè)備輸出的時碼進行判別。如果提高單片機計時器的輸入頻率和單片機處理速度等,測量精度可以更高,最小測量值可以更小。若需進一步集成化和小型化,還可以考慮將便攜機的供電和顯示功能用電池和液晶顯示模塊代替。
[1]中國人民解放軍總裝備部軍事訓(xùn)練教材編輯工作委員會.時間統(tǒng)一技術(shù)[M].北京:國防工業(yè)出版社,2004:1~4
[2]李學(xué)海.標(biāo)準(zhǔn)80C51單片機基礎(chǔ)教程-原理篇[M].北京:北京航空航天大學(xué)出版社,2006:57~60
[3]熊志昂,李紅瑞,賴順香.GPS技術(shù)與工程應(yīng)用[M].北京:國防工業(yè)出版社,2005:1~20
[4]宋崇汶,孫向前,謝毅.利用GPS對計算機實現(xiàn)精確授時[J].計算機測量與控制,2002,10(7):477
[5]戴佳,戴衛(wèi)恒.51單片機C語言應(yīng)用程序設(shè)計實例精講[M].北京:電子工業(yè)出版社,2007:350~361