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