《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于SoPC/NIOS II的信號發(fā)生器設計與實現
基于SoPC/NIOS II的信號發(fā)生器設計與實現
來源:電子技術應用2011年第6期
胡繼勝, 李 洪
(安徽職業(yè)技術學院 電氣工程系, 安徽 合肥230051)
摘要: 運用基于NIOS II嵌入式處理器的SoPC技術,設計了一個任意信號發(fā)生器,不僅可以輸出正弦波、方波、三角波和鋸齒波等常見波形,且各波形的頻率和幅度可調,可根據用戶需要進行現場編程,具有控制靈活、輸出頻率穩(wěn)定、準確、波形質量好和輸出頻率范圍寬等優(yōu)點。
中圖分類號: TP216
文獻標識碼: A
文章編號: 0258-7998(2011)06-091-04
Arbitrary waveform generator design and realization based on SoPC/NIOS II
Hu Jisheng, Li Hong
Department of Electrical Engineering, Anhui Vocational and Technique College, Hefei 230051, China
Abstract: This designation uses the SoPC technology based on embedded processor of NIOS II, and designs an arbitrary waveform generator,which can not only output sine waveforms, square waveforms, triangle waveforms, sawtooth waveforms and other common waveforms, but also the frequency and amplitude of waveform is adjustable,and in system programming according to user's requirements,It has advantages of easy control, stable output frequency, high quality waveform and wide bandwidth.
Key words : SoPC; NIOS II; DDS; waveform generator


    信號發(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.

此內容為AET網站原創(chuàng),未經授權禁止轉載。