屈環(huán)宇,屈百達(dá)
(江南大學(xué) 輕工過程先進(jìn)控制教育部重點(diǎn)實(shí)驗(yàn)室,無錫214122)
目前,市場(chǎng)上的信號(hào)源通常只能進(jìn)行調(diào)幅、調(diào)頻、調(diào)相,卻鮮有可輸出多路信號(hào)并可調(diào)相差的信號(hào)源,本論文主要研究如何產(chǎn)生可調(diào)相差的正弦信號(hào)源。
正弦信號(hào)的產(chǎn)生技術(shù)先后經(jīng)歷了模擬電子電路技術(shù)、微處理器D/A技術(shù)、FPGA+專用D/A集成芯片三大階段[1]。純粹的模電技術(shù)由于元件參數(shù)誤差、溫漂,以及電路傳輸延時(shí)等影響,很難產(chǎn)生具有高精度相位差的多路正弦信號(hào)。微處理器D/A技術(shù),因其采用串行的工作模式,軟件上的延時(shí)對(duì)于高精度相位差所造成的干擾無可避免。
根據(jù)參考文獻(xiàn)[2]闡述的FPGA產(chǎn)生高速DDS的原理,筆者在FPGA集成電路上構(gòu)建并行的CORDIC模塊,輸入多個(gè)相位值后(本文設(shè)計(jì)為兩路),由NIOS II產(chǎn)生一個(gè)時(shí)鐘信號(hào)觸發(fā)該CORDIC模塊并計(jì)算正弦信號(hào)所對(duì)應(yīng)的二進(jìn)制值,再輸出給高速D/A模塊,濾波后產(chǎn)生高精度且具有一定相位差的正弦信號(hào)。
在FPGA上構(gòu)建NIOS II軟核作為該信號(hào)源的微處理器,外接4 MB的FLASH作為FPGA的程序存儲(chǔ)器,2 MB的SDRAM作為NIOS II的運(yùn)行存儲(chǔ)器,UART實(shí)現(xiàn)FPGA與計(jì)算機(jī)的數(shù)據(jù)交互。FPGA的輸入時(shí)鐘頻率為50 MHz,經(jīng)內(nèi)置鎖相環(huán)倍頻到250 MHz后,為NIOS II和SDRAM提供高速時(shí)鐘。
Avlaon總線是NIOS II硬件系統(tǒng)中的重要組成部分,它是軟核處理器與外設(shè)間的數(shù)據(jù)與指令通信總線[3]。一個(gè)改進(jìn)型的并行CORDIC模塊、兩路高速D/A模塊、電壓放大電路、5階巴特沃斯低通濾波電路[4],構(gòu)成了該信號(hào)源,如圖1所示。
NIOS II軟核與CORDIC模塊間的接口分別是時(shí)鐘端口、使能端口、復(fù)位端口、第一路相位輸入端口、第二路相位輸入端口,CORDIC模塊的輸出為兩路對(duì)應(yīng)正弦信號(hào)的12位二進(jìn)制值,其RTL(寄存器傳輸)級(jí)視圖如圖2所示。
圖1 信號(hào)源的總體架構(gòu)
圖2 NIOS II軟核與CORDIC模塊RTL級(jí)視圖
CORDIC算法是一種矢量旋轉(zhuǎn)的迭代方法,可用于三角函數(shù)、雙曲函數(shù)、指數(shù)、對(duì)數(shù)的運(yùn)算,如圖3所示。
圖3 CORDIC坐標(biāo)旋轉(zhuǎn)原理
初始向量(X0,Y0)旋轉(zhuǎn)θ角度后得到向量(X1,Y1),S()0是一個(gè)符號(hào)位,向量逆時(shí)針旋轉(zhuǎn)時(shí)取值為正,向量順時(shí)針選擇時(shí)取值為負(fù),那么這兩個(gè)向量間有如下數(shù)學(xué)關(guān)系:
假設(shè)初始向量的坐標(biāo)為(1,0),按照上述公式,經(jīng)過i次旋轉(zhuǎn)后,得到所要求解的向量(Xi,Yi)。觀察式(1)可知,迭代時(shí)第i個(gè)公式所需要的變量為Xi-1、Yi-1、cosθi-1、tanθi-1,因此,只要取一定的角度值,使得cosθ和tanθ便于二進(jìn)制計(jì)算,可得適用于FPGA的CORDIC算法。在成熟的CORDIC算法中,為便于運(yùn)算,每次選擇角度θi都是正切值為2的倍數(shù),即第0次旋轉(zhuǎn)角度為θ0=tan-1此時(shí),tanθi=2-i,校模因子
算法可簡化為求解
由式(4)可知,對(duì)于旋轉(zhuǎn)的角度θ,只需硬件的加法器、減法器、移位器,就可以完成上述運(yùn)算,這便是該算法非常適合于FPGA的原因所在。引入Zi,表示i次旋轉(zhuǎn)后相位的累積和,并令Z0=θ,則Z(i)=Z(i-1)-S(i-1)tan-1(2-(i-1)),經(jīng)過i次旋轉(zhuǎn)后,Zi趨向于0,即旋轉(zhuǎn)向量角與目標(biāo)角θ重合,此時(shí)的X(i)≈cosθ,Y(i)≈sinθ。至此,計(jì)算完成。
上述CORDIC算法所能計(jì)算的角度有所限制,根據(jù)式(5)可知角度計(jì)算范圍是-99.9°~99.9°,不能滿足360°圓周的正弦值信號(hào)產(chǎn)生。
因?yàn)榍€關(guān)于 π/2,[]0對(duì)稱,筆者對(duì)CORDIC模塊的角度輸入進(jìn)行限制為-90°~90°,由NIOS II軟核完成轉(zhuǎn)換,見表1。
為獲得高精度的具有一定相位差的兩路正弦信號(hào),筆者對(duì)CORDIC模塊進(jìn)行改進(jìn),將兩個(gè)相同但能獨(dú)立實(shí)現(xiàn)的三角函數(shù)運(yùn)算模塊拼接,并由同一個(gè)時(shí)鐘信號(hào)觸發(fā),以消除寄存器傳輸級(jí)的差異所導(dǎo)致的延時(shí),經(jīng)測(cè)算,其完成一次計(jì)算約25個(gè)時(shí)鐘周期,如圖4所示。
表1 角度轉(zhuǎn)換對(duì)應(yīng)關(guān)系表
圖4 兩路并行CORDIC算法模塊
DDS信號(hào)合成過程中存在著大量的雜散分量,主要來源于相位截?cái)嗾`差、幅度量化誤差、DAC芯片的非理想特性[6]。筆者設(shè)計(jì)了具有16次迭代的CORDIC模塊,以降低相位截?cái)嗨斐傻恼`差[7],理論上該模塊的角度調(diào)節(jié)精度為0.003°。幅度量化誤差的影響因子為D/A芯片的轉(zhuǎn)換位數(shù),設(shè)計(jì)選用具有12位轉(zhuǎn)換精度的DAC904芯片,采用互補(bǔ)電流輸出的方式提高輸出信噪比,采用高速低噪電壓反饋型運(yùn)放OPA680,將差分電流轉(zhuǎn)換為電壓。輸出電壓的公式為:
DAC904芯片Iout引腳的最大輸出電流為20 m A,由式(6)計(jì)算可得此時(shí)該電壓輸出信號(hào)的最大峰-峰值為3 V,可根據(jù)需求對(duì)調(diào)節(jié)放大器及其外圍器件進(jìn)行調(diào)節(jié)以改變輸出電壓的大小。高速D/A轉(zhuǎn)換模塊原理圖如圖5所示。
圖5 高速D/A轉(zhuǎn)換模塊原理圖
為減小D/A轉(zhuǎn)換過程中的非理想特性誤差,采用了5階巴特沃斯低通濾波器,該濾波器具有具有通帶內(nèi)平坦,阻帶有足夠衰減的特點(diǎn),圖6為該濾波器的原理圖。
圖6 5階巴特沃斯濾波器原理圖
筆者用Cadence軟件對(duì)該濾波電路仿真,其幅頻相應(yīng)特性曲線如圖7所示,其通頻帶范圍為0~15 MHz,在20 MHz處衰減為20 dB,滿足設(shè)計(jì)要求。
圖7 5階巴特沃斯濾波器頻譜相應(yīng)圖
測(cè)試過程中選取了兩組數(shù)據(jù),分別為150°相差和270°相差,通過UART將預(yù)設(shè)的相位數(shù)據(jù)傳遞給NIOS II軟核,該信號(hào)源產(chǎn)生了相位差接近于150°(圖8(a))和270°(圖8(b))的兩組正弦信號(hào),基本達(dá)到預(yù)期效果。
圖8 實(shí)驗(yàn)波形圖
因?yàn)樵谠O(shè)計(jì)上使用了同步時(shí)鐘以及無差異的CORDIC計(jì)算模塊,使得該信號(hào)源的兩路信號(hào)直到FPGA產(chǎn)生正弦二進(jìn)制值時(shí)都是高度同步的。
然而,由于D/A轉(zhuǎn)換電路以及濾波電路的存在,后端PCB布線和元器件參數(shù)的差異為這兩路信號(hào)的相位調(diào)整增加一些不確定因素,該信號(hào)源的角度調(diào)節(jié)精度約為1°,雖沒有達(dá)到理論的精度,但基本可以滿足實(shí)驗(yàn)教學(xué)需求。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
[1]CORDESSES L.A tool for periodicwave generation[J].Single Processing Magazine,2004,21(5):110-112.
[2]CARO D D,PETRA N,STROLLO A G M.A 380 MHz directdigital synthesizer/mixer with hybrid CORDIC architecture in 0.25μm CMOS[J].Solid-State Circuits,IEEE Journal of Solid-State Circuits,2007,42(1):151-160.
[3]Abdulla S S,Haewoon N,Swatzlander E E.High speedrecursion-free CORDIC architecture[C]//Proceedings of IEEE International SOC Conference,2010:65-70.
[4]田書林,劉科,周鵬.基于雙DDS的高速任意波發(fā)生器實(shí)現(xiàn)技術(shù)[J].儀器儀表學(xué)報(bào),2004,25(4):557-560.
[5]Pramod K Meher,Javier Valls,Sridharan K.50 Years of CORDIC:algorithms,architectures and applications [J].IEEE Trans On circuits and systems:Regular papers,2009(56):1893-1906
[6]羅柏明,張雷.一種有效的DDS相位截?cái)嚯s散抑制[J].電子技術(shù)應(yīng)用,2008(11):97-99.
[7]李海松,張奇榮,權(quán)海洋.DDS的相位截?cái)嗉跋鄳?yīng)的雜散信號(hào)分析 [J].微電子學(xué)與計(jì)算機(jī),2006,23(2):141-143.
單片機(jī)與嵌入式系統(tǒng)應(yīng)用2015年9期