余先濤,孔文勝
(武漢理工大學 機電工程學院,湖北 武漢 430070)
任意波形發(fā)生器( Arbitrary Waveform Generator,AWG)作為測試儀器的一種,可以為測試系統(tǒng)提供各類基本及復雜的信號,普遍運用在工業(yè)控制、醫(yī)療和通信等領域。多種電子設備的檢測都需要測試信號的激勵,波形發(fā)生器作為測試系統(tǒng)中不可或缺的源頭,成為實際應用中最普遍使用的電子設備之一,與示波器、萬用表等設備一起成為最基本的測試儀器[1]。任意波形發(fā)生器的主要功能有:提供基本的函數波形,生成任意波形以及下載傳輸復雜信號,該3種功能使其具備很強的實用性和靈活性。因此,在航空、通信等高科技領域也得到了廣泛應用[2]。
任意波形發(fā)生器的實現經歷了模擬電路到數字電路的巨大轉變,傳統(tǒng)的波形發(fā)生器全部表現為模擬電路,采用機械驅動電容器或諧振腔等可變元件的方法調節(jié)頻率,此類調節(jié)方式往往受到模擬元件的限制,調節(jié)范圍小,結構復雜,難以產生復雜的波形;采用微處理器和數模轉換器(Digital to Analog Converter,DAC)組成的波形發(fā)生器,取代了機械驅動調節(jié)頻率的方式,使用數字電路合成頻率的方法,對基準頻率源進行分頻和變頻,由此產生比較復雜的波形[3];頻率合成技術的發(fā)展給波形發(fā)生器帶來了性能上的巨大提升,直接數字合成技術(Direct Digital Synthesis,DDS)采用全數字的方式,相比其他實現方式具有頻率分辨率高、頻率轉換速率快、相位連續(xù)可變等優(yōu)點。DDS原理在于采樣還原信號,對于一個固定頻率的信號,如果以某一固定的時間間隔進行采樣,則原始信號可以通過采樣值恢復出來。筆者在對DDS性能進行分析后,詳細介紹了一種基于FPGA(Field Programmable Gate Array)實現DDS技術的方案,實現了可編程的多頻雙通道任意波形輸出。通過最終性能測試證明了該設計的有效性和實用性。
直接數字合成技術從相位角度出發(fā),通過設置頻率控制字得出相位值,對波形存儲器進行查表從而直接合成所需的波形,其特點包括響應速度快、頻率分辨率高、轉換速度快以及能夠產生任意波形等。
DDS系統(tǒng)的理論基礎為Nyquist采樣定理,根據該理論,在模/數信號轉換過程中,被采樣數字信號若要完整恢復原始信號的信息,則在采樣過程中,采樣頻率fs要高于信號最高頻率fmax的兩倍(fs>2fmax)。但是該原理在DDS技術中的應用是相反的過程,DDS系統(tǒng)不是對模擬信號進行采樣,而是根據已經數字化的采樣量化值,采取某種方式將模擬信號恢復出來[4]。
DDS系統(tǒng)的典型結構如圖1所示,該系統(tǒng)由參考時鐘、相位累加器、波形存儲器、D/A 轉換器(DAC)和低通濾波器(Low-Pass Filter,LPF)5個部分構成[5]。
圖1 DDS系統(tǒng)結構
其中K為頻率控制字,N為相位累加器位數,相位累加器與波形存儲器相連,N值也為波形儲存器的存儲深度,fc為參考時鐘頻率,fo為系統(tǒng)輸出頻率。波形幅度值預先置于存儲器中,通過設置頻率控制字得出相位值,對波形存儲器進行查表從而得到所需的波形值。
由傅立葉原理可知,時域內不同頻率的正弦波信號疊加可以構成任何所需的波形信號,下面以正弦波為例,分析K值對于輸出波形頻率的影響。正弦波信號以某一固定間隔采樣、量化后,將量化值存儲在波形存儲器中,假設存儲的幅度量化值有2N個,相位累加器的位數為N?,F以頻率為fc的系統(tǒng)時鐘進行采樣,即時鐘周期為Tc。取頻率控制字K的值為k,即相位累加器的相位步進值為k,在系統(tǒng)時鐘的控制下,經過2N/k個時鐘周期后,相位累加器輸出所有的相位值,波形存儲器也取出所有的幅度值,即輸出正弦信號循環(huán)一周,此時輸出正弦波的周期為:
(1)
輸出頻率為:
(2)
根據式(2)可知,任意波形發(fā)生器的輸出頻率由采樣頻率fc、頻率控制字K及相位累加器的位數N共同決定。一般而言,相位累加器的位數N和系統(tǒng)的采樣頻率fc在設計時已經固定,編程改變頻率控制字K值即可獲得不同頻率的波形。
以DDS技術實現的任意波形發(fā)生器融合了數字處理技術與信號合成理論,與鎖相頻率合成技術具有本質上的差別,其性能上也存在著獨特之處,主要體現在以下幾個方面:
(1)輸出頻率相對帶寬寬。根據式(2),當頻率控制字K為1時,DDS系統(tǒng)的輸出頻率為最低輸出頻率,當相位累加器的字長N很大時,最低輸出頻率可達到微赫茲。DDS系統(tǒng)的最高輸出頻率受到時鐘頻率和抽樣定理的限制,最高可達0.5fc,在實際應用中,考慮到濾波器的非理想特性,一般認為最高輸出頻率為0.4fc。
(2)頻率分辨率高。DDS系統(tǒng)的頻率分辨率就是其最小頻率步進值,即最小輸出頻率,頻率分辨率取決于參考頻率fc和相位累加器字長N,本設計采用的N為48,fc為100 MHz,則頻率分辨率為3.55e-7,超高的頻率分辨率可以使輸出頻率逼近頻率的連續(xù)變換。
(3)頻率轉換時間快。所謂頻率轉換時間即為連續(xù)輸出兩個不同頻率的信號相隔的時間,對于DDS系統(tǒng),該時間即為頻率控制字K的傳輸時間,一般只需要幾個時鐘周期,本設計采用100 MHz的參考頻率,則頻率轉換時間為幾百納秒,可見DDS系統(tǒng)輸出不同頻率的信號可以近似認為是實時的。
(4)頻率變換時相位保持連續(xù)。改變DDS系統(tǒng)的輸出頻率,實際上是通過改變頻率控制字K,改變相位累加的速率,這個過程中相位函數曲線是連續(xù)的,只是在改變頻率的瞬間其斜率發(fā)生了突變,因而保持了輸出信號相位的連續(xù)。
(5)可輸出任意波形。DDS系統(tǒng)中,波形存儲器用于事先存儲波形的離散幅值,改變在RAM(Random Access Memory)中的函數表格,即可輸出所需的波形。
由于DDS技術具備的獨特性能,市場上逐漸出現了高度集成的DDS專用芯片,該類芯片使用起來較為簡單,可以直接輸出高質量的波形信號。專用DDS芯片覆蓋的頻率范圍較廣,內部集成了高分辨率的DA轉換器,可直接輸出高質量的波形信號,而且功耗較低。但是此類芯片存在明顯的不足:只能產生非常有限的波形,靈活性差。這是因為芯片內部采用只讀存儲器(Read-Only Memory,ROM)來存儲波形數據,芯片出廠時內部數據已經固定,無法根據用戶需求進行改變。
相比專用DDS芯片,采用可編程邏輯器件實現DDS技術具有更強的靈活性?,F場可編程門陣列(Field Programmable Gate Array,FPGA)內部集成了波形存儲RAM,不同于只讀存儲器,它不僅讀取速度快,而且隨時可以修改內部數據,實現任意波形的輸出。與此同時,基于FPGA實現的DDS系統(tǒng)可以根據用戶需求進行功能上的修改和增刪,方便了對任意波形發(fā)生器進行二次開發(fā)。價格方面,高性能的專用DDS芯片售價達到上百美元,是高性能FPGA芯片的幾倍,采用FPGA進行開發(fā)有助于降低設計成本。
FPGA技術提供了靈活性和快速原型的能力, 用戶可以多次測試不同的想法,并在硬件中完成驗證,而無需經過設計專用DDS芯片的漫長過程,縮減了產品的研發(fā)時間,再加上豐富的EDA工具的支持,非常適合于任意波形發(fā)生器的數字部分的設計。綜上所述,本設計采取以FPGA芯片實現DDS技術的設計方法。
硬件設計在滿足系統(tǒng)功能指標的前提下,采取模塊化的設計方法,使得電路結構清晰、設計簡便,硬件系統(tǒng)框圖如圖2所示。
該硬件系統(tǒng)主要由ARM控制模塊、波形產生模塊、模擬處理模塊、液晶驅動模塊和電源模塊組成。
(1)電源模塊環(huán)繞整個系統(tǒng),為各部分提供合適的輸入電壓。
(2)波形產生模塊位于FPGA內部,DDS系統(tǒng)產生波形的數字信號,輸入至高速DAC芯片AD9708,完成數模轉換后,由模擬電路進行平滑、放大衰減等處理,輸出平穩(wěn)的模擬信號。
(3)外部25M晶振輸入FPGA,經內部鎖相環(huán)倍頻和分頻后分為兩路,一路時鐘信號輸入DDS系統(tǒng),一路時鐘提供給高速DAC芯片。
圖2 硬件系統(tǒng)框圖
(4)主控ARM芯片采用STM32系列產品,該系列產品既可以實現系統(tǒng)的控制任務,又具有成本低、功耗小等優(yōu)點,STM32配以8 M的晶振,工作頻率較低,從而降低功耗,STM32通過內部的可變靜態(tài)存儲控制器(FSMC)與FPGA通信,簡化了通信過程,數據傳遞更快捷有效。
(5)系統(tǒng)配有兩片相同的FLASH芯片,一片用于上電時配置FPGA內部數據,另一片與STM32通信,用于存儲開機所需畫面的數據和字庫。
系統(tǒng)選用ADI公司的8位分辨率產品AD9708,該芯片為電流型DAC,由一個大型PMOS電流源陣列組成,提供高達20 mA的總電流,分為兩路輸出IoutA和IoutB,既可以通過互補方式輸出電流,也可以轉換為IoutA單端電壓,D/A轉換電路如圖3所示。
圖3 AD9708的D/A轉換電路圖
在該電路中,ARB_AMP為AD9708的參考電壓,來自STM32內部的數模轉換器,程序控制該電壓值的范圍為0~1.25 V,ARB_CLK是由FPGA芯片內部PLL輸出的時鐘信號,為AD9708提供100 MHz的轉換速率。根據系統(tǒng)的設計指標,DDS系統(tǒng)輸出波形的最高頻率為10 MHz,因此100 M的SPS轉換速率完全可以滿足最高頻率波形的數模轉換要求。
AD9708提供差分電流輸出,采用差分輸出時,可以有效抑制信號中的共模噪聲,當差分信號作為后端運放的輸入級時,還可高效抑制外界環(huán)境中的電磁干擾,兩個差分端的電流值共同分擔AD9708的滿量程輸出電流20 mA。
由于AD9708是一款電流輸出型的DAC,而且以差分電流方式輸出,因此輸出側需要一顆I-V精密運放,實現電流耦合及電流至電壓轉換,同時提高數模轉換器的驅動能力[6],本設計采用LMH6643芯片進行轉換,該芯片內部集成了兩個運算放大器,系統(tǒng)采用其中一個用于差分放大電路,產生中心在零點的波形。
圖4 濾波器幅頻和相頻特性
由DAC輸出的模擬信號為階梯狀電平,同時含有復雜的頻譜分量及雜波,因此需要濾波器平滑波形,保持有效分量以及抑制雜波。筆者選取濾波器時盡量保證通帶內波形平坦,因此采用7階巴特沃斯濾波器。根據設計需求,DDS系統(tǒng)輸出波形的最高頻率為10 MHz,由于濾波器的過渡帶較長,為提高波形的最高頻率,將濾波器-3dB的截止頻率定為40 MHz。
邏輯系統(tǒng)的設計是任意波形發(fā)生器設計的關鍵,FPGA芯片實現了DDS原理,完成了時鐘倍頻分頻、相位累加器、波形存儲器等多個功能及器件。本系統(tǒng)采用的是Altera公司第IV代Cyclone產品EP4CE6E144,該芯片采取60 nm低功耗工藝,采用1.2 V內核電壓,包含6 272個邏輯單元,144個引腳,采用EQFP封裝。
在邏輯系統(tǒng)的設計中,DDS模塊為最核心的
部分,通過累加頻率控制字K得到相位值,以相位值作為地址值對波形RAM查表,輸出波形的幅度值。DDS模塊的原理示意圖如圖5所示,主要組成部分為相位累加器、地址計數器和可讀寫的波形存儲RAM,其中FREQ為頻率控制字,Wr_addr為寫地址,Rd_addr為讀地址。波形存儲器的寫地址由地址計數器在系統(tǒng)時鐘的作用下產生,完成波形幅值的存儲;讀地址則由相位累加器根據頻率控制字輸出相位值。相位累加器可看作一個加法器與一個鎖存器的級聯(lián),加法器輸出端與鎖存器相連,兩個輸入端分別為頻率控制字K和鎖存器輸出端的反饋,在系統(tǒng)時鐘的作用下,對頻率控制字進行累加[7],加法器量滿溢出后變?yōu)榱?,相鄰兩次歸零的時間差即為一個周期。
圖5 DDS模塊原理圖
根據式(2),當K的取值為1時,輸出波形的頻率為系統(tǒng)的頻率分辨率,若使系統(tǒng)具備輸出較高頻率波形的能力,可提高系統(tǒng)的采樣頻率[8],因此采取100 MHz的時鐘頻率。若使系統(tǒng)獲取較高的頻率分辨率,則需增加相位累加器的位數。根據系統(tǒng)的設計需求,為達到1 μHz的頻率分辨率,計算得相位累加器的位數至少為47位,為方便數據的傳輸,取累加器的數據位為48 bit[32]。在數據傳輸過程中,為減少數據的截斷誤差,取頻率控制字K與相位累加器的位數相同,而輸入數據線為16 bit,因此將K值分三次傳輸,在時鐘沿控制下,分別將K值的bit[0-15]、bit[16-31]和bit[32-47]依次鎖存。相位累加器模塊的邏輯電路如圖6所示。
圖6 相位累加器模塊
相位累加器主要由3個16 bit的寄存器、一個48位的加法器和一個48 bit的寄存器組成。其中16位寄存器分別用于存儲頻率控制字的高中低部分,在各寄存器時鐘信號的控制下,STM32通過FSMC數據總線分時傳送頻率控制字的部分數據位。得到完成的FREQ之后,加法器將其與寄存器中保存的數據累加,在時鐘信號作用下,相位結果再次保存至寄存器中。
相位累加器輸出相位值之后, 作為波形存儲RAM的地址值進行查表得到波形幅度值,圖7為波形存儲RAM的設計。
圖7 波形存儲RAM
波形存儲RAM的寫地址由地址計數器在系統(tǒng)時鐘的作用下產生,完成波形幅值的存儲,讀地址則由頻率控制字截取得到。由于單端口RAM只有一組地址線和數據線,因此采用二選一數據選擇器分時輸出讀寫地址,同時配合RAM中的寫使能位工作,在寫使能有效時,二選一數據選擇器選用寫地址,波形數據存入RAM中;寫使能無效時,選用讀地址,RAM根據地址輸出相應的波形數據。
本次測試主要進行波形種類及系統(tǒng)參數的驗證,主要針對任意波形發(fā)生器的三個方面進行測試:生成波形種類、頻率精度和幅度精度。本次測試采用的儀器為安捷倫公司的4通道數字示波器DSOX2014A,帶寬100 MHz,可滿足系統(tǒng)最大輸出頻率為10 MHz的測試要求,每通道最大采樣率可達2 GSa/s,可提供更細節(jié)的波形數據。
任意波形發(fā)生器可生成直流波、方波、指數波、三角波、噪聲、正弦波、鋸齒波、負鋸齒、SINC、猝發(fā)波共10種波形,根據系統(tǒng)的輸出阻抗為50 Ω,采取的測試方法為任意波形發(fā)生器外接50 Ω的測試件,示波器并聯(lián)測試件并采集波形,圖8顯示了頻率1 MHz,10 Vpp的正弦波和頻率100 kHz,2.5 Vpp的猝發(fā)波。
任意波形發(fā)生器的波形輸出頻率的設計指標最大10 MHz,本次測試選取多個頻率點,根據實測數據計算得到頻率的誤差,頻率測試結果如表1所示。
表1 頻率測試結果
任意波形發(fā)生器的波形幅度值的設計指標為最大10 Vpp,本次測試以正弦波為測試對象,選取6組Vpp值:500 mV、1 V、2 V、8 V、10 V,各幅值的測試數據如圖8~圖9所示,根據測試結果,幅度值誤差均控制在1.6%之內。
圖8 正弦波與猝發(fā)波形測試圖
圖9 幅度精度測試值
筆者在分析了DDS原理之后,提出以可編程邏輯器件實現DDS技術的方案,比較了該方案與其他實現方法的優(yōu)點所在。本設計基于FPGA+ARM+DAC的硬件平臺,實現了DDS技術,其中在FPGA內部完成相位累加器、波形存儲RAM的設計,并給出了DA轉換電路和濾波器的具體設計,最終實現的任意波形發(fā)生器具備響應速度快、頻率分辨率高等優(yōu)點。經測試,系統(tǒng)能夠產生正弦波、方波以及猝發(fā)脈沖等設計波形,頻率和幅度精度也達到了設計要求,實現了便捷實用、性能優(yōu)良的設計初衷。
[1] 黃振華.基于FPGA函數信號發(fā)生器的設計與實現[D].鎮(zhèn)江:江蘇大學,2009.
[2] 李季.信號發(fā)生器發(fā)展淺析(上)[J].電子產品世界,2002,19(9):65-66.
[3] 吳昕.信號源的發(fā)展和現狀淺析[J].科學時代,2010(8):58-59.
[4] 張冠百.鎖相與頻率合成[M].北京:電子工業(yè)出版社,1995.
[5] 徐嘯林,田書林,李碩.基于并串轉換DDS技術的任意波形發(fā)生器采樣率研究[J].自動化信息,2010(7):42-44.
[6] 甄軍紅.AD9708及其在數據采集系統(tǒng)中的應用[J].電子世界,2003(11):44-45.
[7] 黃志林.基于FPGA的并行DDS技術研究[J].現代電子技術,2013,36(7):54-55.
[8] Kazuyuki Wakabayashi, Keisuke Kato, Takafumi Yamada, et al. Low-Distortion Sinewave Generation Method Using Arbitrary Waveform Generator[J]. Journal of Electronic Testing,2012,28(5):641-651.