本文列舉了幾種不同的DDS函數(shù)信號(hào)發(fā)生器設(shè)計(jì)的方案,分析和總結(jié)每種方案設(shè)計(jì)原理和思路(函數(shù)信號(hào)發(fā)生器原理),學(xué)習(xí)如何利用直接數(shù)字頻率合成技術(shù)進(jìn)行波形穩(wěn)定并具有高精度的DDS函數(shù)信號(hào)發(fā)生器設(shè)計(jì)。
DDS原理簡(jiǎn)介
從本質(zhì)上看,它是一個(gè)以恒定高頻率運(yùn)行的多位計(jì)數(shù)器。在溢出時(shí),通過(guò)利用一個(gè)多位控制字來(lái)設(shè)置計(jì)數(shù)器步進(jìn)的尺寸,允許計(jì)數(shù)器過(guò)零。計(jì)數(shù)器的高階位用來(lái)尋址存儲(chǔ)設(shè)備,該設(shè)備保持有生成的一個(gè)波形周期的數(shù)字記錄。高頻時(shí)鐘每前進(jìn)一單位,計(jì)數(shù)器便步進(jìn)一次,存儲(chǔ)器也將生成一個(gè)新的地址字,而新的波形數(shù)據(jù)值將會(huì)發(fā)送到DAC。DAC輸出的是取樣模擬波形,該波形經(jīng)重構(gòu)濾波器之后由發(fā)生器輸出。全數(shù)字化結(jié)構(gòu)便于集成,輸出相位連續(xù),頻率,相位和幅度均可實(shí)現(xiàn)程控。
主要優(yōu)點(diǎn)是輸出信號(hào)的頻率精度可以達(dá)到作為發(fā)生器參考信號(hào)使用的晶體控制振蕩器的水平,可以生成非常高的頻率精度,若擁有RAM波形存儲(chǔ)器,可以重現(xiàn)幾乎任何波形,還具有具有相對(duì)帶寬很寬,頻率轉(zhuǎn)換時(shí)間極短,頻率分辨率高等優(yōu)點(diǎn)。
DDS函數(shù)信號(hào)發(fā)生器設(shè)計(jì)原理分析
(1)高精度DDS函數(shù)信號(hào)發(fā)生器的研制
設(shè)計(jì)選用單片機(jī)AT89C55作為控制核心,其與DDS芯片AD9852之間采用并口通信方式。單片機(jī)P1口作為L(zhǎng)CD液晶顯示的數(shù)據(jù)總線,P0口用于AD9852地址總線和并口傳輸?shù)臄?shù)據(jù)總線,使用鎖存器74ALS573實(shí)現(xiàn)P0口復(fù)用,74ALS573鎖存輸出的六位數(shù)值為AD9852內(nèi)部寄存器的地址。P2和P3口作為控制口用于鍵盤(pán)芯片HD7279和AD9852的控制。
由于AD9852的內(nèi)部沒(méi)有低通濾波器,因此經(jīng)過(guò)內(nèi)部余弦DAC輸出的掃頻信號(hào)不可避免地含有高頻噪聲,所以信號(hào)輸出端口需外接低通濾波器抑制高頻干擾。該設(shè)計(jì)采用七階橢園函數(shù)濾波器。
軟件設(shè)計(jì)主要分為菜單操作和頻率控制值計(jì)算兩部分。不同的按鍵代表著不同的數(shù)字和功能,除了正常的10個(gè)數(shù)字鍵0~9外,為了方便頻率值輸入,還設(shè)計(jì)了左右移動(dòng)鍵、刪除鍵、Output確認(rèn)輸出鍵等功能鍵。相應(yīng)的數(shù)值如頻率、相位、幅度輸入完成后按Output輸出鍵,即產(chǎn)生相應(yīng)的信號(hào)輸出。
(2)任意波形發(fā)生器設(shè)計(jì)
本系統(tǒng)采用FPGA實(shí)現(xiàn),單片機(jī)控制整個(gè)系統(tǒng),產(chǎn)生任意波形。主要由微處理器控制模塊、鍵盤(pán)與顯示模塊、DDS通道的FPGA實(shí)現(xiàn)模塊、D/A轉(zhuǎn)換模塊以及濾波器模塊組成。同時(shí)片外擴(kuò)展了4 KB程序存儲(chǔ)器SRAM和6 KB數(shù)據(jù)存儲(chǔ)器ROM,分別用于存儲(chǔ)波形抽樣數(shù)據(jù)和3種標(biāo)準(zhǔn)輸出波形抽樣數(shù)據(jù)。系統(tǒng)設(shè)計(jì)原理如圖所示。
采用AT89C5l單片機(jī)完成數(shù)據(jù)處理和控制其他電路工作。將鍵盤(pán)接收的數(shù)據(jù)通過(guò)特定算法轉(zhuǎn)換成二進(jìn)制碼,再將處理后的控制字、波形參數(shù)和其他器件的控制信號(hào)發(fā)送出去。測(cè)量裝置需要設(shè)置輸出波形、頻率、電壓等參數(shù),而且監(jiān)控程序需要菜單驅(qū)動(dòng),因此需要設(shè)置鍵盤(pán)。鍵盤(pán)采用外接4×4軟鍵盤(pán),使用軟件掃描方式獲得按鍵信息。因?yàn)榘存I需要去抖動(dòng),因此采用軟件編程方式實(shí)現(xiàn),這樣可以節(jié)省硬件資源,簡(jiǎn)化電路設(shè)計(jì)。
DDS通道的FPGA實(shí)現(xiàn)模塊關(guān)鍵部分,主要由相位累加器、地址總線控制器、數(shù)據(jù)總線控制器與SRAM組成。其中,除了SRAM外,其余3個(gè)模塊都由FPGA實(shí)現(xiàn)。相位累加器實(shí)質(zhì)上是一個(gè)帶反饋的29位加法器,它把輸出數(shù)據(jù)作為反饋數(shù)據(jù)和由微處理器送來(lái)的頻率控制字連續(xù)相加,從而產(chǎn)生有規(guī)律的29位相位地址碼。設(shè)計(jì)中采用流水線技術(shù)實(shí)現(xiàn)29位加法。當(dāng)輸入所需頻率時(shí),轉(zhuǎn)換成頻率控制字來(lái)驅(qū)動(dòng)FPGA工作,從而產(chǎn)生所需波形頻率。整個(gè)模塊設(shè)計(jì)過(guò)程使用FPGA的開(kāi)發(fā)軟件實(shí)現(xiàn)并進(jìn)行仿真。
(3)基于SOPC技術(shù)DDS函數(shù)信號(hào)發(fā)生器設(shè)計(jì)
系統(tǒng)采用SOPC 設(shè)計(jì)方案,它由頻率預(yù)置電路、波形選擇、波形頻率控制、累加器、存儲(chǔ)波形數(shù)據(jù)的存儲(chǔ)器和D/ A 轉(zhuǎn)換電路、濾波電路組成。累加器模塊由10 位加法器與10 位寄存器級(jí)聯(lián)而成。波形存儲(chǔ)器中放入正弦波、方波、三角波、鋸齒波的數(shù)據(jù)。
系統(tǒng)開(kāi)發(fā)包括硬件部分和軟件部分,而硬件部分是由SOPC開(kāi)發(fā)工具搭建而成。SOPC Builder生成NIOS嵌入式處理器,NIOS嵌入式處理器開(kāi)發(fā)工具允許用戶(hù)配置多個(gè)CPU,在標(biāo)準(zhǔn)庫(kù)中添加外圍電路,也可以由用戶(hù)自定義外設(shè),綜合處理自定義系統(tǒng),這樣使設(shè)計(jì)變得更加靈活。打開(kāi)SOPC Builder后分別添加CPU,PIO輸入( 10個(gè)按鍵用作頻率字的輸入、1個(gè)按鍵用作確認(rèn)、4個(gè)按鍵用作波形的選擇) ,存儲(chǔ)器( FLASH,SRAM和SDRAM) ,PIO輸出( 10位作為ROM的地址、2位作為ROM塊的選擇、7位為L(zhǎng)ED段碼、1位為L(zhǎng)ED的選通端) 和定時(shí)器。所有組件添加完后的硬件架構(gòu)圖如圖所示。