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