昌吉學院計算機工程系 冉興萍 高 陽
基于DDS的程控信號源的設計
昌吉學院計算機工程系冉興萍高陽
設計了以52單片機為主控制器,控制AD9850實現頻率范圍在100Hz~20MHz的正弦波和方波信號發生器。該系統利用鍵盤作為輸入設備,LCD12864作為顯示設備;具有頻率可調、精度可達,穩定性好的特點可以廣泛用于教學科研及各種電子測量場所。
52單片機;DDS;AD9850
信號源是一種用途廣泛的電子測量儀器,在現代科研、生產實踐、教學試驗以及各種電子測控場合需要高精度、頻率可變的信號源。目前產生信號的方法有三種,第一種采用傳統的直接頻率合成技術直接產生所需要的波形。其實質是利用混頻、濾波、分頻及倍頻等技術來實現[1]。但由于采用這些中間技術使得直接頻率合成器需要用到的石英晶體較多,電路環路多,從而使得結構復雜,帶內互調分量多容易產生雜散信號,合成的信號頻譜純度不高。第二種是采用鎖相環路法,其特點是可產生頻率較高的信號、寬帶在一定范圍內可調。但是鎖相環是一個惰性環節,其鎖定時間影響頻率轉換時間,而且其輸出頻率間隔與轉換速率之間相互制約[2]。另外,由模擬方法合成的正弦波與方波的性能參數都很難控制,而且要實現100Hz~20MHz大范圍的頻率變化相當困難,不易實現。第三種是采用直接數字式頻率合成(Direct Digital Frequency Synthesis,簡稱DDS)。由于DDS具有相對帶寬很寬,頻率轉換時間短,頻率分辨率高,全數字化結構便于集成等優點[3]。其突破了模擬合成法的原理,可以實現不同頻率、相位的任意波形,并且各種參數均可通過編程實現。因此這種方法是設計信號源的首選方法,本文就是利用這種方法實現程控信號源的設計的。
系統組成框圖如圖1所示,本系統的設計是基于直接數字頻率合成技術,采用52系列單片機控制DDS芯片AD9850,通過鍵盤模塊作為輸入設備改變AD9850的頻率控制字以產生頻率可調的信號;同時利用LCD液晶模塊作為輸出設備顯示輸入信號的頻率從而驗證輸出結果的正確性。

圖1 系統組成框圖
2.1DDS的基本原理
直接數字頻率合成(DDS)是一種數字技術利用相位概念直接合成波形[4]。DDS的原理框圖如2所示,主要由相位累加器、加法器、波形儲存器ROM、數模轉換器(D/A)和低通濾波器(LPF)組成[5]。

圖2 DDS的原理框圖
其中相位累加器的字長為N,波形存儲器ROM數據位及D/A轉換器的字長為D。相位累加器在fc的控制下以步長K作累加,輸出的N位二進制碼與相位控制字P、波形控制字W相加后作為波形ROM的地址[6],從相應的ROM單元中輸出D位的幅度碼S(n)經D/A轉換器變成階梯波S(t),最后通過低通濾波器濾波后就得到合成的信號波形。文中所描述的是正弦波的合成。
2.2頻率控制字計算
DDS輸出合成信號頻率fo與其輸入的參考時鐘頻率fc成正比,設波形存儲器ROM的地址為N位,頻率控制字為K,則:

輸出信號的頻率分辨率為:

由奈奎斯特采樣定理可知,DDS輸出的最大頻率為:

頻率控制字可由以上公式推出:

當外部參考時鐘頻率為100MHz,輸出頻率需要為1MHz時,這樣就可以利用以上公式計算出DDS的需要設定的控制頻率字K=1× 232/100。
由于單片機具有性價比高、可靠性高、靈活性好并且具有易于人機對話和良好的數據處理能力[7]。綜合考慮決定利用單片機AT89S52作為系統的主控核心。顯示模塊采用漢字圖形液晶顯示模塊SMG12864ZK,與數碼管相比的一個最大特點是顯示內容豐富。考慮到系統用單片機I/O口線較多為了節省以便留為他用。按鍵模塊采用矩陣式鍵盤,使用DDS芯片,輸出的信號含有大量的雜散波,為使產生的信號平滑,需要對輸出的信號進行濾波。設計的低通濾波器是采用5階BUTTERWORTH模型。
3.1單片機與AD9850的接口
DDS芯片AD9850有串行和并行兩種通信方式,為了充分發揮AD9850的高速特點,本系統利用并行接口實現單片機與AD9850的連接。具體接口電路如圖3所示,單片機的P2.0~P2.7引腳連接AD9850的數據線引腳D0~D7,P1.0引腳連接頻率更新引腳Fq_ud,P1.3引腳連接控制字輸入時鐘引腳Wclk。

圖3 單片機與AD9850的接口
3.2鍵盤接口
利用AT89S52的P1口實現4*4矩陣鍵盤接口電路。包括數字鍵0~9,頻率單位鍵、頻率功能鍵等。具體電路如圖4所示:

圖4 鍵盤接口電路
3.3顯示模塊接口
顯示模塊接口利用單片機的P0口來實現,由于P0口作為輸出口使用所以必須接上拉電阻;數據通信采用并行通信方式。

圖5 顯示模塊接口電路
本系統軟件由主程序模塊、信號產生模塊、鍵盤模塊及LCD顯示模塊構成。其中主程序模塊是整個系統軟件的核心。系統上電復位后,首先單片機調用初始化程序完成AD9850和LCD的初始化。然后單片機開始掃描鍵盤看有無鍵按下,若無鍵按下則繼續循環掃描若有鍵按下則看按下的是數字鍵還是功能鍵。若先按下頻率功能鍵和單位功能鍵則不執行表示有錯誤;若按下數字鍵則執行數字計算子程序然后按下單位鍵再按下頻率鍵開始調用AD9850計算控制字和發送控制字子程序同時LCD調用顯示函數顯示所輸入的頻率值.最后返回初始狀態循環掃描鍵盤,重復上述過程。軟件流程圖如圖6所示。

圖6 軟件流程圖
該信號源能產生100Hz~20MHz的正弦波、方波,頻率可通過鍵盤任意輸入而且可在LCD上顯示頻率值從而驗證產生波形的正確性。測試數據如表1所示:

表1 測試數據表
通過上表計算可得頻率誤差為:±1Hz,由此可見利用DDS技術設計實現的程控信號源可以產生所需要的信號波形,并且具有精確的頻率。
[1]產新忠,郁略,楊靜等.基于9850的可編程信號發生器的設計[J].計算機測量與控制,2006,14(9):1272-1274.
[2]任艷玲.基于AD9850的多功能信號源設計[J].電子科技,2015,28(6):179-182.
[3]林萬榮.基于AD9850的DDS信號發生器系統設計與實現[J].中國有線電視,2015(11):1286-1290.
[4]趙杰英,王浩全.基于AD9850多功能信號源的設計與實現[J].山西電子技術,2014(1):45-47.
[5]王佳榮,崔煒,馮馳.基于DDS的高頻率高精度信號發生器[J].吉林大學學報(信息科學版),2016(4):501-506.
[6]南楠,趙立新.基于FPGA的DDS信號源研究與設計[J].沈陽工程學院學報,2016,12(1):74-80.
[7]宋雁鵬.基于單片機和DDS的高頻信號源的設計[J].電子世界,2015(13):131-133.