信號發(fā)生器是一種常用的信號源,,廣泛應用于電子電路、自動控制和科學實驗等領(lǐng)域,。它是一種為電子測量和計量工作提供符合嚴格技術(shù)要求的電信號設備,。信號的頻率和穩(wěn)定度是信號發(fā)生器的重要指標,一般的信號發(fā)生器很難滿足特定的要求,,本文運用計算機控制技術(shù)和直接數(shù)字頻率合成技術(shù)(Direct Digital Frequency Synthesis)開發(fā)出基于DDS的程控信號源,。
1 系統(tǒng)總體設計
AD9851可以與多種單片機連接,以完成數(shù)據(jù)傳遞與控制等,。本設計采用Atmel的單片機AT89S52。
AD9851與AT89S52的接口電路如圖1所示,。
該系統(tǒng)的硬件設計包含四個模塊:
(1)數(shù)據(jù)傳送控制電路,。數(shù)據(jù)傳送控制電路的主要功能是將AD9851所需要的頻率/相位控制字通過AT89S52微處理器以并行方式或串行方式輸入到AD9851的控制字寄存器。根據(jù)電路設計的整體思路和資源配置,,這個電路可采用并行輸入方式為AD9851輸送40位頻率/相位控制字,。
(2)鍵盤控制電路。利用鍵盤可以實現(xiàn)向單片機輸入數(shù)據(jù),、傳送命令,、切換功能等。鍵盤可分為獨立式鍵盤和矩陣式鍵盤,,本設計采用4×8矩陣式鍵盤,。
(3)顯示電路。鍵盤和LED顯示器是單片機應用系統(tǒng)中實現(xiàn)人機對話的一種基本方式,。在該頻率顯示系統(tǒng)的設計電路中,,主要是由6個數(shù)碼管、移位寄存器和3個LED指示等組成,。
(4)單片機最小系統(tǒng)設計,。
2 系統(tǒng)硬件電路設計
2.1 數(shù)據(jù)傳送控制電路
如前所述,AD9851所需要的40位頻率/相位控制字可通過AT89S52微處理器以并行方式或串行方式輸入到AD9851的控制字寄存器,。AD985 1的7腳(FQ_UD:頻率更新控制),,8腳(W_CLK:字輸入時鐘端),和22腳(RESTET:主復位端)分別由AT89S52單片機的三個I/O口P2.1,,P2.0和P2.7控制,,以更新AD8951的頻率信號,字輸入時鐘信號和主復位信號,電路連接如圖1所示,。
40位頻率/相位控制字是通過AD9851的8位數(shù)據(jù)輸入端(D0~D7)與AT89S52的P0口的8個引腳(P0.0~P0.7)連接,,由AT89S52經(jīng)過P0口分5次傳送。
數(shù)據(jù)傳送過程如下:AD9851需要的40位頻率/相位控制字(W0,,W1,,W2,W3,,W4)首先預存儲在AT89S52內(nèi)部指定的5個8位存儲器中,。
(1)將AT89S52的P2.1,P2.0和P2.7全部置零,,準備傳送數(shù)據(jù),。AD9851的22腳(RESTET:主復位端)為高電平有效,當其為高電平時會將AD9851寄存器的所有數(shù)據(jù)清零,。
(2)AD9851把W0數(shù)據(jù)傳送到P0口,,使AD9851的8個數(shù)據(jù)輸入端(D0~D7)的數(shù)值賦為W0。
(3)然后,,將單片機的P2.0置為高電平“1”,,再將其置“0”,經(jīng)過AD9851的字輸入時鐘脈沖W_CLK,,W0的數(shù)值就進入了AD9851的40位數(shù)據(jù)輸入寄存器,。
(4)AD9851把W1數(shù)據(jù)傳送到P0口,將單片機的P2.0置為高電平“1”,,再將其置“0”,,經(jīng)過AD9851的字輸入時鐘脈沖W_CLK,W0的數(shù)值就進入了AD9851的40位數(shù)據(jù)輸入寄存器,。如此5次之后,,W0~W4五組數(shù)據(jù)就全部傳送到AD9851的數(shù)據(jù)輸入寄存器之中。
(5)再將單片機的P2.1置為高電平“1”,,使得AD9851的頻率更新控制端(FQ_UD)經(jīng)過頻率更新控制信號脈沖,,W0~W4共五組數(shù)據(jù)由AD9851的數(shù)據(jù)輸入寄存器輸入到AD9851的頻率/相位寄存器,刷新頻率/相位寄存器中的原有數(shù)值,。由此,,AD9851的21腳(IOUT端)就輸出由W0~W4決定的一定頻率和相位的正弦波。
2.2 鍵盤控制電路
鍵盤是人工干預單片機進行控制的重要手段,,可以實現(xiàn)向單片機輸入數(shù)據(jù),、傳送命令、切換功能等,。鍵盤可分為獨立式鍵盤和矩陣式鍵盤,,獨立式鍵盤結(jié)構(gòu)簡單,,各個鍵彼此獨立,每個按鍵與一根數(shù)據(jù)輸入線相連,。該結(jié)構(gòu)簡單,,使用方便,但是,,隨著按鍵數(shù)量的增加所占用的I/O口線也同時增加,。
2.3 顯示電路
鍵盤和LED(Light Emitting Diode)顯示是單片機應用系統(tǒng)實現(xiàn)人機對話的基本方式。頻率顯示電路主要由移位寄存器74HC164,、數(shù)碼管以及發(fā)光二極管組成,,根據(jù)數(shù)碼管驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類,。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,,顯示亮度高,缺點是占用I/O端口多,。實際應用時必須增加譯碼驅(qū)動器進行驅(qū)動,,增加了硬件電路的復雜性。動態(tài)顯示的效果和靜態(tài)顯示是一樣的,,能夠節(jié)省大量的I/O端口,,而且功耗更低。
由于編程簡單,,且I/O口可以滿足需要,,本設計選用靜態(tài)顯示方式,。在靜態(tài)的顯示方式下,,每位數(shù)碼管的a~h端與一個8位的I/O口相連。當要在某一個數(shù)碼管上顯示字符時,,只要從對應的I/O口輸出并鎖存其顯示代碼即可,。
AD9851輸出的正弦波最大頻率為70 MHz,分辨率為0.04 Hz,,所以本設計選擇6個數(shù)碼管顯示,,同時選擇6個移位寄存器74HC164。74HC1 64是8位串行輸入并行輸出移位寄存器,,每接一片74HC164可以擴展一個8位并行輸出口,,作為LED顯示器的8根段選線。顯示電路因由6個數(shù)碼管組成,,因此有6個74HC164級聯(lián)在一起,,前一級74HC164的QH端同時作為下一級74HC164的串行數(shù)據(jù)輸入端。最左邊的74HC164的數(shù)據(jù)輸入端的數(shù)據(jù)是由AT89S52的P3.0腳模擬串行輸入數(shù)據(jù),,所有的74HC164的同步時鐘輸入端(Clock)連接在一起,,由單片機的P3.1腳模擬時鐘輸入,。
但是如果只有6個數(shù)碼管顯示是不夠的,因此,,加入3個發(fā)光二極管,,把輸出頻率數(shù)值分為Hz,kHz,,MHz三個檔,。3個發(fā)光二極管分別經(jīng)過200 Ω的電阻由單片機的P3.4,P3.5,,P3.6控制,。例如,當輸出頻率應以kHz為單位時,,“kHz”發(fā)光二極管亮,,則數(shù)碼管顯示的頻率數(shù)值是以kHz為單位的,這樣就能精確顯示0~70 MHz的頻率范圍,。
2.4 AT89S52和AD9851最小應用系統(tǒng)設計
單片機最小應用系統(tǒng)是指沒有外圍器件及外設接口擴展的單片機系統(tǒng),。它是單片機應用系統(tǒng)的設計基礎(chǔ),包括最小系統(tǒng)結(jié)構(gòu)選擇,、時鐘系統(tǒng)設計和復位系統(tǒng)設計,。通常情況下,單片機最小應用系統(tǒng)分三種結(jié)構(gòu):
(1)總線型總線應用的最小系統(tǒng)結(jié)構(gòu),,該結(jié)構(gòu)由總線型單片機,、復位電路、時鐘電路,、I/O口及并行擴展總線組成,。
(2)總線型非總線應用的最小系統(tǒng)結(jié)構(gòu),是只有單片機,、復位電路構(gòu)成的最簡單的電路,,并行總線不用于外圍擴展;可作為應用系統(tǒng)的I/O口使用,。
(3)非總線型單片機的最小系統(tǒng)結(jié)構(gòu),。本設計中的電路連接圖(圖1)屬于總線型非總線應用的最小系統(tǒng)結(jié)構(gòu)。
最小應用系統(tǒng)設計中單片機的選擇一般遵循以下原則:
(1)所選的單片機應最大程度的滿足構(gòu)成單片機最小應用系統(tǒng)的要求,,即性能/配置比約為1,。
(2)根據(jù)產(chǎn)品要求,優(yōu)先選擇專業(yè)型單片機,。最小系統(tǒng)的結(jié)構(gòu)與所選的單片機型號有關(guān),。
2.4.1 AT89S52單片機的時鐘系統(tǒng)設計
AT89S52的振蕩器有兩種組成方式,即片內(nèi)振蕩器和片外振蕩器,。本設計選擇片內(nèi)振蕩器的組成方式,。
2.4.2 AT89S52單片機的復位系統(tǒng)設計
復位即是在復位端加不小于指定寬度的低電平(低電平復位)或高電平(高電平復位)信號使單片機的硬件處于初始狀態(tài),。單片機復位有低電平復位和高電平復位兩種,電平復位引腳定義為RST或RESET,。
單片機的復位通常有上電復位,,信號復位和運行監(jiān)控復位三種方式。本電路設計采用按鍵電平復位方式,,實際上屬于上電復位和按鍵手動復位形式,。
2.4.3 AD8951應用設計
AD9851可以產(chǎn)生一個頻譜純正,頻率和相位均可編程控制且穩(wěn)定度很好的模擬正弦波,,AD9851的應用設計圖如圖2所示,。在電路中,40位的頻率/相位控制字由AT89S52的P0口輸入AD9851的數(shù)據(jù)輸入端(D0~D7),,采用并行方式傳送數(shù)據(jù),。在AD9851中,為了避免要求高速參考時鐘振蕩器,,在AD9851的內(nèi)部有一個6倍頻參考時鐘乘法器,,這就減少了由于外部頻率源過高而產(chǎn)生的相位噪聲,外部只需30 MHz的有源振蕩器,。AD9851內(nèi)部的高速比較器可接收DAC外部的低通濾波器的輸出,,產(chǎn)生一個低抖動輸出脈沖,這個脈沖的頻率和相位可以通過程序來進行調(diào)解,。
3 DDS信號發(fā)生器軟件設計
3.1 總體流程圖
總體流程圖如圖3所示,。
3.2 部分模塊子程序設計
數(shù)據(jù)傳送控制電路的程序設計:
4 結(jié)論
在現(xiàn)代科研,教學實驗,,通信系統(tǒng)以及各種電子測量系統(tǒng)中,,具有高精度,頻率可調(diào),,高穩(wěn)定度,,頻率輸出范圍大的信號源是非常重要的,。本文基于DDS技術(shù),,選擇了Analog Devices公司的高度集成芯片AD9851,采用AT89S52單片機作為控制,,以此為基礎(chǔ),,分別進行了系統(tǒng)的硬件部分(包括數(shù)據(jù)傳送電路,鍵盤控制電路,,頻率顯示電路和最小應用系統(tǒng)設計)和基于C語言的軟件設計,,電路輸出波形具有高穩(wěn)定度,高精度,,高分辨率,,可靠性強,,頻率輸出范圍大且可調(diào),相位連續(xù)等優(yōu)點,。