《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 直接數(shù)字頻率合成器的PFGA實(shí)現(xiàn)[圖]
直接數(shù)字頻率合成器的PFGA實(shí)現(xiàn)[圖]
摘要: 系統(tǒng)采用Xilinx公司生產(chǎn)的型號(hào)為XC3S200的FPGA芯片和Maxim公司生產(chǎn)的型號(hào)為MAX5885的專用D/A芯片,,利用直接數(shù)字頻率合成技術(shù),,通過Xilinx公司的ISE 9.2開發(fā)軟件,,完成DDS核心部分即相位累加器和ROM查找表的設(shè)計(jì)??傻玫较辔贿B續(xù)、頻率可變的信號(hào),。經(jīng)過電路設(shè)計(jì)和模塊仿真,,驗(yàn)證了設(shè)計(jì)的正確性。由于FPGA的可編程性,,使得修改和優(yōu)化DDS的功能非??旖荨?
Abstract:
Key words :
0 引言

1971年,,美國(guó)學(xué)者Joseph Tierney等三人提出了基于全數(shù)字技術(shù),,從相位概念出發(fā)直接合成所需波形的一種新的頻率合成原理,稱之為直接數(shù)字頻率合成器(Drect Digital Synthesis,,DDS),。這是頻率合成技術(shù)的一次重大革命,與第二代基于鎖相環(huán)頻率合成技術(shù)相比,,DDS具有頻率切換時(shí)間短,、頻率分辨率高、相位可連續(xù)變化和輸出波形靈活等優(yōu)點(diǎn),。因此,,廣泛應(yīng)用于教學(xué)科研、通信,、雷達(dá),、自動(dòng)控制和電子測(cè)量等領(lǐng)域。隨著DDS技術(shù)的不斷發(fā)展完善,,近幾年來,,其應(yīng)用范圍已經(jīng)擴(kuò)展到宇航,、遙控遙測(cè)、儀器儀表等各項(xiàng)電子領(lǐng)域,。

雖然現(xiàn)在市場(chǎng)上有許多專用的DDS芯片,,但控制方式卻是相對(duì)固定的,因此不一定是所需要的?,F(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,,FPGA)器件具有速度快、集成度高和現(xiàn)場(chǎng)可編程的優(yōu)點(diǎn),,因而在數(shù)字處理中得到廣泛應(yīng)用,,越來越得到硬件電路設(shè)計(jì)工程師的青睞。因此,,利用FPGA的這些特性,,則可根據(jù)需要方便的實(shí)現(xiàn)各種比較復(fù)雜的調(diào)頻、調(diào)相和調(diào)幅功能,。

1 DDS結(jié)構(gòu)原理

DDS是一種從相位概念出發(fā)直接合成所需波形的數(shù)字頻率合成技術(shù),,主要通過查找波形表實(shí)現(xiàn)。由奈奎斯特抽樣定理可知,,當(dāng)抽樣頻率大于被抽樣頻率的2倍時(shí),,通過抽樣得到的數(shù)字信號(hào)可通過一個(gè)低通濾波器還原成原來的信號(hào)。

DDS的工作原理為:在參考時(shí)鐘的驅(qū)動(dòng)下,,相位累加器對(duì)頻率控制字進(jìn)行線性累加,,得到的相位碼對(duì)波形存儲(chǔ)器尋址,使之輸出相應(yīng)的幅度碼,,經(jīng)過模/數(shù)轉(zhuǎn)換器得到相應(yīng)的階梯波,,最后再使用低通濾波器對(duì)其進(jìn)行平滑,得到所需頻率的平滑連續(xù)的波形,,其結(jié)構(gòu)如圖1所示,。

直接數(shù)字頻率合成器的PFGA實(shí)現(xiàn)

