《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于SoPC/NIOS II的信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)
基于SoPC/NIOS II的信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2011年第6期
胡繼勝, 李 洪
(安徽職業(yè)技術(shù)學(xué)院 電氣工程系, 安徽 合肥230051)
摘要: 運(yùn)用基于NIOS II嵌入式處理器的SoPC技術(shù),設(shè)計(jì)了一個(gè)任意信號(hào)發(fā)生器,不僅可以輸出正弦波、方波、三角波和鋸齒波等常見(jiàn)波形,且各波形的頻率和幅度可調(diào),可根據(jù)用戶需要進(jìn)行現(xiàn)場(chǎng)編程,具有控制靈活、輸出頻率穩(wěn)定、準(zhǔn)確、波形質(zhì)量好和輸出頻率范圍寬等優(yōu)點(diǎn)。
中圖分類號(hào): TP216
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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


    信號(hào)發(fā)生器是各種測(cè)試和實(shí)驗(yàn)過(guò)程中不可缺少的儀器,在通信、測(cè)量、雷達(dá)、控制、教學(xué)、科研等領(lǐng)域應(yīng)用十分廣泛。隨著我國(guó)經(jīng)濟(jì)和科技的發(fā)展,對(duì)相應(yīng)的測(cè)試儀器和測(cè)試手段也提出了更高的要求。傳統(tǒng)的信號(hào)發(fā)生器大多采用專用芯片或單片機(jī)或模擬電路,具有成本高、控制方式不靈活或波形種類較少等缺點(diǎn)。
 本文采用直接數(shù)字合成(DDS)技術(shù)[1],通過(guò)基于 NIOSⅡ的SoPC系統(tǒng)實(shí)現(xiàn)一個(gè)任意波形發(fā)生器。DDS技術(shù)是一種新穎的頻率合成技術(shù),具有易于程控、相位連續(xù)、輸出頻率穩(wěn)定度高、頻率轉(zhuǎn)換速度快和分辨率高等優(yōu)點(diǎn)。SoPC(System on a  Programmable Chip)[2-3]技術(shù)是美國(guó)Altrea公司于2000年最早提出的,并同時(shí)推出了相應(yīng)的開發(fā)軟件Quartus II及硬件平臺(tái)FPGA(Field-Programmable Gate Array)芯片。SoPC是基于FPGA解決方案的SoC,SoPC的設(shè)計(jì)是以IP為基礎(chǔ)、以硬件描述語(yǔ)言VHDL為主要設(shè)計(jì)手段、借助于以計(jì)算機(jī)為平臺(tái)的EDA工具進(jìn)行的,具有靈活的設(shè)計(jì)方式和軟硬件在系統(tǒng)可編程的功能。本設(shè)計(jì)通過(guò)Altera公司的FPGA芯片和NIOSⅡ嵌入式系統(tǒng)實(shí)現(xiàn)SoPC。
1 系統(tǒng)總體方案設(shè)計(jì)
 本設(shè)計(jì)實(shí)現(xiàn)一個(gè)基于SoPC的任意波形發(fā)生器, 其輸出頻率范圍為10 Hz~1 MHz,頻率分辨率為1Hz,輸出電壓幅值范圍為 0~5 V,步進(jìn)間隔為0.1 V,輸出信號(hào)的頻率和電壓值可通過(guò)鍵盤進(jìn)行設(shè)置,可實(shí)時(shí)顯示輸出信號(hào)的類型、幅度、頻率和頻率步進(jìn)值。
     片上系統(tǒng)在Altera CycloneⅡ系列的 EP2C8Q208C8 FPGA上實(shí)現(xiàn),構(gòu)建了一個(gè)基于NIOSⅡ的SoPC系統(tǒng),完成系統(tǒng)控制和DDS信號(hào)發(fā)生,通過(guò)PS/2鼠標(biāo)鍵盤設(shè)定波形的種類、任意頻率和任意幅度的信號(hào)輸出,最后通過(guò)外部電路將片上系統(tǒng)數(shù)字輸出轉(zhuǎn)換為模擬輸出、放大、濾波和幅度控制,系統(tǒng)框圖如圖1所示。


