在電子通信技術(shù)日益發(fā)展的時代潮流下,直接式(DFS)和鎖相式(PLL)已經(jīng)不能滿足生活和科研方面對于頻率技術(shù)的需求。經(jīng)過科研人員的不斷攻堅下,直接數(shù)字頻率合成器(DDS)應(yīng)運而生。它現(xiàn)在廣泛運用于移動通信、電子雷達、航天等方面。本次設(shè)計主要通過FPGA模塊+單片機最小系統(tǒng)實現(xiàn)對數(shù)字信號、模擬信號的控制和輸出功能,并基于此原理完成信號發(fā)生器的軟件、硬件設(shè)計。
第一章?方案分析與系統(tǒng)設(shè)計
1.1?設(shè)計方案選型與分析
方案1:采用Qualcomm公司生產(chǎn)的DDS集成芯片Q2368設(shè)計信號發(fā)生器。該芯片內(nèi)部包括了相位累加寄存器,波形存儲器,頻率控制字等模塊,并且擁有靈活的頻率和相位控制方式。當工作于最基本的DDS方式時,PIRA和PIRB配合即可實現(xiàn),頻率和相位的控制,但集成好的DDS芯片不能面向使用者進行二次開發(fā),只能輸出自帶的波形。此方案也可實現(xiàn)DDS的設(shè)計,但該芯片的外圍電路比較復(fù)雜,輸出波形也不便于設(shè)計。
方案2:采用基于鎖相環(huán)式的頻率設(shè)計方法實現(xiàn)信號發(fā)生器的功能。該頻率合成器可實現(xiàn)頻率的加、減、乘、除,它的整體結(jié)構(gòu)是一種閉環(huán)系統(tǒng)。同時此種信號發(fā)生器設(shè)計時,可采用ADI公司的ADF4113鎖相環(huán)芯片來實現(xiàn),鎖相環(huán)控制頻率在指定位數(shù)上。該芯片的功能優(yōu)良,常用于設(shè)計較高分辨率、低雜散的頻率合成器。它的結(jié)構(gòu)簡單,便于集成和小型化是較突出的優(yōu)勢,流行于市場上的電子、通信產(chǎn)品的設(shè)計。較為短板的地方在于,此方案無法實現(xiàn)任意波形的輸出。
方案3:采用基于FPGA的直接數(shù)字式的頻率設(shè)計方法實現(xiàn)信號發(fā)生器的功能。其基本結(jié)構(gòu)包括累加寄存器和波形存儲器兩部分,此設(shè)計主要基于LUT查找表的原理,多個LUT組合可實現(xiàn)ROM查找表功能。通過FPGA芯片完成電路設(shè)計,當控制字輸送進累加寄存器并進行加操作,輸出控制數(shù)據(jù)可選擇ROM查找表中存放的波形數(shù)據(jù)進行輸出,再搭配模擬電路的方法實現(xiàn)波形輸出,當改變波形存儲器(ROM查找表)中的波形數(shù)據(jù),并選擇信號輸出就可以設(shè)計出任意波形發(fā)生器。此設(shè)計方法的直接數(shù)字式結(jié)構(gòu)簡單、便于集成、頻率分辨率相較其他方法高出很多等優(yōu)點,且可實現(xiàn)幅度、頻率、相位的數(shù)控調(diào)節(jié)。
通過上文中提到的幾種設(shè)計方法的對比,第一種設(shè)計方案直接使用DDS集成芯片,但是它的但這種設(shè)計存在諸多的缺陷,例如不夠靈活、模塊固定、不容易更換,只能輸出出廠時在其內(nèi)部設(shè)計好的波形數(shù)據(jù),使用者再次設(shè)計自己想要的波形,因此不選擇方案一。第二種設(shè)計方案,在設(shè)計中的分辨率要低于第三種設(shè)計方案,無法實現(xiàn)任意波形的設(shè)計,并且它使用時鎖定的時間相對而言比較長,故不方便進行設(shè)計快速鎖定的信號發(fā)生器件。方案三,此設(shè)計方法的直接數(shù)字式結(jié)構(gòu)簡單、便于集成、頻率分辨率相較其他方法高出很多,本次設(shè)計最高頻率達到10MHz,在使用時功耗方面也具有相對較低的突出點,同時在理論功能上也能夠?qū)崿F(xiàn)任意波形的組合和選擇輸出,因此本設(shè)計采用此方案三。
1.2?DDS結(jié)構(gòu)和設(shè)計方法
DDS技術(shù)是基于奈奎斯特取樣定理,其工作的原理如圖2.1所示,利用相位累加原理從相位的方面考慮研究波形信號的基本組織結(jié)構(gòu)和工作原理。這次以正弦波為例子,通過正弦波線性增加的相位即可對它進行波形信號取樣、波形信號量化、數(shù)據(jù)編碼一系列操作實現(xiàn)連續(xù)的模擬信號轉(zhuǎn)換成離散的數(shù)字信號,并將生成的二進制數(shù)字信號碼存儲在波形存儲器(ROM/RAM)中,就相當于在內(nèi)部存儲器中存儲了一個完整的周期性波形幅度值。當需要一個連續(xù)的正弦波時,可以通過控制頻率控制字,來達到以相位累加器的相位變化量控制采樣點數(shù)量的功能。同時,從正弦波的相位與時間的角度來看,角頻率ω=△φ·△t,故在采樣頻率恒定的條件下,在內(nèi)嵌模塊中把波形存儲器中的波形幅度數(shù)據(jù)并周期性地識別讀出并輸出可視的模擬信號波形。
圖1?DDS工作原理
信號發(fā)生系統(tǒng)的核心部分是DDS模塊,也是系統(tǒng)中波形數(shù)據(jù)輸出的基本工作過程,該模塊的結(jié)構(gòu)如圖2.2所示。根據(jù)以上的原理圖和如圖2.2所示的基本功能結(jié)構(gòu),fclk是整個DDS模塊的系統(tǒng)時鐘,它控制著各個子模塊的工作實時性。比如,當一個正弦波輸出時,通過認為設(shè)置輸入頻率控制字和相位控制字就分別控制這個波形輸出的頻率和波形的初始相位,當頻率控制字的數(shù)值大小在鍵控下變化,輸出的波形信號的頻率高低也隨之變化,相位累加器是實現(xiàn)控制波形輸出的核心部分,波形的這樣就達成了頻率控制。
圖2?DDS基本結(jié)構(gòu)
1.3?系統(tǒng)設(shè)計總體思路
此次基于FPGA的DDS信號發(fā)生器主要通過高速集成電路硬件描述語言(VHDL)在Quqrtus19上進行電路設(shè)計、功能仿真。設(shè)計好的DDS電路下載到EP1C3T144C8N芯片上。同時選用AT89S52單片機最小系統(tǒng),通過軟件編程實現(xiàn)4×4的獨立矩陣鍵盤的控制功能和液晶LCD1602的顯示功能。通過向頻率、相位、幅度控制字寄存器傳送頻率、相位、幅度控制字,實現(xiàn)鍵盤控制輸出波形種類、頻率變化、幅度變化、相位變化的功能,并且在LCD1602上實時顯示出來。數(shù)模轉(zhuǎn)換電路的設(shè)計主要用到AD公司生產(chǎn)的AD9708芯片,該芯片的主要功能是將離散的數(shù)字信號輸出為模擬信號,再經(jīng)過濾波后,將平穩(wěn)、清晰、連續(xù)的波形信號輸出在示波器上。
第二章 硬件系統(tǒng)設(shè)計
2.1?硬件系統(tǒng)總體設(shè)計
本次硬件電路通過AltiumDesigner19完成設(shè)計,DDS信號發(fā)生器的總體硬件結(jié)構(gòu)設(shè)計包括:FPGA (EP1C3T144C8N)控制模塊、單片機最小系統(tǒng)、D/A(AD9708)轉(zhuǎn)換模塊、幅度控制(TLC5615)模塊、LCD1602顯示模塊、4×4按鍵輸入模塊。本設(shè)計以FPGA和單片機做為控制器,通過DDS技術(shù)輸出需要的波形數(shù)據(jù),然后通過高速AD輸出模塊輸出波形;并能經(jīng)過按鍵模塊調(diào)節(jié)頻率的數(shù)值以及通過撥碼開關(guān)切換波形種類,且所輸入的頻率數(shù)值可通過LCD1602顯示,最后通過示波器進行測試。
2.2?FPGA選型設(shè)計
2.2.1?FPGA概要
近幾年內(nèi),在電子器件、半導(dǎo)體工藝的設(shè)計中,我們常常會用到現(xiàn)場可編程門陣列(FPGA)。由于它電路集成度高、數(shù)據(jù)處理速度快、內(nèi)存容量較大等優(yōu)勢,F(xiàn)PGA十分地廣泛應(yīng)用于數(shù)字信號處理、視屏圖文解析、應(yīng)用數(shù)據(jù)傳輸?shù)阮I(lǐng)域。FPGA發(fā)展到現(xiàn)在已經(jīng)不是單純的一種器件了,在數(shù)字信號處理的領(lǐng)域中FPGA是不可分割的一部分,我們常常使用Verilog語言來設(shè)計自己需要的數(shù)字系統(tǒng)和信號發(fā)生器[17]。
2.2.2?FPGA芯片選型
在本次的設(shè)計中,在對CycloneII系列芯片進行查閱資料并進行了解的情況下,選用的FPGA芯片為AITERA公司在二十一世紀初研制并發(fā)售的EP2C5T144C8N,如圖3.1所示,此款芯片一共有144個引腳數(shù),具有系統(tǒng)自帶晶振輸出時鐘信號,同時可使用PLL進行市長管理[18]。具有上千個邏輯元件的表面安裝現(xiàn)場可編程門陣列IC,使用時功耗不到1.8W,對于學(xué)習(xí)研發(fā)者該芯片在同類的芯片中有著較為突出的優(yōu)勢,功能齊全的同時出售價格比同種類芯片低,性價比較高。它的系統(tǒng)輸入輸出電壓為3.3伏特,內(nèi)核工作電源電壓為1.15~1.25伏特,最大的工作頻率為250MHz,芯片的工作溫度在0℃~70℃之間,使用的靜態(tài)隨機存儲器(SRAM)工藝更是達到了0.33UM的數(shù)量級。
在這里列出了部分CycloneII型芯片參數(shù)比對,如表3.1所示。故在考慮到資源最大利用率,成本最小化時,選用了EP2C5T144C8N芯片用作FPGA的開發(fā)。
表4?CycloneII芯片舉例
圖5?EP2C5T144C8N芯片
第三章? ?軟件系統(tǒng)設(shè)計
3.1?系統(tǒng)軟件總設(shè)計
本次選題的軟件系統(tǒng)設(shè)計主要使用Verilog語言設(shè)計基于FPGA的DDS模塊,使用C語言設(shè)計基于單片機最小體統(tǒng)的鍵盤控制模塊和波形信息顯示模塊。通過C語言控制單片機將鍵盤輸入的數(shù)據(jù)進行處理,實現(xiàn)單片機對整個系統(tǒng)的交互式控制,把經(jīng)過單片機處理后的數(shù)據(jù)顯示信息通過總線接口送入LCD1602控制液晶顯示。
程序開始執(zhí)行時,當鍵盤有按下輸入時,單片機開始掃描鍵盤數(shù)據(jù),并計算對應(yīng)按鍵的功能實現(xiàn),得到頻率控制字,后進入DDS累加器模塊,經(jīng)過相位累加器對控制字的累加運算后得到地址,然后通過四個存儲波形的ROM選擇對應(yīng)的波形進行輸出,系統(tǒng)工作流程如圖
圖6?系統(tǒng)軟件工作流程圖
3.2?單片機控制程序設(shè)計
本次的單片機控制部分使用Keil5編寫C語言程序?qū)崿F(xiàn),編程實現(xiàn)鍵盤掃描控制的功能,LCD波形數(shù)據(jù)顯示的功能。
3.2.1?鍵盤掃描模塊
本次選題鍵盤設(shè)計采用4×4的組合按鍵,共有4根I/O口線作為行掃描線,4根I/O口線作為列掃描線。當程序開始執(zhí)行時,判斷是否有按鍵按下時,每個按鍵都有著對應(yīng)的行、列值,并以此組合編碼來對這個按鍵進行識別??蓪⒏叩碗娖揭?和0數(shù)字量表示,當沒有按鍵按下時,對應(yīng)的所有行線處于高電平(1狀態(tài)),對應(yīng)的列線處于低電平 (0狀態(tài))。而當進行操作時按下按鍵,此時對應(yīng)按鍵的行線變化為低電平(0狀態(tài)),再需要確定列的位置時,就依次從列線上輸出低電平(0狀態(tài)),其他的列線處于高電平(1狀態(tài)),掃描各行線的高低電平狀態(tài),當掃描到某一行出現(xiàn)低電平(0狀態(tài)),則可確定按下的按鍵位置編碼。
系統(tǒng)初始化后,對鍵盤所在行列掃描和進行編碼排序,鍵盤工作流程如圖4.2所示,通電后系統(tǒng)初始化,初始化的鍵盤按鍵功能分布如圖
圖7?鍵盤工作流程圖
圖8? 鍵盤功能分布位圖
當按下頻率設(shè)置鍵后,鍵盤的功能流程如圖所示,此時鍵盤的按鍵狀態(tài)發(fā)生改變,鍵盤按鈕功能分布如圖
圖9?頻率設(shè)置工作流程圖?
3.3?DDS軟件模塊設(shè)計
3.3.1?波形存儲(ROM)模塊
波形存儲器的原理就相當于將一個設(shè)計好的波形在內(nèi)存單元種預(yù)先存儲好,在需要使用時就可以直接從波形存儲器種調(diào)用輸出。首先是設(shè)計一個ROM來存儲基本的波形數(shù)據(jù),如圖4.7所示,為建立的正弦波ROM的IP核,其中ROM為8位,地址深度為256,ROM部分將會在DDS模塊中進行例化。后續(xù)可根據(jù)相同原理添加三角波ROM的IP核,方波ROM的IP核,鋸齒波ROM的IP核,并在頂層文件中設(shè)置好參數(shù),如圖
圖10?ROM的IP核設(shè)置
圖11?波形存儲模塊
3.3.2?波形選擇模塊
波形選擇模塊以讀取鍵盤輸入的數(shù)據(jù)信息并計算來決定輸出的波形種類,當以同一按鍵的初始值確定,每按下一次實現(xiàn)二進制位的加一,selectOut端口輸出計算出的控波形制字0100、0101、0110、0111,如圖
圖12?波形選擇模塊
3.3.3?四選一選擇模塊
本模塊主要根據(jù)控制數(shù)據(jù)對輸出的波形數(shù)據(jù)進行選擇,主要使用case語句實現(xiàn)對四種波形的選擇輸出,當寫入wave_mode端口讀取到0100時輸出波形為正弦波,讀取到0101時輸出波形為方波、讀取到0110時輸出波形為三角波、讀取到0111時輸出波形為鋸齒波弦,具體的四位選擇器如圖
圖13?四選一模塊
3.3.4?幅度控制模塊
本次設(shè)計中,幅度控制模塊,如圖4.13所示,此模塊輸出控制信息到TLC5615的DIN、SCLK、CS的I/O端口,控制TLC5615輸出不同的電壓給AD9708數(shù)模轉(zhuǎn)換器的參考電壓端口,從而控制波形幅度。
圖14?幅度控制模塊
3.3.5?系統(tǒng)時鐘
在本次的FPGA軟件系統(tǒng)設(shè)計部分,F(xiàn)PGA的全局時鐘是不可或缺的,在選擇的FPGA芯片版型中帶有系統(tǒng)晶振,原始頻率為50MHz。在本次設(shè)計中為了使各模塊更緊密地配合,減小傳輸和觸發(fā)的抖動和時延,故設(shè)計的各子模塊的系統(tǒng)時鐘需要一致,在本次系統(tǒng)設(shè)計中全局時鐘可以選擇利用FPGA嵌入的內(nèi)核來設(shè)計,可以選擇DLL/PLL/MMC。
圖15? 時鐘輸入設(shè)置
圖16? 時鐘輸出設(shè)置
文章來源:http://www.zghlxwxcb.cn/news/detail-774669.html
?圖18系統(tǒng)時鐘模塊文章來源地址http://www.zghlxwxcb.cn/news/detail-774669.html
到了這里,關(guān)于畢設(shè)分享|基于51單片機DDS信號發(fā)生器設(shè)計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!