屈環宇,屈百達
(江南大學 輕工過程先進控制教育部重點實驗室,無錫214122)
目前,市場上的信號源通常只能進行調幅、調頻、調相,卻鮮有可輸出多路信號并可調相差的信號源,本論文主要研究如何產生可調相差的正弦信號源。
正弦信號的產生技術先后經歷了模擬電子電路技術、微處理器D/A技術、FPGA+專用D/A集成芯片三大階段[1]。純粹的模電技術由于元件參數誤差、溫漂,以及電路傳輸延時等影響,很難產生具有高精度相位差的多路正弦信號。微處理器D/A技術,因其采用串行的工作模式,軟件上的延時對于高精度相位差所造成的干擾無可避免。
根據參考文獻[2]闡述的FPGA產生高速DDS的原理,筆者在FPGA集成電路上構建并行的CORDIC模塊,輸入多個相位值后(本文設計為兩路),由NIOS II產生一個時鐘信號觸發該CORDIC模塊并計算正弦信號所對應的二進制值,再輸出給高速D/A模塊,濾波后產生高精度且具有一定相位差的正弦信號。
在FPGA上構建NIOS II軟核作為該信號源的微處理器,外接4 MB的FLASH作為FPGA的程序存儲器,2 MB的SDRAM作為NIOS II的運行存儲器,UART實現FPGA與計算機的數據交互。FPGA的輸入時鐘頻率為50 MHz,經內置鎖相環倍頻到250 MHz后,為NIOS II和SDRAM提供高速時鐘。
Avlaon總線是NIOS II硬件系統中的重要組成部分,它是軟核處理器與外設間的數據與指令通信總線[3]。一個改進型的并行CORDIC模塊、兩路高速D/A模塊、電壓放大電路、5階巴特沃斯低通濾波電路[4],構成了該信號源,如圖1所示。
NIOS II軟核與CORDIC模塊間的接口分別是時鐘端口、使能端口、復位端口、第一路相位輸入端口、第二路相位輸入端口,CORDIC模塊的輸出為兩路對應正弦信號的12位二進制值,其RTL(寄存器傳輸)級視圖如圖2所示。

圖1 信號源的總體架構

圖2 NIOS II軟核與CORDIC模塊RTL級視圖
CORDIC算法是一種矢量旋轉的迭代方法,可用于三角函數、雙曲函數、指數、對數的運算,如圖3所示。

圖3 CORDIC坐標旋轉原理
初始向量(X0,Y0)旋轉θ角度后得到向量(X1,Y1),S()0是一個符號位,向量逆時針旋轉時取值為正,向量順時針選擇時取值為負,那么這兩個向量間有如下數學關系:

假設初始向量的坐標為(1,0),按照上述公式,經過i次旋轉后,得到所要求解的向量(Xi,Yi)。觀察式(1)可知,迭代時第i個公式所需要的變量為Xi-1、Yi-1、cosθi-1、tanθi-1,因此,只要取一定的角度值,使得cosθ和tanθ便于二進制計算,可得適用于FPGA的CORDIC算法。在成熟的CORDIC算法中,為便于運算,每次選擇角度θi都是正切值為2的倍數,即第0次旋轉角度為θ0=tan-1此時,tanθi=2-i,校模因子

算法可簡化為求解

由式(4)可知,對于旋轉的角度θ,只需硬件的加法器、減法器、移位器,就可以完成上述運算,這便是該算法非常適合于FPGA的原因所在。引入Zi,表示i次旋轉后相位的累積和,并令Z0=θ,則Z(i)=Z(i-1)-S(i-1)tan-1(2-(i-1)),經過i次旋轉后,Zi趨向于0,即旋轉向量角與目標角θ重合,此時的X(i)≈cosθ,Y(i)≈sinθ。至此,計算完成。
上述CORDIC算法所能計算的角度有所限制,根據式(5)可知角度計算范圍是-99.9°~99.9°,不能滿足360°圓周的正弦值信號產生。

因為曲線關于 π/2,[]0對稱,筆者對CORDIC模塊的角度輸入進行限制為-90°~90°,由NIOS II軟核完成轉換,見表1。
為獲得高精度的具有一定相位差的兩路正弦信號,筆者對CORDIC模塊進行改進,將兩個相同但能獨立實現的三角函數運算模塊拼接,并由同一個時鐘信號觸發,以消除寄存器傳輸級的差異所導致的延時,經測算,其完成一次計算約25個時鐘周期,如圖4所示。

表1 角度轉換對應關系表

圖4 兩路并行CORDIC算法模塊
DDS信號合成過程中存在著大量的雜散分量,主要來源于相位截斷誤差、幅度量化誤差、DAC芯片的非理想特性[6]。筆者設計了具有16次迭代的CORDIC模塊,以降低相位截斷所造成的誤差[7],理論上該模塊的角度調節精度為0.003°。幅度量化誤差的影響因子為D/A芯片的轉換位數,設計選用具有12位轉換精度的DAC904芯片,采用互補電流輸出的方式提高輸出信噪比,采用高速低噪電壓反饋型運放OPA680,將差分電流轉換為電壓。輸出電壓的公式為:

DAC904芯片Iout引腳的最大輸出電流為20 m A,由式(6)計算可得此時該電壓輸出信號的最大峰-峰值為3 V,可根據需求對調節放大器及其外圍器件進行調節以改變輸出電壓的大小。高速D/A轉換模塊原理圖如圖5所示。

圖5 高速D/A轉換模塊原理圖
為減小D/A轉換過程中的非理想特性誤差,采用了5階巴特沃斯低通濾波器,該濾波器具有具有通帶內平坦,阻帶有足夠衰減的特點,圖6為該濾波器的原理圖。

圖6 5階巴特沃斯濾波器原理圖
筆者用Cadence軟件對該濾波電路仿真,其幅頻相應特性曲線如圖7所示,其通頻帶范圍為0~15 MHz,在20 MHz處衰減為20 dB,滿足設計要求。

圖7 5階巴特沃斯濾波器頻譜相應圖
測試過程中選取了兩組數據,分別為150°相差和270°相差,通過UART將預設的相位數據傳遞給NIOS II軟核,該信號源產生了相位差接近于150°(圖8(a))和270°(圖8(b))的兩組正弦信號,基本達到預期效果。

圖8 實驗波形圖
因為在設計上使用了同步時鐘以及無差異的CORDIC計算模塊,使得該信號源的兩路信號直到FPGA產生正弦二進制值時都是高度同步的。
然而,由于D/A轉換電路以及濾波電路的存在,后端PCB布線和元器件參數的差異為這兩路信號的相位調整增加一些不確定因素,該信號源的角度調節精度約為1°,雖沒有達到理論的精度,但基本可以滿足實驗教學需求。
編者注:本文為期刊縮略版,全文見本刊網站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的高速任意波發生器實現技術[J].儀器儀表學報,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相位截斷雜散抑制[J].電子技術應用,2008(11):97-99.
[7]李海松,張奇榮,權海洋.DDS的相位截斷及相應的雜散信號分析 [J].微電子學與計算機,2006,23(2):141-143.