王振瑜,吳校生,叔晟竹
(上海交通大學(xué)電子信息與電氣工程學(xué)院微納電子學(xué)系,微米納米加工技術(shù)國(guó)家級(jí)重點(diǎn)實(shí)驗(yàn)室,上海 200240)
信號(hào)發(fā)生源在生產(chǎn)和研發(fā)過(guò)程中能夠提供信號(hào)驅(qū)動(dòng)、參考及運(yùn)算等功能,具有重要意義[1]。目前廣泛使用模擬信號(hào)源進(jìn)行驅(qū)動(dòng),模擬信號(hào)源便于集成,操作簡(jiǎn)單,且頻譜純度較高,使用比較廣泛。但是在自動(dòng)化控制方面,信號(hào)發(fā)生源生成的驅(qū)動(dòng)信號(hào)較難根據(jù)系統(tǒng)需求實(shí)時(shí)調(diào)整頻率和幅值,或者調(diào)整精度較低,頻率范圍較小,存在高分辨率和快速轉(zhuǎn)換速度之間的矛盾[2]。
現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA)在數(shù)字信號(hào)處理、邏輯運(yùn)算、高速信號(hào)收發(fā)等方面具有強(qiáng)大的能力,能夠?qū)ν庠O(shè)電路進(jìn)行精確的控制,目前在很多系統(tǒng)中已經(jīng)作為主芯片應(yīng)用[3]?;贔PGA的特點(diǎn),本文設(shè)計(jì)了FPGA控制下采用直接數(shù)字合成(DDS)和自動(dòng)增益控制(AGC)技術(shù)的信號(hào)發(fā)生系統(tǒng)。DDS是采用直接合成所需波形的一種新的頻率合成技術(shù),與傳統(tǒng)的產(chǎn)生模擬波形的方法相比,DDS具有頻率分辨率高、頻率轉(zhuǎn)換速率快、穩(wěn)定度較高等優(yōu)點(diǎn)[4]。AGC分成增益受控放大電路和控制電壓形成電路2部分,通過(guò)輸出反饋改變?cè)鲆婵刂齐妷?,能夠?qū)崿F(xiàn)信號(hào)的幅值可調(diào)[5]。
本文基于FPGA的控制,結(jié)合DDS技術(shù)和AGC技術(shù)設(shè)計(jì)了精密信號(hào)發(fā)生系統(tǒng)。系統(tǒng)包括FPGA的軟件控制部分和驅(qū)動(dòng)的硬件電路部分,2部分結(jié)合設(shè)計(jì)實(shí)現(xiàn)信號(hào)發(fā)生以及信號(hào)頻率、幅值的變化。將設(shè)計(jì)的信號(hào)發(fā)生系統(tǒng)用以器件驅(qū)動(dòng),能夠得到器件有關(guān)工作特性。本文為基于FPGA的頻率及幅值精確可調(diào)的信號(hào)發(fā)生系統(tǒng)設(shè)計(jì)提供了理論參考。
基于FPGA及DDS和AGC技術(shù)的信號(hào)發(fā)生系統(tǒng)整體框架如圖1所示,整個(gè)信號(hào)發(fā)生系統(tǒng)分為電源模塊、DDS模塊、單端轉(zhuǎn)差分模塊、AGC模塊和DAC模塊等幾個(gè)部分。通過(guò)FPGA對(duì)信號(hào)發(fā)生系統(tǒng)中DDS模塊和數(shù)模轉(zhuǎn)換器(DAC)模塊的控制,能夠控制發(fā)生信號(hào)的波形、頻率以及幅值。信號(hào)發(fā)生系統(tǒng)中各模塊相互獨(dú)立,根據(jù)不同需求接入對(duì)應(yīng)的模塊,能夠滿足不同系統(tǒng)的信號(hào)需求,系統(tǒng)框圖如圖1所示。
圖1 FPGA控制DDS和AGC的信號(hào)發(fā)生系統(tǒng)框圖
在FPGA部分,本文使用Spartan6系列FPGA芯片,通過(guò)芯片向電路系統(tǒng)中的DDS模塊和DAC模塊提供控制時(shí)鐘、數(shù)據(jù)讀寫、同步異步等命令,使DDS模塊產(chǎn)生頻率可調(diào)的正弦電壓信號(hào)及在DAC上產(chǎn)生AGC增益控制電壓模擬信號(hào)。系統(tǒng)電路主要包括DDS、DAC、AGC等模塊。其中DDS模塊主要通過(guò)DDS芯片AD9833產(chǎn)生波形信號(hào),由FPGA通過(guò)控制信號(hào)改變DDS的頻率控制字及輸出波形。DAC模塊主要是通過(guò)DAC芯片AD5686R產(chǎn)生AGC增益控制電壓模擬信號(hào),其中DAC芯片能夠輸出4路波形,由FPGA通過(guò)改變控制命令使DAC產(chǎn)生后續(xù)AGC需要的增益控制電壓模擬信號(hào),從而實(shí)現(xiàn)波形幅值可調(diào)。
根據(jù)DDS芯片模塊的控制信號(hào)時(shí)序要求,本文設(shè)計(jì)完成FPGA的DDS信號(hào)控制算法。FPGA控制算法采用同步時(shí)鐘控制,對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻產(chǎn)生DDS芯片的工作時(shí)鐘fclk。同時(shí),在FPGA內(nèi)部算法中利用分頻后產(chǎn)生的時(shí)鐘fclk對(duì)信號(hào)處理,數(shù)據(jù)傳輸提供頻率參考。FPGA對(duì)DDS模塊控制的命令根據(jù)DDS芯片的工作時(shí)序決定。在同步信號(hào)下降沿的后16個(gè)時(shí)鐘周期內(nèi),DDS芯片讀入16位二進(jìn)制數(shù)作為控制命令,決定DDS芯片的工作方式。DDS的輸出滿足式(1):
(1)
式中:fout為DDS輸出信號(hào)頻率,Hz;fDCLK為外部晶振提供數(shù)字時(shí)鐘,Hz;M為頻率控制字;N為芯片相位累加器位數(shù)。
對(duì)于采用的AD9833芯片而言,其內(nèi)部包括一個(gè)28位的相位累加器,即N=28[6]。因此,M的取值范圍是0~228-1。fDCLK由外部晶振提供,輸出信號(hào)的頻率fout的大小不會(huì)超過(guò)外部晶振產(chǎn)生的時(shí)鐘頻率。
FPGA不僅對(duì)輸出信號(hào)的頻率進(jìn)行控制,還對(duì)信號(hào)的幅值進(jìn)行控制。FPGA通過(guò)控制DAC的輸出電平控制AGC的增益,實(shí)現(xiàn)幅值的改變。根據(jù)DAC芯片的時(shí)序要求,本文完成對(duì)DAC的控制算法。本文采用的DAC芯片是AD5686R,這是一款16位的數(shù)模轉(zhuǎn)換芯片,可以4通道同時(shí)輸出波形。根據(jù)AD5686R的時(shí)序要求,在同步信號(hào)下降沿之后的24個(gè)時(shí)鐘周期內(nèi),F(xiàn)PGA對(duì)DAC芯片輸出24位串行數(shù)據(jù),其中高4位為命令位,之后4位為地址位,低16位為數(shù)字位[7]。DAC的輸出滿足式(2):
(2)
式中:VOUT為DAC輸出模擬信號(hào),V;VREF為DAC參考電壓,V;D為DAC輸入數(shù)字量;N為DAC的位數(shù)。
式中N根據(jù)選用的DAC芯片而定,本文選用的DAC芯片為16位,故N=16。D為16位數(shù)據(jù),DAC根據(jù)D的大小決定輸出的模擬信號(hào)的值。
根據(jù)系統(tǒng)框圖1可知,DAC產(chǎn)生的信號(hào)經(jīng)過(guò)反相器成為AGC的增益控制信號(hào)Vc,根據(jù)AGC控制芯片VCA810數(shù)據(jù)手冊(cè)可知,Vc值的范圍在0~-2 V[8]。其增益的范圍G滿足式(3):
G=10-2(Vc+1)
(3)
式中:G為AGC增益倍數(shù);Vc為AGC的增益控制電壓,V。
由式(3)可知,增益范圍為0.01~100。AGC的增益倍數(shù)與增益控制電壓之間是指數(shù)的關(guān)系。
FPGA根據(jù)對(duì)有關(guān)器件工作狀態(tài)的檢測(cè)結(jié)果或預(yù)設(shè)的控制命令,判斷對(duì)DDS頻率控制字M是否進(jìn)行增減,決定輸出信號(hào)的頻率。根據(jù)AD9833的工作時(shí)序及命令格式,F(xiàn)PGA在確定了DDS的輸出頻率后,需要繼續(xù)控制其輸出特定的波形,AD9833根據(jù)得到的命令可以輸出正弦波、方波、三角波等波形。通過(guò)不斷改變頻率控制字的值,實(shí)現(xiàn)波形的變頻效果。FPGA對(duì)DDS的控制命令流程如圖2所示。
圖2 FPGA對(duì)DDS的控制命令流程
根據(jù)設(shè)計(jì)方案,F(xiàn)PGA對(duì)DDS模塊的控制采用Verilog硬件描述語(yǔ)言編程設(shè)計(jì),在ISE環(huán)境下進(jìn)行編程、仿真和調(diào)試。根據(jù)DDS芯片的工作時(shí)序,僅當(dāng)FSYNC處于低電平時(shí),才可將數(shù)據(jù)傳輸至DDS芯片。SCLK為同步時(shí)鐘,串行數(shù)據(jù)SDATA在FSYNC變?yōu)榈碗娖胶螅袛?shù)據(jù)即會(huì)在16個(gè)時(shí)鐘脈沖的SCLK下降沿移入器件的輸入移位寄存器。仿真波形如圖3所示。
圖3 FPGA對(duì)DDS控制信號(hào)仿真波形
在控制AGC方面,F(xiàn)PGA通過(guò)查找表的方法,將D值通過(guò)一定的順序存放到IP核中,通過(guò)檢測(cè)部分對(duì)器件的工作狀態(tài)進(jìn)行判斷或根據(jù)預(yù)設(shè)控制命令,決定調(diào)用IP核中不同地址儲(chǔ)存的D值,從而控制DAC的輸出。在對(duì)DAC進(jìn)行控制時(shí),F(xiàn)PGA使用與控制DDS相同的時(shí)鐘參考fclk,使得各部分的控制在同步時(shí)鐘下進(jìn)行。FPGA采用同步時(shí)鐘有利于各個(gè)控制部分能夠同時(shí)工作,同時(shí)不易產(chǎn)生延遲與誤碼。FPGA對(duì)DAC的控制命令流程如圖4所示。
圖4 FPGA對(duì)DAC的控制命令流程
根據(jù)設(shè)計(jì)方案,F(xiàn)PGA對(duì)AGC模塊的控制同樣采用Verilog硬件描述語(yǔ)言編程設(shè)計(jì)。FPGA通過(guò)控制DAC的輸出電平控制AGC的增益,實(shí)現(xiàn)幅值的改變。根據(jù)DAC芯片的工作時(shí)序,僅當(dāng)SYNC_N處于低電平時(shí),才可將數(shù)據(jù)傳輸至DAC芯片。SCLK為同步時(shí)鐘,串行數(shù)據(jù)SDIN在SYNC_N變?yōu)榈碗娖胶?,串行?shù)據(jù)即會(huì)在24個(gè)時(shí)鐘脈沖的SCLK下降沿移入器件的輸入移位寄存器,仿真波形如圖5所示。
圖5 FPGA對(duì)DDS控制信號(hào)仿真波形
根據(jù)系統(tǒng)設(shè)計(jì)的框圖,本文對(duì)基于FPGA的信號(hào)發(fā)生系統(tǒng)進(jìn)行了硬件設(shè)計(jì),如圖6所示。驅(qū)動(dòng)電路系統(tǒng)主要包括FPGA開發(fā)板和驅(qū)動(dòng)電路2部分。2部分分別供電,但是進(jìn)行共地處理,F(xiàn)PGA通過(guò)SPI接口與驅(qū)動(dòng)電路的DDS和DAC部分進(jìn)行通信控制。信號(hào)發(fā)生系統(tǒng)各部分聯(lián)合工作,也可根據(jù)實(shí)際需求獨(dú)立工作,能夠滿足不同驅(qū)動(dòng)方式的需求。
圖6 FPGA控制的信號(hào)發(fā)生系統(tǒng)
信號(hào)發(fā)生系統(tǒng)的分辨率和穩(wěn)定性是衡量驅(qū)動(dòng)電路性能的2個(gè)重要指標(biāo)。本文對(duì)設(shè)計(jì)的信號(hào)發(fā)生系統(tǒng)的頻率分辨率和幅值控制情況進(jìn)行了測(cè)試,測(cè)試結(jié)果如圖7所示。DDS的信號(hào)輸出頻率與頻率控制字M之間是線性關(guān)系。當(dāng)ΔM=10時(shí),輸出信號(hào)的頻率步長(zhǎng)為1 Hz,如圖7(a)所示。DDS的分辨率可達(dá)0.1 Hz。由于AGC的增益倍數(shù)與增益控制電壓之間是指數(shù)的關(guān)系,對(duì)增益倍數(shù)G取對(duì)數(shù),顯示其與增益控制電壓Vc是線性關(guān)系,如圖7(b)所示。
(a)
(b)圖7 信號(hào)發(fā)生系統(tǒng)分辨率測(cè)試圖
通過(guò)實(shí)驗(yàn)分析,驅(qū)動(dòng)電路系統(tǒng)具有非常精確的分辨率和穩(wěn)定性。FPGA能夠準(zhǔn)確根據(jù)頻率控制字M控制DDS的頻率輸出和AGC的增益大小。
本文設(shè)計(jì)的基于FPGA及DDS和AGC技術(shù)的精密信號(hào)發(fā)生系統(tǒng)具有較高的信號(hào)頻率分辨率及波形穩(wěn)定性,同時(shí)信號(hào)發(fā)生系統(tǒng)能夠輸出正弦波、方波和三角波等多種波形。利用示波器觀察信號(hào)發(fā)生系統(tǒng)的各輸出波形,得到信號(hào)發(fā)生系統(tǒng)的波形輸出情況,如圖8所示。
圖8 信號(hào)發(fā)生系統(tǒng)波形輸出情況
信號(hào)發(fā)生系統(tǒng)輸出波形穩(wěn)定,頻率分辨率高,幅值精確可調(diào)。信號(hào)發(fā)生系統(tǒng)頻率分辨率可達(dá)0.1 Hz,幅值分辨率也可以達(dá)到0.1 V,能夠滿足MEMS諧振器的驅(qū)動(dòng)需求。如圖9所示,系統(tǒng)能夠輸出頻率和幅值可調(diào)的正弦信號(hào)對(duì)器件進(jìn)行驅(qū)動(dòng)控制。
利用設(shè)計(jì)的信號(hào)發(fā)生系統(tǒng),對(duì)PZT壓電式諧振器進(jìn)行驅(qū)動(dòng)實(shí)驗(yàn)測(cè)試,得到諧振器在不同頻率驅(qū)動(dòng)信號(hào)下的振動(dòng)情況。根據(jù)PZT壓電式諧振器的驅(qū)動(dòng)原理[9],在諧振器上表面施加交流驅(qū)動(dòng)信號(hào),在不同頻率的驅(qū)動(dòng)信號(hào)作用下,PZT壓電式諧振器在不同驅(qū)動(dòng)信號(hào)頻率fD下表現(xiàn)出不同的振動(dòng)應(yīng)電壓峰值UP-P,如圖10所示。從掃頻測(cè)試中看出,在單邊驅(qū)動(dòng)的情況下,PZT壓電式諧振器在正常室溫的環(huán)境中,共振頻率點(diǎn)位于335~336 kHz之間,實(shí)測(cè)得335.570 kHz。
圖10 壓電諧振器掃頻測(cè)試波形
由于信號(hào)發(fā)生系統(tǒng)具有較高的頻率分辨率,因此在掃頻測(cè)試時(shí)能夠調(diào)整系統(tǒng)輸出信號(hào)的頻率步長(zhǎng),在諧振器諧振點(diǎn)位置減小輸出波形頻率增量,增大采樣數(shù)量,能夠更準(zhǔn)確得到器件的諧振點(diǎn)頻率。信號(hào)發(fā)生系統(tǒng)的輸出波形幅值精確可調(diào),改變驅(qū)動(dòng)信號(hào)的幅值,觀察諧振器的振動(dòng)情況。如圖11所示,系統(tǒng)能夠輸出不同幅值步長(zhǎng)的驅(qū)動(dòng)信號(hào),得到諧振器在不同幅值驅(qū)動(dòng)信號(hào)下的振動(dòng)感應(yīng)電壓峰值UP-P。
圖11 不同幅值驅(qū)動(dòng)信號(hào)下的感應(yīng)電壓圖
本文基于FPGA設(shè)計(jì)了一種信號(hào)發(fā)生系統(tǒng),該系統(tǒng)運(yùn)用DDS和AGC技術(shù),并由FPGA進(jìn)行控制,實(shí)現(xiàn)驅(qū)動(dòng)信號(hào)的頻率和幅值精確可調(diào)。FPGA采用同步時(shí)鐘控制,通過(guò)改變頻率控制字實(shí)現(xiàn)對(duì)DDS變頻控制,同時(shí)改變DAC的輸出數(shù)字量,從而改變AGC的增益控制電壓,實(shí)現(xiàn)對(duì)AGC的調(diào)幅控制。驅(qū)動(dòng)系統(tǒng)輸出信號(hào)的頻率分辨率能夠達(dá)到0.1 Hz,能夠輸出正弦波、方波和三角波等多種波形,輸出波形穩(wěn)定性強(qiáng),幅值變化步長(zhǎng)可達(dá)0.1 V。本文設(shè)計(jì)的精密可調(diào)的信號(hào)發(fā)生系統(tǒng)基于FPGA進(jìn)行控制,能夠方便增減頻率控制字長(zhǎng)以及幅值增益倍數(shù),實(shí)現(xiàn)了信號(hào)源的頻率高分辨率與幅值精確可調(diào)。本文將設(shè)計(jì)的信號(hào)發(fā)生系統(tǒng)對(duì)PZT壓電諧振器進(jìn)行了驅(qū)動(dòng)測(cè)試實(shí)驗(yàn),能夠得到PZT壓電諧振器的諧振特性,可以為壓電式諧振器工作振動(dòng)模態(tài)的正確激勵(lì)提供參考,具有實(shí)際應(yīng)用價(jià)值。