基于FPGA的三相正弦DDS電路的設(shè)計(jì)與實(shí)現(xiàn)
1. 引言
本文引用地址:http://m.butianyuan.cn/article/201809/389161.htm直接數(shù)字頻率合成器(DDS)技術(shù),是根據(jù)相位的概念出發(fā)直接合成所需的波形的一種 新的頻率合成原理,是一種把一系列數(shù)字形式的信號(hào)通過(guò)DAC轉(zhuǎn)換成模擬形式信號(hào)合成技術(shù)。 具有頻率切換速度快,很容易提高頻率分辨率、對(duì)硬件要求低、可編程全數(shù)字化便于單片集 成、有利于降低成本、提高可靠性并便于生產(chǎn)等優(yōu)點(diǎn)。目前各大芯片廠商都相繼推出高性能 和多功能的DDS芯片,內(nèi)部數(shù)字信號(hào)抖動(dòng)很小,輸出信號(hào)的質(zhì)量較高。但是在某些場(chǎng)合,由 于專用的DDS芯片的控制方式是固定的,故在工作方式、頻率控制等方面與系統(tǒng)的要求差距 很大,數(shù)字控制器接口不便,難以滿足復(fù)雜要求,對(duì)處理速度要求較高,從而也限制了頻率 進(jìn)一步的提高,同時(shí)微處理器的處理任務(wù)也更加繁重。FPGA以其可靠性高、功耗低、 保密性強(qiáng)等特點(diǎn),在電子產(chǎn)品設(shè)計(jì)中得到廣泛的應(yīng)用。
本文根據(jù)實(shí)際需要,設(shè)計(jì)出符合特定需要的三相正弦DDS電路,通過(guò)實(shí)驗(yàn)證明,利用FPGA 合成DDS是一個(gè)較好的解決方法,具有良好的實(shí)用性和靈活性。
2.正弦直接數(shù)字頻率合成器設(shè)計(jì)原理
合成器由頻率控制字N,相位控制字M分別控制輸出正弦波的頻率與相位。其中相位累 加器為合成器的關(guān)鍵控制部分,通過(guò)控制改變頻率控制字N與相位控制字M的快慢,從而得 到相應(yīng)頻率和任意超前與滯后的相位的正弦波型,甚至是余弦波型。實(shí)際這種改變相位控制 字M與頻率控制字N的配合,通過(guò)查找正弦表地址來(lái)得到。實(shí)際將每個(gè)地址對(duì)應(yīng)正弦表中的0-360范圍內(nèi)的每一個(gè)相位點(diǎn)。查表將輸入的地址信息映射成相應(yīng)的幅值,從而得到完整的 正弦信號(hào),同時(shí)通過(guò)數(shù)模轉(zhuǎn)換器DAC,經(jīng)過(guò)LPF(低通濾波器),就可以得到一個(gè)頻譜純凈的 正弦波。其原理圖如圖1所示:
3.正弦波發(fā)生原理及邏輯設(shè)計(jì)
3.1 正弦函數(shù)表的設(shè)計(jì)
在傳統(tǒng)正弦函數(shù)ROM 表的設(shè)計(jì)中,通常將0 到2π整個(gè)周期所有的離散信號(hào)全部存入芯片中[5]。這種方法雖然實(shí)現(xiàn)比較簡(jiǎn)單,但同時(shí)會(huì)浪費(fèi)芯片的大量資源。
考慮到正弦波信號(hào)在0 到π與π到2π關(guān)于直線X=π成偶對(duì)稱,故可以將ROM 表中的數(shù)據(jù)減少為原來(lái)的一半。再利用左半周期內(nèi),波形關(guān)于直線X=π/2 成奇對(duì)稱,進(jìn)一步可將正弦函數(shù)ROM 表減少一半。這樣,就可以將ROM 表的數(shù)據(jù)減少為原來(lái)的1/4,可極大減少正弦函數(shù)ROM 表在芯片內(nèi)部占用的邏輯資源。即通過(guò)一個(gè)正弦波形表的前1/4 周期,就可以變換得到正弦的整個(gè)周期波形,同時(shí)減少了將近3/4 的周期資源而使系統(tǒng)得到優(yōu)化,效果非常顯著。
根據(jù)以上思路,利用公式-1 提前把算好的正弦函數(shù)離散值,按照相應(yīng)的地址順序依次存入芯片內(nèi)部的ROM 區(qū)中。本文的設(shè)計(jì)中采用以上思路,將0 到2π一個(gè)正弦周期內(nèi)共有8192 個(gè)離散點(diǎn),縮減為0 到πM2,共2048 個(gè)離散點(diǎn),其中相位分辨率為0.044o。將N 作為正弦離散值的地址線,離散點(diǎn)的計(jì)算按公式-1 計(jì)算。
Sin_ Data=127mes;sin(π/2n) 其中n 的范圍[0,2047] ---- 公式-1其中正弦表的內(nèi)部結(jié)構(gòu)如表1 所示:
3.2 三相正弦信號(hào)的產(chǎn)生原理
由于在設(shè)計(jì)中采用了一個(gè)正弦表,而需要產(chǎn)生三相正弦信號(hào)則成為邏輯設(shè)計(jì)的一個(gè)難點(diǎn) 與關(guān)鍵點(diǎn)。傳統(tǒng)的設(shè)計(jì)中則需要在FPGA 內(nèi)部存儲(chǔ)三個(gè)正弦函數(shù)表,非常浪費(fèi)芯片的邏輯 資源。因此,本文產(chǎn)生三相正弦信號(hào)利用了三相分時(shí)原理設(shè)計(jì)。在設(shè)計(jì)中采用三個(gè)可逆計(jì)數(shù) 器,分別在時(shí)鐘信號(hào)的作用下同時(shí)進(jìn)行計(jì)數(shù),其計(jì)數(shù)值作為三相正弦信號(hào)在ROM 表中的地址。由于產(chǎn)生的三相正弦信號(hào)彼此的初相位不同,所以在可逆計(jì)數(shù)器的作用下,三個(gè)可逆計(jì) 數(shù)器的查表方向?qū)τ贏、B、C 三相就各有所不同。其查正弦函數(shù)表原理如圖2 所示:
例如在設(shè)計(jì)中產(chǎn)生三個(gè)初相位為零,相位互差120o°的三相正弦信號(hào)。如圖2 所示,A 相首先從正弦函數(shù)表的地址0°開(kāi)始累加讀起,當(dāng)讀到地址90° 處,再?gòu)牡刂?0°處累減讀到 地址0°處,這樣在A 相可逆計(jì)數(shù)器的控制下,就可以得到周期為π 的單向半波正弦信號(hào);C 相首先從正弦函數(shù)表的地址60°開(kāi)始遞減讀起,當(dāng)讀到地址0°處,再?gòu)牡刂?°處遞增讀到地 址90°處,然后從地址90°處遞減讀到地址0處,這樣在C 相可逆計(jì)數(shù)器的控制下,就可以 得到周期為π ,初相位滯后A 相60°的單向半波正弦信號(hào);同理B 相從正弦函數(shù)表的地址60o 開(kāi)始累加讀起,在B 相可逆計(jì)數(shù)器的控制下,就可以得到周期為π,初相位滯后C 相60°的 單向半波正弦信號(hào)。這樣通過(guò)一個(gè)π/2 周期的正弦函數(shù)表,就可以發(fā)出三個(gè)相位互差60°周 期為π 的單向半波正弦信號(hào)。
正弦函數(shù)表中讀取對(duì)應(yīng)的正弦幅值采用分時(shí)的方法。其中分時(shí)時(shí)鐘非常小,在不影響正 常三相正弦信號(hào)的相位關(guān)系下,分相邏輯產(chǎn)生器產(chǎn)生的時(shí)序如圖3 所示,其中CLK 為輸入 系統(tǒng)時(shí)鐘,分相邏輯產(chǎn)生器輸出A、B、C 三個(gè)依次滯后的時(shí)序。當(dāng)A 為高電平時(shí)讀取從正 弦函數(shù)表內(nèi)讀取出A 相的正弦幅值;B 當(dāng)為高電平時(shí),讀取B 相的正弦幅值;C 為高電平 時(shí),讀取C 相的正弦幅值。這樣在三相分時(shí)邏輯控制器的作用下,將查出的三個(gè)單相半波 正弦信號(hào)送給正弦信號(hào)幅值調(diào)節(jié)器。
將三個(gè)單相半波正弦信號(hào)調(diào)整為周期為2π的正弦信號(hào),利用公式-2、公式-3 就可以調(diào)節(jié)為正常的正弦信號(hào)。
3.3 相位的調(diào)節(jié)方法
M 作為相位控制字輸入信號(hào),將輸入信號(hào)M 作為正弦函數(shù)ROM 表的偏移地址。當(dāng)系統(tǒng)要 求發(fā)出超前參考信號(hào)的角度時(shí),首先超前與滯后標(biāo)志位變?yōu)?ldquo;1”。可逆計(jì)數(shù)器查表地址從初 始位置對(duì)應(yīng)偏移到ROM 表地址。如果M=“01010101011”(即δ=683 為相對(duì)偏移地址,實(shí) 際M=683? 0.0440=30o),A 相可逆計(jì)數(shù)器首先從地址“01010101011”處先遞增計(jì)算,遞增 到“11111111111”處就開(kāi)始遞減計(jì)算,計(jì)算到地址“00000000000”處再遞增計(jì)算,在時(shí)鐘 的作用下往復(fù)計(jì)算。B 相可逆計(jì)數(shù)器從地址1365+683 處(1365 為60° 地址)遞減計(jì)數(shù);同理C 相可逆計(jì)數(shù)器從1365+683 處遞增計(jì)數(shù)。這樣輸出的正弦信號(hào)比參考信號(hào)超前30°。同 理.發(fā)出滯后電網(wǎng)電壓信號(hào)的正弦信號(hào)只需采用與超前相反的方法。由于在正弦函數(shù)ROM 表 中存儲(chǔ)了(0°-90°)的正弦函數(shù)值,共2048 個(gè)離散點(diǎn),M 的調(diào)節(jié)范圍在(-90 °—+90 °)之 間,相位分辨率為0.044°。
4 實(shí)驗(yàn)結(jié)果
將編譯好的配置文件下載到 FPGA 芯片中,用示波器來(lái)觀測(cè)輸出波形。為A 相與B 相LPF 濾波后的波形圖圖4,可以看出A 相與B 相彼此相位保持120o 的相位關(guān)系,證明輸出三相波 形的相位是正確的。
在實(shí)際應(yīng)用中,通過(guò)改變頻率控制字的大小就可以改變輸出頻率。本文利用FLEX10K 器件,設(shè)計(jì)了相應(yīng)的三相正弦DDS 電路,對(duì)實(shí)驗(yàn)電路進(jìn)行了全面檢驗(yàn)。實(shí)驗(yàn)結(jié)果表明:①整 體邏輯設(shè)計(jì)是正確的;②輸出的三相波形相位符合設(shè)計(jì)要求的控制。
5.結(jié)束語(yǔ)
本文根據(jù)實(shí)際需要,設(shè)計(jì)出了符合特定需要的三相正弦DDS 電路,通過(guò)實(shí)驗(yàn)證明,輸出 波形達(dá)到了技術(shù)要求,控制靈活、性能良好。 本文作者創(chuàng)新點(diǎn):本文所做的研究是利用FPGA設(shè)計(jì)出符合特定需要的三相正弦DDS電路。 實(shí)驗(yàn)證明了該方法的可靠性和可行性。該方法較傳統(tǒng)方法具有良好的實(shí)用性和靈活性,有很好的推廣價(jià)值。
評(píng)論