基于DDS信號發(fā)生器設計報告_第1頁
基于DDS信號發(fā)生器設計報告_第2頁
基于DDS信號發(fā)生器設計報告_第3頁
基于DDS信號發(fā)生器設計報告_第4頁
基于DDS信號發(fā)生器設計報告_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、目 錄緒論.11 系統(tǒng)設計.21.1 方案論證 .21.1.1 信號模塊 .21.1.2 控制模塊 .31.1.3 顯示模塊 .41.1.4 鍵盤輸入模塊 .41.1.5 系統(tǒng)各模塊的最終方案 .412 理論分析與計算 .51.2.1 頻率精度計算 .51.2.2 DDS 的理論分析.51.2.3 DDS 的參數(shù)計算.62 硬件系統(tǒng)設計.721 硬件元器件的選用 .72.1.1 C8051F020 控制芯片簡介.72.1.2 AD9954 簡介.922 單元硬件電路設計 .132.2.1 矩陣(44)鍵盤電路 .132.2.2 電源電路 .142.2.3 電壓調(diào)幅電路 .142.2.4 方波電

2、路 .142.2.5 三角波電路 .153 軟件系統(tǒng)設計.163.1 程序流程圖 .164 系統(tǒng)測試.194.1 仿真測試 .194.2 指標測試 .194.3 測試方法 .205 結(jié)束語.22致謝.23參考文獻.24附錄一 對 AD9954 編程的主要源程序清單 .25附錄二 LCD 顯示子程序.35摘 要:隨著數(shù)字集成電路、微電子技術(shù)和 EDA 技術(shù)的深入研究,DDS 技術(shù)以其有別于其它頻率合成技術(shù)的優(yōu)越性能和特點,成為現(xiàn)代頻率合成技術(shù)中的佼佼者。根據(jù)題目要求,我們以單片機 C8051F020 芯片和 AD9954 芯片為核心,輔以必要的模擬電路,設計一臺信號發(fā)生器,使之能產(chǎn)生正弦波、方波

3、和三角波。該系統(tǒng)主要由控制模塊、信號模塊、顯示模塊、鍵盤輸入模塊構(gòu)成。僅用單片 AD9954 就實現(xiàn)了直接數(shù)字頻率合成技術(shù)(DDS) ,產(chǎn)生穩(wěn)幅正弦波。輸出的正弦波經(jīng)過比較電路來實現(xiàn)方波的輸出,而三角波則是在方波的基礎上通過接入積分電路來實現(xiàn)的。單片機對內(nèi)部寄存器控制,AD9954 就可以產(chǎn)生一個頻譜純凈、頻率和相位都可編程控制且穩(wěn)定性很好的模擬波形,整個系統(tǒng)結(jié)構(gòu)緊湊,電路簡單,功能強大,可擴展性強。通過鍵盤輸入、LCD 顯示形成人機交互界面,實現(xiàn)對輸出信號的控制。關(guān)鍵詞:信號發(fā)生器;C8051F020;直接數(shù)字頻率合成器(DDS) ;AD9954Abstract:As digital int

4、egrated circuits, microelectronic technology and in-depth study of EDA technology, its technology is different from other DDS frequency synthesizer technology and the superior performance characteristics of a modern frequency synthesis technology leader. Under the title, we C8051F020 microcontroller

5、 chip and AD9954 chip as the core, supplemented by the necessary circuit simulation, design a signal generator, so that it can produce sine, square and triangular wave. The system mainly by the control module, signal modules, modules, a keyboard input module. Just to achieve a single-chip AD9954 Dir

6、ect Digital Synthesis (DDS), resulting in steady increase sine wave. The sine wave output circuit comparison to the output of square, triangle and square wave is on the basis of the access points through the circuit to achieve. SCM internal control registers, the AD9954 can produce a spectrum of pur

7、e, programmable frequency and phase control and stability are good simulation waveforms, the whole system compact, simple circuit, powerful, scalable and strong. The keyboard input, a LCD display interactive interface, the output signal of the control.Keywords: signal generator; C8051F020; Direct Di

8、gital Synthesis (DDS); AD9954緒論直接數(shù)字頻率合成技術(shù)(direct digital synthesizer,DDS)是在20世紀7O年代提出的,利用數(shù)字可控振蕩器技術(shù),直接以數(shù)字信號控制產(chǎn)生高精度頻率信號,頻率分辨率可達LHz,與傳統(tǒng)的直接頻率合成(Ds)、鎖相環(huán)間接頻率合成(PLL ),F(xiàn)NPLL合成和PSG單環(huán)路合成相比,具有頻率切換時間極短、頻率分辨率高、相位連續(xù),相噪低,結(jié)構(gòu)簡單、體積小、成本低等優(yōu)勢。鑒于DDS技術(shù)有如此優(yōu)越的條件,現(xiàn)在大多數(shù)設備、系統(tǒng)都采用了這種技術(shù)。當然,作為通信系統(tǒng)中必不可少的信號發(fā)生器也越來越多地容納了該技術(shù),本文將要介紹的是基于

9、ADI公司生產(chǎn)的DDS芯片AD9954的信號發(fā)生器的設計方案。AD9954是采用先進的DDS技術(shù)開發(fā)的高集成度DDS器件。其主要特性如下:內(nèi)置400MSPS時鐘;內(nèi)含l4位DAC;相位、幅度可編程;有32位頻率轉(zhuǎn)換字;可用串行I0控制;內(nèi)置超高速模擬比較器;可自動線性和非線性掃頻;內(nèi)部集成有102432位RAM;采用18V電源供電;可420倍頻;支持大多數(shù)數(shù)字輸入中的5V輸入電平。控制芯片選擇C8051F020,通過對AD9954編程實現(xiàn)正弦波,該輸出的正弦波能達到MHZ以上,輸出是波形失真率極低。用LCD和鍵盤作為良好的人機界面,用鍵盤輸入要顯示的頻率,LCD顯示頻率的大小。將輸出的正弦波經(jīng)

