怎樣巧用DSP在電源設(shè)計(jì)中的應(yīng)用?
核心導(dǎo)讀: 采用分立元件或CPLD、FPGA 進(jìn)行電源的信號(hào)發(fā)生和測(cè)量的設(shè)計(jì),會(huì)增加硬件設(shè)計(jì)復(fù)雜程度,延長(zhǎng)開發(fā)周期。為了簡(jiǎn)化電源信號(hào)發(fā)生及測(cè)量的硬件設(shè)計(jì),縮短開發(fā)周期,本文提出一種基于DSP 的嵌入式操作平臺(tái),采用DDS( 直接數(shù)字式頻率合成器) 及乘法器矢量測(cè)量技術(shù)的設(shè)計(jì)方案。該方案利用DSP 的高速運(yùn)算能力,通過實(shí)時(shí)計(jì)算來實(shí)現(xiàn)分立元件或CPLD、FPGA 的硬件邏輯功能。實(shí)驗(yàn)結(jié)果表明該方案切實(shí)可行。
本文引用地址:http://butianyuan.cn/article/201808/385880.htm0 引言
電源的信號(hào)測(cè)控部分由DDS信號(hào)發(fā)生和信號(hào)測(cè)量組成。DDS 在電源設(shè)計(jì)中的應(yīng)用早已存在。在早期的DDS 設(shè)計(jì)中,硬件組成由計(jì)數(shù)器、觸發(fā)器等多種多個(gè)分立邏輯元件組成; 而在出現(xiàn)可編程邏輯器件CPLD、FPGA 后,DDS 的硬件構(gòu)成簡(jiǎn)化了許多。電源的信號(hào)測(cè)量,分為頻率、幅值及相位的測(cè)量。頻率的測(cè)量采用脈沖填充法; 幅值測(cè)量則隨著A/D 轉(zhuǎn)換器的采樣速度及處理器速度的提高,由原來的有較大延遲的真有效值轉(zhuǎn)換發(fā)展為周期實(shí)時(shí)采樣計(jì)算;相位測(cè)量則在幅值測(cè)量的基礎(chǔ)上,由原來的間相脈沖填充法發(fā)展為乘法器矢量測(cè)量。
DSP 的高速處理能力,使其可以實(shí)現(xiàn)DDS 中的CPLD 或FPGA 及測(cè)量電路中的模擬數(shù)字混合乘法器的功能,從而使電源的信號(hào)發(fā)生及測(cè)量的硬件設(shè)計(jì)更簡(jiǎn)單。
1 設(shè)計(jì)方案
方案設(shè)計(jì)如圖1 所示。DSP 以等時(shí)間間隔快速、連續(xù)讀取擴(kuò)展程序存儲(chǔ)器中的波形數(shù)據(jù),送入并行高速D/A,并行高速D/A 即可輸出預(yù)設(shè)信號(hào)波形。
輸出信號(hào)幅值的調(diào)整不如波形數(shù)據(jù)讀取操作那么頻繁,且對(duì)操作完成時(shí)間的長(zhǎng)短、精度要求也不如波形數(shù)據(jù)讀取高,所以選擇串行多通道D/A。這樣既可以降低成本,又可以簡(jiǎn)化部分硬件設(shè)計(jì)。以N 個(gè)波形讀取時(shí)間間隔為計(jì)時(shí)基礎(chǔ),DSP 通過并行高速A/D 對(duì)經(jīng)信號(hào)處理后的被測(cè)信號(hào)進(jìn)行連續(xù)采樣,通過計(jì)算,可得出被測(cè)信號(hào)有效值及相位。
2 DDS 的DSP 實(shí)現(xiàn)
2. DDS 原理
DDS 是利用相位累加原理直接合成所需波形的一種頻率合成技術(shù),典型的DDS 模型由W 位相位累加器、移相加法器、波形存儲(chǔ)器ROM 查找表( LUT) 、D/A 轉(zhuǎn)換器( DAC) 以及低通濾波器( LPF) 構(gòu)成。其中相位累加器由W 位加法器與W 位累加寄存器級(jí)聯(lián)構(gòu)成。
DDS 工作時(shí),每來一個(gè)時(shí)鐘脈沖p,加法器將相位步進(jìn)值Δθ 與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結(jié)果送至累加寄存器的數(shù)據(jù)輸入端。
累加寄存器將加法器在上一個(gè)時(shí)鐘脈沖作用后所產(chǎn)生的新相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下一個(gè)時(shí)鐘脈沖的作用下繼續(xù)與頻率控制字相加。相位累加器輸出的數(shù)據(jù)作為查表地址,從波形存儲(chǔ)器( ROM) 中提取對(duì)應(yīng)的波形抽樣值( 二進(jìn)制編碼) ,送入D/A 轉(zhuǎn)換器C 中。在相位累加器的數(shù)據(jù)輸出范圍0 ~ 2W – 1,與波形存儲(chǔ)器中一個(gè)完整周期波形的地址,按照特定的函數(shù)關(guān)系對(duì)應(yīng)起來的前提下,相位累加器的每次溢出,DDS 就相應(yīng)的輸出了一個(gè)周期的波形。因此,相位累加器的溢出頻率就是DDS 輸出的信號(hào)頻率。由此可推導(dǎo)出DDS 輸出的信號(hào)頻率公式:
從公式( 1) 可以看出,在相位累加器寬度W 為定值、相位步進(jìn)值Δθ 為1 時(shí),可得出DDS 的最小輸出頻率,即DDS 的頻率分辨率fr。因此,只需要調(diào)整相位步進(jìn)值Δθ,就可以使DDS 的頻率以fr的整數(shù)倍輸出。
2. 2 DDS 工作模式選擇
根據(jù)公式可以看出,在相位累加器寬度W 為定值的前提下,DDS 的輸出頻率,取決于Δθ 和fclk。
Δθ 取值為DDS 的相位分辨率時(shí),DDS 輸出信號(hào)的每個(gè)周期由固定點(diǎn)數(shù)組成,此時(shí)fout與fclk成比例關(guān)系,DDS 為調(diào)頻模式; fclk為定值時(shí),DDS 輸出信號(hào)在單位時(shí)間內(nèi)由固定點(diǎn)數(shù)組成,此時(shí)fout與Δθ 成比例關(guān)系,DDS 為調(diào)相模式。
調(diào)頻模式,其關(guān)鍵點(diǎn)為采用鎖相環(huán)技術(shù)對(duì)預(yù)置輸出頻率進(jìn)行倍頻[3 - 4]。與調(diào)相模式相比,調(diào)頻模式不僅要多出鎖相環(huán)及相應(yīng)倍頻邏輯電路的設(shè)計(jì),且在進(jìn)行頻率調(diào)整時(shí),信號(hào)會(huì)有短時(shí)間的失鎖,造成輸出信號(hào)的振蕩。因此,調(diào)相模式是本設(shè)計(jì)中DDS 的最佳選擇。
2. 3 DSP 實(shí)現(xiàn)DDS 的優(yōu)勢(shì)
無論是用分立邏輯器件還是CPLD 或FPGA 設(shè)計(jì)DDS,其目的都是為了將相位累加器的累加、輸出、波形數(shù)據(jù)查表等這些運(yùn)算處理通過硬件電路高速實(shí)現(xiàn)。唯一的區(qū)別就是應(yīng)用CPLD 或FPGA 設(shè)計(jì)DDS,可以將諸多分立器件實(shí)現(xiàn)的邏輯電路,通過VHDL 等編程語言編程固化在單一芯片上,從而達(dá)到簡(jiǎn)化硬件電路設(shè)計(jì)目的。而采用DSP 設(shè)計(jì)DDS,則完全可以利用其高速運(yùn)算能力,通過軟件編程來完成相位累加器的累加、輸出、波形數(shù)據(jù)查表等運(yùn)算。因此,相比于采用CPLD 或FPGA,采用DSP設(shè)計(jì)DDS 更靈活高效。
2. 4 基于DSP 的DDS 的參數(shù)設(shè)計(jì)
2. 4. 1 標(biāo)準(zhǔn)時(shí)鐘脈沖fclk
的設(shè)計(jì)從公式( 1) 可以看出,在相位累加器寬度W 為定值、相位步進(jìn)值Δθ 為1 時(shí),可得出DDS 的最小輸出頻率,即DDS 的頻率分辨率fr。因此,只需要調(diào)整相位步進(jìn)值Δθ,就可以使DDS 的頻率以fr的整數(shù)倍輸出。
在P 足夠多且每點(diǎn)波形數(shù)據(jù)分辨率與P 匹配的前提下,即可忽略DDS 信號(hào)輸出的高頻諧波含量,從而省略硬件設(shè)計(jì)中的濾波器環(huán)節(jié),避免了由濾波器產(chǎn)生的相位偏移。當(dāng)P = 10000 時(shí),完全可以滿足要求。如設(shè)計(jì)最大輸出頻率65Hz,可得fclk = 0. 65MHz。
fclk可利用DSP 計(jì)數(shù)器的中斷產(chǎn)生??紤]到DSP 的工作頻率均為MHz 的整數(shù)倍,所以fclk取值1MHz,更加便于中斷的準(zhǔn)確產(chǎn)生。
2. 4. 2 相位累加器寬度W 的選取
P = 10000 時(shí),W 取值27 即可滿足設(shè)計(jì)頻率調(diào)節(jié)細(xì)度≤0. 01Hz 的要求。但相位累加值θ 在DSP 中定義為4 字節(jié)的操作數(shù),W 取值27 時(shí),DSP 需對(duì)相位累加值進(jìn)行上限判斷處理后再提取波形數(shù)據(jù),從而產(chǎn)生細(xì)小的波形畸變并增加一定的運(yùn)算量。考慮到可利用操作數(shù)的自然溢出來減少DSP 的判斷及運(yùn)算操作,所以W 取值32。
2. 4. 3 周期波形點(diǎn)數(shù)P 的選取
由于DSP 中沒有現(xiàn)成的除法指令,除法是靠被除數(shù)與除數(shù)之間的移位相減來實(shí)現(xiàn)的,采用該函數(shù)的算法將增加DSP 的運(yùn)算量。因此,可以通過事先將P ÷ 2W 作為系數(shù),減少求數(shù)組下標(biāo)運(yùn)算步驟。但P ÷ 2W 可能為小數(shù),如果取整計(jì)算,將使下標(biāo)出現(xiàn)跳躍性變化,導(dǎo)致輸出波形畸變?cè)龃蟆2蝗≌?jì)算時(shí),如使用定點(diǎn)DSP,雖然價(jià)格便宜且運(yùn)算速度較快,但會(huì)增加系統(tǒng)運(yùn)算量。而使用浮點(diǎn)DSP,運(yùn)算速度較慢且硬件費(fèi)用會(huì)有相對(duì)提高。考慮到DSP 要進(jìn)行多線程的任務(wù)工作,需要較快的運(yùn)算速度,因此選用定點(diǎn)DSP,并對(duì)波形數(shù)據(jù)數(shù)組下標(biāo)的算法進(jìn)行進(jìn)一步的改進(jìn)。
評(píng)論