新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 基于IRIG-A碼輸出的超小型GPS時鐘設(shè)計

基于IRIG-A碼輸出的超小型GPS時鐘設(shè)計

——
作者:朱祖揚 薛兵 時間:2007-01-26 來源:《EDN電子設(shè)計技術(shù)》 收藏

引言

本文引用地址:http://m.butianyuan.cn/article/21594.htm

  近年來,gps(全球定位系統(tǒng))得到了廣泛的應(yīng)用。gps不僅提供定位信息,同時也提供高精度的時間信號。在地震觀測系統(tǒng)中,數(shù)據(jù)采集裝置對時間有著極高的要求,目前普遍采用的是gps同步授時和本地時鐘守時相結(jié)合的辦法獲取時間信息。每臺裝置都有自己的gps接收機用于同步授時。這意味著即使在一個幾百米范圍內(nèi)的區(qū)域,由于每臺裝置所處的位置不同以及各接收機性能不可能完全一致,彼此之間的時間信息也仍然存在一定的誤差。如果在小區(qū)域范圍內(nèi),幾臺數(shù)據(jù)采集器同時采用一臺gps接收機同步授時,則可消除上述誤差,時間統(tǒng)一和可靠性能得到進一步提高。irig碼是國際通用的一種標準時間傳輸碼。它不僅包含秒符號信息,而且包含絕對時間信息,已經(jīng)廣泛應(yīng)用于時統(tǒng)裝置與用戶接收裝置之間的接口標準,提高了發(fā)收端時間的一致性、可靠性。

  1 irig碼格式規(guī)范

  irig(inter range instrumentation group)碼,稱為“美國靶場儀器組碼”,把接收的gps時間編碼,傳送給分布在不同地方的設(shè)備,以實現(xiàn)各設(shè)備之間的時鐘同步。該碼廣泛應(yīng)用于導(dǎo)彈、航天、遙測等時統(tǒng)設(shè)備中,實施精
度高,穩(wěn)定性強。

  irig碼包含100個碼元,每個碼元又有3種碼型:二進制0、1和位置標識符。分成3字段編碼:第1字段為年時間(天、時、分、秒),第2字段為控制功能函數(shù)字段,第3字段為直接用二進制秒符號表示的天時間。每24小時循環(huán)1次。

  irig串行碼主要有a、b、d、e、g、h六種時間格式,主要差別是時間編碼精度、碼元速率和二進制時間信息的位數(shù)不同。實際常用的是a和b碼。a碼時幀周期為0.1 s,b碼時幀周期為1 s。

  在本設(shè)計中采用了iriga串行時間碼編碼。irig碼分為直流(dc)碼和交流(ac)碼。dc碼和ac碼碼元周期均為1 ms。dc碼用脈寬來表示碼元,脈寬0.2 ms表示二進制0,脈寬0.5 ms表示二進制1,脈寬0.8 ms表示位置標識符或參考碼元。ac碼用周期為0.1 ms的高幅和低幅正弦波的個數(shù)來表示碼元,參考碼元或位置標示符用8個高幅和2個低幅表示,二進制1用5個高幅和5個低幅表示,二進制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接收機組成一個時統(tǒng)設(shè)備的發(fā)送端。gps接收機通過uart口,每秒鐘向微控制器發(fā)送1次數(shù)據(jù),1pps脈沖信號接入微控制器的外部中斷eint0。溫度傳感器tcn75采集周圍的環(huán)境溫度,并通過i2c總線把溫度數(shù)據(jù)傳送給微控制器。二階低通濾波電路對d/a轉(zhuǎn)換器輸出的波形進行整形。微控制器維持一個本地時鐘計數(shù),產(chǎn)生毫秒、秒、分、時、天的時間,同時把時間信息按iriga碼的格式編碼。gps時鐘電路框圖如圖1所示。

微控制器根據(jù)1pps信號不斷檢測本地晶振的頻率,根據(jù)檢測結(jié)果控制匹配寄存器的匹配值。微控制器內(nèi)部32位定時計數(shù)器t0一直對本地晶振頻率計數(shù),捕獲寄存器cr0在1pps信號觸發(fā)下裝入當(dāng)前的計數(shù)值;匹配寄存器mr0用于設(shè)置irig dc碼波形的跳變沿和irig ac碼采樣點時刻,匹配寄存器mr1用于設(shè)置時間單元信號。軟件編碼設(shè)計框圖如圖2所示。
2.1 晶振頻率測量

  32位計數(shù)器t0一直連續(xù)計數(shù)。當(dāng)1pps信號到來時,產(chǎn)生中斷,捕獲寄存器cr0裝入t0當(dāng)前的計數(shù)值ct1并保存下矗壞畢亂桓?pps信號到來時,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接收機1 s發(fā)1次數(shù)據(jù)信息,所以對本地時鐘的同步精度是1 s,由于秒以下可能會產(chǎn)生誤差,所以微控制器還需進行鐘差測量,把本地時鐘計時信息和gps時間信息進行比較。兩者之差大于1 s,直接修改本地時間信息。如果本地計時快,則把毫秒計數(shù)器計數(shù)節(jié)拍調(diào)慢一點,即mr1毫秒時刻的匹配值設(shè)置偏大;反之,則把節(jié)拍調(diào)快一點,直至誤差最小化。

2.3 dc碼編碼輸出

  匹配寄存器mr0控制dc碼波形的翻轉(zhuǎn)。由于知道了32位計數(shù)器t0與1pps的關(guān)系,因此可根據(jù)輸出碼元的脈寬確定跳變沿時刻的計數(shù)值。實際上,只要所提取的時間信息轉(zhuǎn)換成為iriga的格式,就可以按式(1)確定1幀碼元脈寬的跳變沿的計數(shù)值。為了使輸出的碼元及時、準確,可以提前向匹配寄存器寫入下一個跳變沿的計數(shù)值,即在ctx值匹配時預(yù)置cty值,如圖3所示。tx時刻對應(yīng)的計數(shù)值ctx:

式中tx單位為μs。
2.4 ac碼編碼輸出

  ac碼的每個正弦波采樣16個點,各相鄰點之間的采樣時間間隔相等,其中第1個點和第17個點采樣時間間隔為1 ms。ac碼用高低幅正弦波個數(shù)表示(高幅和低幅正弦波采樣時間相同,相應(yīng)時刻幅值是前者為后者的3倍),并把正弦波采樣點存表。表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)整。


軟件設(shè)計流程如圖5和圖6所示。

如果gps失步,則1pps信號將不能用于晶振頻率的測量。晶體受溫度頻率特性及老化等各種因素的影響,會發(fā)生短期或長期的頻率漂移。為了使輸出的iriga碼仍具有較高的準確度,解決的辦法是在內(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碼輸出的連貫性和高準確性。

  結(jié)語

  本設(shè)計實現(xiàn)了iriga dc碼和ac碼的編碼輸出,兩種碼可根據(jù)實際需要選擇使用。dc碼和ac碼主要由軟件完成。在編程過程中,微控制器不斷檢測本地晶振的頻率。gps同步時,用1pps信號去計算頻率值,所得頻率值是十分準確的,同時按溫度地址存表;gps失步時,微控制器查溫度頻率表,同樣也能得到具有一定準確度的頻率值。根據(jù)本地晶振頻率就可以準確控制irig碼的輸出。該設(shè)計的實際電路體積小、功耗低,在gps同步時有很高的輸出精度,可達μs量級,而在gps失步時輸出也有較高的精度;同時可以靈活選擇使用dc碼和ac碼輸出,具有較高的應(yīng)用價值。




關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