相位累加器由N位加法器和N位累加寄存器級(jí)聯(lián)構(gòu)成。每經(jīng)過一個(gè)時(shí)鐘脈沖fclk,,加法器就將頻率控制字與累加寄存器輸出的累加相位數(shù)據(jù)相加,,把相加后的結(jié)果送至累加寄存器的數(shù)據(jù)輸入端。相位累加器輸出的數(shù)據(jù)就是合成信號(hào)的相位,,相位累加器的溢出頻率就是DDS的輸出信號(hào)頻率,。用相位累加器輸出數(shù)據(jù)作為波形存儲(chǔ)器(ROM)的相位取樣地址,這樣就可以把存儲(chǔ)在波形存儲(chǔ)器內(nèi)的波形抽樣值(二進(jìn)制編碼)經(jīng)查找表查出,,完成相位到幅度的轉(zhuǎn)換。

DDS模塊的輸出頻率是系統(tǒng)工作頻率,、相位累加器比特?cái)?shù)N以及頻率控制字三者的一個(gè)函數(shù),,其數(shù)學(xué)關(guān)系由式(1)給出,。

直接數(shù)字頻率合成器的PFGA實(shí)現(xiàn)

它的頻率分辨率,即頻率的變化間隔為K/2N,。

2 系統(tǒng)功能單元實(shí)現(xiàn)

該系統(tǒng)設(shè)計(jì)是針對(duì)DDS的基本結(jié)構(gòu),,以FPGA為核心,加上外圍電路而實(shí)現(xiàn)的,。

2.1 相位累加器

相位累加器由8位加法器與8位寄存器級(jí)聯(lián)構(gòu)成,。累加器將加法器在上一個(gè)時(shí)鐘作用后所產(chǎn)生的相位數(shù)據(jù)反饋到加法器的輸入端:使加法器在下一個(gè)時(shí)鐘作用下繼續(xù)與頻率控制字data相加,實(shí)現(xiàn)相位累加,,當(dāng)相位累加器累加結(jié)果等于或大于256(當(dāng)N=8時(shí)),,則產(chǎn)生1次溢出,完成1個(gè)周期波形輸出,。該相位累加器采用Verilog語言設(shè)計(jì)實(shí)現(xiàn),。

2.2 波形存儲(chǔ)器

以相位累加器輸出數(shù)據(jù)作為波形存儲(chǔ)器的取樣地址,進(jìn)行波形的相位—幅碼轉(zhuǎn)換,,即可在給定的時(shí)間上確定輸出的波形的抽樣幅碼,。N位的尋址ROM相當(dāng)于把0~2π的正弦信號(hào)離散成具有2N個(gè)樣值的序列。若波形存儲(chǔ)器有D位數(shù)據(jù)位,,則各樣值的幅碼以D位二進(jìn)制數(shù)值保存在該模擬ROM中,,按照不同地址輸出相應(yīng)相位的正弦信號(hào)的幅碼數(shù)值。為了更加有效的表示波形,,當(dāng)然期望波形存儲(chǔ)器輸出的二進(jìn)制值位數(shù)越多越好,。但是查找表的設(shè)計(jì)和D/A轉(zhuǎn)換器的選擇是相關(guān)的,因此需要選擇位數(shù)高的D/A轉(zhuǎn)換器,。本文設(shè)計(jì)的正弦表,,具有16b輸出,采樣點(diǎn)為256,。

2.3 D/A轉(zhuǎn)換電路的實(shí)現(xiàn)

D/A轉(zhuǎn)換單元是繼波形數(shù)據(jù)產(chǎn)生單元之后,,將數(shù)字量形式的波形幅值轉(zhuǎn)換成所要求的合成頻率的模擬量形式信號(hào)。DAC輸出信號(hào)實(shí)際上是階梯模擬信號(hào),,需在D/A轉(zhuǎn)換后利用低通濾波器對(duì)波形進(jìn)行平滑處理,。在此,用Maxim公司生產(chǎn)的A/D換器MAX5885芯片,。該芯片需要將輸入時(shí)鐘信號(hào)轉(zhuǎn)換為差分輸入,,且由外部芯片MAX6161提供1.2V的參考電壓,D/A轉(zhuǎn)換后的差分輸出經(jīng)變壓器轉(zhuǎn)換后即可得到所需的信號(hào):

直接數(shù)字頻率合成器的PFGA實(shí)現(xiàn)

3 系統(tǒng)軟件設(shè)計(jì)

3.1 累加控制模塊的設(shè)計(jì)