2 片上系統(tǒng)設(shè)計(jì)
 片上系統(tǒng)為一個(gè)基于NIOSⅡ的SoPC系統(tǒng),由四部分組成:NIOS Ⅱ模塊、DDS模塊、PLL模塊和片上RAM 模塊。
2.1 NIOS Ⅱ模塊
    本模塊提供主控CPU部分,NIOS II模塊通過(guò)在SoPC Builder[2]中調(diào)用IP庫(kù)組件實(shí)現(xiàn),由Quartus軟件定制,需加入SDRAM、LCD、RS232等控制器。利用SDRAM配合FPGA構(gòu)成片上系統(tǒng),建立NIOS控制系統(tǒng),完成任務(wù)調(diào)度及人機(jī)交互控制。對(duì)DDS部分的控制由PIO口完成,均為輸出口,包括頻率控制字輸出口、波形選擇輸出口、幅度控制輸出口。本設(shè)計(jì)中,由于NIOSⅡ CPU主要負(fù)責(zé)UART串口的數(shù)據(jù)傳輸和簡(jiǎn)單的I/O接口控制,所以選用經(jīng)濟(jì)型NIOSⅡ/e 內(nèi)核,以達(dá)到節(jié)省資源的目的,NIOS II CPU頂層原理圖如圖2所示。

 

 

2.2 DDS 模塊
2.2.1直接數(shù)字頻率合成器原理

 直接數(shù)字合成DDS(Direct Digital Synthesis)是一種從相位出發(fā)的新的頻率合成技術(shù)和信號(hào)產(chǎn)生方法。DDS的原理框圖如圖3所示[4]。圖中相位累加器可在每一個(gè)時(shí)鐘周期來(lái)臨時(shí)將頻率控制字(FTW)所決定的相位增量M累加一次,如果記數(shù)大于N,則自動(dòng)溢出,而只保留后面的N位數(shù)字于累加器中。正弦查詢表ROM用于實(shí)現(xiàn)從相位累加器輸出的相位值到正弦幅度值的轉(zhuǎn)換,然后送到DAC中將正弦幅度值的數(shù)字量轉(zhuǎn)換為模擬量,最后通過(guò)濾波器輸出一個(gè)很純凈的正弦波信號(hào)。

2.2.2正弦波產(chǎn)生原理
  


  

上式中,M為相位累加器的位數(shù),F(xiàn)TW為頻率步進(jìn)控制字,fclk為時(shí)鐘頻率,輸出信號(hào)頻率主要取決于頻率控制字FTW。當(dāng)FTW增大時(shí),fout可以不斷增加,綜合考慮Nyquist  采樣定理,最高輸出頻率應(yīng)小于fout/2。根據(jù)實(shí)驗(yàn)所得,實(shí)際工作頻率應(yīng)小于fclk/ 3。由于本案例只要求設(shè)計(jì)出最高為1 MHz的信號(hào),根據(jù)D/A及FPAG的速度,可以很容易地滿足設(shè)計(jì)需要。本例中選用32 MHz的CLK時(shí)鐘,在輸出最高1 MHz的信號(hào)時(shí),波形在一個(gè)周期內(nèi)仍有32個(gè)點(diǎn),能夠完整描述出波形。
    
