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