文獻標識碼: A
文章編號: 0258-7998(2011)06-091-04
信號發(fā)生器是各種測試和實驗過程中不可缺少的儀器,在通信、測量、雷達、控制、教學、科研等領域應用十分廣泛。隨著我國經濟和科技的發(fā)展,對相應的測試儀器和測試手段也提出了更高的要求。傳統(tǒng)的信號發(fā)生器大多采用專用芯片或單片機或模擬電路,具有成本高、控制方式不靈活或波形種類較少等缺點。
本文采用直接數字合成(DDS)技術[1],通過基于 NIOSⅡ的SoPC系統(tǒng)實現一個任意波形發(fā)生器。DDS技術是一種新穎的頻率合成技術,具有易于程控、相位連續(xù)、輸出頻率穩(wěn)定度高、頻率轉換速度快和分辨率高等優(yōu)點。SoPC(System on a Programmable Chip)[2-3]技術是美國Altrea公司于2000年最早提出的,并同時推出了相應的開發(fā)軟件Quartus II及硬件平臺FPGA(Field-Programmable Gate Array)芯片。SoPC是基于FPGA解決方案的SoC,SoPC的設計是以IP為基礎、以硬件描述語言VHDL為主要設計手段、借助于以計算機為平臺的EDA工具進行的,具有靈活的設計方式和軟硬件在系統(tǒng)可編程的功能。本設計通過Altera公司的FPGA芯片和NIOSⅡ嵌入式系統(tǒng)實現SoPC。
1 系統(tǒng)總體方案設計
本設計實現一個基于SoPC的任意波形發(fā)生器, 其輸出頻率范圍為10 Hz~1 MHz,頻率分辨率為1Hz,輸出電壓幅值范圍為 0~5 V,步進間隔為0.1 V,輸出信號的頻率和電壓值可通過鍵盤進行設置,可實時顯示輸出信號的類型、幅度、頻率和頻率步進值。
片上系統(tǒng)在Altera CycloneⅡ系列的 EP2C8Q208C8 FPGA上實現,構建了一個基于NIOSⅡ的SoPC系統(tǒng),完成系統(tǒng)控制和DDS信號發(fā)生,通過PS/2鼠標鍵盤設定波形的種類、任意頻率和任意幅度的信號輸出,最后通過外部電路將片上系統(tǒng)數字輸出轉換為模擬輸出、放大、濾波和幅度控制,系統(tǒng)框圖如圖1所示。
2 片上系統(tǒng)設計
片上系統(tǒng)為一個基于NIOSⅡ的SoPC系統(tǒng),由四部分組成:NIOS Ⅱ模塊、DDS模塊、PLL模塊和片上RAM 模塊。
2.1 NIOS Ⅱ模塊
本模塊提供主控CPU部分,NIOS II模塊通過在SoPC Builder[2]中調用IP庫組件實現,由Quartus軟件定制,需加入SDRAM、LCD、RS232等控制器。利用SDRAM配合FPGA構成片上系統(tǒng),建立NIOS控制系統(tǒng),完成任務調度及人機交互控制。對DDS部分的控制由PIO口完成,均為輸出口,包括頻率控制字輸出口、波形選擇輸出口、幅度控制輸出口。本設計中,由于NIOSⅡ CPU主要負責UART串口的數據傳輸和簡單的I/O接口控制,所以選用經濟型NIOSⅡ/e 內核,以達到節(jié)省資源的目的,NIOS II CPU頂層原理圖如圖2所示。
2.2 DDS 模塊
2.2.1直接數字頻率合成器原理
直接數字合成DDS(Direct Digital Synthesis)是一種從相位出發(fā)的新的頻率合成技術和信號產生方法。DDS的原理框圖如圖3所示[4]。圖中相位累加器可在每一個時鐘周期來臨時將頻率控制字(FTW)所決定的相位增量M累加一次,如果記數大于N,則自動溢出,而只保留后面的N位數字于累加器中。正弦查詢表ROM用于實現從相位累加器輸出的相位值到正弦幅度值的轉換,然后送到DAC中將正弦幅度值的數字量轉換為模擬量,最后通過濾波器輸出一個很純凈的正弦波信號。
2.2.2正弦波產生原理
上式中,M為相位累加器的位數,FTW為頻率步進控制字,fclk為時鐘頻率,輸出信號頻率主要取決于頻率控制字FTW。當FTW增大時,fout可以不斷增加,綜合考慮Nyquist 采樣定理,最高輸出頻率應小于fout/2。根據實驗所得,實際工作頻率應小于fclk/ 3。由于本案例只要求設計出最高為1 MHz的信號,根據D/A及FPAG的速度,可以很容易地滿足設計需要。本例中選用32 MHz的CLK時鐘,在輸出最高1 MHz的信號時,波形在一個周期內仍有32個點,能夠完整描述出波形。
2.2.3 DDS模塊的FPGA實現
DDS模塊采用DDS技術基于FPGA設計信號發(fā)生模塊,由三個子模塊組成,產生要求的信號序列。該模塊通過 VHDL 語言直接編程,用于完成頻率控制字的相位累加和截斷輸出,從而實現波形數據的輸出和頻率調制功能,是整個系統(tǒng)的核心模塊。由于其采用VHDL語言編寫,所以必須將其轉換為圖形符號,加入設計頂層圖中,如圖5所示。
子模塊“xianglei”為32位的相位累加器,它由一個32 bit字長的二進制加法器和一個固定時鐘脈沖clk取樣的32 bit相位寄存器組成,32 bit的din[31..0]輸入為相位累加器頻率控制字輸入端,在時鐘脈沖的控制下,改變頻率控制字,即可改變輸出頻率;子模塊“rom”是一個采用Quartus 軟件定制的LPM_ROM正弦查詢表,正弦數據由Matlab軟件生成,并以mif 的文件格式存儲后加載到ROM模塊中,文件為sin10bit.mif,輸入為10 bit地址,在時鐘的作用下,輸出存儲的正弦數據;子模塊“outs”為波形輸出模塊,10 bit地址輸入端與相位累加器模塊輸出相連,10 bit數據輸入端與正弦查詢表的ROM輸出相連,sel為波形選擇端,當選擇端為0、1、2、3時,在時鐘的作用下,分別輸出正弦波、方波、三角波和鋸齒波,由于D/A轉換模塊采用的是8 bit D/A,因此輸出端僅接qout的前8 bit。
2.3 PLL模塊
該模塊通過調用QuartusⅡ內嵌的器件函數實現,QuartusⅡ內嵌了許多常用器件的函數,用戶只需要進行設置即可直接調用,而不需要自己編程,大大提高了系統(tǒng)開發(fā)的效率。本設計需要兩個PLL模塊,一個用于產生NIOS及片外SDRAM所需的時鐘,另一個用于DDS時鐘,采用32 MHz,其中片外SDRAM 的時鐘輸入必須比系統(tǒng)的時鐘滯后63°相位。
2.4 片上RAM模塊
該模塊采用Quartus軟件定制的LPM_ROM模塊,用來存儲一個周期的波形數據。DDS模塊對RAM進行讀操作,讀取波形數據,產生幅度量化序列。片上RAM地址位為10 bit,數據位為10 bit,空間大小為10 KB,即存儲了1 024個10 bit數據。
2.5 軟件設計
片上系統(tǒng)的軟件設計利用Altera的SoPC Builder系統(tǒng)開發(fā)工具和QuatrtusII 7.2設計軟件,在集成開發(fā)軟件NIOSⅡ IDE中通過C語言編程實現。主要是DDS控制、LCD顯示控制接口和鍵盤掃描程序的的編寫。如要產生某個1 kHz波形,由鍵盤設置相應數值、波形類別、波形幅值和步進幅度,通過PIO的控制口送給DDS模塊,就可得到相應的波形。限于篇幅,軟件設計流程圖不再給出。
3 SoPC外圍電路
SoPC的外圍電路是完成人機接口、信號處理及驅動負載等重要功能,主要由RS232 & PS2模塊、D/A轉換與幅度控制模塊、LCD1602模塊組成。其中RS232 & PS2模塊由RS232電平轉換電路和PS2鍵盤接口電路兩部分組成,用于完成RS232串口通信和PS2接口通信,可實現與計算機串口通信、PS鍵盤擴展等功能,該模塊通過8針接口連接到EDA-SoPC核心板;D/A轉換與幅度控制模塊,相當于兩路D/A輸出,一路使用D/A芯片完成,即在時鐘的作用下,將8 bit的數據送到輸出端,在D/A模擬輸出相應模擬電壓,另一路D/A使用電阻網絡完成轉換后作為輸出信號的幅度調節(jié),經過EDA-SoPC核心板的DDS技術可實現任意波形、一定頻率、一定幅度范圍的信號輸出;LCD1602模塊主要提供EDA-SoPC核心板與LCD1602液晶接口及液晶所需的負壓調節(jié)及背光控制電路。由于篇幅所限,本文只給出D/A轉換及驅動電路,如圖6所示。
信號D/A轉換及驅動電路由DDS輸入的8 bit數據通過DAC908轉換為模擬信號,DAC908是一個8 bit高速、低功耗CMOS DAC芯片,最高轉換速率為125 Mb/s,采用單端模擬輸出,再通過AD8058運放驅動后,作為信號輸出。AD8058是一款低成本、高性能的電壓反饋型放大器,可以在高增益的條件下保持帶寬特性,噪聲和失真性能符合高速放大要求,具有很高的穩(wěn)定性。
4 測試結果
在指標測試中,采用了60 MHz數字示波器固緯GDS1062,其面板上可直接顯示信號的頻率與幅值。
4.1 輸出波形頻率測試
在10 Hz~1 MHz范圍內以不同的步進分別進行了正弦波、三角波、方波的頻率測試。在10 Hz~100Hz范圍內步進間隔為1 Hz;在100 Hz~1 kHz范圍內步進間隔為10 Hz;在1 kHz~1 MHz范圍內步進間隔為1 kHz。測試結果表明,輸出信號頻率穩(wěn)定度優(yōu)于10-5,與頻率設定值完全一致,波形穩(wěn)定無失真。
4.2 正弦波帶負載能力測試
輸入頻率為f=1 kHz的正弦波,在空載和帶負載(1 kΩ)情況下,幅值設定了0.1 V~5 V共10組數據,測得負載變化率最大值為0.22%,輸出波形的幅度與設定幅度非常接近,系統(tǒng)帶負載能力很強。
本設計完成了任意波形發(fā)生器的軟硬件設計和調試,而基于NIOS II的嵌入式處理SoPC技術,使系統(tǒng)性能得到了極大的提高,系統(tǒng)波形顯示清晰、工作穩(wěn)定。實驗結果表明,系統(tǒng)指標方面遠遠超過了傳統(tǒng)頻率合成技術所能達到的水平。
參考文獻
[1] 林丹,肖啟俊,鄭小燕.基于SoPC的任意波形發(fā)生器[D]. 深圳:深圳大學,2007.
[2] 李蘭英.NiosⅡ嵌入式軟核SoPC設計原理及應用[M]. 北京:北京航空航天大學出版社,2006.
[3] 江國強.正版SoPC技術與應用[M].北京:機械工業(yè)出版社,2006.
[4] 帥倩,吳國輝,代冀陽.基于FPGA的DDS設計及實現[J]. 現代電子技術,2010,34(13):90-92.