李 俊,譚秋林,崔永俊,李錦明
(1.中北大學電子測試技術國家重點實驗室,山西 太原 030051;2.中北大學儀器科學與動態測試教育部重點實驗室,山西 太原 030051)
傳統的信號發生器由于通常采用模擬元件或FPGA來實現,往往出現波形不穩定、調制頻率低等缺點。在信號發生器中采用 DDS(Direct Digital Synthesizer)[1-3]芯片可以克服這些缺點,同時可以滿足系統實時可編程的要求,提高技術指標,在最大程度上實現系統的開放性、數字化、標準化和可編程化。因此本文提出一種高頻多模式信號發生器方案,利用低功耗單片機MSP430F149作為控制器[4],應用高性能 DDS 芯片 AD9910[5]作為信號發生器。AD9910可以產生頻率高達400 MHz的信號,還可以進行最高8級的FSK(Frequency Shift Keying)和PSK(Phase Shift Keying)調制。由于其具有波形穩定、能進行高頻多模式信號輸出、硬件電路簡單等優點,可以廣泛應用于軍事、航天、通信等領域。
DDS實際上是一種分頻器:通過編程頻率控制字來分頻系統時鐘以產生所需要的頻率。DDS的突出優點是跳頻速率高和頻率分辨力高,跳頻速率高是因為DDS工作在數字域,只要更新頻率控制字,輸出的頻率就相應改變;頻率分辨力高是由于頻率控制字的寬度寬,AD9910的頻率控制字為32位,能提供0.23 Hz的調頻分辨力。
DDS主要由相位累加器、相位幅度轉換、數模轉換器(DAC)構成,圖1是DDS的內部結構圖。

圖1 DDS內部結構圖
DDS利用了正弦波相位線性增加這一特點來產生信號。如圖2,根據DDS的頻率控制字的位數N,把360°平均分成了2N等份。
在圖2所示相位累加器中,選擇恰當的頻率控制字M,相位就以每次M×(360°/2N)進行累加,2N/M次后完成一次周期,需要時間為(2N/M)×Fc,因此就能得到所需要的輸出頻率Fout

圖2 相位累加器原理

式中:Fc為系統時鐘;N為頻率控制字的位數。
在相位累加器中得到的相位信息通過相位幅度轉換器轉換為相應的幅度值,相位到幅度的轉換通過查表完成。
數模轉換器將代表幅度的二進制數字信號轉換成為模擬信號輸出。
整個系統主要由MSP430F149單片機系統、AD9910芯片電路、時鐘電路、電源電路等構成,如圖3所示。
系統采用MSP430f149作為控制單片機,單片機通過SPI接口對AD9910芯片進行控制,還可以控制外部供電電源進行供電,時鐘電路向AD9910提供準確的時鐘,系統經過放大濾波后輸出頻譜純凈的信號。

圖3 系統整體結構圖
AD9910是一款完整的直接數字頻率合成器,能夠產生頻率分辨力高、快速跳頻、快速穩定自動掃頻的信號。芯片采用1 GHz基準時鐘,根據抽樣定理其輸出頻率的理論值可達到500 MHz,但在實際應用中,其輸出頻率不應大于系統時鐘的40%,即400 MHz。用戶可以訪問頻率、相位、振幅3個用于控制DDS的信號控制參數,極大提高了進行各種信號調制的功能。AD9910是通過串行I/O端口進行內部寄存器配置的,支持單頻調制模式、RAM調制模式、數字斜坡調制模式和并行數據端口調制模式。AD9910的硬件連接圖如圖4所示。

圖4 AD9910硬件連接圖(軟件截圖)
整個系統利用5 V供電,單片機需要3.3 V電源,AD9910 需要4 組電源:3.3 V 數字、3.3 V 模擬、1.8 V 數字和1.8 V模擬。在設計電路時要注意電源的要求,以提高系統的穩定性。用XC6209B332芯片進行5 V變3.3 V的電壓變換,利用TPS73718芯片進行5 V轉1.8 V。
利用單片機的一個管腳作為AD9910芯片電源的選通管腳,當單片機選通電源芯片時,才給AD9910上電,這樣可以降低功耗,電源之間應利用磁珠隔離。
AD9910的串行端口可與多種微處理器和微控制器連接,單片機可以很容易控制它,實現對AD9910內部寄存器的讀寫功能。單片機與AD9910的接口見圖5。