10、比較器電路來實現(xiàn)方波的輸出,經(jīng)實驗發(fā)現(xiàn)輸出的方波能達到100KHZ以上且輸出的波形失真率小,波形純真。輸出的方波再經(jīng)過積分電路便得到三角波,經(jīng)實驗觀察可以看到,輸出的波形正常,能達到KHZ以上,輸出的波形失真率低。由于參加全國大學生電子設計大賽,參賽隊至少是三人。所以設計是由三人一起合作完成的。1 系統(tǒng)設計1.1 方案論證1.1.1 信號模塊方案一:采用專用信號發(fā)生器。MAX038 是美信公司的低失真單片信號發(fā) 生器集成電路,內(nèi)部電路完善。使用該芯片,設計簡單,可以生成同一頻率信號的各種波形信號,但頻率精確度和穩(wěn)定度都難以達到要求。方案二:采用傳統(tǒng)的直接頻率合成法直接合成。利用混頻器、倍頻器、

11、分頻器和帶通濾波器完成對頻率的算術(shù)運算。由于采用大量的倍頻、分頻、混頻和濾波環(huán)節(jié),導致直接頻率合成器的結(jié)構(gòu)復雜,體積龐大,成本高,而且容易產(chǎn)生過多的雜散分量,難以達到較高的頻譜純度。方案三:采用鎖相環(huán)間接頻率合成(PPL)。雖然具有工作頻率高、寬帶、頻譜質(zhì)量好的優(yōu)點,但由于鎖相環(huán)本身是一個惰性環(huán)節(jié),鎖定時間較長,故頻率轉(zhuǎn)換時間較長。另外,由模擬方法合成的正弦波的參數(shù)(如幅度、頻率和相位等)都很難控制,不易實現(xiàn)。方案四:采用直接數(shù)字合成(Direct Digital Frequency Synthesizer,簡稱 DDS 或 DDFS) 。用隨機讀/寫存儲器 RAM 存儲所需波形的量化數(shù)據(jù),按

12、照不同頻率要求,以頻率控制字 K 為步進對相位增量進行累加,以累加相位值作為地址碼讀取存在存儲器內(nèi)的波形數(shù)據(jù),經(jīng) D/A 轉(zhuǎn)換和幅度控制,再濾波即可得所需波形。由于 DDS 具有相對帶寬很寬,頻率轉(zhuǎn)換時間極短(可小于 20 微妙),頻率分辨率高,全數(shù)字化結(jié)構(gòu)便于集成以及輸出相位連續(xù),頻率、相位和幅度均可實現(xiàn)程控,因此,可以完全滿足本題目的要求。DDS 的原理框圖如圖 1 所示:圖 1 DDS 原理框圖DDS 技術(shù)頻率分辨率高、轉(zhuǎn)換速度快、信號純度高、相位可控、輸出信號無電流脈沖疊加、輸出可平穩(wěn)過渡且相位可保持連續(xù)變化。方案論證:從題目要求來看,上述三種方案都可以滿足題目合成頻率范圍的要求,但信

13、號發(fā)生器產(chǎn)生的頻率穩(wěn)定度、精確度都不如 DDS 合成的頻率;另一方面,DDS 比信號發(fā)生器更容易精確控制,所以我們選擇 DDS 方案進行頻率合成。1.1.2 控制模塊方案一:采用 89C51 芯片單片機,現(xiàn)在市場很多成品都在用它,但 89C51最大的缺陷在于不支持 ISP(在線更新程序)功能, 。對于短短幾天的比賽時間,用編程器對它進行燒寫程序,是非常浪費時間和精力的,如果將來要對產(chǎn)品進行升級的話也是非常困難的。因此不考慮用 80C51 作控制模塊的主芯片。方案二:采用 89C2051 開發(fā)制造產(chǎn)品,因為 2051 看起來體積比較小,功能也較全面.但是 2051 不是標準的 51 內(nèi)核,所以

14、89C2051 的程序不能直接移植到51 上。由于 2051 是精簡型,所以 P 口變得很少,這樣一來可利用資源比較緊張,只能做一些簡單的產(chǎn)品。因此,對于本設計來說是不想適應的。方案三:采用 SST 系列單片機,SST 單片機是在 AT89C 系列單片機的基礎上改進而成的,提高了工作頻率,可采用串口進行在線編程調(diào)試,增加了內(nèi)存的容量和 PAC 可編程計數(shù)器等功能。從基本功能的改進上與 89S52 系列基本上相同。并且這種單片機的價格高于其它同類產(chǎn)品,并且很多的功能用不上,故不考慮用這個方案。方案四:C8051F020 是 Cygnal 出的一種混合信號系統(tǒng)級單片機(片上系統(tǒng)SOC) ,片內(nèi)含