2.2.3 DDS模塊的FPGA實(shí)現(xiàn)
 DDS模塊采用DDS技術(shù)基于FPGA設(shè)計(jì)信號(hào)發(fā)生模塊,由三個(gè)子模塊組成,產(chǎn)生要求的信號(hào)序列。該模塊通過(guò) VHDL 語(yǔ)言直接編程,用于完成頻率控制字的相位累加和截?cái)噍敵觯瑥亩鴮?shí)現(xiàn)波形數(shù)據(jù)的輸出和頻率調(diào)制功能,是整個(gè)系統(tǒng)的核心模塊。由于其采用VHDL語(yǔ)言編寫,所以必須將其轉(zhuǎn)換為圖形符號(hào),加入設(shè)計(jì)頂層圖中,如圖5所示。

    子模塊“xianglei”為32位的相位累加器,它由一個(gè)32 bit字長(zhǎng)的二進(jìn)制加法器和一個(gè)固定時(shí)鐘脈沖clk取樣的32 bit相位寄存器組成,32 bit的din[31..0]輸入為相位累加器頻率控制字輸入端,在時(shí)鐘脈沖的控制下,改變頻率控制字,即可改變輸出頻率;子模塊“rom”是一個(gè)采用Quartus 軟件定制的LPM_ROM正弦查詢表,正弦數(shù)據(jù)由Matlab軟件生成,并以mif 的文件格式存儲(chǔ)后加載到ROM模塊中,文件為sin10bit.mif,輸入為10 bit地址,在時(shí)鐘的作用下,輸出存儲(chǔ)的正弦數(shù)據(jù);子模塊“outs”為波形輸出模塊,10 bit地址輸入端與相位累加器模塊輸出相連,10 bit數(shù)據(jù)輸入端與正弦查詢表的ROM輸出相連,sel為波形選擇端,當(dāng)選擇端為0、1、2、3時(shí),在時(shí)鐘的作用下,分別輸出正弦波、方波、三角波和鋸齒波,由于D/A轉(zhuǎn)換模塊采用的是8 bit D/A,因此輸出端僅接qout的前8 bit。
2.3 PLL模塊
 該模塊通過(guò)調(diào)用QuartusⅡ內(nèi)嵌的器件函數(shù)實(shí)現(xiàn),QuartusⅡ內(nèi)嵌了許多常用器件的函數(shù),用戶只需要進(jìn)行設(shè)置即可直接調(diào)用,而不需要自己編程,大大提高了系統(tǒng)開發(fā)的效率。本設(shè)計(jì)需要兩個(gè)PLL模塊,一個(gè)用于產(chǎn)生NIOS及片外SDRAM所需的時(shí)鐘,另一個(gè)用于DDS時(shí)鐘,采用32 MHz,其中片外SDRAM 的時(shí)鐘輸入必須比系統(tǒng)的時(shí)鐘滯后63°相位。
2.4 片上RAM模塊
 該模塊采用Quartus軟件定制的LPM_ROM模塊,用來(lái)存儲(chǔ)一個(gè)周期的波形數(shù)據(jù)。DDS模塊對(duì)RAM進(jìn)行讀操作,讀取波形數(shù)據(jù),產(chǎn)生幅度量化序列。片上RAM地址位為10 bit,數(shù)據(jù)位為10 bit,空間大小為10 KB,即存儲(chǔ)了1 024個(gè)10 bit數(shù)據(jù)。
2.5 軟件設(shè)計(jì)
 片上系統(tǒng)的軟件設(shè)計(jì)利用Altera的SoPC Builder系統(tǒng)開發(fā)工具和QuatrtusII 7.2設(shè)計(jì)軟件,在集成開發(fā)軟件NIOSⅡ IDE中通過(guò)C語(yǔ)言編程實(shí)現(xiàn)。主要是DDS控制、LCD顯示控制接口和鍵盤掃描程序的的編寫。如要產(chǎn)生某個(gè)1 kHz波形,由鍵盤設(shè)置相應(yīng)數(shù)值、波形類別、波形幅值和步進(jìn)幅度,通過(guò)PIO的控制口送給DDS模塊,就可得到相應(yīng)的波形。限于篇幅,軟件設(shè)計(jì)流程圖不再給出。
