基于IRIG-A碼輸出的超小型GPS時鐘設(shè)計
摘要 IRIG碼是一種通用的國際標(biāo)準(zhǔn)傳輸碼,廣泛應(yīng)用于時統(tǒng)設(shè)備之間的時間通信。本時鐘設(shè)計采用微控制器,依據(jù)GPS時鐘信號對本地晶振進(jìn)行頻率測量,根據(jù)測量結(jié)果實時調(diào)整時間單元的匹配計數(shù)值和控制IRIG時間碼的輸出;同時微控制器內(nèi)部建立一張實時的溫度頻率表,以供在GPS失步的情況下使用。該系統(tǒng)具有體積小、自適應(yīng)處理能力強(qiáng)的特點(diǎn)。
關(guān)鍵詞 IRIG-A碼 GPS LPC2132 頻率測量
引言
近年來,GPS(全球定位系統(tǒng))得到了廣泛的應(yīng)用。GPS不僅提供定位信息,同時也提供高精度的時間信號。在地震觀測系統(tǒng)中,數(shù)據(jù)采集裝置對時間有著極高的要求,目前普遍采用的是GPS同步授時和本地時鐘守時相結(jié)合的辦法獲取時間信息。每臺裝置都有自己的GPS接收機(jī)用于同步授時。這意味著即使在一個幾百米范圍內(nèi)的區(qū)域,由于每臺裝置所處的位置不同以及各接收機(jī)性能不可能完全一致,彼此之間的時間信息也仍然存在一定的誤差。如果在小區(qū)域范圍內(nèi),幾臺數(shù)據(jù)采集器同時采用一臺GPS接收機(jī)同步授時,則可消除上述誤差,時間統(tǒng)一和可靠性能得到進(jìn)一步提高。IRIG碼是國際通用的一種標(biāo)準(zhǔn)時間傳輸碼。它不僅包含秒符號信息,而且包含絕對時間信息,已經(jīng)廣泛應(yīng)用于時統(tǒng)裝置與用戶接收裝置之間的接口標(biāo)準(zhǔn),提高了發(fā)收端時間的一致性、可靠性。
1 IRIG碼格式規(guī)范
IRIG(Inter Range Instrumentation Group)碼,稱為“美國靶場儀器組碼”,把接收的GPS時間編碼,傳送給分布在不同地方的設(shè)備,以實現(xiàn)各設(shè)備之間的時鐘同步。該碼廣泛應(yīng)用于導(dǎo)彈、航天、遙測等時統(tǒng)設(shè)備中,實施精度高,穩(wěn)定性強(qiáng)。
IRIG碼包含100個碼元,每個碼元又有3種碼型:二進(jìn)制0、1和位置標(biāo)識符。分成3字段編碼:第1字段為年時間(天、時、分、秒),第2字段為控制功能函數(shù)字段,第3字段為直接用二進(jìn)制秒符號表示的天時間。每24小時循環(huán)1次。
IRIG串行碼主要有A、B、D、E、G、H六種時間格式,主要差別是時間編碼精度、碼元速率和二進(jìn)制時間信息的位數(shù)不同。實際常用的是A和B碼。A碼時幀周期為0.1 s,B碼時幀周期為1 s。
在本設(shè)計中采用了IRIGA串行時間碼編碼。IRIG碼分為直流(DC)碼和交流(AC)碼。DC碼和AC碼碼元周期均為1 ms。DC碼用脈寬來表示碼元,脈寬0.2 ms表示二進(jìn)制0,脈寬0.5 ms表示二進(jìn)制1,脈寬0.8 ms表示位置標(biāo)識符或參考碼元。AC碼用周期為0.1 ms的高幅和低幅正弦波的個數(shù)來表示碼元,參考碼元或位置標(biāo)示符用8個高幅和2個低幅表示,二進(jìn)制1用5個高幅和5個低幅表示,二進(jìn)制0用2個高幅和8個低幅表示。
2 IRIGA編碼設(shè)計
LPC2132 微控制器有1個8路10位A/D轉(zhuǎn)換器和1個10位D/A轉(zhuǎn)換器、2個32位定時器/計數(shù)器(帶4路捕獲和4路比較通道)、PWM單元(6路輸出)和看門狗、9個邊沿或電平觸發(fā)的外部中斷引腳。片內(nèi)晶體振蕩電路支持頻率為1~30 MHz。通過片內(nèi)PLL可實現(xiàn)最高為60 MHz的微控制器操作頻率。PLL的穩(wěn)定時間為100 μs。
在本設(shè)計中使用LPC2132和LEA4H GPS接收機(jī)組成一個時統(tǒng)設(shè)備的發(fā)送端。GPS接收機(jī)通過UART口,每秒鐘向微控制器發(fā)送1次數(shù)據(jù),1PPS脈沖信號接入微控制器的外部中斷EINT0。溫度傳感器TCN75采集周圍的環(huán)境溫度,并通過I2C總線把溫度數(shù)據(jù)傳送給微控制器。二階低通濾波電路對D/A轉(zhuǎn)換器輸出的波形進(jìn)行整形。微控制器維持一個本地時鐘計數(shù),產(chǎn)生毫秒、秒、分、時、天的時間,同時把時間信息按IRIGA碼的格式編碼。GPS時鐘電路框圖如圖1所示。
圖1 GPS時鐘電路框圖
微控制器根據(jù)1PPS信號不斷檢測本地晶振的頻率,根據(jù)檢測結(jié)果控制匹配寄存器的匹配值。微控制器內(nèi)部32位定時計數(shù)器T0一直對本地晶振頻率計數(shù),捕獲寄存器CR0在1PPS信號觸發(fā)下裝入當(dāng)前的計數(shù)值;匹配寄存器MR0用于設(shè)置IRIG DC碼波形的跳變沿和IRIG AC碼采樣點(diǎn)時刻,匹配寄存器MR1用于設(shè)置時間單元信號。軟件編碼設(shè)計框圖如圖2所示。
2.1 晶振頻率測量
32位計數(shù)器T0一直連續(xù)計數(shù)。當(dāng)1PPS信號到來時,產(chǎn)生中斷,捕獲寄存器CR0裝入T0當(dāng)前的計數(shù)值CT1并保存下來;當(dāng)下一個1PPS信號到來時,CR0裝入T0的計數(shù)值CT2,本地晶振頻率為(CT2-CT1)或(CT1+232-CT2)。T0計數(shù)溢出時的情況。
2.2 時間信息生成
微控制器采用對本地時鐘的計數(shù)來分別產(chǎn)生毫秒、秒、分、時、天的時間信息,并設(shè)置了毫秒、秒、分、時、天的軟件計數(shù)器。匹配寄存器MR1根據(jù)晶振當(dāng)前頻率值設(shè)置毫秒時刻的匹配值。當(dāng)匹配時,毫秒軟件計數(shù)器值加1。毫秒計數(shù)器計0~1000 ms的時間,并在秒時刻清零;秒、分、時、天計數(shù)器主要完成秒、分、時、天的計時。由于GPS接收機(jī)1 s發(fā)1次數(shù)據(jù)信息,所以對本地時鐘的同步精度是1 s,由于秒以下可能會產(chǎn)生誤差,所以微控制器還需進(jìn)行鐘差測量,把本地時鐘計時信息和GPS時間信息進(jìn)行比較。兩者之差大于1 s,直接修改本地時間信息。如果本地計時快,則把毫秒計數(shù)器計數(shù)節(jié)拍調(diào)慢一點(diǎn),即MR1毫秒時刻的匹配值設(shè)置偏大;反之,則把節(jié)拍調(diào)快一點(diǎn),直至誤差最小化。
圖2 軟件編碼設(shè)計框圖
2.3 DC碼編碼輸出
匹配寄存器MR0控制DC碼波形的翻轉(zhuǎn)。由于知道了32位計數(shù)器T0與1PPS的關(guān)系,因此可根據(jù)輸出碼元的脈寬確定跳變沿時刻的計數(shù)值。實際上,只要所提取的時間信息轉(zhuǎn)換成為IRIGA的格式,就可以按式(1)確定1幀碼元脈寬的跳變沿的計數(shù)值。為了使輸出的碼元及時、準(zhǔn)確,可以提前向匹配寄存器寫入下一個跳變沿的計數(shù)值,即在CTX值匹配時預(yù)置CTY值,如圖3所示。TX時刻對應(yīng)的計數(shù)值CTX:
式中TX單位為μs。
圖3 IRIGA碼產(chǎn)生的示意圖
2.4 AC碼編碼輸出
AC碼的每個正弦波采樣16個點(diǎn),各相鄰點(diǎn)之間的采樣時間間隔相等,其中第1個點(diǎn)和第17個點(diǎn)采樣時間間隔為1 ms。AC碼用高低幅正弦波個數(shù)表示(高幅和低幅正弦波采樣時間相同,相應(yīng)時刻幅值是前者為后者的3倍),并把正弦波采樣點(diǎn)存表。表1存放高幅正弦波數(shù)據(jù),表2存放低幅正弦波數(shù)據(jù)。在內(nèi)部存儲器中,表1和表2的入口地址不同,局部地址完全相同,尋址時只要跳到相應(yīng)的入口地址,后面的查表方式就完全一致。查表時刻由匹配寄存器控制,查表時把數(shù)據(jù)送入D/A轉(zhuǎn)換器,如圖4所示。在D/A轉(zhuǎn)換器輸出端,接隔直電容和低通濾波器整形輸出,同時匹配寄存器的匹配值還須根據(jù)所測的頻率不斷調(diào)整。
圖4 IRIG-A AC碼產(chǎn)生示意圖
軟件設(shè)計流程如圖5和圖6所示。
圖5 基準(zhǔn)時間產(chǎn)生流程
圖6 IRIG-A 直流和交流碼產(chǎn)生程序流程
如果GPS失步,則1PPS信號將不能用于晶振頻率的測量。晶體受溫度頻率特性及老化等各種因素的影響,會發(fā)生短期或長期的頻率漂移。為了使輸出的IRIGA碼仍具有較高的準(zhǔn)確度,解決的辦法是在內(nèi)部建立一張溫度頻率表,通過實時查表確定當(dāng)前的晶振頻率。在GPS同步時,微控制器利用1PPS信號不斷調(diào)整計數(shù)值CT1、CT2,同時利用溫度傳感器采集當(dāng)前工作溫度T,可按0.5°的溫度步差列一張[T;CT2CT1]溫度頻率表。只要GPS同步,這張溫度頻率表就在不斷更新,以確保該表是實時可用的;一旦GPS失步,微控制器查表,就可查得當(dāng)前的頻率值f,按式(1)確定TX時刻對應(yīng)的計數(shù)值CTX和確定AC碼的查表時刻,以保證IRIGA碼輸出的連貫性和高準(zhǔn)確性。
結(jié)語
本設(shè)計實現(xiàn)了IRIGA DC碼和AC碼的編碼輸出,兩種碼可根據(jù)實際需要選擇使用。DC碼和AC碼主要由軟件完成。在編程過程中,微控制器不斷檢測本地晶振的頻率。GPS同步時,用1PPS信號去計算頻率值,所得頻率值是十分準(zhǔn)確的,同時按溫度地址存表;GPS失步時,微控制器查溫度頻率表,同樣也能得到具有一定準(zhǔn)確度的頻率值。根據(jù)本地晶振頻率就可以準(zhǔn)確控制IRIG碼的輸出。該設(shè)計的實際電路體積小、功耗低,在GPS同步時有很高的輸出精度,可達(dá)μs量級,而在GPS失步時輸出也有較高的精度;同時可以靈活選擇使用DC碼和AC碼輸出,具有較高的應(yīng)用價值。
參考文獻(xiàn)
[1] 周立功,張華,等. 深入淺出ARM7 LPC213x/214x. 北京: 北京航空航天大學(xué)出版社,2005.
[2] 李洪濤,等.GPS應(yīng)用程序設(shè)計.北京: 科學(xué)出版社,2000.
[3] 馬紅皎,胡永輝. GPS&IRIGB碼時間系統(tǒng)分析. 電子科技,2005.
[4] 謝自美.電子線路設(shè)計g實驗g測試. 第2版. 武漢: 華中科技大學(xué)出版社,2000