圖5 單片機與AD9910接口圖
MASTER_RESET用來給AD9910復位,所有存儲元件清零,寄存器設置為默認值;I/O_RESET可為單片機與AD9910通信出現故障時實現對I/O復位;I/O_UPDATE用于將串行I/O緩沖器中的數據傳輸到器件的有效寄存器中,因為只存在緩沖器中的數據是無效的,所以在單片機利用串行口對AD9910內部寄存器編程時,要利用此管腳進行更新,這樣才能完成配置寄存器過程,使寄存器配置正確,此管腳上升沿有效;CS,SCLK,SDIO為AD9910的串行I/O端口,其中CS為片選信號,SCLK為串行時鐘,SDIO為串行數據輸入/輸出引腳,單片機通過串行端口配置AD9910的內部寄存器,控制AD9910信號輸出;PROFILE0,PROFILE1,PROFILE2為 PROFILE 選擇引腳,通過選擇這3個引腳的高低電平選擇8個PROFILE,但是PROFILE引腳的選擇必須滿足SYNC_CLK上升沿的建立和保持時間的要求。串行端口寫入時序如圖6所示。

圖6 串口寫入時序圖
AD9910的時鐘可以由差分或單端信號源提供,也可以直接由無源晶振提供。通過設置控制寄存器3的相關控制位可以利用內部鎖相環產生遠遠大于參考時鐘的系統時鐘。因此在本電路中可以采用25 MHz的無源晶振給AD9910提供時鐘。在利用外部時鐘的時候要注意將XTAL_SEL 引腳接1.8 V。
單片機是整個系統的控制核心,軟件的設計主要是單片機對AD9910寄存器的配置、電源管理等功能。AD9910串行I/O端口寄存器共有24個,但是其中有2個寄存器未使用,所以只有22個可用寄存器,寄存器分配到的字節數不同,其字節容量取決于特定的功能要求。
以采用AD9910產生PSK信號為例。采用AD9910的RAM調制模式,信號控制參數存放在RAM寄存器中,用戶可通過和其他控制寄存器配合使用來進行信號調制。在RAM調制方式中,通過控制CFR1的31位及CFR2的4與19位來控制選擇工作模式。在配置RAM Profile寄存器時,可選擇RAM的工作模式設置RAM波形的起始和結束地址與掃描速率。其中在直接轉換模式中有可實現BPSK零交越調制[6]的功能位。通過外部3個PROFILE管腳可選擇需要輸出的RAM寄存器波形。
AD9910包含一個1024×32 bit的RAM。RAM有兩種基本工作模式:數據加載/讀取模式和播放模式。當RAM數據通過串行I/O端口加載或讀取時,數據加載/讀取模式有效;當RAM將內容發送至某一個內部數據目的參數時,播放模式有效。根據具體播放模式,可將RAM最多分成8個獨立的時域波形,最高可進行8級PSK調制,本例進行BPSK調制。這些波形驅動DDS信號控制參數,支持頻率、相位、振幅或極性調制信號。在控制寄存器1(CFR1)中設置RAM使能位可使能RAM操作。寄存器配置需I/O更新。圖7為系統軟件流程圖。

