基于FPGA的壓控晶振同步頻率控制系統(tǒng)的研究與設(shè)計
引言
高精度時間基準(zhǔn)已經(jīng)成為通信、電力、工業(yè)控制等領(lǐng)域的基礎(chǔ)保障平臺之一。時統(tǒng)設(shè)備通常采用晶體振蕩器作為頻率標(biāo)準(zhǔn),但都由于晶振老化和溫度變化等原因?qū)е缕漕l率長期穩(wěn)定度差。隨著GPS技術(shù)的發(fā)展和應(yīng)用,利用GPS作為精確時間源的優(yōu)良特性來同步本地時鐘信息。但在實(shí)踐中由于GPS提供的1pps信號經(jīng)常受到干擾,如磁場干擾,多徑誤差等,造成誤將干擾信號作為正常的1pps信號或GPS信號跟蹤丟失等問題,導(dǎo)致測控系統(tǒng)出現(xiàn)誤差過大現(xiàn)象,精度和穩(wěn)定性難以保證。故1pps信號不能直接從GPS接收板作為精確的同步信號,必須通過技術(shù)處理,使其保持高精度和工作連續(xù)穩(wěn)定性。目前針對上述問題文獻(xiàn)多使用分立器件或單片機(jī)作為主控制器,需要添加外圍時間間隔測量或鑒相等電路,不適宜用于壓控晶振頻率較高的場合。
本文是利用GPS提供的1pps秒脈沖信號,為解決上述問題,在FPGA(fieldprogrammablegatearray)的基礎(chǔ)上利用干擾秒脈沖信號消除和偏差頻率平均運(yùn)算等方法,減少外圍電路,既消減了GPS時鐘信號的隨機(jī)干擾誤差,又消除了本地晶振時鐘信號的累計誤差,從而控制本地壓控晶振輸出頻率,提高晶振的長期穩(wěn)定性。
1、頻率控制系統(tǒng)結(jié)構(gòu)及工作原理
FPGA頻率控制系統(tǒng)總體結(jié)構(gòu)原理框圖如圖1所示。系統(tǒng)輸入是GPS接收機(jī)在跟蹤衛(wèi)星時產(chǎn)生的1pps秒脈沖信號,邏輯電平輸出,高電平持續(xù)時間為1.01±0.01ms,以高電平的上升沿作為秒脈沖信號輸出的基準(zhǔn)時間[9-10]。數(shù)字控制電路為FPGA控制電路,主控芯片為EP1C6-——144TQFP,可以反復(fù)軟件編程,修改電路方案,外圍硬件電路少,可靠性高。該電路將測量本地壓控晶振產(chǎn)生同步秒脈沖與1pps秒脈沖之間的相位差,采用干擾秒脈沖信號消除和偏差頻率平均運(yùn)算等方法得到同步信號所需的相對頻差。D/A轉(zhuǎn)換器將相對頻差轉(zhuǎn)換為模擬控制電壓,反饋到本地恒溫壓控晶振的控制端調(diào)整高穩(wěn)晶振的頻率信號,減小與1pps秒脈沖的同步相差,從而提高振蕩器高頻準(zhǔn)確度和長期穩(wěn)定性,實(shí)現(xiàn)數(shù)字同步時鐘的馴服功能。
圖1 FPGA頻率控制系統(tǒng)總體結(jié)構(gòu)原理
2、系統(tǒng)功能設(shè)計
系統(tǒng)功能設(shè)計主要包含硬件設(shè)計和軟件設(shè)計2大部分,如圖2所示。軟件實(shí)現(xiàn)部分為:以VHDL編程語言實(shí)現(xiàn)GPS信號對晶振的馴服功能,包括如何消除GPS干擾信號的方法,實(shí)現(xiàn)GPS同步時鐘的方法,丟失GPS信號后繼續(xù)對晶振頻率的馴服控制,以及輸出本地同步秒時鐘信號。硬件實(shí)現(xiàn)部分為:D/A轉(zhuǎn)換器提供轉(zhuǎn)換后的模擬控制電壓,恒溫壓控晶振根據(jù)模擬電壓校準(zhǔn)頻率,并反饋回FPGA處理器。
圖2 系統(tǒng)功能設(shè)計
2.1、干擾信號判斷及消除
1pps秒脈沖信號以方波形式輸出,高電平表示有秒脈沖輸出,高電平脈沖寬度不是恒定值,持續(xù)時間約為1ms,有0.01ms的誤差,這就導(dǎo)致在1pps信號高電平期間的晶振計數(shù)值不相等。另外由于干擾,接受到的1pps信號中有干擾脈沖信號,若把干擾脈沖上升沿作為1pps信號的上升沿開始計數(shù),計數(shù)結(jié)果必然不準(zhǔn)確,所測得的晶振頻率值與實(shí)際值偏差過大。需要軟件判斷出干擾信號并作出處理。
數(shù)字電路中干擾脈沖的高電平持續(xù)時間多數(shù)是微秒級,很少有超過1pps秒脈沖信號高電平持續(xù)時間的,因此以秒脈沖高電平持續(xù)時間作為判斷依據(jù),以本地壓控晶振計數(shù)來實(shí)現(xiàn)計時功能。晶振標(biāo)稱頻率是10MHz,2ms的計數(shù)值理論值為20000。在晶振高頻脈沖輸出事情發(fā)生clk‘eventandclk=’1‘的前提下,遇到1pps信號事件sclk’eventandsclk=‘1’開始計數(shù),同時用寄存器counter4保存計數(shù)值,如超過2ms高電平的脈沖信號為正常1pps信號,若小于2ms則認(rèn)為是干擾信號,寄存器counter4計數(shù)值返回至該信號脈沖上升沿前的計數(shù)值。
2.2、頻率偏差值計算
為了校準(zhǔn)晶振輸出信號頻率,需要將頻率偏差值計算出來,計算出對應(yīng)調(diào)整數(shù)值,通過D/A轉(zhuǎn)換器變?yōu)槟M電壓,并反饋給恒溫壓控晶振,以此達(dá)到調(diào)整的目的。可以用一元二次回歸模型對輸出的晶振秒時鐘與GPS秒時鐘的頻率偏差進(jìn)行分析。
由于本地恒溫壓控晶振短期穩(wěn)定度高,小于1&TImes;10-10/s,可以不考慮晶振秒脈沖的隨機(jī)誤差,只考慮累積誤差產(chǎn)生的頻率偏差及線性漂移誤差,晶振分頻秒時間序列的第x個秒時鐘的時間誤差e(x)為:
e(x)=a+bx+cx^2(1)
式中:a為秒時間序列的初始誤差,b為頻率偏差的誤差系數(shù),c為頻率線性漂移的誤差系數(shù)。
通過一元二次回歸分析可得式(1)的晶振誤差估計值服從正態(tài)分布:
^e(x)=^a+^bx+^cx2~N(a+bx+cx2,D(^e))(2)
根據(jù)回歸分析,可得,當(dāng)x=n時,秒時鐘的時間誤差的方差有最大值Dmax。通過分析上式最大方差Dmax與回歸分析樣本數(shù)n之間關(guān)系得,樣本數(shù)n越大,最大方差Dmax越小,也就是晶振分頻秒脈沖與GPS秒時鐘的偏差越小。但樣本數(shù)n不能取無限大,受FPGA軟硬件資源的限制,一般來說,當(dāng)n≥3時,調(diào)整后的晶振分頻秒脈沖的時間偏差小于GPS秒時鐘的偏差,可以滿足要求。
上述方法需要在1s內(nèi)累積晶振計數(shù)值,需要有24位的寄存器存儲計數(shù)值,對芯片運(yùn)算處理速度要求過高,且占用較多FPGA資源,影響控制速度。在此基礎(chǔ)上,本文采用偏差頻率平均運(yùn)算的方法。即將每s內(nèi)晶振分頻秒脈沖與GPS秒時鐘偏差值求出,每3個樣本時間作為控制的循環(huán)周期,3s累加內(nèi)總偏差值為Z=Z1+Z2+Z3,求得循環(huán)周期平均偏差值Z0=Z/3,在下一循環(huán)樣本周期內(nèi),每秒反饋給晶振,調(diào)整晶振輸出頻率。
晶振分頻秒脈沖與GPS秒時鐘偏差值具體方法為:用寄存器counter1存入每s內(nèi)晶振的計數(shù)值,理論計數(shù)值為1&TImes;107個晶振脈沖。寄存器counter2為秒時鐘計數(shù)器,當(dāng)判斷1pps信號為非干擾信號后,寄存器counter2自加1計數(shù)。正常秒脈沖頻率的偏差值在±128范圍內(nèi),超過范圍則是超差信號,不作處理,故利用寄存器counter1的低8位作為誤差頻率的寄存器counter3。當(dāng)counter2值達(dá)到循環(huán)控制樣本數(shù)3時,做平均偏差頻率計算,結(jié)果存入寄存器——counter7輸出。
方案仿真波形如圖3所示。因理論計數(shù)值較大,實(shí)際程序運(yùn)算時間過長,結(jié)果難以清楚觀察,對1個秒脈沖時間內(nèi)的晶振脈沖數(shù)減小,為15個晶振脈沖。數(shù)據(jù)減小不影響方案的驗(yàn)證??梢钥闯?,在counter2寄存器計數(shù)到3個秒脈沖的1個控制循環(huán)周期內(nèi),低8位的頻率平均誤差為15,counter7寄存器得到的余數(shù)也為0001111。結(jié)果表明該方案可以準(zhǔn)確得到頻率偏差值。
圖3 方案仿真波形
2.3、D/A轉(zhuǎn)換電路
FPGA主控制器處理得到的晶振偏差頻率平均值會在下1個控制循環(huán)周期內(nèi)輸出給D/A轉(zhuǎn)換器,從而將脈沖量變化規(guī)律轉(zhuǎn)換為電壓控制值反饋給壓控晶振,以達(dá)到調(diào)節(jié)晶振輸出頻率的目的。轉(zhuǎn)換電路使用的是DAC7644芯片,為16位并行輸入的4路數(shù)模轉(zhuǎn)換芯片,單+5V電源工作,本系統(tǒng)使用其中1路數(shù)模轉(zhuǎn)換。前級FPGA輸出頻率誤差寄存器counter7數(shù)據(jù)為正負(fù)偏差頻率值,因FPGA為單電源工作,不能輸出雙極性數(shù)據(jù),需對數(shù)據(jù)做偏置變換,counter7寄存器值加上128后存入counter8寄存器,作為最終輸出數(shù)據(jù)端,此外將counter8類型定義為16為二進(jìn)制邏輯型,I/O輸出直接連接至DAC7644的DB0~DB15數(shù)據(jù)輸入接口即可將控制脈沖量轉(zhuǎn)換為0~5V變化的控制模擬電壓。
2.4、壓控晶體振蕩器
系統(tǒng)使用的是DX2116數(shù)字補(bǔ)償壓控溫補(bǔ)晶體振蕩器,該振蕩器標(biāo)稱頻率為10MHz,溫度穩(wěn)定度為±1&TImes;10-7,年老化率為±1&TImes;10-6,短期1s穩(wěn)定度為±1×10-7。壓控晶體振蕩器電路原理圖如圖4所示。VCC端為電源端,接+5V電源,電容C1、C2構(gòu)成電源穩(wěn)壓濾波電路。OUT為晶振頻率輸出端。RL、CL構(gòu)成防脈沖干擾尖峰作用。晶振第2引腳接地。VC為壓控晶振電壓控制輸入端,接收由FPGA輸出頻率偏差值經(jīng)過D/A轉(zhuǎn)換器轉(zhuǎn)換的模擬控制電壓值。晶振第3引腳輸出晶振脈沖反饋給FPGA控制器。控制電壓與晶振輸出頻率數(shù)值如表1所示。
圖4 壓控晶體振蕩器電路原理
表1 控制電壓與晶振輸出頻率數(shù)值
3、本地同步秒脈沖
本地壓控晶振經(jīng)數(shù)字控制頻率后,頻率準(zhǔn)確度和長期累積頻率誤差已達(dá)到要求。對校準(zhǔn)后的壓控晶振輸出10MHz進(jìn)行分頻,以接收GPS的第1個1pps信號上升沿作為時間同步基準(zhǔn),軟件進(jìn)行分頻,輸出本地的1pps秒同步信號。此時本地同步秒脈沖信號通用性好,其高電平持續(xù)時間可在線編程改變,滿足不同場合要求,消除GPS信號跟蹤丟失的問題。
4、結(jié)論
本文根據(jù)壓控晶振時鐘精度長期累積誤差的特點(diǎn),采用用晶振信號同步GPS時鐘信號產(chǎn)生高精度時鐘,以FPGA為主要的控制部件,詳述了系統(tǒng)硬件和軟件的應(yīng)用設(shè)計,實(shí)現(xiàn)了本地壓控晶振的數(shù)字同步時鐘馴服控制,該電路避免使用分立硬件電路和單片機(jī),能夠消除或削弱干擾的影響,且系統(tǒng)結(jié)構(gòu)簡單,提高了可靠性和容錯性。