基于SoPC/NIOS II的信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)
摘 要: 運(yùn)用基于NIOS II嵌入式處理器的SoPC技術(shù),設(shè)計(jì)了一個(gè)任意信號(hào)發(fā)生器,不僅可以輸出正弦波、方波、三角波和鋸齒波等常見(jiàn)波形,且各波形的頻率和幅度可調(diào),可根據(jù)用戶(hù)需要進(jìn)行現(xiàn)場(chǎng)編程,具有控制靈活、輸出頻率穩(wěn)定、準(zhǔn)確、波形質(zhì)量好和輸出頻率范圍寬等優(yōu)點(diǎn)。
關(guān)鍵詞: 可編程片上系統(tǒng); NIOSⅡ; 直接數(shù)字頻率合成; 信號(hào)發(fā)生器
信號(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ā)生器大多采用專(zhuān)用芯片或單片機(jī)或模擬電路,具有成本高、控制方式不靈活或波形種類(lèi)較少等缺點(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)的開(kāi)發(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ò)鍵盤(pán)進(jìn)行設(shè)置,可實(shí)時(shí)顯示輸出信號(hào)的類(lèi)型、幅度、頻率和頻率步進(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)鍵盤(pán)設(shè)定波形的種類(lèi)、任意頻率和任意幅度的信號(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所示。