基于數(shù)字鎖相環(huán)的晶振頻率同步模塊設(shè)計
為滿足現(xiàn)代通信技術(shù)、雷達技術(shù)、電子測量以及光電應(yīng)用領(lǐng)域?qū)Ω叻€(wěn)定度高準確度時鐘的要求,設(shè)計了一種基于數(shù)字鎖相環(huán)的晶振同步系統(tǒng)。系統(tǒng)以基于FPGA數(shù)字延遲線的高分辨率鑒頻鑒相器以及在MicroBlaze核中實現(xiàn)的卡爾曼數(shù)字環(huán)路濾波器為核心,通過16 bit DAC微調(diào)本地晶振振蕩頻率,使其同步于GPS秒脈沖,從而獲得了高準確度高、穩(wěn)定度的本地時鐘。
現(xiàn)有的射頻頻率源大多采用恒溫晶振作為頻標,以獲得比較好的頻率短期穩(wěn)定度,但是恒溫晶振的長期穩(wěn)定度不能保證,存在累積誤差,需要定期校準。本設(shè)計利用GPS秒脈沖沒有累計誤差的特點,通過測量本地晶振與GPS秒脈沖的頻率以及相位誤差,將誤差進行卡爾曼濾波后送入PI調(diào)節(jié)器,并將得到的誤差轉(zhuǎn)為DAC的輸入值來調(diào)整本地晶振的輸出頻率,從而獲得一個長期與短期穩(wěn)定度都很好的頻標[1]。該模塊的alce主要在FPGA內(nèi)部實現(xiàn),降低了規(guī)模,便于其集成于與其他通信、測量系統(tǒng)中。
1 系統(tǒng)設(shè)計
系統(tǒng)總體設(shè)計方案如圖1所示,其中GPS接收模塊可以輸出由GPS信號中的秒脈沖信號。在FPGA模塊中,實現(xiàn)了一個由計數(shù)器和數(shù)字延遲線構(gòu)成的高精度鑒頻鑒相器和一個由卡爾曼濾波以及PI控制器構(gòu)成的數(shù)字環(huán)路濾波器。DAC模塊將環(huán)路濾波器的輸出轉(zhuǎn)換為對晶振頻率的控制量,從而構(gòu)成一個數(shù)字鎖相環(huán)。在環(huán)路鎖定的情況下,本地振蕩器的振蕩頻率即可與GPS星載原子鐘保持嚴格同步。
2 電路設(shè)計
2.1 高精度鑒頻鑒相器的設(shè)計
在傳統(tǒng)的鑒相器設(shè)計中,通常只是利用一個計數(shù)器對輸入信號進行計數(shù),受到電路的工作頻率限制,其精度大約在10 ns量級。由此產(chǎn)生的量化誤差,將對系統(tǒng)的準確度造成很大影響。為了達到1e-10甚至更高的準確度,就需要提高時間測量的精度。在以往的設(shè)計中,通常采用專用TDC芯片測量,但其成本高,對PCB設(shè)計很敏感。為此,本系統(tǒng)在采用計數(shù)器進行粗測量的同時,利用Xilinx公司的FPGA內(nèi)部的高速進位資源,構(gòu)建了一個數(shù)字延遲線,實現(xiàn)了100 ps量級的細測量,即在FPGA內(nèi)部實現(xiàn)了一個TDC單元,從而降低了頻率量化對系統(tǒng)準確度的影響。另外,從相位噪聲的角度分析,提高鑒相器的量化位數(shù),也可以有效地降低量化噪聲對系統(tǒng)相位噪聲的影響。
由于秒脈沖的時間相對測量精度比較長,為了實現(xiàn)大范圍的測量,設(shè)計中采用了鑒頻鑒相器測量GPS秒脈沖與本地振蕩器的偏差。如圖2所示,其中由100 MHz時鐘驅(qū)動的粗計數(shù)器實現(xiàn)了頻率的測量,而由數(shù)字延遲線構(gòu)成的鑒相器,可以測量遠小于一個時鐘周期的相位誤差。
如圖2,同步器的功能是將異步的秒脈沖信號與時鐘同步,作為計數(shù)器的同步置零輸入,由兩級D觸發(fā)器的級聯(lián)構(gòu)成,用于保證時序裕量可以讓潛在的亞穩(wěn)態(tài)可能性降到最低,即保證當觸發(fā)信號在時鐘信號的保持建立窗口中到達時,可以讓觸發(fā)器有足夠時間恢復(fù)到穩(wěn)定狀態(tài)。計數(shù)器為一個同步置零計數(shù)器。為了在大約1 s的時間內(nèi)對100 MHz時鐘進行計數(shù),計數(shù)器的位寬被設(shè)計為27 bit。
數(shù)字延遲線則是用于測量同步觸發(fā)信號與異步秒脈沖之間的時間差,是本測量模塊的關(guān)鍵。為了實現(xiàn)高精度時間測量,本系統(tǒng)采用了一種基于抽頭延遲線的方法,其中延遲線由多個延遲單元組成,每個延遲單元都有相同的傳輸時延τ。通過采樣初始脈沖在線路中傳播時線路的狀態(tài),利用內(nèi)插法,完成對兩個觸發(fā)脈沖時間間隔的測量,從而獲得秒脈沖與本地振蕩器的相位差。
在FPGA中,有乘法器、比較器、加法器,可以將專用進位連線連接成進位鏈。由于加法器實現(xiàn)簡單,可以清晰地顯示出進位信號的邏輯關(guān)系。因此加法器是最適合實現(xiàn)延遲線內(nèi)插器的方案。
為實現(xiàn)對輸入信號的時間內(nèi)插,就需要使待測信號沿進位鏈傳播。串行進位加法器的表達式如下:
Sum=A⊕B⊕Cin
Cout=AB+(A+B)Cin
如圖3所示,設(shè)置輸入A為全1,輸入B最低位為待測量信號,其余為0。當外部信號輸入為0時,加數(shù)的最低位為0,所有輸出都為1,進位鏈上沒有信號。當外部輸入變成1時,B的最低位變成1,這時最低位輸出0,進位信號變?yōu)?,進入進位鏈傳播。輸入信號沿進位鏈傳播的同時,也被逐級延時,這時,加法器的輸出中0的個數(shù),代表了輸入信號經(jīng)過的延遲單元的個數(shù)。這樣,就實現(xiàn)了對輸入信號的內(nèi)插。
可以看出,從加法器的輸出中可以獲得需要的延遲信息,這就需要在加法器的輸出端每一位后加一個鎖存器,用以測量結(jié)束時保存進位鏈的狀態(tài)。在本設(shè)計中鎖存器的時鐘端需要嚴格同步,這樣采集到的信息才有意義,才能代表時間延遲信息。同時,在鎖存器的時鐘信號即結(jié)束信號的保持建立窗口中,加法器的輸出會發(fā)生改變,會帶來亞穩(wěn)態(tài)的問題。為了解決這個問題,本設(shè)計在第一個鎖存器之后又加入兩個由工作時鐘驅(qū)動的鎖存器構(gòu)成的同步器。
本設(shè)計中最關(guān)鍵之處是利用進位鏈實現(xiàn)延遲線的布局與布線。以Spartan 3系列FPGA為例[2],CLB是FPGA內(nèi)的基本邏輯單元,每個CLB都包含一個可配置開關(guān)矩陣,此矩陣由4個輸入、一些選型電路(多路復(fù)用器等)和觸發(fā)器組成。 開關(guān)矩陣是高度靈活的,可以對其進行配置以便處理組合邏輯、移位寄存器或RAM。
一個CLB由4個相同的SLICE組成。SLICE中的進位邏輯包括一個進位專用多路復(fù)用器和一個進位專用異或門組成。 進位邏輯的延時在CLB中和相鄰的CLB中都有專用連接,這些連接的延遲幾乎為零。這就為利用進位鏈構(gòu)成內(nèi)插延遲線創(chuàng)造了條件。
在Spartan3系列FPGA中,CLB中的左側(cè)兩個SLICE的CIN/COUT直接與垂直相鄰的CLB中左側(cè)的兩個SLICE的COUT/CIN相連,右側(cè)亦然。以Spartan3系列的XC3S200 FPGA為例,該FPGA共有24行20列共480個CLB,1 920個SLICE,故FPGA上在最大情況下共可配置40個96 bit的進位鏈。
經(jīng)過實驗,在ISE環(huán)境下直接調(diào)用加法器的IP核,并將XST綜合選項設(shè)置為面積優(yōu)先。在布局布線后用FPGA Editor檢查底層結(jié)構(gòu),就可以得到理想中的內(nèi)插器結(jié)構(gòu)。經(jīng)過MODELSIM后仿真,結(jié)果可以看出該延遲線是均勻的。在實際測試中,由于相鄰的兩個延遲單元可能會同時落入鎖存器的保持建立窗口中,導(dǎo)致分辨率的降低,最終數(shù)字延遲線的分辨率約為200 ps。
最后,在同步觸發(fā)信號到達時,鎖存延遲線信息,就可以得到溫度計碼的結(jié)果,再經(jīng)過優(yōu)先編碼以后,送出中斷,通知microBlaze讀取結(jié)果。
2.2 環(huán)路濾波器
不同于一般ADPLL,由于GPS秒脈沖信號頻率低、信號在傳輸中易受到干擾的特點,本系統(tǒng)不能使用通常的N-before-M等數(shù)字環(huán)路濾波器。
本系統(tǒng)采用的LEA-5S GPS模塊輸出的秒脈沖信號精度有效值為30 ns,99%精度小于60 ns。在進行濾波之前,首先要根據(jù)上文所述進行數(shù)據(jù)有效性判斷,再進行數(shù)據(jù)合成(用本次計數(shù)器值為高位,內(nèi)插器結(jié)果為低位,減去前一次內(nèi)插器結(jié)果)以及硬限幅處理[3],將與理想秒脈沖相差過大的數(shù)據(jù)剔除后,將結(jié)果送入卡爾曼濾波器。
在濾波器設(shè)計上,采用了卡爾曼濾波+PI控制方法,有效濾除了噪聲,減小了系統(tǒng)超調(diào)與震蕩,同時將零差降到最小[4-5]。
卡爾曼濾波器是一個最優(yōu)化自回歸數(shù)據(jù)處理算法??柭鼮V波是一種遞歸的估計,利用獲知上一采樣狀態(tài)的估計值以及當前狀態(tài)的觀測值就可以計算出當前狀態(tài)的估計值,因此不需要記錄觀測或者估計的歷史信息。相比FIR或滑動平均等濾波器,卡爾曼濾波可以節(jié)約大量的存儲空間,更利于在低密度FPGA上的實現(xiàn)。
由于卡爾曼濾波需要大量矩陣運算,且需要浮點數(shù)來保持其精度以保證最后的收斂,同時,本系統(tǒng)對濾波計算的時間并非十分嚴格,故本系統(tǒng)中的卡爾曼濾波器在MicroBlaze核中利用C語言實現(xiàn)。KALMAN濾波流程圖如圖4所示。
在卡爾曼濾波中,動態(tài)系統(tǒng)維數(shù)、觀測系統(tǒng)維數(shù)均設(shè)為1。同時,應(yīng)對X0進行初步估計,可以使濾波器收斂速度加快。
濾波后得到當前時刻誤差的估計值,將其送入PI模塊。在鎖相環(huán)系統(tǒng)設(shè)計中,通常在VCO外再添加一個積分項,來構(gòu)成一個2類鎖相環(huán),以保證系統(tǒng)的收斂,同時消除零差[6]。在PI控制器整定的過程中,先調(diào)整比例系數(shù),再調(diào)整積分系數(shù),通過實驗找出最優(yōu)值。
2.3 DAC及晶振電路設(shè)計
本設(shè)計中,晶振選擇的型號為TCEBBCS-10.000TCXO,其牽引范圍為±8 ppm,在使用中能夠基本滿足要求,在未來,如將TCXO替換為OCXO,可以進一步提高系統(tǒng)的穩(wěn)定度。另外可以選擇牽引范圍更窄的晶振,以進一步提高系統(tǒng)的最小分辨率。
在DAC選擇上,需要滿足低噪聲的要求。本設(shè)計DAC選擇16 bit高性能的AD5541,其采用R-2R結(jié)構(gòu)設(shè)計,噪聲可滿足全16 bit精度輸出,非緩沖輸出可以直接驅(qū)動晶振的控制端。
3 測試結(jié)果及分析
圖5是利用CHIPSCOPE抓取的秒脈沖偏差與卡爾曼濾波后的結(jié)果??梢钥闯觯柭鼮V波器對GPS信號的跳變有比較好的濾除作用。
系統(tǒng)的測試結(jié)果如表1所示。
本文介紹的晶振頻率同步系統(tǒng),利用數(shù)字鎖相環(huán)將晶振的輸出頻率同步于GPS星載時標,從而獲得了一個高穩(wěn)定度、高準確度的本地振蕩器。其中,高分辨率數(shù)字鑒頻鑒相器可以減小系統(tǒng)的量化誤差,提高精度。環(huán)路濾波器中的卡爾曼濾波器可以很好地抑制GPS秒脈沖對系統(tǒng)造成的干擾。此外,系統(tǒng)的測量單元集成在FPGA之內(nèi),降低了系統(tǒng)的成本、體積,提高了穩(wěn)定性。該系統(tǒng)可以廣泛應(yīng)用于通信網(wǎng)絡(luò)、測試測量等各個領(lǐng)域,為其提供高質(zhì)量免校準的頻率基準。
評論