文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2010)07-0101-04
三維大地電磁勘探技術(shù)是以面元為單位,,多分量采集站為中心,多遠(yuǎn)參考,、互參考和密集布點(diǎn)為特征來(lái)獲得高質(zhì)量的采集數(shù)據(jù)[1],。野外施工時(shí),為了保持站點(diǎn)間同步地進(jìn)行數(shù)據(jù)采集,,一般采用GPS秒脈沖信號(hào)或恒溫晶振的定時(shí)信號(hào)來(lái)同步各個(gè)采集站點(diǎn),。前者在惡劣的施工環(huán)境下常會(huì)因?yàn)楦鞣N干擾而發(fā)生跳變,同步效果并不理想,。后者長(zhǎng)時(shí)間存在頻率漂移,,同樣無(wú)法維持長(zhǎng)時(shí)間的同步采集。
為解決以上問(wèn)題,,本文將GPS授時(shí)信號(hào)用于校準(zhǔn)各站點(diǎn)的壓控晶振,,之后再使用晶振分頻得到定時(shí)信號(hào)來(lái)同步各采集站點(diǎn)。這樣不僅克服了GPS授時(shí)信號(hào)易受外界干擾的缺點(diǎn),,也解決了晶振頻率隨時(shí)間漂移的問(wèn)題,,能獲得較為理想的同步信號(hào)。為了使本地晶振長(zhǎng)時(shí)間地同步于GPS系統(tǒng),,就需要不斷測(cè)量GPS授時(shí)信號(hào)與本地晶振的分頻信號(hào)的時(shí)間間隔[2],,再根據(jù)測(cè)量數(shù)據(jù)來(lái)校準(zhǔn)和同步本地晶振。因此,,時(shí)間間隔測(cè)量的準(zhǔn)確性是保證頻率校準(zhǔn)系統(tǒng)工作性能的關(guān)鍵,。本文基于FPGA集成度高、高速和高可靠性的特點(diǎn),,介紹了晶振頻率校準(zhǔn)系統(tǒng)在FPGA中的設(shè)計(jì)方法,。系統(tǒng)的特點(diǎn)是使用FPGA內(nèi)部進(jìn)位邏輯構(gòu)造延遲線來(lái)實(shí)現(xiàn)時(shí)間間隔測(cè)量,大大提高了測(cè)量分辨率,,同時(shí)使用FPGA嵌入式軟核處理器PicoBlaze對(duì)系統(tǒng)狀態(tài)進(jìn)行監(jiān)控,,并對(duì)測(cè)量數(shù)據(jù)進(jìn)行濾波處理,充分發(fā)揮了FPGA的集成優(yōu)勢(shì),。
1 系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)實(shí)現(xiàn)方案
系統(tǒng)的原理如圖1所示,,主要由GPS接收模塊、FPGA測(cè)控模塊,、D/A轉(zhuǎn)換模塊和壓控恒溫晶振4部分組成,。GPS接收模塊用于輸出標(biāo)準(zhǔn)的1-pps脈沖信號(hào),F(xiàn)PGA測(cè)控模塊用于測(cè)量本地晶振分頻信號(hào)與1-pps信號(hào)的時(shí)間間隔,,并將所測(cè)值在PicoBlaze中進(jìn)行處理得到晶振輸出頻率相對(duì)于GPS系統(tǒng)的頻率偏差,,最后將結(jié)果作為D/A轉(zhuǎn)換模塊的輸入得到修正本地晶振頻率的控制電壓,。
1.2 測(cè)量原理
時(shí)間間隔在FPGA中的測(cè)量的原理如圖2所示,使用1-pps秒脈沖信號(hào)與本地晶振分頻得到的100 kHz信號(hào)進(jìn)行比對(duì),得到的時(shí)差即是待測(cè)的時(shí)間間隔,。由于只采樣兩者的上升沿間的時(shí)間間隔,,所以用100 kHz分頻信號(hào)代替1 Hz秒信號(hào)與1-pps比對(duì),可以減小每次的測(cè)量值,,方便數(shù)據(jù)處理,。需要注意的是晶振相對(duì)于1-pps的時(shí)差范圍必須在100 kHz信號(hào)的一個(gè)周期內(nèi),即該信號(hào)的頻率決定了測(cè)量量程的大小,,可以根據(jù)實(shí)際測(cè)量需要來(lái)決定該信號(hào)的頻率,。
圖2中T是待測(cè)的時(shí)間間隔,τ1是計(jì)數(shù)時(shí)鐘周期,,M是計(jì)數(shù)器在1-pps信號(hào)到來(lái)時(shí)的計(jì)數(shù)值,,N是計(jì)數(shù)器在100 Hz信號(hào)到來(lái)時(shí)的計(jì)數(shù)值,nτ2是由于1-pps脈沖上升沿和計(jì)數(shù)時(shí)鐘上升沿不一致所引起的測(cè)量誤差,,這部分誤差由內(nèi)插延遲線來(lái)測(cè)量,。由于100 kHz信號(hào)由晶振分頻得到,它和計(jì)數(shù)時(shí)鐘同步,,所以不會(huì)產(chǎn)生測(cè)量誤差,。因此,待測(cè)的時(shí)間間隔可以表示為:
1.3 延遲線模塊的設(shè)計(jì)
為了在短時(shí)間內(nèi)校準(zhǔn)本地晶體振蕩器,,使之與GPS系統(tǒng)同步,,必須提高時(shí)間間隔的測(cè)量分辨率,在設(shè)計(jì)中使用了時(shí)間內(nèi)插技術(shù),。其基本原理是利用多個(gè)延時(shí)單元構(gòu)造延遲線,,待測(cè)信號(hào)在延遲線中的傳播信息便可以用來(lái)進(jìn)行時(shí)間間隔測(cè)量[3]。延遲線的實(shí)現(xiàn)主要依賴于內(nèi)插延遲單元延時(shí)的均勻性,,內(nèi)插延遲單元的單位延時(shí)決定了時(shí)間間隔測(cè)量系統(tǒng)的分辨率,。在FPGA中實(shí)現(xiàn)時(shí)間內(nèi)插,關(guān)鍵是在其結(jié)構(gòu)的基礎(chǔ)上利用內(nèi)部已有資源構(gòu)造出延遲線[4-6],。
在XILINX公司FPGA的單元結(jié)構(gòu)中,,為了實(shí)現(xiàn)快速的數(shù)學(xué)運(yùn)算設(shè)置了許多專用的進(jìn)位邏輯資源,。這些進(jìn)位邏輯的延時(shí)很小,,而且它們之間可以相互連接組成進(jìn)位線,可以使用這種專用的進(jìn)位線作為延遲線來(lái)實(shí)現(xiàn)時(shí)間內(nèi)插[7],。如圖3所示,,設(shè)計(jì)中使用了Spartan-3系列的FPGA中專用的進(jìn)位邏輯逐個(gè)連接組成延遲線,一個(gè)進(jìn)位邏輯由查找表(LUT),、專用選通器(MUXCY)和專用異或門(XORCY)三部分構(gòu)成,。其總體結(jié)構(gòu)上類似一個(gè)多位二進(jìn)制加法器,兩個(gè)輸入的各位分別被置為1和0,,進(jìn)位信號(hào)沒(méi)來(lái)時(shí)加法器各位均為1。當(dāng)進(jìn)位信號(hào)到來(lái)時(shí)就會(huì)沿著進(jìn)位線一級(jí)一級(jí)地傳輸,,加法器每一位輸出值的變化就代表著信號(hào)的延遲信息,,時(shí)鐘前沿到達(dá)時(shí)就可以將這些信息鎖存入觸發(fā)器中。圖4是在一個(gè)時(shí)鐘周期的仿真中延遲線單元輸出經(jīng)過(guò)的延遲單元的個(gè)數(shù),,進(jìn)行直線擬合后的結(jié)果為:
所以延遲線單元的測(cè)量分辨率約為1/8.257 4=0.121 ns.
1.4 計(jì)數(shù)器模塊的設(shè)計(jì)
圖5簡(jiǎn)單描述了計(jì)數(shù)器模塊的基本構(gòu)造,。在計(jì)數(shù)器模塊的設(shè)計(jì)中,使用了Spartan-3系列的數(shù)字時(shí)鐘管理器,,主要目的是將晶振時(shí)鐘信號(hào)倍頻后作為計(jì)數(shù)器的工作時(shí)鐘,,保證時(shí)鐘周期小于延遲線的總延時(shí)。根據(jù)時(shí)序仿真所確定的延遲線單元的測(cè)量分辨率及長(zhǎng)度參數(shù),,將晶振頻率倍頻為200 MHz,。
時(shí)鐘前沿附近計(jì)數(shù)器輸出為亞穩(wěn)態(tài),如果1-pps信號(hào)恰好在這個(gè)時(shí)刻到達(dá),,便會(huì)將錯(cuò)誤的計(jì)數(shù)值鎖存,。為了解決這個(gè)問(wèn)題,模塊中使用數(shù)字時(shí)鐘管理器輸出相位差為180°的兩路時(shí)鐘,分別驅(qū)動(dòng)兩個(gè)計(jì)數(shù)器同時(shí)工作,,這樣無(wú)論任何時(shí)刻都能保證其中之一的輸出為正確值,,之后再對(duì)兩者進(jìn)行判斷選擇。選擇信號(hào)由延遲線單元提供,,通過(guò)統(tǒng)計(jì)1-pps信號(hào)經(jīng)過(guò)延遲單元的個(gè)數(shù)來(lái)確定1-pps信號(hào)與時(shí)鐘前沿的時(shí)差,,然后輸出select信號(hào)。
兩個(gè)計(jì)數(shù)器進(jìn)行循環(huán)計(jì)數(shù),,每個(gè)計(jì)數(shù)器都連接著兩組寄存器,,其中一組將GPS秒脈沖信號(hào)作為工作時(shí)鐘;另一組的時(shí)鐘信號(hào)與對(duì)應(yīng)計(jì)數(shù)器的時(shí)鐘相連接,,且其使能端與100 kHz分頻信號(hào)相連,。當(dāng)GPS秒脈沖和100 kHz信號(hào)到來(lái)時(shí),便會(huì)將計(jì)數(shù)值送入相應(yīng)的寄存器組,。這樣可以充分利用FPGA的全局時(shí)鐘資源,,使相應(yīng)的寄存器組都使用同一時(shí)鐘,保證寄存器觸發(fā)的同步性,。此外,,使用循環(huán)計(jì)數(shù)的方式也解決了傳統(tǒng)起停型計(jì)數(shù)器由于啟動(dòng)和停止信號(hào)不滿足建立保持時(shí)間而造成計(jì)數(shù)器輸出錯(cuò)誤的問(wèn)題。當(dāng)1-pps信號(hào)與100 kHz信號(hào)的前沿都到達(dá)后,,中斷單元將輸出中斷信號(hào),,用于通知PicoBlaze軟核讀取測(cè)量結(jié)果。
1.5 PicoBlaze軟核設(shè)計(jì)
PicoBlaze是XILINX公司設(shè)計(jì)的8位微控制器軟核,可以嵌入到Cool Runner II,、Virtex-E,、Virtex-II(Pro) 和 Spartan3(E)的CPLD以及FPGA中,設(shè)計(jì)靈活方便[8]。PicoBlaze的端口總線提供8位地址(PORT_ID)和讀寫(xiě)選通信號(hào),,最多可以實(shí)現(xiàn)256個(gè)輸入和輸出端口,。接口設(shè)計(jì)如圖6所示,PicoBlaze用來(lái)接收延遲線模塊和計(jì)數(shù)器模塊輸出的結(jié)果,,同時(shí)讀取異步串行控制器(UART)的數(shù)據(jù)和狀態(tài)信息,。其中異步串行控制器直接調(diào)用XILINX的IP核,與外部GPS模塊進(jìn)行串行通信,。
此外,,為了實(shí)現(xiàn)對(duì)測(cè)量數(shù)據(jù)的存儲(chǔ)以方便數(shù)據(jù)處理,PicoBlaze連接了一個(gè)FIFO數(shù)據(jù)緩沖,,用于暫存未處理的測(cè)量數(shù)據(jù),。如圖7所示,PicoBlaze每個(gè)讀寫(xiě)操作需要兩個(gè)時(shí)鐘周期,,此期間地址總線一直處于有效狀態(tài),,而讀寫(xiě)使能信號(hào)僅在第二個(gè)時(shí)鐘周期開(kāi)始有效,所以地址總線上可以連接適當(dāng)?shù)倪壿嬰娐愤M(jìn)行地址解碼,。
設(shè)計(jì)中使用四路選通器分別連接計(jì)數(shù)器模塊,、延遲線模塊和FIFO緩沖的輸出,其中因計(jì)數(shù)器模塊中采用16位的計(jì)數(shù)器循環(huán)計(jì)數(shù),,為了與PicoBlaze輸入匹配,,須將計(jì)數(shù)值分兩部分接到選通器。異步串行控制器的輸出和狀態(tài)信息分別接到三路選通器,,剩余一路連接四路選通器的輸出,。由于UART和PicoBlaze使用的時(shí)鐘頻率和測(cè)量部分不同,為了提高數(shù)據(jù)傳輸?shù)目煽啃?,在選通器之間增加了流水線寄存器,。
系統(tǒng)運(yùn)行時(shí)PicoBlaze將對(duì)UART狀態(tài)進(jìn)行查詢,當(dāng)檢測(cè)到有GPS串碼數(shù)據(jù)時(shí)便開(kāi)始讀取其串碼信息,。GPS串碼信息用于分析當(dāng)前GPS的狀態(tài),,如果檢測(cè)GPS模塊已經(jīng)鎖定衛(wèi)星,則系統(tǒng)開(kāi)始進(jìn)行測(cè)量和校準(zhǔn)工作,。
2 測(cè)量數(shù)據(jù)處理
根據(jù)測(cè)量到的時(shí)間間隔數(shù)據(jù),,按照公式:
可以計(jì)算出晶振信號(hào)相對(duì)于GPS的頻率偏差,其中T1和T2分別是測(cè)量部分相隔采樣時(shí)間τ前后輸出的時(shí)間間隔測(cè)量值,。根據(jù)頻率偏差的大小,,再結(jié)合晶振的壓控靈敏度,,便可以實(shí)現(xiàn)對(duì)晶振的輸出頻率進(jìn)行控制和修正,。但GPS信號(hào)在傳輸過(guò)程中容易受到外界影響,,GPS模塊輸出的1-pps信號(hào)是一個(gè)波動(dòng)信號(hào),其短期穩(wěn)定性較差,。圖8的黑色曲線是使用本系統(tǒng)測(cè)量得到的本地晶振相對(duì)于GPS系統(tǒng)的時(shí)間間隔曲線,,使用這些數(shù)據(jù)計(jì)算得到的頻率偏差也會(huì)受到影響而發(fā)生波動(dòng),所以不能直接使用,。
從式(4)可以看出,,計(jì)算頻率偏差僅僅需要窗口的端點(diǎn)處的測(cè)量值而不受窗口內(nèi)的測(cè)量值影響。在實(shí)際應(yīng)用時(shí),,計(jì)算量很小而且簡(jiǎn)單,,方便使用PicoBlaze軟核處理器來(lái)實(shí)現(xiàn)。PicoBlaze連接的FIFO數(shù)據(jù)緩沖用來(lái)存儲(chǔ)滑動(dòng)窗口中的測(cè)量數(shù)據(jù),。當(dāng)存儲(chǔ)達(dá)到預(yù)設(shè)的窗口長(zhǎng)度時(shí),,將從FIFO中順序讀取出先前的測(cè)量值,配合當(dāng)前測(cè)量值,,根據(jù)式(3)計(jì)算出頻率偏差,。圖8的白色曲線是添加濾波處理后系統(tǒng)輸出的時(shí)間間隔,對(duì)比可以看出濾波對(duì)抖動(dòng)和較大的跳變點(diǎn)都有很好的抑制作用,。
本文介紹的晶振頻率校準(zhǔn)系統(tǒng)利用GPS模塊輸出的標(biāo)準(zhǔn)秒脈沖信號(hào)對(duì)本地晶振頻率進(jìn)行校準(zhǔn),。本設(shè)計(jì)基于FPGA內(nèi)部進(jìn)位邏輯資源實(shí)現(xiàn)了高分辨率的時(shí)間間隔測(cè)量單元,并配合滑動(dòng)平均濾波法利用PicoBlaze處理器對(duì)測(cè)量的時(shí)間間隔數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,。不僅能夠準(zhǔn)確地測(cè)量本地晶振分頻信號(hào)與GPS秒脈沖信號(hào)之間的時(shí)間間隔,,而且降低了GPS秒脈沖波動(dòng)對(duì)測(cè)量結(jié)果的干擾,為校準(zhǔn)晶振頻率提供可靠的修正數(shù)據(jù),。此外,,系統(tǒng)測(cè)控部分完全在FPGA中實(shí)現(xiàn),利于提高測(cè)量分辨率,,減小系統(tǒng)體積,,提高系統(tǒng)運(yùn)行的穩(wěn)定性。本系統(tǒng)不僅可以用于大地電磁三維采集站,,還可以在其他對(duì)頻率準(zhǔn)確度有要求的儀器中使用,。
參考文獻(xiàn)
[1] 何展翔. 非地震勘探技術(shù)的進(jìn)步與發(fā)展趨勢(shì)[J].石油地球物理勘探, 2000,35(3):354-361.
[2] 孟慶杰,徐建芬,姜雪松. GPS基頻率標(biāo)準(zhǔn)的計(jì)量校準(zhǔn)[J]. 宇航計(jì)測(cè)技術(shù),,2007,27(5):16-21.
[3] 潘繼飛, 姜秋喜, 畢大平. 基于內(nèi)插采樣技術(shù)的高精度時(shí)間間隔測(cè)量方法[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] 孫杰, 潘繼飛. 高精度時(shí)間間隔測(cè)量方法綜述[J]. 計(jì)算機(jī)測(cè)量與控制, 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-to-digital 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.