《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的恒溫晶振頻率校準(zhǔn)系統(tǒng)的設(shè)計
基于FPGA的恒溫晶振頻率校準(zhǔn)系統(tǒng)的設(shè)計
來源:電子技術(shù)應(yīng)用2010年第7期
盧祥弘1,4, 陳儒軍1,2,3, 何展翔4
1. 中南大學(xué) 信息物理工程學(xué)院,湖南 長沙410083;2. 中南大學(xué) 計算機(jī)科學(xué)與技術(shù)博士后流動站, 湖南 長沙 410083;3. 中國石油集團(tuán)東方地球物理公司 博士后科研工作站,河北 涿州072751;4. 中國石油集團(tuán)東方地球物理公司 綜合物化探事業(yè)部,河北 涿州072751
摘要: 為滿足三維大地電磁勘探技術(shù)對多個采集站的同步需求,基于FPGA設(shè)計了一種晶振頻率校準(zhǔn)系統(tǒng)。系統(tǒng)可以調(diào)節(jié)各采集站的恒溫壓控晶體振蕩器同步于GPS,從而使晶振能夠輸出高準(zhǔn)確度和穩(wěn)定度的同步信號。系統(tǒng)中使用FPGA設(shè)計了高分辨率的時間間隔測量單元,達(dá)到0.121 ns的測量分辨率,能對晶振分頻信號與GPS秒脈沖信號的時間間隔進(jìn)行高精度測量,縮短了頻率校準(zhǔn)時間。同時在FPGA內(nèi)部使用PicoBlaze嵌入式軟核處理器監(jiān)控系統(tǒng)狀態(tài),并配合滑動平均濾波法對測量得到的時間間隔數(shù)據(jù)實時處理,有效地抑制了GPS秒脈沖波動對頻率校準(zhǔn)的影響。
中圖分類號:TM935.111
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)07-0101-04
The design of frequency calibration system for OCXO based on FPGA
LU Xiang Hong1,4, CHEN Ru Jun1,2,3, HE Zhan Xiang4
1. School of Info-physical and Geomatic Engineering, Central South University, Changsha 410083, China;2. Postdoctoral Station of Computer Science and Technology, Central South University, Changsha 410083,China;3. Postdoctoral Research Station of BGP, CPNC, Zhuozhou 072751, China;4. Non-seismic Survery, BGP, CNPC, Zhuozhou 072751, China
Abstract: In order to meet the demands of synchronization between signal acquisition stations in the three-dimensional magnetotelluric exploration technology, this paper designs an OCXO frequency calibration system for acquisition stations, which can be used to synchronize the OCXO in each acquisition station to GPS system with high accuracy and stability. We use FPGA to design a high resolution time interval measurement unit achieving 0.121 ns resolution, which can measure the time interval between the OCXO and GPS with a high precision and enhance the system working efficiency. In addition, soft IP processor PicoBlaze is employed to supervise the system status and coordinates with moving-average filtering algorithm to filter the fluctuation in measurement data, which can effectively suppress the fluctuation of 1-pps.
Key words : GPS; frequency calibration; time interval measurement; FPGA; PicoBlaze

    三維大地電磁勘探技術(shù)是以面元為單位,多分量采集站為中心,多遠(yuǎn)參考、互參考和密集布點為特征來獲得高質(zhì)量的采集數(shù)據(jù)[1]。野外施工時,為了保持站點間同步地進(jìn)行數(shù)據(jù)采集,一般采用GPS秒脈沖信號或恒溫晶振的定時信號來同步各個采集站點。前者在惡劣的施工環(huán)境下常會因為各種干擾而發(fā)生跳變,同步效果并不理想。后者長時間存在頻率漂移,同樣無法維持長時間的同步采集。
 為解決以上問題,本文將GPS授時信號用于校準(zhǔn)各站點的壓控晶振,之后再使用晶振分頻得到定時信號來同步各采集站點。這樣不僅克服了GPS授時信號易受外界干擾的缺點,也解決了晶振頻率隨時間漂移的問題,能獲得較為理想的同步信號。為了使本地晶振長時間地同步于GPS系統(tǒng),就需要不斷測量GPS授時信號與本地晶振的分頻信號的時間間隔[2],再根據(jù)測量數(shù)據(jù)來校準(zhǔn)和同步本地晶振。因此,時間間隔測量的準(zhǔn)確性是保證頻率校準(zhǔn)系統(tǒng)工作性能的關(guān)鍵。本文基于FPGA集成度高、高速和高可靠性的特點,介紹了晶振頻率校準(zhǔn)系統(tǒng)在FPGA中的設(shè)計方法。系統(tǒng)的特點是使用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)勢。
1 系統(tǒng)設(shè)計
1.1 系統(tǒng)實現(xiàn)方案

 系統(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)換模塊的輸入得到修正本地晶振頻率的控制電壓。

1.2 測量原理
 時間間隔在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)生測量誤差。因此,待測的時間間隔可以表示為:

1.3 延遲線模塊的設(shè)計
    為了在短時間內(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.
1.4 計數(shù)器模塊的設(shè)計
  圖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é)果。
1.5 PicoBlaze軟核設(shè)計
 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)工作。
2 測量數(shù)據(jù)處理
 根據(jù)測量到的時間間隔數(shù)據(jù),按照公式:
   
    可以計算出晶振信號相對于GPS的頻率偏差,其中T1和T2分別是測量部分相隔采樣時間τ前后輸出的時間間隔測量值。根據(jù)頻率偏差的大小,再結(jié)合晶振的壓控靈敏度,便可以實現(xiàn)對晶振的輸出頻率進(jìn)行控制和修正。但GPS信號在傳輸過程中容易受到外界影響,GPS模塊輸出的1-pps信號是一個波動信號,其短期穩(wěn)定性較差。圖8的黑色曲線是使用本系統(tǒng)測量得到的本地晶振相對于GPS系統(tǒng)的時間間隔曲線,使用這些數(shù)據(jù)計算得到的頻率偏差也會受到影響而發(fā)生波動,所以不能直接使用。

 
    從式(4)可以看出,計算頻率偏差僅僅需要窗口的端點處的測量值而不受窗口內(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)輸出的時間間隔,對比可以看出濾波對抖動和較大的跳變點都有很好的抑制作用。
    本文介紹的晶振頻率校準(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)確度有要求的儀器中使用。
參考文獻(xià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-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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。