鄧 騰,吳校生,周曉玲,陳文元,張衛平,崔 峰,劉 武
(微米/納米加工技術重點實驗室,上海交通大學微納科學技術研究院,上海200240)
在各類信號發生器中,我們通常需要產生高穩定性的頻率信號輸出,一般是通過頻率合成的方式來完成的,頻率合成是指從一個高穩定的參考頻率,經過各種技術處理形成一系列穩定的頻率輸出[5]。傳統的直接頻率合成器體積大、硬件成本高;鎖相環路法頻率分辨率低、頻率跳變速度慢[2]。直接數字頻率合成(DDS)是現在發展起來的一種新的頻率合成技術。DDS的優點是:相對帶寬很寬,頻率轉換時間極短,頻率分辨率很高,全數字化結構便于繼承,輸出相位連續,頻率、相位和幅度均可實現程控[8,10],因此能夠和計算機緊密地結合在一起,充分發揮軟件的作用。本文以TI公司的TMS320F2812型DSP為核心處理器,對DDS芯片AD9833進行程控從而實現合成頻率的輸出。利用DSP多引腳輸出的特點,實現對多塊DDS芯片的程控,通過軟件編譯,實現相位嚴格可調的多路信號產生[6,9]。傳統的多路固定相位差的信號發生主要是通過RC移相電路實現的,這樣產生的信號容易幅值發生衰減,而且相位差不夠精確,而且相位差的調整改變相對復雜。本文中采用的程序控制產生移相信號能夠得到相位差穩定且嚴格可調的無衰減信號[2,4]。
可編程DDS的核心是相位累加器,它由一個加法器和一個N bit相位寄存器組成,N一般為24~32,AD9833為28 bit的相位累加器。每來一個外部參考時鐘,相位寄存器便以步長M遞加。相位寄存器的輸出與相位控制字相加后可輸入到正弦查詢表地址上。正弦查詢表包含一個正弦波周期的數字幅值信息,每一個地址對應0°到360°范圍的一個相位點[1]。
AD9833中使用的DDS技術是從連續信號的相位出發,將一個正弦信號取樣、量化、編碼,形成正弦查詢表。合成是改變相位增益,由于相位增益不同,一個周期內采樣點數就不同,產生的正弦信號頻率也不同,達到頻率合成的效果。正弦波信號是非線性的,而其相位是線性的,因此每隔Δt(時間周期)有對應的相位變化。Δt,即:

所以合成的頻率信號為:

其中Δt=1/fm。由式(2)可以看出改變ΔP可以得到不同的f0值。
DDS芯片AD9833原理框圖如圖1。

圖1 DDS原理框圖
圖1所示的是DDS芯片工作的原理框圖,進行的是DA數模轉換,通過相位累加器反映到正弦查詢表上,正弦查詢表包含一個正弦波周期的數字幅值信息,每一個地址對應正弦波0°~360°范圍內的一個相位點,查詢表把輸入地址的相位信息映射成正弦波幅值信號,然后驅動DAC轉換成模擬信號輸出,實現控制頻率、相位都可調的正弦波。
其中相位累加器為28 bit的,取其高14 bit作為讀取正弦波寄存器地址,對應波形相位變化為:

因此,合成頻率與頻率控制字K直接相關:

設定參考頻率,K取值范圍為1<K<228。
目前,單片芯片能夠多通道輸出信號的芯片很少,而且價格昂貴,因此,可以用多片單通道DDS產生多路信號,難點是如何控制多路信號的同步與相位差。傳統控制多路信號移相的方法是通過RC移相電路來實現,這樣的移相方法產生的多路信號容易發生幅值不穩定以及信號衰減的問題。一般采用的低通RC移相電路,傳遞函數為:

我們所需要的是兩路相位差90°的信號,而RC移相電路在90°相位移動時幅值的衰減幾乎達到了無限。幅值在理論上可以通過放大電路放大,但實際上過小的幅值其抗干擾能力將會大幅變小,使波形劇烈失真;即使幅值可以經過后級補償,但是此電路永遠達不到90°的相移,只能無限接近,使得電路的性能指標下降。傳統的解決辦法是采用多級RC移相電路來實現,但是這樣會使得電路趨于復雜而產生更多的失真與干擾等問題。[2,4]
本文中實現多路信號的相位移動的辦法是直接使用DSP控制多塊DDS的控制字來實現。產生多路固定的相位差信號同樣需要注意同步問題。主要影響因素有:
(1)所有DDS時鐘源之間相位差要小于最小限度,因此在PCB布局時使時鐘源達到各路DDS的走線等長,以保證參考時鐘到達DDS系統具有相同的時鐘沿。
(2)在DDS系統上電之后傳送數據之前應產生復位信號,它能使DAC輸出處于一個相同的狀態,成為一個共同的參考點,從而使DDS同步。
在兩路DDS能夠同步輸出的基礎上,通過控制DDS芯片接受相同的時鐘沿信號,即相同的MCLK信號與FSYNC使能信號脈沖,并改變DDS芯片的相位控制字,就可以輕松實現多路DDS信號的相位嚴格控制。[5-6]
多路相位嚴格可調DDS信號發生器包括控制核心和DDS信號產生模塊。本設計采用TMS320F2812作為控制核心,通過TMS320F2812的GPIO口來傳遞控制字和工作時序。以兩路相位差90°的DDS信號為例,DDS信號產生模塊由兩片AD9833實現。本系統的硬件電路和外圍接口如下圖2所示。
圖2所示為利用DSP輸出控制字控制兩片AD9833芯片產生相位差嚴格90°的信號發生器電路,兩路信號發生之后分別經過一個一階高通濾波器,完成基本的濾波,調節偏置。兩片AD9833芯片共用一個晶振信號,信號頻率為 25 MHz。[3,6]
兩片AD9833共用參考時鐘頻率SCLK,對應F2812的 GPIOA0口;頻率更新信號 FSYNC,對應GPIOA2口;外部參考時鐘頻率MCLK,連接到晶振信號輸出。而F2812的GPIOA1口和GPIOA3口分別控制兩片AD9833的控制字加載,實現串行加載,可以分別實現不同頻率和不同相位的控制。通過程序控制GPIO口模擬SCLK與FSYNC的時序信號,并發送對應控制字信號結合時序信號對AD9833進行控制,實現VOUT端口波形良好的正弦波信號輸出[7]。

圖2 多路相位嚴格可調DDS信號發生器硬件電路設計
AD9833有16 bit控制字,其中兩位是用于選擇工作方式,AD9833有一個28 bit的相位累加器,2個28 bit的頻率寄存器FREQ0和FREQ1用于設定K值,2個12 bit的相位寄存器用于設定相位值。16 bit控制字前兩位用于選擇工作模式,00為寫入控制字,01為寫入14 bit頻率字頻率寄存器FREQ0,10為寫入14 bit頻率寄存器FREQ1,11為寫入相位控制字12 bit到相位寄存器PHASE0和PHASE1。
DDS輸出正弦波頻率計算公式為:

式(6)中:fout為輸出正弦波頻率,ΔPHASE為頻率控制字,CLKIN為系統時鐘源頻率,N為相位累加器位數。因此DDS的頻率分辨率為:

AD9833的相位累加器位數N=28采用25 MHz的系統時鐘源頻率,輸出信號頻率為2 MHz,根據式(6)計算得到的AD9833的頻率控制字為:MSB高14 bit 0x4083,LSB 低 14 bit 0x45fc。AD9833擁有12 bit的相位寄存器,相位調整精度為0.087 9°,相位精度很高。[7]
下圖為設計核心AD9833的控制字輸入部分的程序流程框圖,整個系統的軟件部分由C語言和匯編語言混合編寫,在完成初始化、顯示等功能后,根據AD9833的控制字方式,通過TMS320F2812按照AD9833的時序控制字寫入到AD9833的內部寄存器中,完成頻率信號合成。
圖3所示為AD9833芯片的控制字寫入流程圖,由于控制字數據寫入是串行接口,DDS芯片讀取高低電平信號組合成控制字,確定工作模式,選擇寫入頻率控制字的模式,是連續寫入28 bit控制字或者分別寫入14 bit頻率控制字,抑或選擇寫入12 bit的相位控制字。而AD9833的數據寫入是同步信號,所以在控制字發送到SDATA口的同時,SCLK表現為下降沿,而FSYNC接口必須為低電平信號,這樣才能實現控制字的完整寫入,從而實現針對AD9833 芯片的軟件控制。[12]