3 SoPC外圍電路
 SoPC的外圍電路是完成人機(jī)接口、信號(hào)處理及驅(qū)動(dòng)負(fù)載等重要功能,主要由RS232 & PS2模塊、D/A轉(zhuǎn)換與幅度控制模塊、LCD1602模塊組成。其中RS232 & PS2模塊由RS232電平轉(zhuǎn)換電路和PS2鍵盤接口電路兩部分組成,用于完成RS232串口通信和PS2接口通信,可實(shí)現(xiàn)與計(jì)算機(jī)串口通信、PS鍵盤擴(kuò)展等功能,該模塊通過(guò)8針接口連接到EDA-SoPC核心板;D/A轉(zhuǎn)換與幅度控制模塊,相當(dāng)于兩路D/A輸出,一路使用D/A芯片完成,即在時(shí)鐘的作用下,將8 bit的數(shù)據(jù)送到輸出端,在D/A模擬輸出相應(yīng)模擬電壓,另一路D/A使用電阻網(wǎng)絡(luò)完成轉(zhuǎn)換后作為輸出信號(hào)的幅度調(diào)節(jié),經(jīng)過(guò)EDA-SoPC核心板的DDS技術(shù)可實(shí)現(xiàn)任意波形、一定頻率、一定幅度范圍的信號(hào)輸出;LCD1602模塊主要提供EDA-SoPC核心板與LCD1602液晶接口及液晶所需的負(fù)壓調(diào)節(jié)及背光控制電路。由于篇幅所限,本文只給出D/A轉(zhuǎn)換及驅(qū)動(dòng)電路,如圖6所示。

    信號(hào)D/A轉(zhuǎn)換及驅(qū)動(dòng)電路由DDS輸入的8 bit數(shù)據(jù)通過(guò)DAC908轉(zhuǎn)換為模擬信號(hào),DAC908是一個(gè)8 bit高速、低功耗CMOS  DAC芯片,最高轉(zhuǎn)換速率為125 Mb/s,采用單端模擬輸出,再通過(guò)AD8058運(yùn)放驅(qū)動(dòng)后,作為信號(hào)輸出。AD8058是一款低成本、高性能的電壓反饋型放大器,可以在高增益的條件下保持帶寬特性,噪聲和失真性能符合高速放大要求,具有很高的穩(wěn)定性。
4 測(cè)試結(jié)果
    在指標(biāo)測(cè)試中,采用了60 MHz數(shù)字示波器固緯GDS1062,其面板上可直接顯示信號(hào)的頻率與幅值。
4.1 輸出波形頻率測(cè)試
 在10 Hz~1 MHz范圍內(nèi)以不同的步進(jìn)分別進(jìn)行了正弦波、三角波、方波的頻率測(cè)試。在10 Hz~100Hz范圍內(nèi)步進(jìn)間隔為1 Hz;在100 Hz~1 kHz范圍內(nèi)步進(jìn)間隔為10 Hz;在1 kHz~1 MHz范圍內(nèi)步進(jìn)間隔為1 kHz。測(cè)試結(jié)果表明,輸出信號(hào)頻率穩(wěn)定度優(yōu)于10-5,與頻率設(shè)定值完全一致,波形穩(wěn)定無(wú)失真。
4.2 正弦波帶負(fù)載能力測(cè)試
    輸入頻率為f=1 kHz的正弦波,在空載和帶負(fù)載(1 kΩ)情況下,幅值設(shè)定了0.1 V~5 V共10組數(shù)據(jù),測(cè)得負(fù)載變化率最大值為0.22%,輸出波形的幅度與設(shè)定幅度非常接近,系統(tǒng)帶負(fù)載能力很強(qiáng)。
    本設(shè)計(jì)完成了任意波形發(fā)生器的軟硬件設(shè)計(jì)和調(diào)試,而基于NIOS II的嵌入式處理SoPC技術(shù),使系統(tǒng)性能得到了極大的提高,系統(tǒng)波形顯示清晰、工作穩(wěn)定。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)指標(biāo)方面遠(yuǎn)遠(yuǎn)超過(guò)了傳統(tǒng)頻率合成技術(shù)所能達(dá)到的水平。
參考文獻(xiàn)
[1] 林丹,肖啟俊,鄭小燕.基于SoPC的任意波形發(fā)生器[D]. 深圳:深圳大學(xué),2007.
[2] 李蘭英.NiosⅡ嵌入式軟核SoPC設(shè)計(jì)原理及應(yīng)用[M].  北京:北京航空航天大學(xué)出版社,2006.
[3] 江國(guó)強(qiáng).正版SoPC技術(shù)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
[4] 帥倩,吳國(guó)輝,代冀陽(yáng).基于FPGA的DDS設(shè)計(jì)及實(shí)現(xiàn)[J]. 現(xiàn)代電子技術(shù),2010,34(13):90-92.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。