相位累加器主要完成相位累加,,實(shí)現(xiàn)輸出波形頻率可調(diào)的功能,。該模塊采用Verilog HDL語言來實(shí)現(xiàn),若要求DDS系統(tǒng)精度高,相位累加器的位數(shù)N需較大,。這里取N=8,,它的Verilog HDL關(guān)鍵代碼如下:

直接數(shù)字頻率合成器的PFGA實(shí)現(xiàn)

其中,data信號(hào)為8位的頻率控制字,,通過改變data的值可以實(shí)現(xiàn)不同頻率波形的輸出,。

3.2 波形存儲(chǔ)器的設(shè)計(jì)

針對(duì)不同的可編程器件,ROM查找表的設(shè)計(jì)采用的方法也不相同,。主要是基于IP核Single Port BlockMemory和Verilog選擇語句這兩種方法,。使用SinglePort Block Memory的波形存儲(chǔ)表只需要產(chǎn)生數(shù)據(jù)文件*.mif或*.coe,然后直接在定制Single Port BlockMemory時(shí),,添加數(shù)據(jù)文件即可,。不過這種方法在FPGA支持內(nèi)部嵌入式陣列塊(EAB)時(shí)才可以使用;使用Verilog選擇語句比較直觀,,但當(dāng)輸入數(shù)據(jù)量大的這種方法是比較繁瑣的,。此次設(shè)計(jì)采用第一種方法。

coe文件是在編譯和仿真過程中作為存儲(chǔ)器(ROM或RAM)初始化輸入的文件,,即memory initializationfile,。創(chuàng)建coe文件的方式有很多種,在這次設(shè)計(jì)中,,在Matlab中采用C語言來生成coe文件,。coe文件編寫格式如下:

直接數(shù)字頻率合成器的PFGA實(shí)現(xiàn)

將生成的cos.txt文件的后綴該為.coe,打開文件并將最后一行的逗號(hào)改為分號(hào),,并在文件的最開始添加下面兩行:

直接數(shù)字頻率合成器的PFGA實(shí)現(xiàn)

最后保存文件退出,,并加載到Single Port BlockMemory所生成的ROM中。加載時(shí)要特別注意數(shù)據(jù)基數(shù)和數(shù)據(jù)長(zhǎng)度的參數(shù)設(shè)置,。

4 系統(tǒng)的功能仿真和驗(yàn)證分析

累加控制器,、ROM查找表組成一個(gè)整體,實(shí)現(xiàn)了一個(gè)基本的DDS系統(tǒng),。該設(shè)計(jì)以原子鐘(33MHz)為基準(zhǔn)頻率輸入,,取累加器為32位,實(shí)現(xiàn)輸出頻率為700kHz的信號(hào),。

通常相位累加器的位數(shù)N很大,,實(shí)際設(shè)計(jì)中受到體積和成本的限制。為了節(jié)省ROM的容量采用相位截?cái)嗟姆椒?,一般只取累加器輸出的高幾位作為ROM的尋址地址,。設(shè)計(jì)中取累加結(jié)果的高8位(N=8)來進(jìn)行查表,也就是說余弦ROM有256個(gè)尋址地址,,數(shù)據(jù)寬度為16,。

5 結(jié)語

直接數(shù)字頻率合成(DDS)技術(shù)屬第三代頻率合成技術(shù),,與第二代基于鎖相環(huán)頻率合成技術(shù)相比,利用DDS技術(shù)合成的輸出波形具有良好的性能指標(biāo)本,。設(shè)計(jì)采用Xilinx公司Spartan-3系列的XC3S200芯片和高速16位D/A轉(zhuǎn)換器MAX5885,。在DDS的工作原理的基礎(chǔ)上,介紹基于FPGA實(shí)現(xiàn)DDS的設(shè)計(jì)方法,。    通過設(shè)置參數(shù)可以靈活控制輸出頻率和分辨率。設(shè)計(jì)出具有精度高,,選擇參數(shù)控制輸出信號(hào),,產(chǎn)生一個(gè)理想的波形。從測(cè)試結(jié)果可看出,,該系統(tǒng)工作穩(wěn)定,、可靠,并具有較好的參考與實(shí)用價(jià)值,。

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