基于FPGA的IRIG-B編碼器的設(shè)計(jì)
2.2 GPS授時(shí)模塊M12T
M12接收器是Motorola公司優(yōu)秀ONCORE家族中的新成員,廣泛用于各類定位、導(dǎo)航、授時(shí)設(shè)備中,擁有全GPS行業(yè)內(nèi)最快的初次定位時(shí)間和重捕獲衛(wèi)星的時(shí)間。M12T是針對(duì)GPS授時(shí)推出的定時(shí)精度更高的增強(qiáng)型產(chǎn)品。M12T具有12個(gè)并行通道,可同時(shí)跟蹤12顆衛(wèi)星,重捕獲時(shí)間小于1.0 s。當(dāng)擁有當(dāng)前天歷、位置、時(shí)間和星歷數(shù)據(jù)時(shí),首次定位時(shí)間TTFF15 s。在位置保持狀態(tài)時(shí),定時(shí)精度(1 pps或100 pps)小于12 ns。
2.3 FPGA和DAC
FPGA采用Altera CycloneⅡEPC2C5T144,該芯片有4 608個(gè)LE,26個(gè)M4K,兩個(gè)模擬鎖相環(huán)。DAC采用單通道、單電源、自帶基準(zhǔn)的MAX5712。MAX5712是微型引腳,12 b解析度,片上精密輸出放大器提供滿擺幅輸出。MAX5712用兼容SPITM/QSPITM/MICROWIRETM和DSP標(biāo)準(zhǔn)接口的3線串行接口。所有輸入都兼容于CMOS邏輯,并經(jīng)過施密特觸發(fā)器緩沖,允許直接接光電耦合器。MAX5712含有上電復(fù)位(POR)電路,確保上電時(shí)DAC處于零電壓輸出狀態(tài)。
3 時(shí)鐘模塊實(shí)現(xiàn)
3.1 基準(zhǔn)時(shí)刻和索引脈沖的提取
要保證B碼每個(gè)碼元的上升沿時(shí)刻準(zhǔn)確,需要100 pps的精確時(shí)基和pps的參考點(diǎn)。一般的做法是用pps作為基準(zhǔn),每個(gè)碼元的起點(diǎn)由前兩個(gè)秒脈沖的間隔等分得到。這種方法使用上一時(shí)刻來預(yù)測(cè)下一秒,每秒脈沖有抖動(dòng)時(shí)會(huì)導(dǎo)致最后一個(gè)碼元寬度不足或超過10 ms,這將無法利用B碼來實(shí)現(xiàn)時(shí)間同步和數(shù)據(jù)等間隔同步的采集。本文直接使用M12T產(chǎn)生的100 pps信號(hào)作為每個(gè)碼元的起始時(shí)刻,然后再從100 pps信號(hào)中恢復(fù)出1 pps。由于B碼參考標(biāo)記Pr=1 pps的上升沿,所以這種方法既保證Pr的準(zhǔn)確性,又保證各個(gè)碼元和索引標(biāo)記時(shí)刻的準(zhǔn)確性。在有等間隔同步數(shù)據(jù)采樣要求的場(chǎng)合,可使用每個(gè)B碼碼元的上升沿校準(zhǔn)本地時(shí)基,確保采樣同步和時(shí)間同步。
M12T輸出的100 pps信號(hào)(以下稱PPM12)如圖3所示,每個(gè)脈沖的上升沿時(shí)刻準(zhǔn)確,周期10 ms,在pps的參考點(diǎn),脈沖寬度為6~8 ms,其他時(shí)刻2~4 ms,脈沖寬度不是關(guān)注的重點(diǎn)。
B碼的每個(gè)碼元恰好與上述100 pps信號(hào)對(duì)應(yīng)。首先在FPGA中構(gòu)建一個(gè)模100的碼元計(jì)數(shù)器MMH和一個(gè)高電平脈沖寬度檢測(cè)器,通過下面的方法和步驟可以恢復(fù)pps。
(1)在PPM12信號(hào)的上升沿復(fù)位寬度檢測(cè)器,高電平計(jì)時(shí),在下降沿停止并輸出Tb;
(2)在PPM12下降沿檢查Tb,當(dāng)6 msb8 ms時(shí),令MMH=1,否則執(zhí)行下面的操作:
if MMH=99 then MMH=0
else MMH=MMH+1
(3)在PPM12信號(hào)的上升沿檢查MMH,如果MMH=0,則當(dāng)前脈沖的上升沿是參考點(diǎn)Pr,觸發(fā)輸出8 ms高電平脈沖作為pps信號(hào),重復(fù)步驟(1)~(3),在PPM12信號(hào)上升沿檢查MMH;如果MMH的個(gè)位為9或者M(jìn)MH=0,則當(dāng)前脈沖標(biāo)記為索引脈沖,即輸出8 ms高電平。
3.2 絕對(duì)時(shí)間獲取
通過在FPGA上構(gòu)建一個(gè)UART與M12T互連。為了簡(jiǎn)化FPGA對(duì)M12T的配置和輸出時(shí)間的獲取,將UART分成兩部分設(shè)計(jì),即發(fā)送模塊txmit和接收模塊rcvr。發(fā)送模塊用一個(gè)M4K設(shè)計(jì)一個(gè)512×8 FIFO,在系統(tǒng)復(fù)位后的若干個(gè)時(shí)鐘,利用一個(gè)狀態(tài)機(jī)將M12T的配置數(shù)據(jù)寫入FIFO;然后通過txmit模塊配置M12T,配置結(jié)束后,UART模塊將M12T的時(shí)間碼轉(zhuǎn)發(fā)到外部RS 232接口,同時(shí)可以轉(zhuǎn)發(fā)外部接口的配置數(shù)據(jù)到M12T。接收模塊采用寄存器模式,只接收M12T發(fā)來的絕對(duì)時(shí)間信息,這樣后面的編碼模塊可以直接使用這些時(shí)間信息。做法如下:設(shè)計(jì)一個(gè)接收計(jì)數(shù)器rx_count,每接收一個(gè)字節(jié)計(jì)數(shù)器自加,并根據(jù)rx_count決定是否保存時(shí)間碼。由于M12T每秒中發(fā)送一幀,故在檢測(cè)到pps時(shí)復(fù)位該計(jì)數(shù)器。
評(píng)論