梁 軍 冉建華
(中國船舶重工集團公司第七二二研究所 武漢 430079)
在作為當代科學技術和軍事技術的標志之一的航天和導彈試驗中,為了實現對飛行器的測量(測量其位置、速度、加速度和飛行姿態)和控制(控制其飛行狀態),最早提出了現代時間統一系統的概念和要求。時間統一系統為國防科研試驗提供標準時間和頻率信號,以實現整個試驗系統時間和頻率的統一[1]。
時間和頻率的統一通過授時來實現。如圖1,時間統一系統將標準時間通過無線或有線的方式傳遞給科研試驗系統中各個分設備,分設備在獲取標準時間后進行守時并輸出秒脈沖(1PPS)。通常秒脈沖的頻率是1Hz、脈寬可調、脈沖的上升/下降沿與秒同步,精度可達到微秒級甚至更高。秒脈沖用于有線方式的逐級時間傳遞并與時間用戶接口,同時也是考核時間精度指標的重點測試對象。

圖1 時間統一系統授時示意圖
在完成授時工作后,檢驗系統中各分設備的時間和頻率的統一性是必須的。通常使用數字示波器來測量各分設備輸出的秒脈沖的誤差,在實際工作中存在一些不便之處,例如攜帶不方便、現場取電困難、不能實時完整記錄測量結果、讀取測量結果不夠直觀方便等。為此,本文提出了一種基于單片機的秒脈沖誤差測量系統構建方案,對秒脈沖誤差進行實時自動測量、采集、存儲和后續數據分析。
在時間統一系統完成對系統中各設備的授時工作后,系統中各設備在獲取的標準時間上進行守時并輸出秒脈沖A,這里假定秒脈沖A下降沿與秒同步。
為了測量秒脈沖A的誤差,需要獲得一個標準秒脈沖B與之進行對比。前面所述的時間統一系統輸出的秒脈沖認為是標準的秒脈沖,但在實際試驗系統中分設備分布廣泛,以此為標準秒脈沖不方便測量,需要另外尋找便攜式的標準秒脈沖。實際應用中選用GARMIN公司的GPS接收機GPS25LVS產生的秒脈沖作為標準秒脈沖B,它可以提供精度為±1ms的秒脈沖且脈寬可調,上升沿與GPS秒同步。測量對象示意圖如圖2所示。

圖2 測量對象示意圖
綜上所述,測量對象就是在同一秒內,秒脈沖A的下降沿與秒脈沖 B的上升沿之間的時間間隔T0,T0越小說明秒脈沖A的誤差越小。同時需要注意在實際情況中,在同一秒內秒脈沖A相對標準秒脈沖B有超前和滯后兩種可能,實際測量中也應給出明確的結果。
使用單片機的內置計時器對被測秒脈沖A和標準秒脈沖B的到達時間間隔進行計時,當某個脈沖到達時啟動計時,另一個脈沖到達時停止計時,忽略對計時器進行啟動和停止等操作所帶來的誤差,則計時器停止后的時間值即為秒脈沖誤差。通過判斷在同一秒內兩個秒脈沖引起單片機中斷的先后順序,可以明確被測秒脈沖相對標準秒脈沖是超前還是滯后。
AT89C2051單片機有兩個外部中斷源INT0、INT1,觸發方式有低電平觸發和負跳變觸發兩種方式,在測量過程中選負跳變觸發方式;內含一個16位的計數寄存器,最大的計數量程為65536。晶振頻率選用22.1184MHz。
AT 89C2051單片機中每個機器周期內部包含12個時鐘振蕩器周期,單片機指令的執行時間以機器周期為單位,不難得出單周期指令的執行時間t[2]:

當單片機中定時/計數器模塊工作在定時器模式,計數寄存器的脈沖信號取自內部機器周期,即晶振經過12分頻后獲得一個脈沖源提供給單片機的定時器用,每輸入一個脈沖信號,計數寄存器加1一次。這樣,計數寄存器每加1一次所需的時間就是式(1)中的t。
該方法的核心思想是讓兩個秒脈沖的下降沿分別觸發單片機的兩個外部中斷(由于秒脈沖B的上升沿與秒同步,需要將秒脈沖B接一個反相器,這樣秒脈沖B原來的上升沿就可以觸發單片機的外部中斷),先觸發中斷的秒脈沖開啟單片機的計數器,后觸發中斷的秒脈沖關閉計數器,得到計數器的讀數n1及計數器的溢出次數n2,計算出總的計數值N:

根據得到的計數值N,可以計算出引起單片機兩次中斷的時間間隔T1:

根據此方法計算出來的T1可以近似認為是T0,后面將對T1進行必要的修正,使得 T1更接近于 T0。
根據前面介紹的測量方法,構建了一個秒脈沖誤差測量系統,組成框圖如圖3所示。

圖3 測量系統組成框圖
需要測量的是秒脈沖A的下降沿與秒脈沖B的上升沿之間的時間間隔T0,式(3)計算的時間間隔T1相對T0遺漏了部分時間:觸發單片機中斷后進入中斷服務程序的時間、計數器清零的時間、打開計數器的時間等。在實際測量中,需要對式(3)中的N進行必要的修正,即:

單片機計算出計數器的讀數n1和計數器的溢出次數n2后,將n1和n2通過單片機的串口輸入PC機的串口,由上位機軟件來計算T0并顯示,通過多次測量,將測量結果與示波器測量結果進行比較,可以確定參數C1和C2。
軟件設計部分包括51單片機的軟件設計和上位機軟件設計。
51單片機軟件的功能主要是計算并輸出單片機計數器的讀數n1、計數器的溢出次數n2及先引起單片機外部中斷的秒脈沖的特征碼(用來判斷被測秒脈沖B相對標準秒脈沖A是超前還是滯后),為了保證兩個秒脈沖的誤差測量結果是在同一秒內進行的,由上位機軟件獲取兩個秒脈沖的時碼然后根據需要將單片機重啟,51單片機程序流程圖如圖4所示[5]。

圖4 單片機程序流程圖
上位機軟件主要實現:監控GPS25LVS模塊和被測設備的時碼信息,當收到同一秒的時碼后自動將單片機重啟,保證測量系統的秒脈沖誤差測量值是在同一秒內進行的;監控、解析、顯示和存儲單片機串口傳來的測量結果數據。限于篇幅,這里不做進一步的展開。
從圖3可知,將標準秒脈沖B經反相后接入單片機的INT0,同時將標準秒脈沖B不經反相器(圖3中的開關K1合上)接入單片機的INT1,測量結果將是標準秒脈沖B的脈寬,圖5中給出的被測秒脈沖滯后值即為秒脈沖B的脈寬。標準秒脈沖的脈寬從20~980ms可調(用GPS配置軟件進行設置,步長20ms),用Tektronix DPO 4054示波器觀察并測量標準秒脈沖的脈寬,同時用基于單片機的秒脈沖誤差精確測量方法對標準脈沖的脈寬進行測量,以示波器的測量結果為標準值對用單片機測量的結果進行考核。
用GPS配置軟件設置GPS秒脈沖的不同脈寬,然后用示波器和單片機分別進行多次測量,部分測量結果見表1,單片機測量結果(只給出了對脈寬為20ms和980ms的秒脈沖的測量結果)如圖5所示。

表1 測量結果
通過上位機軟件可以直觀看到被測秒脈沖每秒的誤差測量值。秒脈沖的誤差最大不應超過1s,該測量系統設定最大測量值小于1s,如果實際誤差大于等于1秒則給出錯誤提示,其最小測量值為15ms,量程范圍內最大測量誤差為0.54μ s,該測量系統得到中船重工集團公司第七二二研究所計量檢測中心的檢定和認可。

圖5 單片機測量結果
本測量系統在外場試驗中攜帶方便,使用簡便。該測量系統給出的超前和滯后是相對的,但如果要得到絕對值,需要結合設備輸出的時碼進行判別。如果提高單片機計時器的輸入頻率和單片機處理速度等,測量精度可以更高,最小測量值可以更小。若需進一步集成化和小型化,還可以考慮將便攜機的供電和顯示功能用電池和液晶顯示模塊代替。
[1]中國人民解放軍總裝備部軍事訓練教材編輯工作委員會.時間統一技術[M].北京:國防工業出版社,2004:1~4
[2]李學海.標準80C51單片機基礎教程-原理篇[M].北京:北京航空航天大學出版社,2006:57~60
[3]熊志昂,李紅瑞,賴順香.GPS技術與工程應用[M].北京:國防工業出版社,2005:1~20
[4]宋崇汶,孫向前,謝毅.利用GPS對計算機實現精確授時[J].計算機測量與控制,2002,10(7):477
[5]戴佳,戴衛恒.51單片機C語言應用程序設計實例精講[M].北京:電子工業出版社,2007:350~361