基于IRIG-A碼輸出的超小型GPS時(shí)鐘設(shè)計(jì)
引言
本文引用地址:http://butianyuan.cn/article/21594.htm近年來,gps(全球定位系統(tǒng))得到了廣泛的應(yīng)用。gps不僅提供定位信息,同時(shí)也提供高精度的時(shí)間信號(hào)。在地震觀測(cè)系統(tǒng)中,數(shù)據(jù)采集裝置對(duì)時(shí)間有著極高的要求,目前普遍采用的是gps同步授時(shí)和本地時(shí)鐘守時(shí)相結(jié)合的辦法獲取時(shí)間信息。每臺(tái)裝置都有自己的gps接收機(jī)用于同步授時(shí)。這意味著即使在一個(gè)幾百米范圍內(nèi)的區(qū)域,由于每臺(tái)裝置所處的位置不同以及各接收機(jī)性能不可能完全一致,彼此之間的時(shí)間信息也仍然存在一定的誤差。如果在小區(qū)域范圍內(nèi),幾臺(tái)數(shù)據(jù)采集器同時(shí)采用一臺(tái)gps接收機(jī)同步授時(shí),則可消除上述誤差,時(shí)間統(tǒng)一和可靠性能得到進(jìn)一步提高。irig碼是國(guó)際通用的一種標(biāo)準(zhǔn)時(shí)間傳輸碼。它不僅包含秒符號(hào)信息,而且包含絕對(duì)時(shí)間信息,已經(jīng)廣泛應(yīng)用于時(shí)統(tǒng)裝置與用戶接收裝置之間的接口標(biāo)準(zhǔn),提高了發(fā)收端時(shí)間的一致性、可靠性。
1 irig碼格式規(guī)范
irig(inter range instrumentation group)碼,稱為“美國(guó)靶場(chǎng)儀器組碼”,把接收的gps時(shí)間編碼,傳送給分布在不同地方的設(shè)備,以實(shí)現(xiàn)各設(shè)備之間的時(shí)鐘同步。該碼廣泛應(yīng)用于導(dǎo)彈、航天、遙測(cè)等時(shí)統(tǒng)設(shè)備中,實(shí)施精
度高,穩(wěn)定性強(qiáng)。
irig碼包含100個(gè)碼元,每個(gè)碼元又有3種碼型:二進(jìn)制0、1和位置標(biāo)識(shí)符。分成3字段編碼:第1字段為年時(shí)間(天、時(shí)、分、秒),第2字段為控制功能函數(shù)字段,第3字段為直接用二進(jìn)制秒符號(hào)表示的天時(shí)間。每24小時(shí)循環(huán)1次。
irig串行碼主要有a、b、d、e、g、h六種時(shí)間格式,主要差別是時(shí)間編碼精度、碼元速率和二進(jìn)制時(shí)間信息的位數(shù)不同。實(shí)際常用的是a和b碼。a碼時(shí)幀周期為0.1 s,b碼時(shí)幀周期為1 s。
在本設(shè)計(jì)中采用了iriga串行時(shí)間碼編碼。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)識(shí)符或參考碼元。ac碼用周期為0.1 ms的高幅和低幅正弦波的個(gè)數(shù)來表示碼元,參考碼元或位置標(biāo)示符用8個(gè)高幅和2個(gè)低幅表示,二進(jìn)制1用5個(gè)高幅和5個(gè)低幅表示,二進(jìn)制0用2個(gè)高幅和8個(gè)低幅表示。
2 iriga編碼設(shè)計(jì)
lpc2132 微控制器有1個(gè)8路10位a/d轉(zhuǎn)換器和1個(gè)10位d/a轉(zhuǎn)換器、2個(gè)32位定時(shí)器/計(jì)數(shù)器(帶4路捕獲和4路比較通道)、pwm單元(6路輸出)和看門狗、9個(gè)邊沿或電平觸發(fā)的外部中斷引腳。片內(nèi)晶體振蕩電路支持頻率為1~30 mhz。通過片內(nèi)pll可實(shí)現(xiàn)最高為60 mhz的微控制器操作頻率。pll的穩(wěn)定時(shí)間為100 μs。
在本設(shè)計(jì)中使用lpc2132和lea4h gps接收機(jī)組成一個(gè)時(shí)統(tǒng)設(shè)備的發(fā)送端。gps接收機(jī)通過uart口,每秒鐘向微控制器發(fā)送1次數(shù)據(jù),1pps脈沖信號(hào)接入微控制器的外部中斷eint0。溫度傳感器tcn75采集周圍的環(huán)境溫度,并通過i2c總線把溫度數(shù)據(jù)傳送給微控制器。二階低通濾波電路對(duì)d/a轉(zhuǎn)換器輸出的波形進(jìn)行整形。微控制器維持一個(gè)本地時(shí)鐘計(jì)數(shù),產(chǎn)生毫秒、秒、分、時(shí)、天的時(shí)間,同時(shí)把時(shí)間信息按iriga碼的格式編碼。gps時(shí)鐘電路框圖如圖1所示。
微控制器根據(jù)1pps信號(hào)不斷檢測(cè)本地晶振的頻率,根據(jù)檢測(cè)結(jié)果控制匹配寄存器的匹配值。微控制器內(nèi)部32位定時(shí)計(jì)數(shù)器t0一直對(duì)本地晶振頻率計(jì)數(shù),捕獲寄存器cr0在1pps信號(hào)觸發(fā)下裝入當(dāng)前的計(jì)數(shù)值;匹配寄存器mr0用于設(shè)置irig dc碼波形的跳變沿和irig ac碼采樣點(diǎn)時(shí)刻,匹配寄存器mr1用于設(shè)置時(shí)間單元信號(hào)。軟件編碼設(shè)計(jì)框圖如圖2所示。2.1 晶振頻率測(cè)量
32位計(jì)數(shù)器t0一直連續(xù)計(jì)數(shù)。當(dāng)1pps信號(hào)到來時(shí),產(chǎn)生中斷,捕獲寄存器cr0裝入t0當(dāng)前的計(jì)數(shù)值ct1并保存下矗壞畢亂桓?pps信號(hào)到來時(shí),cr0裝入t0的計(jì)數(shù)值ct2,本地晶振頻率為(ct2-ct1)或(ct1+232-ct2)。t0計(jì)數(shù)溢出時(shí)的情況。
2.2 時(shí)間信息生成
微控制器采用對(duì)本地時(shí)鐘的計(jì)數(shù)來分別產(chǎn)生毫秒、秒、分、時(shí)、天的時(shí)間信息,并設(shè)置了毫秒、秒、分、時(shí)、天的軟件計(jì)數(shù)器。匹配寄存器mr1根據(jù)晶振當(dāng)前頻率值設(shè)置毫秒時(shí)刻的匹配值。當(dāng)匹配時(shí),毫秒軟件計(jì)數(shù)器值加1。毫秒計(jì)數(shù)器計(jì)0~1000
ms的時(shí)間,并在秒時(shí)刻清零;秒、分、時(shí)、天計(jì)數(shù)器主要完成秒、分、時(shí)、天的計(jì)時(shí)。由于gps接收機(jī)1 s發(fā)1次數(shù)據(jù)信息,所以對(duì)本地時(shí)鐘的同步精度是1
s,由于秒以下可能會(huì)產(chǎn)生誤差,所以微控制器還需進(jìn)行鐘差測(cè)量,把本地時(shí)鐘計(jì)時(shí)信息和gps時(shí)間信息進(jìn)行比較。兩者之差大于1 s,直接修改本地時(shí)間信息。如果本地計(jì)時(shí)快,則把毫秒計(jì)數(shù)器計(jì)數(shù)節(jié)拍調(diào)慢一點(diǎn),即mr1毫秒時(shí)刻的匹配值設(shè)置偏大;反之,則把節(jié)拍調(diào)快一點(diǎn),直至誤差最小化。
匹配寄存器mr0控制dc碼波形的翻轉(zhuǎn)。由于知道了32位計(jì)數(shù)器t0與1pps的關(guān)系,因此可根據(jù)輸出碼元的脈寬確定跳變沿時(shí)刻的計(jì)數(shù)值。實(shí)際上,只要所提取的時(shí)間信息轉(zhuǎn)換成為iriga的格式,就可以按式(1)確定1幀碼元脈寬的跳變沿的計(jì)數(shù)值。為了使輸出的碼元及時(shí)、準(zhǔn)確,可以提前向匹配寄存器寫入下一個(gè)跳變沿的計(jì)數(shù)值,即在ctx值匹配時(shí)預(yù)置cty值,如圖3所示。tx時(shí)刻對(duì)應(yīng)的計(jì)數(shù)值ctx:
式中tx單位為μs。2.4 ac碼編碼輸出
ac碼的每個(gè)正弦波采樣16個(gè)點(diǎn),各相鄰點(diǎn)之間的采樣時(shí)間間隔相等,其中第1個(gè)點(diǎn)和第17個(gè)點(diǎn)采樣時(shí)間間隔為1 ms。ac碼用高低幅正弦波個(gè)數(shù)表示(高幅和低幅正弦波采樣時(shí)間相同,相應(yīng)時(shí)刻幅值是前者為后者的3倍),并把正弦波采樣點(diǎn)存表。表1存放高幅正弦波數(shù)據(jù),表2存放低幅正弦波數(shù)據(jù)。在內(nèi)部存儲(chǔ)器中,表1和表2的入口地址不同,局部地址完全相同,尋址時(shí)只要跳到相應(yīng)的入口地址,后面的查表方式就完全一致。查表時(shí)刻由匹配寄存器控制,查表時(shí)把數(shù)據(jù)送入d/a轉(zhuǎn)換器,如圖4所示。在d/a轉(zhuǎn)換器輸出端,接隔直電容和低通濾波器整形輸出,同時(shí)匹配寄存器的匹配值還須根據(jù)所測(cè)的頻率不斷調(diào)整。
軟件設(shè)計(jì)流程如圖5和圖6所示。
如果gps失步,則1pps信號(hào)將不能用于晶振頻率的測(cè)量。晶體受溫度頻率特性及老化等各種因素的影響,會(huì)發(fā)生短期或長(zhǎng)期的頻率漂移。為了使輸出的iriga碼仍具有較高的準(zhǔn)確度,解決的辦法是在內(nèi)部建立一張溫度頻率表,通過實(shí)時(shí)查表確定當(dāng)前的晶振頻率。在gps同步時(shí),微控制器利用1pps信號(hào)不斷調(diào)整計(jì)數(shù)值ct1、ct2,
同時(shí)利用溫度傳感器采集當(dāng)前工作溫度t,可按0.5°的溫度步差列一張[t;ct2ct1]溫度頻率表。只要gps同步,這張溫度頻率表就在不斷更新,以確保該表是實(shí)時(shí)可用的;一旦gps失步,微控制器查表,就可查得當(dāng)前的頻率值f,按式(1)確定tx時(shí)刻對(duì)應(yīng)的計(jì)數(shù)值ctx和確定ac碼的查表時(shí)刻,以保證iriga碼輸出的連貫性和高準(zhǔn)確性。
結(jié)語
本設(shè)計(jì)實(shí)現(xiàn)了iriga dc碼和ac碼的編碼輸出,兩種碼可根據(jù)實(shí)際需要選擇使用。dc碼和ac碼主要由軟件完成。在編程過程中,微控制器不斷檢測(cè)本地晶振的頻率。gps同步時(shí),用1pps信號(hào)去計(jì)算頻率值,所得頻率值是十分準(zhǔn)確的,同時(shí)按溫度地址存表;gps失步時(shí),微控制器查溫度頻率表,同樣也能得到具有一定準(zhǔn)確度的頻率值。根據(jù)本地晶振頻率就可以準(zhǔn)確控制irig碼的輸出。該設(shè)計(jì)的實(shí)際電路體積小、功耗低,在gps同步時(shí)有很高的輸出精度,可達(dá)μs量級(jí),而在gps失步時(shí)輸出也有較高的精度;同時(shí)可以靈活選擇使用dc碼和ac碼輸出,具有較高的應(yīng)用價(jià)值。
評(píng)論