15、CIP51 的 CPU 內(nèi)核,它的指令系統(tǒng)與 MCS51 完全兼容;其中的 C8051F020 單片機含有 64kB 片內(nèi) Flash 程序存儲器、4352B(256B+4KB)的RAM;8 個 IO 端口共 64 根 IO 口線;一個 12 位 AD 轉(zhuǎn)換器和一個 8 位AD 轉(zhuǎn)換器以及一個雙 12 位 DA 轉(zhuǎn)換器;2 個比較器、5 個 16 位通用定時器、5 個捕捉比較模塊的可編程計數(shù)定時器陣列、看門狗定時器、VDD 監(jiān)視器和溫度傳感器等部分;C8051F020 單片機支持雙時鐘,其工作電壓范圍為2.73.6V(端口 I/O,RST 和 JTAG 引腳的耐壓為 5V) 。綜合上述,根據(jù)我

16、們題目的要求,用低端產(chǎn)品,如 89C51,不能很好的達到題目指標;用高端產(chǎn)品,如 SST 系列,它有很多的功能用不上和“內(nèi)存”太大,等于大材小用,并且成本增加。與以前的 51 系列單片機相比,C8051F020 增添了許多功能,同時其可靠性和速度也有了很大提高,且 C8051F020 的種種特點和所能達到的指標,對我們這個題目非常合適,因此最終采用 C8051F020 作為主控制芯片我們自制了單片機最小系統(tǒng)。1.1.3 顯示模塊方案一:采用 LED 數(shù)碼管顯示。雖然功率低,控制簡單,但卻只能顯示數(shù)字和一些簡單的字符,沒有較好的人機界面。方案二:采用 LCD 液晶顯示,可以顯示所有字符及自定義字

17、符,并能同時顯示多組數(shù)據(jù)漢字,字符清晰。由于自身具有控制器,不但可以減輕主單片機的負擔,而且可以實現(xiàn)菜單驅(qū)動方式的顯示結(jié)果,實現(xiàn)編輯模塊全屏幕編輯的功能,達到友好的人機界面。用 LCD 顯示,能解決 LED 只能顯示數(shù)字等幾個簡單字符的缺點,接口電路簡單,性能好,效果多,控制方便,顯示的方式多。比較上述兩種方案,采用方案二。1.1.4 鍵盤輸入模塊方案一:采用傳統(tǒng)的獨立式按鍵。這種方式占用系統(tǒng)的資源較多,而且效率低,程序的編寫量大而復雜。方案二:為了提高單片機的資源利用率,按鍵部分使用矩陣(44)鍵盤。這種方法在開關(guān)數(shù)量多的情況下可以節(jié)省很多的接口,并且提高系統(tǒng)接口的利用率。故:確定選擇采用方

18、案二。1.1.5 系統(tǒng)各模塊的最終方案經(jīng)過仔細的分析與論證,決定系統(tǒng)各模塊的最終方案如下:信號模塊:采用 AD9954;控制模塊:采用 C8051F020 控制;顯示模塊:采用 LCD 顯示;鍵盤輸入模塊:采用矩陣(44)鍵盤;單片機 C8051F020 用于控制系統(tǒng)中 LCD 顯示、鍵盤的輸入的確認及控制信號的輸出。系統(tǒng)基本框圖如圖 2:圖 2 系統(tǒng)基本框圖12 理論分析與計算1.2.1 頻率精度計算 采用美國 AD 公司先進的 DDS 直接數(shù)字頻率合成技術(shù)生產(chǎn)的高集成度產(chǎn)品AD9954 芯片。AD9954 內(nèi)部時鐘最大為 400MSPS,內(nèi)置 14 位高速高精度DAC,1.8V 低功耗工作

19、,自帶頻率設置,幅度設置,相位設置,PSK,F(xiàn)SK,掃頻等功能,并有 10244 字節(jié)的 RAM。其頻率字為 32 位,故頻率絕對精度為HZ(系統(tǒng)時鐘為 400M),當頻率高于 1KHZ 時,相對精度為3240000000020.09。40.9 101.2.2 DDS 的理論分析DDS 的基本原理是,在高速存儲器中放入正弦函數(shù)相位數(shù)據(jù)表格,經(jīng)過查表操作,將讀出的數(shù)據(jù)送到高速 DAC 產(chǎn)生正弦波??删幊?DDS 系統(tǒng)原理如圖三:圖 3 可編程 DDS 系統(tǒng)原理N:相位累加器位數(shù); M:相位累加器實際對 ROM 尋址的位數(shù)S:ROM 輸出正弦信號(離散化)的位數(shù)位數(shù):相位累加器舍去的位數(shù),滿足位數(shù)

20、=N-MDDS 系統(tǒng)由頻率控制字、相位累加器、正弦查詢表、數(shù)/模轉(zhuǎn)換器和低通濾波器組成。參考時鐘為高穩(wěn)定度的晶體振蕩器,其輸出用于同步 DDS 各組成部分的工作。DDS 系統(tǒng)的核心是相位累加器,它由 N 位加法器與 N 位相位寄存器構(gòu)成,類似于一個簡單的計算器。每來一個時間脈沖,相位寄存器的輸出就增加一個步長的相位增量值,加法器將頻率控制數(shù)據(jù)與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加結(jié)果送至累加寄存器的數(shù)據(jù)輸入端。相位累加器進入線性相位累加,累加至滿量程時產(chǎn)生一次計數(shù)溢出,這個溢出頻率即為 DDS 的輸出頻率。正弦查詢表是一個可編程只讀存儲器(PROM),存儲的是以相位為地址的一個周期正弦信號

