基于FPGA動態(tài)信號產(chǎn)生器設(shè)計
1 背景
信號源作為現(xiàn)代電子產(chǎn)品中的重要一員,必須滿足高精度、高速度、高分辨率等要求。作為檢查高精度雷達(dá)設(shè)備的動態(tài)信號源更需要滿足這些要求。雷達(dá)測量設(shè)備在日常維護(hù)保養(yǎng)中,由于沒有也不可能用跟蹤動態(tài)目標(biāo)來完成設(shè)備性能的檢查,所以都是用信號源產(chǎn)生信號進(jìn)行檢查,而信號源無法模擬實際動態(tài)信號,因此在多數(shù)情況下無法準(zhǔn)確地檢查設(shè)備的動態(tài)性能。本文研究并實現(xiàn)了基于FPGA(Field Programmable Gate Array)的智能動態(tài)信號源,采用了DDS(Direct Digital Synthesis)技術(shù)。FPGA與DDS相結(jié)合的方案顯示出很多突出的優(yōu)點:高頻率分辨率;超寬的頻率范圍;能實現(xiàn)各種調(diào)制波和任意波形的產(chǎn)生;關(guān)鍵部分易于實現(xiàn)全數(shù)字化。
2 DDS原理及理論分析
2.1 DDS原理
DDS即"直接數(shù)字頻率合成",是一種較新穎的頻率合成技術(shù),經(jīng)過幾年的發(fā)展,現(xiàn)在已經(jīng)成熟,應(yīng)用非常廣泛。這種技術(shù)的基本原理是使用高穩(wěn)定的參考時鐘源來量化抽樣時間間隔,直接對要產(chǎn)生信號進(jìn)行抽樣、量化和信號映射,然后經(jīng)過D/A轉(zhuǎn)換和低通濾波,輸出需要的模擬信號。其原理如圖1所示。
通常情況下累加器的位數(shù)一般都比較高,以獲取高的頻率和相位分辨率,但考慮到如下兩個原因,一般函數(shù)發(fā)生器只用N位累加器中的高M(jìn)位,而舍去其低位:一是函數(shù)發(fā)生器(波形存儲器)的RAM的存儲容量有限;二是由于數(shù)/模轉(zhuǎn)換的精度限制和外界干擾的影響,隨著位數(shù)的增加,其輸出的幅度值的分辨率無法隨之無限制地增加。
2.2理論分析
2.2.1 DDS輸出頻率表達(dá)式 360°/2M (1) 2.2.2 系統(tǒng)的頻率分辨率 2.2.3 系統(tǒng)可輸出的最高頻率 3.1動態(tài)信號產(chǎn)生流程 3.2關(guān)鍵參數(shù)設(shè)計 3.2.1 參考時鐘選擇 3.2.2 累加器位數(shù)選擇 取NCO相位累加器的位數(shù)為N=40。 3.3主要芯片選擇 3.3.1 FPGA芯片的選擇 Altera公司的Stratix芯片可以滿足需要。該芯片的核心電壓為1.5 V,采用O.13 μm,全銅技術(shù)制造,最大寄存器容看锏? Mb。 3.3.2 數(shù)字模擬轉(zhuǎn)換芯片的選擇 3.4算法設(shè)計 3.4.1 頻控碼算法 k=(fo×2N)/fc 3.4.2波形數(shù)據(jù)算法 其中,M為函數(shù)發(fā)生器數(shù)據(jù)寬度,在此為14,t為時間單位,在此為整數(shù),取值范圍為:0,1,…,2M-1,實際上t就是函數(shù)發(fā)生的輸入地址值。 4 產(chǎn)生信號波形圖 從圖3中可以看出,輸出為5 MHz數(shù)字信號,該信號是在固定頻控碼增量條件下產(chǎn)生的。經(jīng)過多次采樣和波形比對,其頻率是變化的。由于一個周期只有5個采樣點,所以信號波形看起來不是很光滑。通過8566A頻譜分析儀觀察頻譜,產(chǎn)生的5 MHz信號的頻譜特性非常好,雜波抑制在70 dB以上,諧波抑制在45 dB以上。 5 結(jié)語
fc為參考時鐘頻率,Tc=1/fc;fo為輸出頻率,To=1/fo;k為頻率控制字,即相位增量。
設(shè)累加器的長度為N位,函數(shù)發(fā)生器產(chǎn)生一個周期正弦波輸出是M位(N位中的最高M(jìn)位,M
同樣,N位中的LSB相當(dāng)于2π/2N弧度。該360°/2N弧度就是最小的相位增量。于是,k值對應(yīng)的相位增量就是k*2π/2N弧度。這樣,完成一個周期的正弦波輸出需要經(jīng)過2π/(K*2π/2N)個參考時鐘周期,即2N/K個周期。因此,可以得到輸出頻率的周期為:
可見,輸出頻率fo與頻率控制字k成正比。如果已知輸出頻率fo,即可算出頻率控制字k。
當(dāng)k=1時,對應(yīng)輸出頻率為可輸出的最低頻率值,也就是頻率分辨率:
fo=fc/2N (4)
理論上,輸出的最高頻率主要受奈奎斯特頻率的限制。根據(jù)采樣定理,當(dāng)k=2N-1時,系統(tǒng)輸出達(dá)到理論輸出的最高頻率:fo=fc/2。但在實際設(shè)計的DDS系統(tǒng)中,由于以下幾個原因,設(shè)計的最大輸出頻率必須小于fc/2:一是輸出濾波器的非理想性,一般輸出信號的最大頻率為參考時鐘頻率fc的40%左右;二是如果產(chǎn)生的是正弦信號,且輸出的頻率為采樣時鐘的一半,同時采樣點正好處于零點,則無法產(chǎn)生需要的信號。但是從以上幾點分析,DDS系統(tǒng)可以得到非常寬的頻率調(diào)節(jié)范圍,其相對帶寬為:
3 動態(tài)信號產(chǎn)生器的設(shè)計
系統(tǒng)框圖如圖2所示。動態(tài)信號產(chǎn)生器的核心部分DDS的數(shù)字部分用FPGA實現(xiàn)。同時FPGA還接收外部控制信號和產(chǎn)生用于控制整個電路工作的同步信號,向PC微機(jī)發(fā)送FPGA工作狀態(tài)。圖2中NCO,D/A轉(zhuǎn)換和濾波電路構(gòu)成了DDS電路。寄存器用來存放產(chǎn)生動態(tài)信號的頻控碼;時鐘處理電路用來產(chǎn)生采樣時鐘信號和同步信號;串口電路用來完成與微機(jī)接口的任務(wù),接收來自于微機(jī)的控制信號和數(shù)據(jù)。NCO由鎖存器、相位累加器和波形存儲器(RAM)構(gòu)成。鎖存器作為相位增量寄存器,相位累加器用于實現(xiàn)地址的累加,用該地址信息從波形存儲器中獲取相應(yīng)的波形數(shù)據(jù)。波形存儲器用于存放各種波形數(shù)據(jù),可通過計算機(jī)來產(chǎn)生多種信號波形數(shù)據(jù),從而實現(xiàn)信號源的多功能化。經(jīng)過波形存儲器后,將這些數(shù)字信號進(jìn)行數(shù)/模轉(zhuǎn)換得到模擬信號。最后再通過運(yùn)算放大器和濾波整形電路將信號濾波、放大后輸出。
由表達(dá)式(3)可以看出,只要頻控碼k變化,則輸出頻率隨之變化,從而實現(xiàn)信號頻率的改變。
圖2中虛線內(nèi)為FPGA部分,虛線外部分主要為FPGA服務(wù)。其中存儲器完成對FPGA配置的功能;接口電路完成電平轉(zhuǎn)換功能主要是將FPGA輸出的TTL電平轉(zhuǎn)換成RS 232標(biāo)準(zhǔn)電平。
濾波器設(shè)計采用了晶體濾波器,以濾除所產(chǎn)生動態(tài)信號的相位噪聲,滿足雷達(dá)設(shè)備應(yīng)用。
由于要產(chǎn)生的信號頻率為5 MHz,由上述分析可知,參考時鐘必須大于:
在此選擇了fc=25 MHz。
累加器位數(shù)的選擇主要決定于5 MHz信號的頻率分辨率,本動態(tài)5 MHz信號產(chǎn)生器需要的分辨率為δ=8×10-5Hz,根據(jù)表達(dá)式(4),可計算出累加器的位數(shù)N。
其中,fc=25 MHz為時鐘頻率,δ為分辨率,則相位累加器的位數(shù)為:
3.2.3 函數(shù)發(fā)生器位數(shù)選擇
函數(shù)發(fā)生器位數(shù)的選擇主要決定于輸出5 MHz信號的相位分辨率,本動態(tài)5 MHz信號產(chǎn)生器需要的分辨率為a=0.034°,則根據(jù)表達(dá)式(1),可計算出函數(shù)發(fā)生器位數(shù)為:
取M=14。
由于頻控碼在產(chǎn)生動態(tài)信號前,需要全部裝入FPGA的RAM中,所以FPGA的RAM必須滿足一定要求。計算過程如下:
產(chǎn)生動態(tài)信號時間長度設(shè)定為500 s,每秒頻控碼為80個,所以,共有:500×80=40 000幀數(shù)據(jù)。每幀數(shù)據(jù)為16位,共需寄存器的位數(shù)為:40 000×16=640 000。在NCO中還需實現(xiàn)函數(shù)發(fā)生器,函數(shù)發(fā)生器的地址寬度為14位,數(shù)據(jù)寬度也為14位,則需要的寄存器位數(shù)為:214×14=229 367。所以最終需要的寄存器位數(shù)為:640 000+229 376=869 376。
其次,F(xiàn)PGA中必須有專用時鐘處理電路,最少要有2個PLL。NCO需要的時鐘較多,且時鐘之間有嚴(yán)格的時序關(guān)系。時鐘的類型主要有:數(shù)/模轉(zhuǎn)換需要的時鐘;串口時鐘;參考時鐘;80 Hz信號。
相位累加器的位數(shù)為14位,所以D/A轉(zhuǎn)換器件的位數(shù)也必須是14位的。經(jīng)過選擇比對,AD公司的AD9754數(shù)/模轉(zhuǎn)換器件可以滿足要求。該數(shù)/模轉(zhuǎn)換器具有14位精度,最大調(diào)整率為125 MSPS,片上集成了兩級輸入寄存器和參考電流源,所以設(shè)計電路簡單,操作靈活,只需要較少的外部元器件就可以完成數(shù)/模轉(zhuǎn)換功能。
AD9754為電流型輸出器件,需要進(jìn)行電流電壓轉(zhuǎn)換。擬用AD公司AD9631運(yùn)算放大器完成電流電壓轉(zhuǎn)換功能,該運(yùn)放的單位增益帶寬在大信號情況下為175 MHz,在小信號情況下更寬。供電電壓為±5 V,輸出擺率為1 300 V/μs。
軟件設(shè)計主要包括配置FPGA、計算波形數(shù)據(jù)和頻控碼數(shù)據(jù)。同時軟件還要完成監(jiān)控顯示任務(wù)。軟件開發(fā)用VC++,操作系統(tǒng)用Windows NT。由軟件計算頻控碼并通過串口發(fā)送到FPGA的RAM中。波形數(shù)據(jù)可以以初始化文件形式寫入FPGA的RAM中,可寫入正弦波、三角波、方波等波形,還可寫入各種調(diào)制波形。不同的波形數(shù)據(jù)用函數(shù)發(fā)生器地址加以區(qū)分,這樣可隨時改變輸出信號的波形。系統(tǒng)控制命令發(fā)出后便可脫機(jī)工作。
根據(jù)表達(dá)式(3),可以得出計算頻控碼的表達(dá)式如下:
表達(dá)式如下:
在調(diào)試階段,利用FPGA開發(fā)板對設(shè)計進(jìn)行了驗證,工作正常,波形如圖3所示。
通過產(chǎn)生的動態(tài)5 MHz信號對高精度雷達(dá)設(shè)備進(jìn)行檢查,證明了本方案是可行的,能夠完成對設(shè)備動態(tài)性能的檢查,使設(shè)備的維護(hù)保養(yǎng)更具有針對性。
評論