基于FPGA的DDFS信號源實(shí)現
引言
在電子信息領(lǐng)域,函數發(fā)生器(信號源)是通用的設備。近年來(lái)電子信息技能 的飛速發(fā)展,使得各領(lǐng)域對信號源的要求在不斷提高。不但要求其頻率穩定度和精確 度高,要求頻率改動(dòng) 的方便性,而且還要求可以產(chǎn)生任意波形,輸出不同幅度的信號等。而實(shí)現頻率合成要領(lǐng) 有許多種,但基本上可以歸納為直接頻率合成和間接頻率合成兩大類(lèi)要領(lǐng) 。采用傳統的頻率合成技能 要實(shí)現上述要求,幾乎是不可能的。DDFS技能 是自21世紀70年代出現的一種新型的直接頻率合成技能 。DDFS 技能 是在信號的采樣定理的基礎上提出來(lái)的,從“相位”的概念出發(fā),執行 頻率合成,不但可運用 晶體振蕩的高頻率穩定度、高精確 度,且頻率改動(dòng) 方便,轉換速度快,便于產(chǎn)生任意波形等,因此,DDFS技能 是目前高精密度信號源的核心技能 。目前已有專(zhuān)用的DDFS芯片,如美國AD公司的AD9850等可用于DDS 信號源的開(kāi)發(fā),但其成本較高。
1 DDFS原理
DDFS的原理:將對正弦等各種信號的采樣量化數據存入ROM存儲器中,在時(shí)鐘的控制下,依次或隔一定步進(jìn)讀取ROM中的數據,再通過(guò)D/A轉換芯片及后級的低通濾波器來(lái)實(shí)現頻率合成的一種要領(lǐng) 。其原理框圖如圖1所示。其主要的組成部分包括:相位累加器(也可理解為ROM存儲單元的讀地址發(fā)生單元)、正弦信號采樣量化數據存儲ROM表、D/A轉換及低通濾波器。
DDFS參數計算:DDFS的主要參數包括正弦信號的采樣點(diǎn)數,最高輸出頻率fomax,最低輸出頻率fomax及頻率分辨率△fo等。根據DDFS原理可知,在時(shí)鐘控制下將所有ROM存儲數據依次讀出,則輸出的信號周期最長(cháng)Tomax=NTc,即輸出頻率最低為fomax;只讀出兩個(gè)點(diǎn)(∏/2和 3∏/2)的采樣數據,則輸出的信號周期最短Tomin=2Tc,即輸出頻率最高為fomax。其中Tc為時(shí)鐘周期。相應計算如下。(1)輸出信號頻率通式:fo=Sfc/2n,其中2n為采樣點(diǎn)個(gè)數N,故可知n為采樣后ROM的地址位數;其中S為步進(jìn)長(cháng)度,即每S個(gè)地址取一個(gè)采樣點(diǎn);
(2)輸出最低頻率
(3)輸出最高頻率
查看原圖(大圖)雖然根據奈奎斯特采樣定理,一個(gè)周期采樣兩個(gè)點(diǎn)即可保證信號的頻譜信息不丟失,但為了輸出信號濾波后失真較小,一個(gè)周期至少采樣8個(gè)點(diǎn);故可知S的取值范圍應該為1~2n-3;
(4)頻率分辨率△fo:△fo=fc/2n,與最低頻率一致。
2 DDFS的FPGA實(shí)現的參數計算
本設計充分運用 CycloneII系列FPGA芯片EP2C35的片上資源來(lái)實(shí)現一個(gè)基于DDFS的正弦信號源。由于此芯片的片上可用ROM單元為483,840位二進(jìn)制,因此,片上ROM資源只能夠存儲215(32768)個(gè)8位二進(jìn)制采樣點(diǎn)的數據。
(1)ROM資源優(yōu)化:由于是正弦信號,因此只要采樣其(0,n/2)區間上的函數值,即可根據其周期性及對稱(chēng)性,求出其他區間上的相應的函數值。故,雖然片上資源只能存儲215(32768)個(gè)8位二進(jìn)制數據,但運用 正弦信號的對稱(chēng)性,可實(shí)現217點(diǎn)采樣。由于正弦信號在(n~2n)間為負值,因此輸出函數值時(shí),須要 執行 補碼轉換;
(2)地址位長(cháng)度:ROM的尋址地址為15位二進(jìn)制數;
(3)步進(jìn)位長(cháng)度:步進(jìn)最大應為217/23=214,即步進(jìn)為14位的二進(jìn)制數;
(4)相位控制字:相位是指讀取數據時(shí),應該屬于(0,2n)上的哪個(gè)區間,由于共有4個(gè)不同的區間。故可采用2位的二進(jìn)制數來(lái)標識;不同的相位區間,決定著(zhù)地址的讀取方向及輸出函數值能無(wú)法 取補碼運算;
(5)任意波形的產(chǎn)生:要產(chǎn)生任意波形,可運用 任意波形如矩形脈沖、三角波、鋸齒波等的傅利葉級數分解表達式,取其前有限次(如10次)諧波執行 求和并存入指定的RAM單元,再依次讀出數據,即可產(chǎn)生任意的信號。也可以將相應波形的數據執行 采樣,存入ROM中,按一定步進(jìn)執行 讀取。通過(guò)以上剖析 ,在充分運用 片上存儲單元,不擴展外部存儲器,地址時(shí)鐘為10 MHz的基礎上,可得頻率分辨率為△f=78 Hz,輸出信號最高頻率(一個(gè)周期最少采樣8個(gè)點(diǎn))為fomax=fc/8=1.25 MHz;輸出信號最低頻率為fomin=Sfc/2ns=1=fc/217=78 Hz。若采樣點(diǎn)達到232個(gè)及以上,頻率分辨率可以做到0.015 Hz,達到mHz量級??梢?jiàn)運用 Cyclone II系列芯片設計出性能優(yōu)良的信號源。根據DDFS的原理,其FPGA設計原理如圖2所示。其中控制單元由有限狀態(tài)機構成。雖然整個(gè)系統的控制不一定須要 運用 有限狀態(tài)機,但由于運用 的FPGA 芯片不支撐 異步的ROM,即從地址鎖存進(jìn)入ROM單元,到數據從ROM中讀出有至少一個(gè)時(shí)鐘周期以上的延時(shí)。因此采用狀態(tài)機來(lái)執行 控制,可以達到較好的輸出與時(shí)鐘同步??刂屏鞒虨椋簳r(shí)鐘信號進(jìn)入控制單元,由它產(chǎn)生地址發(fā)生單元的輸入時(shí)鐘adrclk,地址發(fā)生單元在時(shí)鐘adrclk的驅動(dòng)下,結合輸入的步進(jìn)信號Step,產(chǎn)生地址及此地址所對應的象限Phase,此地址產(chǎn)生后立即輸入到ROM單元中,過(guò)兩個(gè)時(shí)鐘周期后,控制單元從ROM存儲單元中讀出輸入地址對應的數據,并在時(shí)鐘的控制下,將前面所產(chǎn)生的象限值Phase與ROM數據一起送到補碼轉換單元,補碼轉換單元根據Phase的值來(lái)決定能無(wú)法 須要 執行 補碼轉換,若須要 ,則執行 補碼運算并將數據輸出,若不須要 ,則直接將數據輸出。下面給出各模塊的詳細 設計細節。
(1)控制單元:控制單元是整個(gè)系統的核心部件。由一個(gè)基本 的有限狀態(tài)機構成。其狀態(tài)轉換圖如圖3所示。
(2)地址發(fā)生單元:設計思路為根據輸入的Step值,計算出總共四個(gè)象限所需取值的點(diǎn)數,也就可以計算出一個(gè)象限所要取值的點(diǎn)數m,然后在時(shí)鐘作用下執行 計數,當計數值達m個(gè)時(shí),說(shuō)明一個(gè)象限內已經(jīng)取完點(diǎn),此時(shí)phase自加1,計數變量重新置零。由于在(0,π/2)sin的函數值為從0→1變化; (π/2,π)函數值從1→0變化;(π,3π/2)函數值從0→-1變化;(3π/2,2π)函數值從-1→0變化。故在(0,π/2)和 (π,3π/2)地址值從0→32767,每隔一個(gè)步進(jìn)Step讀一個(gè)數據,當然后者的數據要經(jīng)過(guò)補碼單元的處理;而在(π/2,π)和 (3π/2,2π)象限,地址值則從32767→0,每隔一個(gè)步進(jìn)Step讀一個(gè)數據即可,同樣的,后者的數據也要經(jīng)過(guò)補碼單元的處理。(4)補碼轉換單元:根據目前地址所處象限來(lái)決定能無(wú)法 須要 執行 補碼轉換。如產(chǎn)生正弦信號時(shí),(0,π)象限sin函數值為正,而(π,2π)象限上sin 函數值為負,因此在(π,2π)象限時(shí),須要 對輸出數據執行 補碼轉換。補碼轉換單元較基本 ,根據二進(jìn)制數取補的原理執行 設計即可。
4 結果剖析
本設計在QuartusII6.0的平臺上完成設計工作,其仿真波形如圖4所示。在仿真波形中配置 的步進(jìn)長(cháng)度為1024點(diǎn)。由于有狀態(tài)機執行 流程控制,產(chǎn)生的波形較平滑,元多滑毛刺產(chǎn)生。若要進(jìn)一步提高輸出信號頻率范圍,則設計流程 中,不應對時(shí)鐘信號執行 分頻。
同時(shí),還可以運用 QuartusII的SigTapII工具對所設計的程序執行 硬件驗證,配置 好相應步進(jìn)后,相應的輸出波形如圖5及圖6所示??梢?jiàn)所產(chǎn)生的低頻正弦信號波形平滑,而頻率較高時(shí)有一定的毛刺,這可以通過(guò)后級的低通濾波電路(如切比雪夫低通濾波網(wǎng)絡(luò )等)來(lái)執行 濾除。
本設計運用 的邏輯單元只占FPGA片上資源的1%,存儲單元占54%,I/O口占13%??梢?jiàn)主要資源為片上的存儲單元,如果提高一位地址位,則數據量翻倍,FPGA片上ROM不夠用。通過(guò)QuartusII6.0的時(shí)鐘剖析 ,本設計可達到的最高時(shí)鐘為149.41 MHz,而地址發(fā)生的時(shí)鐘為時(shí)鐘的4分頻,故地址發(fā)生單元的最高時(shí)鐘可達37.352 5 MHz,相應的輸出信號最高頻率可達4.665 MHz,相應的最低頻率及頻率步進(jìn)為284.976 Hz。
5 結束語(yǔ)
本設計在不向外擴展ROM存儲器的情況下,對DDFS設計執行 優(yōu)化,充分運用 Cyclone II系列FPGA的片上資源,其輸出正弦信號最高頻率可達4 MHz以上。只要采用更好的方案執行 設計,使采樣點(diǎn)可以做到232個(gè)及以上,頻率分辨率可以做到0.015 Hz,達到mHz量級,進(jìn)一步提高信號源的輸出信號頻率范圍及頻率分辨率等技能 指標,可運用 Cyclone II系列芯片設計出性能優(yōu)良的信號源,達到實(shí)用信號源的要求。
評論