21、的采樣編碼值,包含一個周期正弦波的數(shù)字幅度信息,每個地址對應于正弦波中 0360范圍的一個相位點。將相位寄存器的輸出與相位控制字相加,得到的數(shù)據(jù)作為一個地址對正弦查詢表進行尋址,查詢表把輸入的地址相位信息映射成正弦波幅度信號,驅(qū)動 DAC,輸出模擬信號。低通濾波器平滑并濾除不需要的取樣分量,以便輸出頻譜純凈的正弦波信號。1.2.3 DDS 的參數(shù)計算對于計數(shù)容量為 2N相位累加器和具有 M 個相位取樣點的正弦波波形存儲器,若頻率控制字為 K,輸出信號頻率為 f o,參考時鐘頻率為 f c,則 DDS 系統(tǒng)輸出信號的頻率為 f o=kfc/2N輸出信號頻率的頻率分辨率為f min=fc/2N由奈

22、奎斯特采樣定理可知,DDS 輸出的最大頻率為f max=fc/2頻率控制字可由以上公式推出:K=f o2N/fc當外部參考時鐘頻率為 50MHz,輸出頻率需要為 1MHz 時,系統(tǒng)時鐘經(jīng)過 6倍頻,使得 f c 變?yōu)?300MHz,這樣就可利用以上公式計算出 DDS 的需要設定的控制頻率字 K=248/3002 硬件系統(tǒng)設計21 硬件元器件的選用2.1.1 C8051F020 控制芯片簡介(1) C8051F020 的功能C8051F020 是 Cygnal 出的一種混合信號系統(tǒng)級單片機(片上系統(tǒng) SOC) ,片內(nèi)含 CIP51 的 CPU 內(nèi)核,它的指令系統(tǒng)與 MCS51 完全兼容;其中的C

23、8051F020 單片機含有 64kB 片內(nèi) Flash 程序存儲器、4352B(256B+4KB)的RAM;8 個 IO 端口共 64 根 IO 口線大量減少了外部連線和器件擴展;一個12 位 AD 轉(zhuǎn)換器和一個 8 位 AD 轉(zhuǎn)換器以及一個雙 12 位 DA 轉(zhuǎn)換器;2 個比較器、5 個 16 位通用定時器、5 個捕捉比較模塊的可編程計數(shù)定時器陣列、看門狗定時器、VDD 監(jiān)視器和溫度傳感器等部分;C8051F020 單片機支持雙時鐘,其工作電壓范圍為 2.73.6V(端口 I/O,RST 和 JTAG 引腳的耐壓為 5V) 。C8051F020 功能圖如圖 4。C8051F020 功能圖a

24、.運行速度C8051F020 的指令運行速度是一般 80C51 系列單片機的 10 倍以上。因為其CIP-51 中采用了流水線處理結(jié)構(gòu),已經(jīng)沒有了機器周期時序,指令執(zhí)行的最小時序單位為系統(tǒng)時鐘,大部分指令只要 12 個系統(tǒng)周期即可完成。又由于其時鐘系統(tǒng)比 80C51 的更加完善,有多個時鐘源,且時鐘源可編程,時鐘頻率范圍為 025 MHz,當 CIP-5l 工作在最大系統(tǒng)時鐘頻率 25 MHz 時,它的峰值速度可以達到 25 MIs,C8051F020 已進入了 8 位高速單片機行列。b.IO 端口的配置方式C8051F020 擁有 8 個 8 位的 IO 端口,大量減少了外部連線和器件擴展,

25、有利于提高可靠性和抗干擾能力。其中低 4 個 IO 端口除可作為一般的通用IO 端口外,還可作為其他功能模塊的輸入或輸出引腳,它是通過交叉開關(guān)配置寄存器 XBR0、XBR1、XBR2(各位名稱及格式如表 1 所示)選擇并控制的,它們控制優(yōu)先權(quán)譯碼選擇開關(guān)電路如圖 1 所示,可將片內(nèi)的計數(shù)器定時器、串行總線、硬件中斷、比較器輸出及其它的數(shù)字信號配置為在端口 IO 引腳出現(xiàn),這樣用戶可以根據(jù)自己的特定需要選擇所需的數(shù)字資源和通用 IO 口。數(shù)字交叉開關(guān)是一個比較大的數(shù)字開關(guān)網(wǎng)路,這在所有 80C51 系列單片機上是一個空白。另外 P1MDIN 用于選擇 P1 的輸入方式是模擬輸入還是數(shù)字輸入,復位

26、值為11111111B,即默認為數(shù)字輸入方式。而 80C51 單片機的 IO 引腳是固定分配的,即占用引腳多,配置又不夠靈活。c.交叉開關(guān)C8051F020 通過優(yōu)先權(quán)交叉開關(guān)譯碼器控制數(shù)字開關(guān)網(wǎng)路,端口引腳的分配順序是從 P0.0 開始一直到 P3.7。當交叉開關(guān)配置寄存器 XBR0、XBR1 和 XBR2中外設的對應使能位被設置為邏輯“1”時,交叉開關(guān)將端口引腳分配給外設,例如,如果 UARTOEN 位(XBR0.2)被設置為邏輯“1” ,則 TX0 和 RX0 引腳將分別被分配到 P0.0 和 P0.1。因為 UART0 有最高優(yōu)先權(quán),所以當 UARTOEN 位被設置為邏輯“1”時其引腳

27、將總是被分配到 P0.0 和 P0.1。未被設置的交叉開關(guān)分配端口可作為通用 IO 口。注意:當選擇了串行通信外設(即 SMBus、SPI 或 UART)時,交叉開關(guān)將為所有相關(guān)功能分配引腳。例如,不能為 UART0 功能只分配 TX0 引腳而不分配 RX0 引腳。交叉開關(guān)寄存器被正確配置后,通過將 XBARE(XBR2.6)設置為邏輯“1”來使能交叉開關(guān)。 在 C8051F020 軟件編程中須首先設置看門狗定時器的工作狀態(tài);其次,要由內(nèi)部振蕩器控制寄存器 OSCICN 設置采用內(nèi)部時鐘還是外部時鐘工作,若選擇外部時鐘可通過外部振蕩器控制寄存器 OSCXCN 來選擇適當?shù)念l率,上題目采用內(nèi)部時

