盧祥弘, 陳儒軍, 何展翔
(1.中南大學(xué) 信息物理工程學(xué)院,湖南 長沙410083;2.中南大學(xué) 計算機(jī)科學(xué)與技術(shù)博士后流動站,湖南 長沙 410083;3.中國石油集團(tuán)東方地球物理公司 博士后科研工作站,河北 涿州072751;4.中國石油集團(tuán)東方地球物理公司 綜合物化探事業(yè)部,河北 涿州072751)
三維大地電磁勘探技術(shù)是以面元為單位,多分量采集站為中心,多遠(yuǎn)參考、互參考和密集布點(diǎn)為特征來獲得高質(zhì)量的采集數(shù)據(jù)[1]。野外施工時,為了保持站點(diǎn)間同步地進(jìn)行數(shù)據(jù)采集,一般采用GPS秒脈沖信號或恒溫晶振的定時信號來同步各個采集站點(diǎn)。前者在惡劣的施工環(huán)境下常會因為各種干擾而發(fā)生跳變,同步效果并不理想。后者長時間存在頻率漂移,同樣無法維持長時間的同步采集。
為解決以上問題,本文將GPS授時信號用于校準(zhǔn)各站點(diǎn)的壓控晶振,之后再使用晶振分頻得到定時信號來同步各采集站點(diǎn)。這樣不僅克服了GPS授時信號易受外界干擾的缺點(diǎn),也解決了晶振頻率隨時間漂移的問題,能獲得較為理想的同步信號。為了使本地晶振長時間地同步于GPS系統(tǒng),就需要不斷測量GPS授時信號與本地晶振的分頻信號的時間間隔[2],再根據(jù)測量數(shù)據(jù)來校準(zhǔn)和同步本地晶振。因此,時間間隔測量的準(zhǔn)確性是保證頻率校準(zhǔn)系統(tǒng)工作性能的關(guān)鍵。本文基于FPGA集成度高、高速和高可靠性的特點(diǎn),介紹了晶振頻率校準(zhǔn)系統(tǒng)在FPGA中的設(shè)計方法。系統(tǒng)的特點(diǎn)是使用FPGA內(nèi)部進(jìn)位邏輯構(gòu)造延遲線來實現(xiàn)時間間隔測量,大大提高了測量分辨率,同時使用FPGA嵌入式軟核處理器PicoBlaze對系統(tǒng)狀態(tài)進(jìn)行監(jiān)控,并對測量數(shù)據(jù)進(jìn)行濾波處理,充分發(fā)揮了FPGA的集成優(yōu)勢。
系統(tǒng)的原理如圖1所示,主要由GPS接收模塊、FPGA測控模塊、D/A轉(zhuǎn)換模塊和壓控恒溫晶振4部分組成。GPS接收模塊用于輸出標(biāo)準(zhǔn)的1-pps脈沖信號,F(xiàn)PGA測控模塊用于測量本地晶振分頻信號與1-pps信號的時間間隔,并將所測值在PicoBlaze中進(jìn)行處理得到晶振輸出頻率相對于GPS系統(tǒng)的頻率偏差,最后將結(jié)果作為D/A轉(zhuǎn)換模塊的輸入得到修正本地晶振頻率的控制電壓。
時間間隔在FPGA中的測量的原理如圖2所示,使用1-pps秒脈沖信號與本地晶振分頻得到的100 kHz信號進(jìn)行比對,得到的時差即是待測的時間間隔。由于只采樣兩者的上升沿間的時間間隔,所以用100 kHz分頻信號代替1 Hz秒信號與1-pps比對,可以減小每次的測量值,方便數(shù)據(jù)處理。需要注意的是晶振相對于1-pps的時差范圍必須在100 kHz信號的一個周期內(nèi),即該信號的頻率決定了測量量程的大小,可以根據(jù)實際測量需要來決定該信號的頻率。
圖2中T是待測的時間間隔,τ1是計數(shù)時鐘周期,M是計數(shù)器在1-pps信號到來時的計數(shù)值,N是計數(shù)器在 100 Hz信號到來時的計數(shù)值,nτ2是由于 1-pps脈沖上升沿和計數(shù)時鐘上升沿不一致所引起的測量誤差,這部分誤差由內(nèi)插延遲線來測量。由于100 kHz信號由晶振分頻得到,它和計數(shù)時鐘同步,所以不會產(chǎn)生測量誤差。因此,待測的時間間隔可以表示為:
為了在短時間內(nèi)校準(zhǔn)本地晶體振蕩器,使之與GPS系統(tǒng)同步,必須提高時間間隔的測量分辨率,在設(shè)計中使用了時間內(nèi)插技術(shù)。其基本原理是利用多個延時單元構(gòu)造延遲線,待測信號在延遲線中的傳播信息便可以用來進(jìn)行時間間隔測量[3]。延遲線的實現(xiàn)主要依賴于內(nèi)插延遲單元延時的均勻性,內(nèi)插延遲單元的單位延時決定了時間間隔測量系統(tǒng)的分辨率。在FPGA中實現(xiàn)時間內(nèi)插,關(guān)鍵是在其結(jié)構(gòu)的基礎(chǔ)上利用內(nèi)部已有資源構(gòu)造出延遲線[4-6]。
在XILINX公司FPGA的單元結(jié)構(gòu)中,為了實現(xiàn)快速的數(shù)學(xué)運(yùn)算設(shè)置了許多專用的進(jìn)位邏輯資源。這些進(jìn)位邏輯的延時很小,而且它們之間可以相互連接組成進(jìn)位線,可以使用這種專用的進(jìn)位線作為延遲線來實現(xiàn)時間內(nèi)插[7]。如圖3所示,設(shè)計中使用了Spartan-3系列的FPGA中專用的進(jìn)位邏輯逐個連接組成延遲線,一個進(jìn)位邏輯由查找表(LUT)、專用選通器(MUXCY)和專用異或門(XORCY)三部分構(gòu)成。其總體結(jié)構(gòu)上類似一個多位二進(jìn)制加法器,兩個輸入的各位分別被置為1和0,進(jìn)位信號沒來時加法器各位均為1。當(dāng)進(jìn)位信號到來時就會沿著進(jìn)位線一級一級地傳輸,加法器每一位輸出值的變化就代表著信號的延遲信息,時鐘前沿到達(dá)時就可以將這些信息鎖存入觸發(fā)器中。圖4是在一個時鐘周期的仿真中延遲線單元輸出經(jīng)過的延遲單元的個數(shù),進(jìn)行直線擬合后的結(jié)果為:
所以延遲線單元的測量分辨率約為1/8.257 4=0.121 ns.
圖5簡單描述了計數(shù)器模塊的基本構(gòu)造。在計數(shù)器模塊的設(shè)計中,使用了Spartan-3系列的數(shù)字時鐘管理器,主要目的是將晶振時鐘信號倍頻后作為計數(shù)器的工作時鐘,保證時鐘周期小于延遲線的總延時。根據(jù)時序仿真所確定的延遲線單元的測量分辨率及長度參數(shù),將晶振頻率倍頻為200 MHz。
時鐘前沿附近計數(shù)器輸出為亞穩(wěn)態(tài),如果1-pps信號恰好在這個時刻到達(dá),便會將錯誤的計數(shù)值鎖存。為了解決這個問題,模塊中使用數(shù)字時鐘管理器輸出相位差為180°的兩路時鐘,分別驅(qū)動兩個計數(shù)器同時工作,這樣無論任何時刻都能保證其中之一的輸出為正確值,之后再對兩者進(jìn)行判斷選擇。選擇信號由延遲線單元提供,通過統(tǒng)計1-pps信號經(jīng)過延遲單元的個數(shù)來確定1-pps信號與時鐘前沿的時差,然后輸出select信號。
兩個計數(shù)器進(jìn)行循環(huán)計數(shù),每個計數(shù)器都連接著兩組寄存器,其中一組將GPS秒脈沖信號作為工作時鐘;另一組的時鐘信號與對應(yīng)計數(shù)器的時鐘相連接,且其使能端與100 kHz分頻信號相連。當(dāng)GPS秒脈沖和100 kHz信號到來時,便會將計數(shù)值送入相應(yīng)的寄存器組。這樣可以充分利用FPGA的全局時鐘資源,使相應(yīng)的寄存器組都使用同一時鐘,保證寄存器觸發(fā)的同步性。此外,使用循環(huán)計數(shù)的方式也解決了傳統(tǒng)起停型計數(shù)器由于啟動和停止信號不滿足建立保持時間而造成計數(shù)器輸出錯誤的問題。當(dāng)1-pps信號與100 kHz信號的前沿都到達(dá)后,中斷單元將輸出中斷信號,用于通知PicoBlaze軟核讀取測量結(jié)果。
PicoBlaze是XILINX公司設(shè)計的8位微控制器軟核, 可以嵌入到 Cool Runner II、Virtex-E、Virtex-II(Pro)和 Spartan3(E)的 CPLD以及 FPGA中,設(shè)計靈活方便[8]。PicoBlaze的端口總線提供 8位地址(PORT_ID)和讀寫選通信號,最多可以實現(xiàn)256個輸入和輸出端口。接口設(shè)計如圖6所示,PicoBlaze用來接收延遲線模塊和計數(shù)器模塊輸出的結(jié)果,同時讀取異步串行控制器(UART)的數(shù)據(jù)和狀態(tài)信息。其中異步串行控制器直接調(diào)用XILINX的 IP核,與外部GPS模塊進(jìn)行串行通信。
此外,為了實現(xiàn)對測量數(shù)據(jù)的存儲以方便數(shù)據(jù)處理,PicoBlaze連接了一個FIFO數(shù)據(jù)緩沖,用于暫存未處理的測量數(shù)據(jù)。如圖7所示,PicoBlaze每個讀寫操作需要兩個時鐘周期,此期間地址總線一直處于有效狀態(tài),而讀寫使能信號僅在第二個時鐘周期開始有效,所以地址總線上可以連接適當(dāng)?shù)倪壿嬰娐愤M(jìn)行地址解碼。
設(shè)計中使用四路選通器分別連接計數(shù)器模塊、延遲線模塊和FIFO緩沖的輸出,其中因計數(shù)器模塊中采用16位的計數(shù)器循環(huán)計數(shù),為了與PicoBlaze輸入匹配,須將計數(shù)值分兩部分接到選通器。異步串行控制器的輸出和狀態(tài)信息分別接到三路選通器,剩余一路連接四路選通器的輸出。由于UART和PicoBlaze使用的時鐘頻率和測量部分不同,為了提高數(shù)據(jù)傳輸?shù)目煽啃?,在選通器之間增加了流水線寄存器。
系統(tǒng)運(yùn)行時PicoBlaze將對UART狀態(tài)進(jìn)行查詢,當(dāng)檢測到有GPS串碼數(shù)據(jù)時便開始讀取其串碼信息。GPS串碼信息用于分析當(dāng)前GPS的狀態(tài),如果檢測GPS模塊已經(jīng)鎖定衛(wèi)星,則系統(tǒng)開始進(jìn)行測量和校準(zhǔn)工作。
可以計算出晶振信號相對于GPS的頻率偏差,其中T1和T2分別是測量部分相隔采樣時間τ前后輸出的時間間隔測量值。根據(jù)頻率偏差的大小,再結(jié)合晶振的壓控靈敏度,便可以實現(xiàn)對晶振的輸出頻率進(jìn)行控制和修正。但GPS信號在傳輸過程中容易受到外界影響,GPS模塊輸出的1-pps信號是一個波動信號,其短期穩(wěn)定性較差。圖8的黑色曲線是使用本系統(tǒng)測量得到的本地晶振相對于GPS系統(tǒng)的時間間隔曲線,使用這些數(shù)據(jù)計算得到的頻率偏差也會受到影響而發(fā)生波動,所以不能直接使用。
根據(jù)測量到的時間間隔數(shù)據(jù),按照公式:
滑動平均濾波可以用來削弱測量結(jié)果受1-pps信號波動的影響。取一組測量得到的時間間隔數(shù)列T1、T2、T3、T4、…Tn、Tn+1、Tn+2…;以 n 作為滑動窗口長度將其中n個測量值求平均,隨著窗口移動便能得到新的時間間隔數(shù)列 P1、P2、P3、P4…。由于 1-pps 信號包含的是隨機(jī)誤差,所以只要將n取值足夠大,隨機(jī)誤差變化趨向于零,這樣就能有效削弱1-pps信號對計算結(jié)果的影響。
根據(jù)式(2)計算頻率偏差為:
從式(3)可以看出,計算頻率偏差僅僅需要窗口的端點(diǎn)處的測量值而不受窗口內(nèi)的測量值影響。在實際應(yīng)用時,計算量很小而且簡單,方便使用PicoBlaze軟核處理器來實現(xiàn)。PicoBlaze連接的FIFO數(shù)據(jù)緩沖用來存儲滑動窗口中的測量數(shù)據(jù)。當(dāng)存儲達(dá)到預(yù)設(shè)的窗口長度時,將從FIFO中順序讀取出先前的測量值,配合當(dāng)前測量值,根據(jù)式(3)計算出頻率偏差。圖8的白色曲線是添加濾波處理后系統(tǒng)輸出的時間間隔,對比可以看出濾波對抖動和較大的跳變點(diǎn)都有很好的抑制作用。
本文介紹的晶振頻率校準(zhǔn)系統(tǒng)利用GPS模塊輸出的標(biāo)準(zhǔn)秒脈沖信號對本地晶振頻率進(jìn)行校準(zhǔn)。本設(shè)計基于FPGA內(nèi)部進(jìn)位邏輯資源實現(xiàn)了高分辨率的時間間隔測量單元,并配合滑動平均濾波法利用PicoBlaze處理器對測量的時間間隔數(shù)據(jù)進(jìn)行實時處理。不僅能夠準(zhǔn)確地測量本地晶振分頻信號與GPS秒脈沖信號之間的時間間隔,而且降低了GPS秒脈沖波動對測量結(jié)果的干擾,為校準(zhǔn)晶振頻率提供可靠的修正數(shù)據(jù)。此外,系統(tǒng)測控部分完全在FPGA中實現(xiàn),利于提高測量分辨率,減小系統(tǒng)體積,提高系統(tǒng)運(yùn)行的穩(wěn)定性。本系統(tǒng)不僅可以用于大地電磁三維采集站,還可以在其他對頻率準(zhǔn)確度有要求的儀器中使用。
[1]何展翔.非地震勘探技術(shù)的進(jìn)步與發(fā)展趨勢[J].石油地球物理勘探,2000,35(3):354-361.
[2]孟慶杰,徐建芬,姜雪松.GPS基頻率標(biāo)準(zhǔn)的計量校準(zhǔn)[J].宇航計測技術(shù),2007,27(5):16-21.
[3]潘繼飛,姜秋喜,畢大平.基于內(nèi)插采樣技術(shù)的高精度時間間隔測量方法[J].系統(tǒng)工程與電子技術(shù),2006,28(11):1633-1636.
[4]SZPLET R,KALISZ J,SZYMANOWSKI R.Interpolating time counter with 100 ps resolution on a single FPGA device[J].IEEE Trans.Instrum.Meas,2000,49(4):879-883.
[5]孫杰,潘繼飛.高精度時間間隔測量方法綜述[J].計算機(jī)測量與控制,2007,15(2):145-148.
[6]WU J,SHI Z,WANG I Y.Firmware-only implementation of time-to-digital converter in field programmable gate array[J].Proc.IEEE Conf.Rec.NSS.,2003(1):177-181.
[7]SONG J,AN Q,LIN S B.A high-resolution time-todigital converter implemented in field programmable gate arrays[J].IEEE Trans.Nuclear Science,2006,53(1):236-241.
[8]TORRES D A,PEREZ D V.A PicoBlaze-based embedded system for monitoring applications[J].Conielecomp Conf,2009:173-177.