姜 為
(蘭州交通大學(xué)電子與信息工程學(xué)院, 甘肅蘭州 730070)
信號(hào)發(fā)生器作為一種重要的信號(hào)源,廣泛應(yīng)用于電子電路、通訊、檢測(cè)、導(dǎo)航等領(lǐng)域。作為一種為電子測(cè)量和計(jì)量計(jì)算提供數(shù)據(jù)依據(jù)的設(shè)備,它同電壓表、示波器、頻率計(jì)等儀器一樣,是最普通、最基本的,同時(shí)也是應(yīng)用最廣泛的電子儀器之一[1]。直接數(shù)字頻率合成(Direct Digital Frequency Synthesis,簡(jiǎn)稱 DDS)具有頻率分辨率高、頻率切換速度快、切換相位連續(xù)、全數(shù)字化實(shí)現(xiàn)、可產(chǎn)生任意波形等特點(diǎn)。本文結(jié)合基于SOPC和DDS技術(shù)設(shè)計(jì)可產(chǎn)生不同頻率、不同幅度的正弦波、矩形波、三角波、鋸齒波信號(hào)等多種波形信號(hào)。
SOPC是在Altera公司生產(chǎn)的Cyclone II系列的EP2C35F672C6N上實(shí)現(xiàn)的,在其FPGA上搭建了一個(gè)基于NIOS II軟核處理器的SOPC系統(tǒng),系統(tǒng)的原理框圖如圖1所示。從而完成DDS的數(shù)據(jù)量輸出和系統(tǒng)控制,通過按鍵對(duì)信號(hào)的種類、頻率以及幅度進(jìn)行選擇,Nios系統(tǒng)控制DDS產(chǎn)生波形信號(hào)和各種調(diào)制,經(jīng)過高速的DAC進(jìn)行轉(zhuǎn)換,而后經(jīng)過低通濾波,濾除高次諧波和噪聲[2],從而得到用戶所需的頻率相對(duì)純凈的波形。
圖1 系統(tǒng)原理框圖
直接數(shù)字頻率合成技術(shù)的工作原理是基于幅度和相位之間的對(duì)應(yīng)關(guān)系,本文DDS系統(tǒng)是由相位累加器、相幅轉(zhuǎn)換器、數(shù)模轉(zhuǎn)換器、低通濾波器組成的[3]。DDS模塊的原理圖如圖2所示,該結(jié)構(gòu)有兩個(gè)輸入,分別是頻率控制字K、參考時(shí)鐘,其工作過程是,在參考時(shí)鐘作用下,相位累加器對(duì)頻率控制字K進(jìn)行線性累加,當(dāng)相位累加器累積滿量時(shí)就會(huì)產(chǎn)生一次溢出[4],累加器的溢出頻率就是DDS的輸出信號(hào)頻率(F):
函數(shù)發(fā)生器中包含了以相位為地址的波形數(shù)字幅度信息表,以相位寄存器的輸出作為波形查表地址,改變頻率控制字K即可改變輸出波形的頻率。由DDS輸出的量化波形幅度數(shù)字量,經(jīng)過DAC轉(zhuǎn)換成模擬量,經(jīng)選擇濾波、放大后輸出所需要的頻率和幅值信號(hào)。
圖2 基于SOPC的DDS模塊
對(duì)于正弦函數(shù)發(fā)生器,它的輸出可以用下式來(lái)描述[5]:
其中SOUT是指該函數(shù)發(fā)生器的輸出信號(hào)波形,fout是指輸出信號(hào)對(duì)應(yīng)的頻率。上式的表達(dá)對(duì)于時(shí)間t是連續(xù)的,為了用數(shù)字邏輯式實(shí)現(xiàn)該表達(dá)式,必須進(jìn)行離散化處理,用基準(zhǔn)時(shí)鐘clk進(jìn)行抽樣,令正弦信號(hào)的相位:
其中fclk是指clk的頻率對(duì)于2π可以理解為“滿”相位,為了對(duì)Δθ進(jìn)行數(shù)字量化,把2π切割成2N份,由此每個(gè)clk周期的相位增量Δθ用與式(5)聯(lián)立??傻茫?/p>
顯然,函數(shù)發(fā)生器的輸出可能為:
其中θk-1指前一個(gè)clk周期的相位值,同樣得出
由上面的推導(dǎo),可以看出,只要對(duì)相位的量化增量進(jìn)行簡(jiǎn)單的累加運(yùn)算,就可以得到正弦信號(hào)的當(dāng)前值,而用于累加的相位增量量化值BΔθ決定了信號(hào)的輸出頻率fout,并呈現(xiàn)簡(jiǎn)單的線形關(guān)系[5-6]。
DAC轉(zhuǎn)換電路如圖3所示。為了得到用戶所需的波形信號(hào),從RAM輸出的數(shù)據(jù)需要經(jīng)過DAC和幅度控制以及LPF。為了滿足設(shè)計(jì)的需要這里采用的數(shù)模轉(zhuǎn)換芯片是AD公司生產(chǎn)的AD9752[7]。RAM輸出的數(shù)字信號(hào)被送到AD9752芯片,數(shù)據(jù)的采樣頻率為100。分別送+3.3 V電源和+5 V電源到DVDD(數(shù)字電源)和AVDD(模擬電源)。為了得到高質(zhì)量的電源信號(hào)還需在+3.3 V電源和+5 V電源的輸入端加0.1 μF和1 μF的抗干擾電容。要使?jié)M刻度電流輸出在20 mA,F(xiàn)SADJ引腳(滿刻度電流輸出調(diào)節(jié)端)需接2 Ω的電阻后接地。CLOCK引腳輸入來(lái)自EP2C35F672C6N上的時(shí)鐘脈沖。因低功耗模式在本設(shè)計(jì)中不適用,故SLEEP引腳(低功耗控制輸入端)接49.9 Ω電阻后接地。DCOM引腳直接接地。IOUTA與IOUTB引腳分別接24 Ω電阻后接地,同時(shí)為了降低噪聲干擾,需在兩個(gè)引腳和地之間分別接入22 μF電容。為了降低干擾對(duì)信號(hào)的影響,實(shí)現(xiàn)雙極性輸出以及提高電壓輸出精度,輸出端可以增加由一個(gè)運(yùn)算放大器構(gòu)成的差分輸出電路作為DCA電路的輸出。
圖3 DAC轉(zhuǎn)換電路
數(shù)據(jù)經(jīng)AD9752芯片輸出,就由原來(lái)的數(shù)字信號(hào)轉(zhuǎn)換成了我們需要的模擬信號(hào),為了濾除一些高次諧波和噪聲以及對(duì)波形幅度進(jìn)一步控制得到用戶所需要的波形,還需要對(duì)所輸出的模擬信號(hào)進(jìn)行調(diào)理。
圖4 濾波及放大電路
本系統(tǒng)的軟件設(shè)計(jì)是在NIOS II集成開發(fā)環(huán)境(IDE)中通過C語(yǔ)言編譯完成的。IDE是NIOS II系列嵌入式處理器的主要軟件開發(fā)工具,它可以完成,如工程管理,編輯和編譯,調(diào)試,以及閃存器件的編程等[8]。當(dāng)系統(tǒng)啟動(dòng)后,首先對(duì)各個(gè)模塊進(jìn)行初始化,然后掃描鍵盤狀態(tài),檢查到有鍵按下就運(yùn)行鍵值處理程序,NIOS II接收到數(shù)據(jù)后,先對(duì)數(shù)據(jù)進(jìn)行處理,分別計(jì)算出頻率控制字,幅度控制字以及波形表數(shù)據(jù),然后送到DDS模塊,經(jīng)過DDS處理后的數(shù)據(jù)發(fā)送給DA轉(zhuǎn)換器,這樣用戶設(shè)置的參數(shù)指標(biāo)就得到了反饋。NIOS II程序流程圖如圖5所示。
圖5 NIOS II程序流程圖
仿真結(jié)果如圖6所示。
圖6 仿真結(jié)果
基于SOPC的DDS函數(shù)發(fā)生器在一定范圍內(nèi)可輸出幅度和頻率均可調(diào)節(jié)的正弦波、矩形波、三角波、鋸齒波信號(hào)等多種波形信號(hào)。將外部信號(hào)處理電路板和DE2實(shí)驗(yàn)板連接,檢查完畢后上電運(yùn)行程序,把編譯完成的.sof格式文件下載到DE2實(shí)驗(yàn)板上,通過DE2上的開關(guān),給片上系統(tǒng)輸入不同的命令字,觀察顯示屏上顯示的波形數(shù)據(jù)是否和輸出的波形信號(hào)特征相同。通過測(cè)量液晶屏顯示數(shù)據(jù)和電壓輸出數(shù)據(jù)的參數(shù),計(jì)算出它們變化時(shí)的比例系數(shù),根據(jù)此系數(shù)對(duì)顯示程序進(jìn)行修改。經(jīng)過反復(fù)測(cè)試,最終實(shí)現(xiàn)了輸入控制字發(fā)生變化時(shí)輸出波形數(shù)據(jù)和顯示屏顯示的波形數(shù)據(jù)同步變化,更好的,更直觀的反映了輸出的信號(hào)名稱、幅度、頻率和相位的變化情況。本設(shè)計(jì)涉及硬件描述語(yǔ)言邏輯電路設(shè)計(jì)、硬件電路設(shè)計(jì)以及C語(yǔ)言編程等知識(shí)的運(yùn)用。系統(tǒng)的靈活性和實(shí)用性遠(yuǎn)超過了傳統(tǒng)的函數(shù)發(fā)生器,所以本系統(tǒng)具有較高的推廣和使用價(jià)值。
[1] 解澎.基于SOPC技術(shù)的任意波形發(fā)設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2006.
[2] 周立功.SOPC嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2007.
[3] 潘松,黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社,2006:317-401.
[4] 史有建.基于DDS技術(shù)和FPGA的任意波形發(fā)生器的設(shè)計(jì)[J].河南理工大學(xué)學(xué)報(bào),2008(12):629-633.
[5] 李雪梅,張宏財(cái),王雪偉.基于DDS技術(shù)的信號(hào)源設(shè)計(jì)[J].電測(cè)與儀表,2010,47(529):55-56.
[6] 候錫立,靳鵬云.基于SOPC的任意波形發(fā)生器的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2008,16(12):1989-1990.
[7] 崔聯(lián)飛,歐陽(yáng).125MSPS高性能通信DAC芯片AD9752[J].國(guó)外電子元器件,2001(9):61-63.
[8] 呂礦生,周杏鵬.基于FPGA和NIOS II的任意信號(hào)發(fā)生器的設(shè)計(jì)[J].儀器儀表與分析監(jiān)測(cè),2008(3):28-31.