28、鐘,并通過時鐘控制寄存器 CKCON 選擇使用系統(tǒng)時鐘的 12 分頻。再次,若選擇的 IO 口是低四個端口 P0P3 作為工作口,需要設定寄存器XBR0、XBR1、XBR2(復位值為 0),在本設計中未用到數(shù)字資源,故 XBR0、XBR1的值為復位值,只需設定 XBR2 的值為 40H 允許功能選擇開關(guān)即可,若本設計中的 P1.2 換為 P4.2,則無需設定寄存器 XBR0、XBR1、XBR2,因為高端口 P4P7與交叉開關(guān)無關(guān)。最后還要選擇所用 IO 口的輸出方式,P0、P1、P2、P3 口分別由 POMDOUT、P1MD-OUT、P2MDOUT、P3MDOUT 端口輸出方式寄存器來選擇,寄

29、存器中的某位置 0 為漏極開路輸出方式,置 1 則為推拉輸出方式。另外,由于 C8051F020 的專用寄存器比一般 51 單片機多,而 8051 指令不能識別它增加的專用寄存器,公司提供了所有的專用寄存器及相應位的地址定義文件,用戶只需加一條 include (C8051F020.inc)指令即可。C8051F020 引腳圖如圖 5:C8051F020 引腳圖2.1.2 AD9954 簡介(1) AD9954 的概念及內(nèi)部特征AD9954 是采用先進的 DDS 技術(shù)開發(fā)的高集成度 DDS 器件。它內(nèi)置高速、高性能 D/A 轉(zhuǎn)換器及超高速比較器,可用為數(shù)字編程控制的頻率合成器,能產(chǎn)生200MH

30、z 的模擬正弦波。AD9954 內(nèi)含 102432 靜態(tài) RAM,利用該 RAM 可實現(xiàn)高速調(diào)制,并支持幾種掃頻模式。AD9954 可提供自定義的線性掃頻操作模式,通過 AD9954 的串行 I/O 口輸入控制字可實現(xiàn)快速變頻且具有良好的頻率分辨率。其應用范圍包括靈敏頻率合成器、可編程時鐘發(fā)生器、雷達和掃描系統(tǒng)的 FM 調(diào)制源以及測試和測量裝置等。AD9954 的內(nèi)部結(jié)構(gòu)主要特性:1.內(nèi)置 400MSPS 時鐘;2.內(nèi)含 14 位 DAC;3.相位、幅度可編程;4.有 32 位頻率轉(zhuǎn)換字;5.可用串行 I/O 控制;6.內(nèi)置超高速模擬比較器;7.可自動線性和非線性掃頻;8.內(nèi)部集成有 1024

31、32 位 RAM;9.采用 1.8V 電源供電;10.可 420 倍倍頻;11.支持大多數(shù)數(shù)字輸入中的 5V 輸入電平;12.可實現(xiàn)多片同步。 (2) AD9954 的引腳說明 AD9954 采用 48 腳 TQFP/EP 封裝,各引腳定義如下:I/O UPDATE:在該引腳的上升沿可把內(nèi)部緩沖存儲器中的內(nèi)容送到 I/O寄存器中。引腳電平的建立和保持與 SYNC-CLK 輸出信號有關(guān);DGND 和 AGND:數(shù)字地與模擬地;OSC/REFCLK 和 OSC/REFCLK:參考時鐘或振蕩輸入端:CYRSTAL OUT:振蕩器輸出端;CLKMODESELECT:振蕩器控制端,為 1 時使能振蕩器,

32、為 0 時不使能振蕩器;LOOP_FILTER:該引腳應與 AVDD 間串聯(lián)一個 1k 電阻和一個 0.1F 電容;IOUT 和 IOUT:DAC 輸出端,使用時應接一個上接電阻;DACBP:DAC 去耦端,使用時應接一個 0.01F 的旁路電容;DAC_RSET:DAC 復位端,使用時應通過一個 3.92k 的電阻接至 AGND端;COMP_OUT:比較器輸出端,可以輸出方波或脈沖信號;COMP_IN 和 COMP_IN:比較器輸入端;PWRDWNCTL:外部電源掉電控制輸入引腳; RESET:芯片復位端; IOSYNC:異步串行端口控制復位引腳;為 1 時,當前 I/O 操作立即停止;為

33、0 時開始新的 I/O 操作;不用時,此引腳必須接地;SDO:采用 3 線串口操作時,SDO 為串行數(shù)據(jù)輸出端。采用 2 線串口操作時,SDO 不用,可以不連;CS:片選端,低電平有效,允許多芯片共用 I/O 總線;SCLK:I/O 操作的串行數(shù)據(jù)時鐘輸入端;SDIO:采用 3 線串口操作時,SDO 為串行數(shù)據(jù)輸入端,采用 2 線操作時,SDO 為雙向串行數(shù)據(jù)端。DVDD_I/O;I/O 電源,可以是 1.8V 或 3.3V;SYNC_IN:同步多片 AD9954 輸入信號,使用時與主 AD9954 的 SYNC_CLK的輸出相連;SYNC_CLK:時鐘輸出腳,為內(nèi)部時鐘的 1/4,可用作外圍

