申慶華
(桂林理工大學信息科學與工程學院,廣西桂林,541006)
函數信號發生器是一種基本電子測試設備,廣泛應用于高校教學、測量控制、通信系統、電子測量等多個領域。隨著電子技術的發展,對信號發生器的性能要求也日益提高[1]。本設計采用專用直接數字合成DDS 芯片設計函數信號發生器。DDS 器件采用了高速數字電路和高速D/A 轉換技術,具有頻率轉換時間短、頻率分辨率高、輸出相位連續、穩定度高、可編程、全數字化等特點。DDS 芯片有很多種,由于AD9833 具有功耗小(20mW)、外圍電路簡單、引腳少、可編程,通過編程能夠產生正弦波、三角波、方波三種波形,輸出頻率從0~12.5MHz 連續可調,信號頻率分辨率可達到0.1Hz,因此系統選用AD9833 作為波形發生器件[2]。
本設計采用STC12C5A60S2 單片機為控制核心,對AD9833 進行控制和配置。通過按鍵可以直接輸入信號頻率和幅值,以及進行波形類型切換,使用非常方便。AD9833 輸出的電壓只有3V,而實際使用中需要波形的電壓往往更大,因此還需要進行電壓放大。本設計用放大電路AD8397 來放大電壓達到在0.1V 到5V 之間可調,這樣就得到較大功率的信號。同時通過LCD 顯示器顯示各個參數指標。系統硬件框圖如圖1 示。
STC12C5A60S2 是新一代8051 單片機,內含中央處理器(CPU)、程序存儲器(Flash)、數據存儲器(SRAM)、定時/計數器、UART 串口、高速A/D 轉換、SPI 接口等模塊。支持串口程序的燒寫,對開發單片機的設備要求比較低,時間也相對縮短,性價比高。本單片機最小系統時鐘電路使用晶振11.0593MHz,電容選取20pf的電容。因函數信號發生器需要持續性輸出波形,不需經常復位,此最小系統電路沒有專門畫出復位電路。
AD9833 是一款高精度、功耗低、結構簡單和體積小且具有串行接口功能的DDS 芯片,由ADI 公司生產。它的輸出信號的控制比如頻率和相位可以通過編程控制實現。其引腳圖如圖2 所示。

圖2 AD9833 引腳圖
AD9833 芯片電源電壓范圍是2.3V~5.5V,通過VOUT 引腳輸出波形。SDATA 輸入時,FSYNC 必須為低電平,16 個SCLK下降沿后數據送到AD9833的移位寄存器中,加載數據位。AD9833 芯片輸出的波形取決于控制器寄存器中的控制位OPBITEN(D5)和Mode(D1)。如果AD9833 控制寄存器中的內容需要改變的時候,D15、D14 位置低電平。寫相位寄存器的時候D15、D14 都置高電平,D13 指定哪個相位寄存器寫入。控制位功能表如表1 所示。
要把一個字寫進頻率寄存器需要兩次寫操作,這時需令B28=1,先輸入低14 位,再輸入高14 位;當B28=0 時,兩邊可當做14 位來操作,由HLB(D12)位指定來改變哪個14位,HLB=1 高14 位,HLB=0 低14 位。Fselect (D11) 指 定是FREQ0 還是FREQ1 用于頻率寄存器的輸出。Pselect(D10)位指定是PHASE0 還是PHASE1 數據加入相位累加器的輸出。RESET=1,重設;RESET=0,禁止。OPBITEN(D5)位與MODE(D1)有關,控制VOUT 輸出。DIV2(D3)與D5 有關,D3=1,DAC 數據的MSB 直接輸出VOUT,D3=0,VOUT 輸出MSB/2。MODE(D1)與D5 一起使用,具體使用方法如下表2 所示。
要求輸出電壓最大為5V,而VOUT 輸出電壓還不能滿足要求,要對輸出信號進行放大,從而滿足對電壓的要求。于是在AD9833芯片10腳VOUT后接一個放大電路,以實現電壓在0.1V到5V之間可調。放大電路采用的是AD8397芯片,AD8397 是 高輸出電流雙運算放大器,可以有310mA的輸出電流。由AD8397 和一些電阻組成同相比例運算電路,同相輸入端接信號Vin,反相輸入端通過電 阻R4 接 地,Vout 與Vin同相,根據“虛短”和“虛斷”:
可 得:Vout=(1+R3/R1)U-=(1+R3/R4)Vin
R3=10K,R4=10K,所以Vout=2 Vin,所以該放大電路放大2 倍。
顯示器件用LCD1602,使用spi 和單片機通信,三線串行通信選用端口CS、SDA、SCK 用于傳送數據及指令。根據前面的控制單元和AD9833 芯片、放大電路,再加上LCD1602 顯示,得到本信號發生器的總體電路設計如圖3 所示。

圖3 總體電路設計
主程序首先從定義初始變量開始,初始化之后開始掃描鍵盤。單片機掃描鍵盤,如果鍵盤有按下的動作,再根據指令來調用指定的子程序。主程序流程圖如圖4 所示。
函數信號發生子程序是初始化之后,根據鍵盤的動作,由單片機控制寫入數據、指令送到AD9833 芯片中,從而調用信號芯片中的指定模塊,完成指定信號的輸出。函數信號發生子程序流程圖如圖5 所示。

圖5 函數信號發生子程序流程圖
在實驗室用數字示波器對本系統輸出波形進行了測試,在0~2MHz 范圍內波形光滑、理想,當輸出波形頻率超過2MHz 時波形就開始發生畸變、出現毛刺。在0~2MHz 范圍內頻率穩定度非常好,在表3 中可看出頻率誤差小于0.1Hz。電壓數據記錄分析如表4 所示,在輸出頻率1KHz 不改變的情況下,測量輸出的電壓的峰峰值,可見電壓輸出正常,誤差小于5%。

表3 輸出頻率測試數據表

表4 輸出電壓測試數據表
本文對基于DDS 芯片AD9833的函數信號發生器的方案進行了分析并設計了硬件、軟件相結合的實現電路,該方案具有高精度、高性價比,性能穩定,使用方便等特點,可以很容易實現波形切換和頻率、電壓的設定。信號的頻率可在1Hz~2MHz 內連續可調,頻率誤差小于1Hz。電壓在0~5V 內連續可調,符合設計要求。
該函數信號發生器不但可以滿足日常教學的需要,還可以用于生產實踐,滿足對于高精度信號源的需要,具有一定的應用前景。