圖7 系統軟件流程圖
系統上電后,首先單片機對AD9910進行初始化,然后對AD9910供電,MSP430控制AD9910的復位引腳對AD9910進行復位,這樣可以清除AD9910內部的存儲單元。AD9910復位后,單片機配置AD9910的控制寄存器1、控制寄存器2、控制寄存器3,特別是向AD9910的控制寄存器1的RAM使能位寫入高電平,使RAM模式使能,單片機對寄存器的配置是通過串行端口進行的。單片機有相應的引腳與AD9910的PROFILE選擇引腳連接,通過相應引腳選擇需要進行操作的PROFILE,如要選擇PROFILE0,就要將對應AD9910的PROFILE0,1,2管腳選擇為000,選擇一個PROFILE以后,單片機配置PROFILE的地址步進率、波形結束地址、波形起始地址,并選擇RAM直接轉換模式。在進行PROFILE寫入時要注意起始地址和結束地址的正確寫入。本文中進行了BPSK信號的調制,只需要用到兩個RAM PROFILE寄存器,在一個PROFILE寫完后,利用管腳選擇另一個PROFILE,繼續配置RAM。在寫寄存器的過程中,每寫完一個寄存器就要進行I/O更新。
在所需PROFILE寫完后,接下來就可以將需要的相位控制字寫入RAM,通過外部的PROFILE管腳選擇相應的RAM寄存器,把相位控制字寫入0x16地址,在內部狀態機的控制下,就可以將控制字寫入DDS。AD9910的相對相位是通過16位的相位偏移字(POW)來控制的,相對相位偏移(單位為弧度)可由下式計算得出

對于任意給定的Δθ,則可利用式(2)求出POW。在BPSK調制中,相位改變180°,所以向RAM中分別寫入0x00和0x80。
在寫RAM時對時序有嚴格的要求,至SCLK最短數據建立時間不能低于5 ns,同時要注意寫RAM的時序和串口編程的時序區別,在寫RAM的時候不能對I/O端口進行操作,否則就會破壞數據的寫入。
最后將需要產生波形的頻率寫入FTW(0x07)寄存器中。AD9910的輸出頻率由DDS頻率控制輸入的控制字(FTW)決定,計算公式為

式中:fSYSCLK是AD9910的系統時鐘,FTW是介于0~231-1之間的32 bit整數,通過這個關系式可以很容易地計算出給定頻率的頻率控制字。但需要注意的是如果FTW大于231,所輸出的波形會產生混疊鏡像。
在寫完AD9910所有的寄存器后,單片機回讀寄存器的內容,判斷是否正確輸入,如果寄存器沒有正確配置,則需要單片機復位AD9910并進行重新的配置。如果正確輸入,單片機根據需要調制的數字信號來選擇外部PROFILE管腳進而選擇相應RAM PROFILE的波形輸出。
本例產生的BPSK信號如圖8所示。

圖8 BPSK輸出波形圖
本系統還可以進行不同頻率的輸出和進行FSK調制,輸出波形如圖9所示。

圖9 各頻率正弦輸出和2級FSK輸出波形圖
經過實際試驗驗證,利用高性能DDS芯片AD9910可以在高達400 MHz的頻率下生成頻率捷變正弦波形,電路具有操作方便、結構簡單、功耗低等諸多優點。本文主要進行了RAM模式下相位鍵控調制軟件的介紹,還可以進行高精度高頻信號輸出與多級PSK和FSK信號輸出。經過實際驗證,本文所設計的電路可以滿足通信系統中對信號發生器的要求,具有較高的應用價值。
[1]熊慎偉.基于DDS的寬帶雷達信號產生系統[J].電子工程信息,2005(1):35-37.
[2]陳雷,汪立森,潘明海.基于DDS的低截獲概率雷達信號設計實現[C]//中國通信學會青年工作委員會.2008通信理論與技術新發展——第十三屆全國青年通信學術會議論文集.北京:國防工業出版社,2008:112-1115.
[3]黃智偉.鎖相環與頻率合成器電路設計[M].西安電子科技大學出版社,2008.
[4]原玢,李燕杰,祖靜,等.多功能便攜式信號發生器設計[J].電視技術,2011,35(15):138-140.
[5]Analog Devices Inc.AD9910 datasheet[EB/OL].[2011-09-09].http://www.analog.com/static/imported-files/data_sheets/AD9910.pdf.
[6]溫強,張漢潤,賴志昌.無相位模糊的BPSK數字調制與解調[J].哈爾濱工程大學學報,1998,19(2):82-86.