34、硬件同步;OSK:在編程操作時可用該腳來控制幅度與時間斜率,與 SYNC_CLK 同步;當 OSK 不能被編程時,此腳接 DGND;PS1 和 PS0:可用來選擇 4 個 RAM 段控制字區(qū)中的一個。(3) AD9954 電路部分AD9954 為電流輸出型芯片,自帶濾波功能,故其外圍電路主要為數(shù)據(jù)控制線的引出和電流轉(zhuǎn)換為電壓輸出電路,AD9954 的外圍電路如圖 6:圖 6 AD9954 的外圍電路(4) AD9954 總體外圍電路由 C8051F020 輸出控制信號控制 AD9954,AD9954 產(chǎn)生波形,AD9954 總體外圍電路如圖 7: 圖 7 AD9954 總體外圍電路 22 單元

35、硬件電路設計2.2.1 矩陣(44)鍵盤電路在開關(guān)數(shù)量多的情況下,采用矩陣(44)鍵盤可以節(jié)省很多的接口,并且提高系統(tǒng)接口的利用率。矩陣(44)鍵盤電路如圖 8: 圖 8 矩陣(44)鍵盤電路2.2.2 電源電路電源模塊提供+5V、-5V 電壓。電源電路如圖 9:圖 9 電源電路2.2.3 電壓調(diào)幅電路采用放大電路調(diào)節(jié)正弦波信號的電壓峰-峰值,使 V opp 在 05V 可調(diào)。放大電路如圖 10。圖 10 調(diào)幅電路2.2.4 方波電路輸入正弦波信號外接比較電路產(chǎn)生方波信號。比較電路如圖 11:圖 11 方波電路2.2.5 三角波電路輸入方波信號外接積分電路產(chǎn)三角波波信號。積分電路如圖 13 軟

36、件系統(tǒng)設計3.1 程序流程圖 (1)題目要求信號發(fā)生器產(chǎn)生正弦波、方波和三角波三種周期性波形,我們對 DDS 模塊編程實現(xiàn)正弦波的輸出,在產(chǎn)生正弦波的基礎上外接比較電路產(chǎn)生方波,再通過積分電路實現(xiàn)三角波的輸出。主程序根據(jù)鍵盤設定正弦波的頻率,按確定鍵后則輸出所需的正弦波。主流程圖如圖 13 所示。主要程序見附錄A。圖 13 主流程圖(2)LCD 顯示的流程如圖 14 所示:圖 14 LCD 顯示流程圖(3)鍵盤掃描秒子程序如圖 15 所示圖 15:鍵盤掃描流程圖4 系統(tǒng)測試4.1 仿真測試在對軟件進行仿真測試時,使用 Keil 進行模擬測試。測試目的:(1) 鍵盤的鍵位是否正確。(2) LCD

37、 的顯示是否正常。(3) 信號發(fā)生器是否能產(chǎn)生我們所需要的波形。4.2 指標測試4.2.1 誤差分析頻率誤差來源:測試儀表數(shù)字示波器本身在測量上存在誤差幅值誤差來源:由于通用電路板本身機構(gòu)的限制,影響了整個電路的布局和走線,從而引入了一定的噪聲和干擾。相位誤差:由于波形是通過一系列有限的離散采樣點表示,不可避免引入相位量誤差,增加采樣點數(shù)可以減小誤差。4.2.2 測試儀器示波器:YB5400 系列數(shù)字存儲示波器4.2.3 輸出波形頻率范圍測試測試數(shù)據(jù)如表一、表二、表三:表一 第 1 組測試數(shù)據(jù)輸出頻率/Hz預置頻率/Hz正弦波方波三角波100100.02100.02100.02200200.0

38、5200.05200.0510001000.21000.21000.220002000.52000.52000.5100001000210002100022000020005200052000550000500105001050010100000100020100020100020表二 第 2 組測試數(shù)據(jù)輸出頻率/Hz預置頻率/Hz正弦波方波三角波100100.02100.02100.02200200.04200.05200.0510001000.21000.181000.220002000.52000.52000.610000100021000210002.12000020005200052

39、000550000500105001050010.5100000100020100019100021表三 第 3 組測試數(shù)據(jù)輸出頻率/Hz預置頻率/Hz正弦波方波三角波100100.02100.02100.02200200.05200.05200.0610001000.21000.21000.220002000.52000.482000.6100001000210001.8100022000020005200052000550000500105001050010100000100020100020100020由表中的數(shù)據(jù)可以看出,在輸出頻率穩(wěn)定度方面,正弦波、方波、三角波均十分穩(wěn)定。4.3 測

40、試方法4.3.1 測試正弦波輸出頻率(1)連接電路(電源電路、C8051F020 芯片、AD9954 芯片、顯示模塊、鍵盤輸入模塊)。(2)打開示波器電源。(3)運用鍵盤輸入設定頻率,按確定鍵。(4)觀察示波器的顯示頻率、周期和峰-峰值。(5)記錄正弦波的輸出頻率(6)關(guān)閉電源4.3.2 測試方波輸出頻率(1)連接電路(電源電路、C8051F020 芯片、AD9954 芯片、顯示模塊、鍵盤輸入模塊、比較器)。(2)打開示波器電源。(3)運用鍵盤輸入設定頻率,按確定鍵。(4)調(diào)節(jié)電位器,觀察示波器的顯示頻率、周期和峰-峰值。(5)記錄方波的輸出頻率(6)關(guān)閉電源4.3.3 測試三角波輸出頻率(1

41、)連接電路(電源電路、C8051F020 芯片、AD9954 芯片、顯示模塊、鍵盤輸入模塊、比較電路、積分電路)。(2)打開示波器電源。(3)運用鍵盤輸入設定頻率,按確定鍵。(4)調(diào)節(jié)電位器,觀察示波器的顯示頻率、周期和峰-峰值。(5)記錄三角波的輸出頻率。(6)關(guān)閉電源。5 結(jié)束語 設計基本實現(xiàn)了信號發(fā)生器的基本要求,能輸出正弦波、方波、三角波,輸出的頻率也能達到基本要求100HZ100KHZ,輸出的正弦波在1000歐的負載下,能實現(xiàn)峰峰值在05V可調(diào)。輸出的波形純真,失真率低??梢宰鳛橐话愕男盘柊l(fā)生器使用。但由于知識水平的有限,該信號發(fā)生器不能實現(xiàn)在50歐負載的情況下,正弦波峰峰值在05V