圖3 AD9833控制字寫入流程圖
GPIO口控制輸入AD9833的控制字,由于共用SCLK和FSYNC,能夠實現兩片AD9833的頻率控制字和相位控制字同時輸入,并同時產生頻率信號,通過給給AD9833輸入相同的頻率控制字和相位差90°的相位控制字,實現兩路相位嚴格可調的頻率信號的產生。[6,11]
本文采用的DDS芯片AD9833和DSP控制器TMS320F2812成功實現多路相位嚴格可調的信號發生器,可以輸出多路相位差嚴格可調、頻率相同或可調的正弦波信號。多路信號也可獨立使用,且信號穩定,頻率分辨率高。由于芯片接口為串行接口,占用DSP的GPIO口比較少,因此可以進行大量芯片的同步信號或固定相位差信號的產生。
由于90°和180°相位差對比比較強烈,因此實驗結果采用90°相位差和180°相位差進行對比,AD9833產生的頻率范圍比較小,因此主要采用200 kHz的頻率信號說明信號發生器產生的頻率信號的穩定性和準確性。
用示波器顯示DDS系統生成的多路相位嚴格可調信號,如圖4所示,兩路頻率均為200 kHz,相位差為90°的信號。圖5所示兩路頻率200 kHz,相位差為180°的信號。

圖4 頻率200 kHz,相位差90°

圖5 頻率200 kHz,相位差180°
圖4所示為200 kHz頻率的兩路相位差90°的信號,通過控制字的調整可以得到180°相位差的兩路信號,如圖5所示。90°相位差頻率字為0xC000和 0xC400;180°相位差頻率字為 0xC000和0xC8000。由上面兩張圖片可以看出由信號發生器產生的正弦波信號頻率穩定,頻率準確性很高,而相位差也很準確。
圖6、圖7采用的是2 MHz的頻率信號進行對比,采用的相位差也是90°和180°進行對比說明。對比展示信號發生器產生的多路信號相位嚴格可調以及相位差穩定、精確的特性。

圖6 頻率200 kHz,相位差90°

圖7 頻率2 MHz,相位差180°
圖6所示為頻率2 MHz的相位差90°的兩路信號,圖7所示為頻率2 MHz相位差180°的兩路信號。由圖6和圖7可以看出本文所訴的信號發生器產生的兩路信號相位穩定性和精確性。而且改變信號的頻率和相位差只需要改變程序中輸入控制字的數據即可,相比硬件電路而言更為簡單方便,適應性強。因此本電路實現的信號發生器不僅能夠實現相位差嚴格可調,還能實現頻率的調整。可以滿足各類信號源的需求。
本文介紹了一種基于 DDS芯片 AD9833和TMS320F2812為控制器的電磁懸浮微馬達多路固定相位差DDS信號發生器的設計方法。利用多片DDS芯片AD9833來產生多路信號,并控制使其得到固定相位差,且相位差可調。多路信號可以協調使用產生特定的相位差或者實現同步,也可單獨使用,且均可做到相位、頻率可調。采用串行加載方式,可實現大規模多路信號發生器。
該信號發生器可輸出多路頻率和相位可調的正弦波和方波,實驗表明波形頻率穩定性好,低頻準確度高,相位分辨率高,相位差精準。可以廣泛應用于科研工作及實際應用中。
[1]Analog Devices,Inc.AD9833 Data Sheet[S].2003.
[2]謝青紅,張筱荔.TMS320F2812 DSP原理及其在運動控制系統中的應用[M].北京:電子工業出版社,2009.
[3]覃貞妮,劉武,陳文元.靜電懸浮微陀螺多路同步DDS信號發生器設計[J].科學計算與信息處理,2010,(18):110-114.
[4]XiaoshengWu,TengDeng,Wenyuan Chen.Electromagnetic Levitation Micromotor with Stator Embedded(ELMSE):Levitation and LateralStabilityCharacteristicsAnalysis[J].Microsyst Technol,2011,17:59-69.
[5]邵詩逸,黃曉剛,劉武.磁懸浮轉子微陀螺旋轉驅動電路設計[J].傳感器與微系統,2006,25(2):83-85.
[6]吳校生.磁懸浮轉子微陀螺的設計制造及其特性研究[D].上海:上海交通大學,2004.19-34.
[7]邵詩逸,黃曉剛,劉武.磁懸浮轉子微陀螺旋轉驅動方式研究[J].微電子學,2006,36(1):111-117.
[8]王丹,李平,文玉梅.采用DDS頻率合成的虛擬信號發生器研究[J].傳感技術學報,2007,20(3):586-591.
[9]陳本永,陳艇,張麗瓊,等.磁懸浮式微動工作臺驅動方案的設計與實現[J].傳感技術學報,2007,20(1):213-216.
[10]周文委,王涌.一種DDS信號發生方法與頻譜研究[J].電子器件,2009,32(3):620-622.
[11]蔣建軍,徐群.TMS320F2812與模數轉換器AD7656的接口設計[J].科技信息,2007,(6):17-18.
[12]尹明,解鋒,葉曉慧.基于DSP芯片控制AD9833實現雷達調頻系統[J].儀器儀表用戶,2007,14(3):35-36.