李海生
(長(zhǎng)治學(xué)院電子信息與物理系,山西長(zhǎng)治046011)
信號(hào)發(fā)生器在儀器儀表、傳感器檢測(cè)、雷達(dá)遙測(cè)等很多領(lǐng)域有著廣泛的使用。比如在線路負(fù)載及故障檢測(cè)中,需要對(duì)電阻、電容、電感及其組成的網(wǎng)絡(luò)頻率特性進(jìn)行測(cè)試需要產(chǎn)生掃頻信號(hào)。隨著電子技術(shù)的發(fā)展,對(duì)其性能要求越來(lái)越高,傳統(tǒng)的設(shè)計(jì)方法無(wú)法滿足需求,并且在某些應(yīng)用場(chǎng)合有時(shí)需同時(shí)提供兩路甚至三路具有相對(duì)相位差的信號(hào)。通過(guò)借助于直接數(shù)字頻率合成(Direct Digital Synthesizer, DDS)技術(shù)和現(xiàn)場(chǎng)可編程門(mén)陣列(Programmable Gate Array,FPGA),可以很好的實(shí)現(xiàn)滿足這些需求,設(shè)計(jì)出高性能、穩(wěn)定度好的信號(hào)發(fā)生器[1]。
信號(hào)發(fā)生器的核心是采用DDS技術(shù),DDS是從相位的角度去直接合成所需波形,具有低功耗、高分辨率、可編程和控制靈活方便等優(yōu)點(diǎn)。DDS基本的原理結(jié)構(gòu)如圖1所示,核心部分主要有相位累加器、波形數(shù)據(jù)查找表、數(shù)模轉(zhuǎn)化器三部分構(gòu)成[2]。
圖1 DDS基本結(jié)構(gòu)圖
DDS 的核心是相位累加器,在系統(tǒng)時(shí)鐘fs觸發(fā)下,相位累加器便以特定步長(zhǎng)(即頻率控制字,F(xiàn)SW)不斷累加,其輸出作為波形數(shù)據(jù)查找表的地址進(jìn)行波形幅值的查找輸出,輸出的數(shù)字幅度值通過(guò)數(shù)模轉(zhuǎn)化器后,就可以得到相應(yīng)的波形模擬值[3]。
一個(gè)n位的相位累加器,存在2n個(gè)可能的相位點(diǎn),而頻率控制字FSW是相位累加器在每個(gè)系統(tǒng)時(shí)鐘fs周期內(nèi)遞增的步長(zhǎng),所以輸出波形的頻率fo計(jì)算公式為:
通過(guò)公式(1)可以看出,當(dāng)系統(tǒng)頻率fs和相位累加器位數(shù)n固定時(shí),改變頻率控制字FSW就可以改變輸出信號(hào)頻率fo[4]。
雙路可移相信號(hào)發(fā)生器的設(shè)計(jì)主要分為人機(jī)交互模塊、FPGA 處理模塊和波形轉(zhuǎn)化模塊三大部分,系統(tǒng)結(jié)構(gòu)如圖2所示。人機(jī)交互模塊主要是鍵盤(pán)和顯示兩部分,鍵盤(pán)完成外部波形類型、頻率、幅度、相位等參數(shù)的輸入,顯示采用LCD1602完成波形數(shù)據(jù)參數(shù)的實(shí)時(shí)顯示。波形轉(zhuǎn)化模塊主要完成FPGA輸出的波形數(shù)字幅度值到實(shí)際模擬波形的轉(zhuǎn)化。
圖2 系統(tǒng)硬件結(jié)構(gòu)框圖
FPGA 處理模塊的設(shè)計(jì)是整個(gè)系統(tǒng)的核心部分,選用Altera公司的Cyclone IV系列的FPGA芯片完成。FPGA的內(nèi)部邏輯設(shè)計(jì)主要包括鍵盤(pán)掃描模塊、PLL模塊、調(diào)頻模塊、調(diào)幅模塊、波形類型選擇模塊、LCD 顯示模塊等。系統(tǒng)邏輯設(shè)計(jì)完成后,在Quartus II軟件中查看RTL視圖如圖3所示。
圖3 FPGA內(nèi)部邏輯設(shè)計(jì)RTL視圖
調(diào)頻模塊的核心是相位累加器,在設(shè)計(jì)中,經(jīng)過(guò)PLL倍頻后系統(tǒng)時(shí)鐘fs=256 MHz,相位累加器位數(shù)n=32。當(dāng)相位增量FSW=1時(shí),相對(duì)于32位的相位累加器的所有位都用來(lái)尋址,此時(shí)輸出信號(hào)頻率最低,fo(min)=0.06 Hz,這個(gè)值也是輸出信號(hào)的最小分辨率。
波形類型選擇模塊是采用FPGA內(nèi)部的IP核設(shè)計(jì),是一個(gè)儲(chǔ)存正弦波、鋸齒波等各種波形幅值的ROM,主要完成波形數(shù)據(jù)的查找。ROM 的不同的地址對(duì)應(yīng)了一個(gè)周期內(nèi)波形不同相位下的幅度值,通過(guò)尋址對(duì)應(yīng)波形的ROM 查找表就可以完成不同波形的選擇輸出。在實(shí)際應(yīng)用設(shè)計(jì)中,相位寄存器的位會(huì)截?cái)喑?4 位用來(lái)尋址ROM,這樣可以減小查找表的大小,并且不影響頻率分辨率。
雙路移相是在單路波形輸出的基礎(chǔ)上,再輸出另一路具有相對(duì)相位差的信號(hào)。通過(guò)將波形數(shù)據(jù)查找表的ROM 再例化一次,將設(shè)定的相位控制字疊加在第一路信號(hào)尋址地址上,作為第二路波形數(shù)據(jù)尋址地址進(jìn)行查找輸出,這樣就完成兩路具有相位差信號(hào)的輸出。尋址的地址有14 位,相位精度可達(dá)0.02°,可以實(shí)現(xiàn)不同相位差的調(diào)整輸出[5]。
D/A 轉(zhuǎn)化器電路設(shè)計(jì)中,選用兩塊14 位的DAC904來(lái)完成兩路波形數(shù)據(jù)查找表輸出的數(shù)字幅值到模擬波形的轉(zhuǎn)化,輸出波形幅值的控制選用12位的串行DAC7611來(lái)完成。
低通濾波器設(shè)計(jì)中,由于D/A轉(zhuǎn)化器輸出波形在幅值上是離散的階梯型,含有大量的高次諧波成分。在給定前提條件下,橢圓函數(shù)濾波器是最好的一種低通濾波器,具有最窄的過(guò)渡帶。在此設(shè)計(jì)中選用二階電壓跟隨橢圓低通濾波器,將高頻雜波濾除,從而得到平滑的波形輸出。
通過(guò)鍵盤(pán)輸入兩路波形的各項(xiàng)參數(shù),液晶屏實(shí)時(shí)顯示波形幅值、相位差和頻率等參數(shù),如圖4所示。本系統(tǒng)完成了方波、正弦波、鋸齒波、三角波等不同波形的輸出,兩路波形相位差調(diào)整范圍:0°~360°,精度0.02°;頻率輸出范圍:1Hz ~ 2MHz,誤差:±0.5%;電壓輸出范圍是0.01 ~4.095 V,精度±1%。方波頻率輸出范圍:1Hz ~256MHz,占空比0~100%,精度可達(dá)1/232。圖5是使用示波器測(cè)試了頻率為5 kHz,幅值為4.095 V,具有90°相位差的兩路正弦波條件下的輸出情況,滿足設(shè)計(jì)要求。
圖4 雙路可移相信號(hào)發(fā)生器的顯示屏
圖5 示波器測(cè)試的正弦波數(shù)據(jù)
將DDS 技術(shù)與FPGA 相結(jié)合,在Quartus II 軟件中,使用Verilog語(yǔ)言完成了系統(tǒng)的開(kāi)發(fā)、仿真和驗(yàn)證。經(jīng)過(guò)測(cè)試,輸出的兩路波形頻率和幅值可調(diào)、相位差可控,很好地實(shí)現(xiàn)設(shè)計(jì)需求。所設(shè)計(jì)系統(tǒng)具有輸出頻率范圍廣、相位差可調(diào)、集成度高、多種波形輸出等優(yōu)點(diǎn),在線路故障檢測(cè)等領(lǐng)域具有很廣泛的應(yīng)用價(jià)值。