42、可調(diào)。不能在10100KHZ之間實現(xiàn)10HZ的步進和100KHZ1MHZ實現(xiàn)1000HZ的步進。這是一大遺憾。單片機控制AD9954產(chǎn)生正弦信號電路及其濾波放大輸出電路是該信號發(fā)生器設計的核心部分,由于器件對于帶寬的要求比較高,因此在器件的選擇和濾波器的設計上有較高的要求。致謝本文是在導師凌老師的悉心指導下完成的,在大專的三年時間里,導師嚴謹?shù)闹螌W態(tài)度、淵博的知識、活躍的學術(shù)思想、執(zhí)著的科研精神及高尚的做人原則,都給我留下了終生難忘的印象。所有這一切都將成為我受益終生的寶貴財富!在此,學生謹向?qū)煴硎局孕牡母兄x! 真誠地感謝凌老師。通過他們的精心指導與有益討論,我在研究思想方法上得到了許多啟發(fā)

43、,并感謝李茂清-李老師的支持與幫助,在他們的幫助下使我完成論文。 感謝我的父親、母親對我的理解、支持和幫助。盡管與他們?yōu)槲腋冻龅囊磺邢啾?,所有的語言都顯得蒼白無力,我仍要真誠地說聲:謝謝!參考文獻1黃志偉.全國大學生電子設計競賽系統(tǒng)設計.北京:北京航空航天大學出版社,2006.2全國大學生電子設計競賽組委會.全國大學生電子設計競賽獲獎作品匯編.北京:北京理工大學出版社,20043潘琢金譯.C8051F020/1/2/3 混合信號 ISP FLASH 微控器數(shù)據(jù)手冊.沈陽:沈陽新華電子有限公司,20024謝自美電子線路設計.實驗.測試(第三版) 武漢:華中科技大學出版社。2000年 7 月 5楊

44、幫文新型集成器件家用電路北京:電子工業(yè)出版社,2002.8 6第二屆全國大學生電子設計競賽組委會。全國大學生電子設計競賽獲獎作品選編。北京:北京理工大學出版社,1997. 7李炎清畢業(yè)論文寫作與范例廈門:廈門大學出版社。2006.10 8潭博學、苗江靜集成電路原理及應用北京:電子工業(yè)出版社。2003.9 9陳梓城家用電子電路設計與調(diào)試北京:中國電力出版社。2006附錄一 對對 AD9954AD9954 編程的主要源程序清單編程的主要源程序清單/對 AD9954 編程的主要源程序清單#include c8051f020.h#include intrins.h/ad9954 初始化extern v

45、oid AD9954_init(void);/寫一個字節(jié)extern void AD9954_writebyte_m(unsigned char dat);/讀一個字節(jié)extern unsigned char AD9954_readbyte_m(void);/向 9954 寄存器寫數(shù)據(jù)extern void AD9954_write_reg(unsigned char address,unsigned char *pointer);/從 9954 寄存器讀數(shù)據(jù)extern void AD9954_read_reg(unsigned char address,unsigned char *poi

46、nter);/從 IO 緩沖到寄存器extern void AD9954_io_updata();/用 9954 產(chǎn)生正弦波,輸入?yún)?shù)為頻率,單位 Hzextern void AD9954_gener_cos(double freq);/使能正弦輸出extern void AD9954_en_cos_o();/參考時鐘頻率調(diào)節(jié)extern void AD9954_ref_clk(unsigned char t);/AD9954 滿幅輸出extern void AD9954_amp_full(void);unsigned char Getkey();void DDS_ctrl(unsigned

47、char key);void AD9954_Phase();void AD9954_add(void);/*LCD 有關(guān)*/void lcd_delay(void);unsigned char LCDBusyWait();void WriteLCD_Data(unsigned char Data);void WriteLCD_Command(unsigned char Command);unsigned char ChangeAddress(unsigned char StartAddress);void WriteLCD(unsigned char StartAddress,unsigned

48、 char Size,unsigned char Charactors);void WriteLCD_Number(unsigned char Address,unsigned char Number);void WriteLcd_Number_3bit(unsigned char Address,unsigned char Number);void WriteLcd_Number_4bit(unsigned char Address_4bit,unsigned int Number4bit);void DISPInitial();#include ad9954.hvoid SYSCLK_In

