摘 要: 為滿足現(xiàn)代通信技術、雷達技術、電子測量以及光電應用領域對高穩(wěn)定度高準確度時鐘的要求,設計了一種基于數字鎖相環(huán)的晶振同步系統(tǒng)。系統(tǒng)以基于FPGA數字延遲線的高分辨率鑒頻鑒相器以及在MicroBlaze核中實現(xiàn)的卡爾曼數字環(huán)路濾波器為核心,通過16 bit DAC微調本地晶振振蕩頻率,使其同步于GPS秒脈沖,從而獲得了高準確度高、穩(wěn)定度的本地時鐘。
關鍵詞: GPS;FPGA;頻率校準;延遲線;卡爾曼濾波器
現(xiàn)有的射頻頻率源大多采用恒溫晶振作為頻標,以獲得比較好的頻率短期穩(wěn)定度,但是恒溫晶振的長期穩(wěn)定度不能保證,存在累積誤差,需要定期校準。本設計利用GPS秒脈沖沒有累計誤差的特點,通過測量本地晶振與GPS秒脈沖的頻率以及相位誤差,將誤差進行卡爾曼濾波后送入PI調節(jié)器,并將得到的誤差轉為DAC的輸入值來調整本地晶振的輸出頻率,從而獲得一個長期與短期穩(wěn)定度都很好的頻標[1]。該模塊的alce主要在FPGA內部實現(xiàn),降低了規(guī)模,便于其集成于與其他通信、測量系統(tǒng)中。
1 系統(tǒng)設計
系統(tǒng)總體設計方案如圖1所示,其中GPS接收模塊可以輸出由GPS信號中的秒脈沖信號。在FPGA模塊中,實現(xiàn)了一個由計數器和數字延遲線構成的高精度鑒頻鑒相器和一個由卡爾曼濾波以及PI控制器構成的數字環(huán)路濾波器。DAC模塊將環(huán)路濾波器的輸出轉換為對晶振頻率的控制量,從而構成一個數字鎖相環(huán)。在環(huán)路鎖定的情況下,本地振蕩器的振蕩頻率即可與GPS星載原子鐘保持嚴格同步。
2 電路設計
2.1 高精度鑒頻鑒相器的設計
在傳統(tǒng)的鑒相器設計中,通常只是利用一個計數器對輸入信號進行計數,受到電路的工作頻率限制,其精度大約在10 ns量級。由此產生的量化誤差,將對系統(tǒng)的準確度造成很大影響。為了達到1e-10甚至更高的準確度,就需要提高時間測量的精度。在以往的設計中,通常采用專用TDC芯片測量,但其成本高,對PCB設計很敏感。為此,本系統(tǒng)在采用計數器進行粗測量的同時,利用Xilinx公司的FPGA內部的高速進位資源,構建了一個數字延遲線,實現(xiàn)了100 ps量級的細測量,即在FPGA內部實現(xiàn)了一個TDC單元,從而降低了頻率量化對系統(tǒng)準確度的影響。另外,從相位噪聲的角度分析,提高鑒相器的量化位數,也可以有效地降低量化噪聲對系統(tǒng)相位噪聲的影響。
由于秒脈沖的時間相對測量精度比較長,為了實現(xiàn)大范圍的測量,設計中采用了鑒頻鑒相器測量GPS秒脈沖與本地振蕩器的偏差。如圖2所示,其中由100 MHz時鐘驅動的粗計數器實現(xiàn)了頻率的測量,而由數字延遲線構成的鑒相器,可以測量遠小于一個時鐘周期的相位誤差。
如圖2,同步器的功能是將異步的秒脈沖信號與時鐘同步,作為計數器的同步置零輸入,由兩級D觸發(fā)器的級聯(lián)構成,用于保證時序裕量可以讓潛在的亞穩(wěn)態(tài)可能性降到最低,即保證當觸發(fā)信號在時鐘信號的保持建立窗口中到達時,可以讓觸發(fā)器有足夠時間恢復到穩(wěn)定狀態(tài)。計數器為一個同步置零計數器。為了在大約1 s的時間內對100 MHz時鐘進行計數,計數器的位寬被設計為27 bit。
數字延遲線則是用于測量同步觸發(fā)信號與異步秒脈沖之間的時間差,是本測量模塊的關鍵。為了實現(xiàn)高精度時間測量,本系統(tǒng)采用了一種基于抽頭延遲線的方法,其中延遲線由多個延遲單元組成,每個延遲單元都有相同的傳輸時延τ。通過采樣初始脈沖在線路中傳播時線路的狀態(tài),利用內插法,完成對兩個觸發(fā)脈沖時間間隔的測量,從而獲得秒脈沖與本地振蕩器的相位差。
在FPGA中,有乘法器、比較器、加法器,可以將專用進位連線連接成進位鏈。由于加法器實現(xiàn)簡單,可以清晰地顯示出進位信號的邏輯關系。因此加法器是最適合實現(xiàn)延遲線內插器的方案。
為實現(xiàn)對輸入信號的時間內插,就需要使待測信號沿進位鏈傳播。串行進位加法器的表達式如下:
Sum=A⊕B⊕Cin
Cout=AB+(A+B)Cin
如圖3所示,設置輸入A為全1,輸入B最低位為待測量信號,其余為0。當外部信號輸入為0時,加數的最低位為0,所有輸出都為1,進位鏈上沒有信號。當外部輸入變成1時,B的最低位變成1,這時最低位輸出0,進位信號變?yōu)?,進入進位鏈傳播。輸入信號沿進位鏈傳播的同時,也被逐級延時,這時,加法器的輸出中0的個數,代表了輸入信號經過的延遲單元的個數。這樣,就實現(xiàn)了對輸入信號的內插。
可以看出,從加法器的輸出中可以獲得需要的延遲信息,這就需要在加法器的輸出端每一位后加一個鎖存器,用以測量結束時保存進位鏈的狀態(tài)。在本設計中鎖存器的時鐘端需要嚴格同步,這樣采集到的信息才有意義,才能代表時間延遲信息。同時,在鎖存器的時鐘信號即結束信號的保持建立窗口中,加法器的輸出會發(fā)生改變,會帶來亞穩(wěn)態(tài)的問題。為了解決這個問題,本設計在第一個鎖存器之后又加入兩個由工作時鐘驅動的鎖存器構成的同步器。
本設計中最關鍵之處是利用進位鏈實現(xiàn)延遲線的布局與布線。以Spartan 3系列FPGA為例[2],CLB是FPGA內的基本邏輯單元,每個CLB都包含一個可配置開關矩陣,此矩陣由4個輸入、一些選型電路(多路復用器等)和觸發(fā)器組成。 開關矩陣是高度靈活的,可以對其進行配置以便處理組合邏輯、移位寄存器或RAM。
一個CLB由4個相同的SLICE組成。SLICE中的進位邏輯包括一個進位專用多路復用器和一個進位專用異或門組成。 進位邏輯的延時在CLB中和相鄰的CLB中都有專用連接,這些連接的延遲幾乎為零。這就為利用進位鏈構成內插延遲線創(chuàng)造了條件。
在Spartan3系列FPGA中,CLB中的左側兩個SLICE的CIN/COUT直接與垂直相鄰的CLB中左側的兩個SLICE的COUT/CIN相連,右側亦然。以Spartan3系列的XC3S200 FPGA為例,該FPGA共有24行20列共480個CLB,1 920個SLICE,故FPGA上在最大情況下共可配置40個96 bit的進位鏈。