49、it (void) int i; / delay counter OSCXCN = 0 x67; / start external oscillator with 22.1184MHz crystal for (i=0; i 1ms) while (!(OSCXCN & 0 x80) ; / Wait for crystal osc. to settle OSCICN = 0 x88; / select external oscillator as SYSCLK / source and enable missing clock / detector/-/ PORT_Init /-/

50、Configure the Crossbar and GPIO portsvoid PORT_Init (void) XBR0 = 0 x00; / XBR1 = 0 x00; XBR2 = 0 x40; / Enable crossbar and weak pull-ups P0MDOUT |= 0 xf8; / 將有下拉的引腳配置為推挽方式 P74OUT=0X13; /set P4 as push-pull outputdouble F0ctrl_word=10000000;bit ddsF0_enter=1;main()char xdata i_buf110=0,0,0,0,0,0,;u

51、nsigned char key=0,temp=0 xff;unsigned int i; WDTCN = 0 xde; / disable watchdog timer WDTCN = 0 xad;SYSCLK_Init();/啟動外部振蕩器PORT_Init();DISPInitial();AD9954_init(); /9954 初始化AD9954_en_cos_o(); /使能輸出AD9954_ref_clk(4); /時鐘 4 倍頻AD9954_gener_cos(10000000); /輸出 10M Hz 正弦波AD9954_amp_full(); /滿幅輸出while(1) ke

52、y=Getkey(); for(i=0;i65535;i+);for(i=0;i=0)&(key=9) ) if(ddsF0_enter) F0ctrl_word=0; ddsF0_enter=0; WriteLCD(0 x8B,0,輸入狀態(tài)); if(F0ctrl_word9999999) F0ctrl_word=10*F0ctrl_word+key; WriteLcd_Number_4bit(0 x91,(long)F0ctrl_word/10000); /H_4bit WriteLcd_Number_4bit(0 x93,(long)F0ctrl_word%10000); /L_

53、4bit if(key=16) AD9954_gener_cos(F0ctrl_word); ddsF0_enter=1; WriteLCD(0 x8B,0,請輸入 ); #include ad9954.h#defineAD9954_CRL P0sbitAD9954_FUD = AD9954_CRL3; /有下拉sbitAD9954_PS1 = AD9954_CRL7; /有下拉sbitAD9954_PS0 = AD9954_CRL6; /有下拉sbitAD9954_SYN = AD9954_CRL4; /有下拉sbitAD9954_RST = AD9954_CRL5; /有下拉sbitAD9

54、954_CLK=AD9954_CRL0;sbit AD9954_SIO=AD9954_CRL2; /雙向口#define FREQ_COFF 10.73741824static unsigned char _REF_CLK_T=1;char code reg_length11=4,3,2,1,4,2,4,5,5,5,5;/寄存器長度表,用于查詢AD9954 控制寄存器的長度char xdata o_buf10=0 xaa,0 xaa,0 xaa,1,1,1;char xdata i_buf10=0,0,0,0,0,0,;void delay_u(long v) long i; for(i=0;

55、iv;i+) _nop_(); nop_();_nop_();_nop_();_nop_();_nop_(); void AD9954_init(void) AD9954_CRL=0 x00;AD9954_RST=1;delay_u(10000);AD9954_RST=0;AD9954_CLK=0;AD9954_SIO=0; void AD9954_writebyte_m(unsigned char dat) char i,t;AD9954_CLK=0;AD9954_SIO=1;P0MDOUT |= 0 x01; for(i=0;i(7-i);AD9954_SIO=t&0 x01;de

56、lay_u(10);AD9954_CLK=1;delay_u(10);AD9954_CLK=0;AD9954_CLK=0;AD9954_SIO=1; /9954 data out when falling edgeunsigned char AD9954_readbyte_m(void) char t,dat,i;AD9954_CLK=0; P0MDOUT |= 0 x01; / enable TX0 as a push-pull outputAD9954_SIO=1;for(i=0;i8;i+)delay_u(10);dat=dat1;t=AD9954_SIO;dat=dat|t;AD995

57、4_CLK=1;delay_u(10);AD9954_CLK=0;AD9954_CLK=0;AD9954_SIO=1; return dat; void AD9954_write_reg(unsigned char address,unsigned char *pointer) unsigned char i,l;AD9954_SYN = 1;delay_u(10);AD9954_SYN = 0;l=reg_lengthaddress;AD9954_writebyte_m(address);for(i=0;il;i+)AD9954_writebyte_m(*(pointer+i); void

58、AD9954_read_reg(unsigned char address,unsigned char *pointer)unsigned char i,l;AD9954_SYN = 1;delay_u(100);AD9954_SYN = 0;l=reg_lengthaddress;AD9954_writebyte_m(address+0 x80);for(i=0;il;i+)*(pointer+i)=AD9954_readbyte_m();void AD9954_io_updata() AD9954_FUD=0;delay_u(10);AD9954_FUD=1;delay_u(10);AD9

59、954_FUD=0; void AD9954_gener_cos(double freq) double temp0,temp1;unsigned long temp3;unsigned char *char_p;temp0=freq*FREQ_COFF; /10.7374; temp3=(unsigned long)temp0; char_p=(unsigned char *)(&temp3);o_buf0=char_p0;o_buf1=char_p1; o_buf2=char_p2;o_buf3=char_p3;AD9954_write_reg(4,o_buf);AD9954_io

60、_updata(); void AD9954_en_cos_o() o_buf0=0 x00;o_buf1=0 x00;o_buf2=0 x10;o_buf3=0 x00;AD9954_write_reg(0,o_buf);AD9954_io_updata(); /輸入?yún)?shù)為幾倍頻/4=t=19void AD9954_ref_clk(unsigned char t) o_buf0=0 x00;o_buf1=0 x00;o_buf2=t=4)o_buf2|=0 x04;AD9954_write_reg(1,o_buf);AD9954_io_updata();_REF_CLK_T=t; void AD9954_amp_full(void) o_buf0=0 x3f;o_buf1=0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論