基于FPGA的DDS信號發(fā)生器設(shè)計(jì)畢業(yè)論文_第1頁
基于FPGA的DDS信號發(fā)生器設(shè)計(jì)畢業(yè)論文_第2頁
基于FPGA的DDS信號發(fā)生器設(shè)計(jì)畢業(yè)論文_第3頁
基于FPGA的DDS信號發(fā)生器設(shè)計(jì)畢業(yè)論文_第4頁
基于FPGA的DDS信號發(fā)生器設(shè)計(jì)畢業(yè)論文_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計(jì)[論文]題目:基于FPGA的DDS信號發(fā)生器設(shè)計(jì)學(xué)院:電氣與信息工程學(xué)院專業(yè):電子信息工程姓名:學(xué)號:指導(dǎo)老師:梁成武完成時(shí)間:2021-5-30摘要基于FPGA的波形發(fā)生器己成為現(xiàn)代測試領(lǐng)域應(yīng)用最為廣泛的通用儀器之一。隨著科技的開展,對波形發(fā)生器各方面的要求越來越高。近年來,直接數(shù)字頻率合成器〔DDS〕由于其具有頻率分辨率高、頻率變換速度快、相位可連續(xù)變化等特點(diǎn),在數(shù)字通信系統(tǒng)中已被廣泛采用而成為現(xiàn)代頻率合成技術(shù)中的佼佼者。由于現(xiàn)場可編程門陣列(FPGA)具有高集成度、高速度、可實(shí)現(xiàn)大容量存儲(chǔ)器功能的特性,能有效地實(shí)現(xiàn)DDS技術(shù),極大的提高波形發(fā)生器的性能,降低生產(chǎn)本錢。在現(xiàn)代電子器件、通信技術(shù)、醫(yī)學(xué)成像、無線PCS/PCN系統(tǒng)、雷達(dá)、衛(wèi)星通信中,具有很廣泛的應(yīng)用。本文首先介紹了DDS波形發(fā)生器的研究背景和DDS的理論。然后詳盡地表達(dá)了在以Matlab平臺上DSPBuilder工具箱,編程實(shí)現(xiàn)一個(gè)DDS信號源,在產(chǎn)生正弦波、方波、三角波、鋸齒波的根底上,還產(chǎn)生不同通信中用到的調(diào)制信號(ASK,F(xiàn)SK,PSK等),最后通過Matlab仿真并轉(zhuǎn)化為硬件描述語言,再通過QuartusII下載到試驗(yàn)箱上,借助QuartusII對結(jié)果進(jìn)行觀察與分析。通過分析結(jié)果說明,本設(shè)計(jì)到達(dá)了預(yù)定的要求,證明了采用軟硬結(jié)合的方式,結(jié)合DDS技術(shù),對FPGA的編程實(shí)現(xiàn)產(chǎn)生多種波形〔如正弦波,方波、三角波、ASK,F(xiàn)SK,PSK〕的方法是可行的。關(guān)鍵詞:DDS,F(xiàn)PGA,DSPBuilder,波形發(fā)生器

AbstractFPGA.basedwaveformgeneratorfieldofapplicationofmoderntestinghasbecomethemostwidelyusedgenericinstruments.Withthedevelopmentoftechnology,variousaspectsofthewaveformgeneratorisincreasinglydemanding.Inrecentyears,directdigitalfrequencysynthesizer(DDS)becauseofitshighfrequencyresolution,frequencyconversionspeed,continuouslyvariablephase,etc.,grammablegatearray(FPGA)withhighintegration,high.speed,largecapacitymemorycanberealizedfunctionalcharacteristics,caneffectivelyachievetheDDStechnology,greatlyimprovestheperformancewaveformgenerator,reduceproductioncosts.Inthemodernelectronicdevices,communicationstechnology,medicalimaging,wirelessPCS/PCNsystems,radar,satellitecommunications,withaverywiderangeofapplications.ThispaperfirstintroducestheresearchbackgroundwaveformgeneratorDDSandDDStheory.ThendescribedindetailinordertoDSPBuildertoolboxMatlabplatform,programmingaDDSsignalsource,producessine,square,trianglewave,sawtoothfoundation,butalsoproducedifferentmodulatedsignalsusedincommunication(ASK,FSK,PSK,etc.),andfinallythroughMatlabsimulationandtransformedintohardwaredescriptionlanguage,andthendownloadedtothechamberthroughtheQuartusII,theQuartusIIthroughobservationandanalysisoftheresults.Byanalyzingtheresultsshowthatthedesignmeetstheprescribedrequirements,provedusingacombinationofhardwareandsoftware,combinedwithDDStechnology,theprogrammingoftheFPGAgeneratesavarietyofwaveforms(suchasSIN,SQU,ASK,FSK,PSK)methodisfeasible.Keywords:DDS,FPGA,DSPBuilder,waveformgenerator目錄摘要 IAbstract II目錄 I第1章緒論 11.1課題背景 11.2國內(nèi)外波形發(fā)生器開展現(xiàn)狀 21.2.1波形發(fā)生器的開展現(xiàn)狀 21.2.2國內(nèi)外波形發(fā)生器產(chǎn)品比擬 21.2.3研究波形發(fā)生器的目的及意義 31.3論文的主要工作與章節(jié)安排 3第2章DDS波形發(fā)生器的理論介紹 42.1DDS的根本原理與特點(diǎn) 42.2DDS信號的優(yōu)點(diǎn)與缺點(diǎn) 62.2.1DDS的優(yōu)點(diǎn) 62.2.2DDS的缺點(diǎn) 6第3章開發(fā)平臺介紹 73.1 硬件平臺FPGA介紹 73.1.1FPGA簡介 73.1.2FPGA工作原理 73.2軟件開發(fā)平臺Matlab簡介 83.3DSPBuilder簡介 93.4軟件平臺QuartusII介紹 10第4章系統(tǒng)實(shí)現(xiàn) 114.1設(shè)計(jì)要求 114.2系統(tǒng)方案論證與比擬 114.2.1產(chǎn)生DDS信號波形方案的選擇 114.2.2單片機(jī)處理器比擬選擇 124.3系統(tǒng)理論分析及設(shè)計(jì) 124.3.1總體設(shè)計(jì) 124.3.2主要技術(shù)參數(shù)的分析與確定 124.4單片機(jī)軟件和硬件設(shè)計(jì) 134.4.1硬件電路圖設(shè)計(jì) 144.4.2單片機(jī)編程 154.5FPGA軟件和硬件設(shè)計(jì) 174.5.1FPGA硬件設(shè)計(jì) 174.5.2FPGA軟件設(shè)計(jì) 194.5.2MATLAB軟件設(shè)計(jì) 22第5章系統(tǒng)仿真 235.1單片機(jī)軟件調(diào)試 235.2 MatlabDSPBuilder仿真 235.2.1DSPBuilder設(shè)計(jì)流程 235.2.2MATLAB仿真結(jié)果 26第6章系統(tǒng)測試 286.1硬件焊接與測試 286.2測試波形頻率 296.3波形測試種類 30總結(jié) 31參考文獻(xiàn) 32致謝 33附錄A 34第1章緒論 本章首先介紹DDS信號發(fā)生器的課題背景,國內(nèi)外開展現(xiàn)狀,和論文的章節(jié)安排。1.1課題背景頻率檢測是電子測量領(lǐng)域的最根本也是最重要的測量之一,頻率信號抗干擾強(qiáng),易于傳輸,可以獲得較高的測量精度,所以頻率方法的研究越來越受到重視[1]。在頻率合成領(lǐng)域中,直接數(shù)字合成(DirectDigitalSynthesizer,簡稱:DDS)是近年來新的技術(shù),它從相位的角度出發(fā)直接合成所需波形。它是由美國人J.Tierncy首先提出來的,是一種以數(shù)字信號處理理論為根底,從相位概念出發(fā)直接合成所需波形的一種新的全數(shù)字技術(shù)的頻率合成方法。其主要優(yōu)點(diǎn)有:頻率改變速度快、頻率分辨率高、輸出相位連續(xù)、可編程、全數(shù)字化便于集成等,目前使用最廣泛的一種DDS頻率合成方式是利用高速存儲(chǔ)器將正弦波的M個(gè)樣品存在其中,然后以查找的方式按均勻的速率把這些樣品輸入到高速數(shù)模轉(zhuǎn)換器,變成所設(shè)定頻率的正弦波信號[3]。近30年來,隨著超大規(guī)模集成、現(xiàn)場可編程門陣列(FieldProgrammableGateArray,簡稱:FPGA)、復(fù)雜可編程器件(ComplexprogrammableLogicDevice,簡稱:CPLD)等技術(shù)的出現(xiàn)以及對DDS理論上的進(jìn)一步探討,使得DDS技術(shù)得到了飛速的開展。它已廣泛應(yīng)用于通訊、雷達(dá)、遙控測試、電子對抗、以及現(xiàn)代化的儀器儀表工業(yè)等許多領(lǐng)域。DDS的數(shù)字局部,即相位累加器和查表,被稱為數(shù)控振蕩器〔NCO〕。波形發(fā)生器即通常所說的信號發(fā)生器是一種常用的信號源,和示波器、電壓表、頻率計(jì)等儀器一樣是最普遍、最根本也是應(yīng)用最廣泛的的電子儀器之一,幾乎所有電參量的測量都要用到波形發(fā)生器。不管是在生產(chǎn)還是在科研與教學(xué)上,波形發(fā)生器都是電子工程師信號仿真試驗(yàn)的最正確工具。隨著現(xiàn)代電子技術(shù)的飛速開展,現(xiàn)代電子測量工作對波形發(fā)生器的性能提出了更高的要求,不僅要求能產(chǎn)生正弦波、方波等標(biāo)準(zhǔn)波形,還能根據(jù)需要產(chǎn)生任意波形,且操作方便,輸出波形質(zhì)量好,輸出頻率范圍寬,輸出頻率穩(wěn)定度、準(zhǔn)確度及分辨率高,頻率轉(zhuǎn)換速度快且頻率轉(zhuǎn)換時(shí)輸出波形相位連續(xù)等。而傳統(tǒng)波形發(fā)生器采用專用芯片,本錢高,控制方式不靈活,已經(jīng)越來越不能滿足現(xiàn)代電子測量的需要,正逐步退出歷史舞臺??梢?,為適應(yīng)現(xiàn)代電子技術(shù)的不斷開展和市場要求,研究制作高性能的任意波形發(fā)生器十分有必要,而且意義重大。1.2國內(nèi)外波形發(fā)生器開展現(xiàn)狀1.2.1波形發(fā)生器的開展現(xiàn)狀在70年代前,信號發(fā)生器主要有兩類:正弦波和脈沖波。這個(gè)時(shí)期的波形發(fā)生器多采用模擬電子技術(shù),而且模擬器件構(gòu)成的電路存在著尺寸大、價(jià)格貴、功耗大等缺點(diǎn),并且要產(chǎn)生較為復(fù)雜的信號波形,那么電路結(jié)構(gòu)非常復(fù)雜。在70年代后,微處理器的出現(xiàn),可以利用處理器、A/D和D/A,硬件和軟件使波形發(fā)生器的功能擴(kuò)大,產(chǎn)生更加復(fù)雜的波形。這時(shí)期的波形發(fā)生器多以軟件為主,實(shí)質(zhì)是采用微處理器對DAC的程序控制,就可以得到各種簡單的波形。90年代末,出現(xiàn)幾種真正高性能、高價(jià)格的波形發(fā)生器、但是HP公司推出了型號為HP770S的信號模擬裝置系統(tǒng),它由HP8770A任意波形數(shù)字化和HP1776A波形發(fā)生軟件組成。HP8770A實(shí)際上也只能產(chǎn)生8種波形,而且價(jià)格昂貴。到了二十一世紀(jì),隨著集成電路技術(shù)的高速開展,出現(xiàn)了多種工作頻率可過GHz的DDS芯片,同時(shí)也推動(dòng)了波形發(fā)生器的開展,2003年,Agilent的產(chǎn)品33220A能夠產(chǎn)生17種波形,最高頻率可到達(dá)20M,2005年的產(chǎn)品N6030A能夠產(chǎn)生高達(dá)500MHz的頻率,采樣的頻率可達(dá)1.25GHz。最近幾年來,隨著集成電路技術(shù)和器件水平的提高,國外一些公司先后推出各種各樣的DDS專用芯片,如Qualcomm公司的Q2230、Q2334,AD公司的AD9955、AD9850、AD9851、AD9852等。1.2.2國內(nèi)外波形發(fā)生器產(chǎn)品比擬頻率合成器被譽(yù)為電子系統(tǒng)的“心臟〞,頻率源的開展直接關(guān)系到電子系統(tǒng)性能的開展。信號發(fā)生器是一種常用的信號源,廣泛應(yīng)用于通信、雷達(dá)、測控、電子對抗以及現(xiàn)代化儀器儀表等領(lǐng)域,是一種為電子測量工作提供符合嚴(yán)格技術(shù)要求的電信號設(shè)備,和示波器、電壓表、頻率計(jì)等儀器一樣是最普通、最根本也是應(yīng)用最廣泛的電子儀器之一,幾乎所有電參量的測量都要用到波形發(fā)生器。早在1978年,由美國Wavetek公司和日本東亞電波工業(yè)公司公布了最高取樣頻率為5MHz,可以形成256點(diǎn)(存儲(chǔ)長度)波形數(shù)據(jù),垂直分辨率為8bit,主要用于振動(dòng)、醫(yī)療、材料等領(lǐng)域的第一代高性能信號源,經(jīng)過將近30年的開展,伴隨著電子元器件、電路、及生產(chǎn)設(shè)備的高速化、高集成化,波形發(fā)生器的性能有了飛速的提高。變得操作越來越簡單而輸出波形的能力越來越強(qiáng)。波形操作方法的好壞,是由波形發(fā)生器控制軟件質(zhì)量保證的,編輯功能增加的越多,波形形成的操作性越好。目前我國已經(jīng)開始研制信號發(fā)生器,并獲得了可喜的成果,但總的來說,我國波形發(fā)生器還沒有形成真正的產(chǎn)業(yè),并且我國目前在波形發(fā)生器的的種類和性能都與國外同類產(chǎn)品存在較大的差距,因此加緊對這類產(chǎn)品的研制顯得迫在眉睫。1.2.3研究波形發(fā)生器的目的及意義波形發(fā)生器是信號源的一種,主要給被測電路提供所需要的己知信號(各種波形),然后用其它儀表測量感興趣的參數(shù)。多功能波形發(fā)生器采用FPGA器件作為核心控制部件,精度高穩(wěn)定性好,得到波形平滑,特別是由于FPGA的高速度,能實(shí)現(xiàn)較高頻率的波形。目前我國己經(jīng)開始研制波形發(fā)生器,并取得了可喜的成果。但總的來說,我國波形發(fā)生器還沒有形成真正的產(chǎn)業(yè)。就目前國內(nèi)的成熟產(chǎn)品來看,多為一些PC儀器插卡,獨(dú)立的儀器和VXI系統(tǒng)的模塊很少,并且我國目前在波形發(fā)生器的種類和性能都與國外同類產(chǎn)品存在較大的差距,因此加緊對這類產(chǎn)品的研制顯得迫在眉睫。1.3論文的主要工作與章節(jié)安排本文主要通過分析DDS的原理,進(jìn)而得到DDS信號發(fā)生器的設(shè)計(jì)方案,然后通過選材等一系列設(shè)計(jì)來完成DDS信號發(fā)生器的研究。其中第二章主要介紹DDS的根本原理以及優(yōu)缺點(diǎn)。第三章那么重點(diǎn)介紹了本次設(shè)計(jì)所采用的開發(fā)平臺。第四章是本文重點(diǎn)介紹的對象,里面主要包含了設(shè)計(jì)的具體思路包括系統(tǒng)的實(shí)現(xiàn)以及系統(tǒng)工作流程情況。第五章是要是對設(shè)計(jì)進(jìn)行仿真。第六章那么是對設(shè)計(jì)進(jìn)行調(diào)試驗(yàn)證。第2章DDS波形發(fā)生器的理論介紹本章主要介紹了DDS的原理。其中第一局部以正弦波為例子,對DDS原理在整個(gè)設(shè)中的重要意義進(jìn)行講解。后一局部那么是分析DDS的優(yōu)點(diǎn)以及缺點(diǎn)。2.1DDS的根本原理與特點(diǎn)DDS即直接數(shù)字頻率合成技術(shù),是由美國學(xué)者J.Tiercy,M.Rader和B.Gold于1971年首次提出,是一種以數(shù)字信號處理理論為根底,從相位概念出發(fā)直接合成所需波形的一種新的全數(shù)字技術(shù)的頻率合成方法。從1971年至今,DDS已從一個(gè)工程新事物逐漸開展成為一個(gè)重要的設(shè)計(jì)工具。與大家熟悉的直接式和間接式〔PLL〕頻率合成技術(shù)不同,DDS技術(shù)完全采用數(shù)字技術(shù)處理,屬于第三代頻率合成技術(shù)。DDS的主要優(yōu)點(diǎn)是它的輸出頻率、相位和幅度能夠在微控制器的控制下精確而快速的變換。DDS的應(yīng)用領(lǐng)域包括各類無線通信、有線通信、網(wǎng)絡(luò)通信,各類需要頻率信號的儀器、儀表、遙測、遙感設(shè)備、收音機(jī)和電視機(jī)等。本節(jié)以正弦信號的產(chǎn)生為例,闡述DDS技術(shù)的根本原理。對于一個(gè)頻譜純潔的單頻正弦信號可以用下式來描述:〔2.1〕其相位為〔2.2〕顯然,該正弦信號相位和幅值均為連續(xù)變量。為了便于采用數(shù)字技術(shù),應(yīng)對連續(xù)的正弦信號進(jìn)行離散化處理,即把相位和幅值均轉(zhuǎn)化為數(shù)字量。用頻率為fclk的基準(zhǔn)時(shí)鐘對正弦信號進(jìn)行抽樣,這樣,在一個(gè)參考時(shí)鐘周期T內(nèi),相位的變化量為〔2.3〕由上式得到的△θ為模擬量,為了將其轉(zhuǎn)化為數(shù)字量,將2π切割成2N等份作為最小量化單位,從而得到△θ的數(shù)字量M為:〔2.4〕將式〔2.3〕帶入〔2.4〕得〔2.5〕式〔2.5〕說明,在參考時(shí)鐘頻fclk確定的情況下,輸出正弦信號的頻率fout決定于M的大小,并且與M呈線性關(guān)系。通過改變M的大小,就可以改變輸出正弦信號的頻率,因此,M也稱頻率控制字。當(dāng)參考時(shí)鐘頻率取2N時(shí),正弦信號的頻率就等于頻率控制字M。當(dāng)M取1時(shí),可以得到輸出信號的最小頻率步進(jìn)為〔2.6〕由此可知,只要N取值足夠大,就可以得到非常小的頻率步進(jìn)值。將相位轉(zhuǎn)化為數(shù)字量以后,式〔2.1〕就可以描述為如下形式:〔2.7〕表示本周期相位值與前一個(gè)基準(zhǔn)時(shí)鐘周期的相位值的累加。從式〔2.7〕可以看出,只要用頻率控制字M進(jìn)行簡單的累加運(yùn)算,就可以得到正弦函數(shù)的當(dāng)前相位值。而正弦信號的幅值就是正弦信號的當(dāng)前相位值的函數(shù)。由于正弦函數(shù)為非線性函數(shù),很難實(shí)時(shí)計(jì)算,一般通過查表的方法來快速獲得函數(shù)值。有了上述理論分析,我們就可以得到一種用數(shù)字的方法獲得正弦信號的方法:先構(gòu)建一個(gè)N為的相位累加器,在每一個(gè)時(shí)鐘周期內(nèi),將相位累加器中的值與頻率控制字相加,得到當(dāng)前的相位值。將當(dāng)前的相位值作為ROM的地址,讀出ROM中的正弦波數(shù)據(jù),再通過D/A轉(zhuǎn)化成模擬信號。頻率控制字越大,相位累加器的輸出變化越快,ROM的地址變化也越快,輸出的正弦信號頻率越高。需要注意的是,受ROM容量的限制,ROM地址位數(shù)一般小于相位累加器的位數(shù),因此,把相位累加器輸出的高位作為ROM的地址。只需要改變頻率控制字,就可以改變輸出信號的頻率,因此,采用DDS技術(shù),對輸出信號頻率的控制十分簡單。DDS正弦信號發(fā)生器的根本原理框圖如下圖。圖2.1.1DDS正弦信號發(fā)生器根本原理框圖2.2DDS信號的優(yōu)點(diǎn)與缺點(diǎn)2.2.1DDS的優(yōu)點(diǎn)(l)輸出頻率相對帶寬較寬輸出頻率帶寬為50%fs(理論值),實(shí)際輸出帶寬仍可到達(dá)40%fs。(2)頻率轉(zhuǎn)換時(shí)間短頻率時(shí)間等于頻率控制字的傳輸時(shí)間,也就是一個(gè)時(shí)鐘周期的時(shí)間。時(shí)鐘頻率越高,轉(zhuǎn)換時(shí)間越短。DDS的轉(zhuǎn)換時(shí)間可達(dá)納微秒級數(shù)量級,比使用其他的頻率合成方法都要短數(shù)個(gè)數(shù)量級。(3)頻率分辨率高假設(shè)時(shí)鐘fs的頻率不變,DDS的頻率分辨率就是由相位累加器的位數(shù)N決定。只要增加相位累加器的位數(shù)N即可獲得任意小的頻率分辨率。目前,大多數(shù)DDS的分辨率在1Hz數(shù)量級,許多小于1mHz甚至更小。(4)相位變化連續(xù)改變DDS輸出頻率,實(shí)際上改變的是每一個(gè)時(shí)鐘周期的相位增量,相位函數(shù)的曲線是連續(xù)的,只是在改變頻率的瞬間其頻率發(fā)生了突變,因而保持了信號相位的連續(xù)。(5)輸出波形的靈活性只要在DDS內(nèi)部加上相應(yīng)控制如調(diào)頻控制FM,調(diào)相控制PM和調(diào)幅控制AM即可以方便靈活實(shí)現(xiàn)調(diào)頻,調(diào)頻和調(diào)幅等功能,產(chǎn)生FSK,PSK,ASK,MSK等信號。另外,只要在DDS的波形存儲(chǔ)器存放不同波形數(shù)據(jù),就可以實(shí)現(xiàn)各種波形的輸出,如三角波,鋸齒波和矩形波甚至是任意波形。當(dāng)DDS的波形存儲(chǔ)器分別存放正弦和余弦函數(shù)表時(shí),即可得到正交的兩路輸出。2.2.2DDS的缺點(diǎn)(1)輸出帶寬范圍有限由于DDS內(nèi)部DAC和波形存儲(chǔ)器(ROM)的工作速度有限,使得DDS輸出的最高頻率有限。目前市場上采用CMOS,TTL,EcL,工藝制作的DDS芯片,工作頻率一般在幾十MHz至400MHz左右。采用GaAS工藝的DDS芯片工作頻率可達(dá)2GHz以上。(2)輸出散雜大 由于DDS采用全數(shù)字結(jié)構(gòu),不可防止地引入了散雜。其來源主要由三個(gè):相位累加器相位舍入誤差造成的散雜.第3章開發(fā)平臺介紹本章主要對本次設(shè)計(jì)所選擇的開發(fā)平臺進(jìn)行簡單介紹。FPGA因?yàn)槠洳粌H可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問題,而且其開發(fā)周期短、開發(fā)軟件投入少、芯片價(jià)格不斷降低,所以成為首選。軟件局部主要是對QuartusII進(jìn)行簡單的介紹。硬件平臺FPGA介紹本章將對這次設(shè)計(jì)所用的平臺做一個(gè)介紹,主要開發(fā)軟件有,QuartusII,Matlab,Keil等軟件,涉及的領(lǐng)域有FPGA編程,單片機(jī)編程,Matlab編程等。3.1.1FPGA簡介自1985年Xilinx公司推出有史以來第一顆現(xiàn)場可程序化邏輯組件至今,已經(jīng)歷了超過二十幾年的開展歷史。在開展過程中,以FPGA為代表的數(shù)字系統(tǒng)現(xiàn)場集成取得了驚人的開展:現(xiàn)場可程序化邏輯組件從最初的1200個(gè)可利用邏輯閘,開展到90年代的25萬個(gè)可利用邏輯閘。其后不到數(shù)年,著名FPGA廠商,包括Altera公司、Xilinx等公司,又陸續(xù)推出了內(nèi)建數(shù)百萬邏輯閘以上的FPGA芯片,將現(xiàn)場可程序化組件的整合度提高到一個(gè)新的水平。如今,各廠商不再盲目追加邏輯閘的數(shù)量,轉(zhuǎn)而努力消除過去FPGA弱勢之處,以強(qiáng)化過的運(yùn)算效能、更為節(jié)省的功耗,向各種運(yùn)算領(lǐng)域撲天蓋地而來??v觀現(xiàn)場可程序化邏輯組件的開展歷史,其之所以具有巨大的市場吸引力,在于FPGA不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問題,而且其開發(fā)周期短、開發(fā)軟件投入少、芯片價(jià)格不斷降低,促使FPGA在某些情況下得以取代ASIC的市場,特別是對小量、多樣,短開發(fā)期的產(chǎn)品需求,使FPGA成為首選。3.1.2FPGA工作原理 FPGA采用了邏輯單元陣列LCA〔LogicCellArray〕這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB〔ConfigurableLogicBlock〕、輸出輸入模塊IOB〔InputOutputBlock〕和內(nèi)部連線〔Interconnect〕三個(gè)局部。它的根本特點(diǎn)主要有:采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。FPGA可做其它全定制或半定制ASIC電路的中試樣片。FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。FPGA采用高速CHMOS工藝,功耗很低,可以與CMOS、TTL電平兼容??v觀現(xiàn)場可程序化邏輯組件的開展歷史,其之所以具有巨大的市場吸引力,在于FPGA不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問題,而且其開發(fā)周期短、開發(fā)軟件投入少、芯片價(jià)格不斷降低,促使FPGA在某些情況下得以取代ASIC的市場,特別是對小量、多樣,短開發(fā)期的產(chǎn)品需求,使FPGA成為首選。FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。3.2軟件開發(fā)平臺Matlab簡介MATLAB是由美國mathworks公司發(fā)布的主要面對科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語言〔如C、Fortran〕的編輯模式,代表了當(dāng)今國際科學(xué)計(jì)算軟件的先進(jìn)水平。MATLAB和Mathematica、Maple、MathCAD并稱為四大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)立用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計(jì)與分析等領(lǐng)域。MATLAB的根本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在新的版本中也參加了對C,F(xiàn)ORTRAN,C++,JAVA的支持。可以直接調(diào)用,用戶也可以將自己編寫的實(shí)用程序?qū)氲組ATLAB函數(shù)庫中方便自己以后調(diào)用,此外許多的MATLAB愛好者都編寫了一些經(jīng)典的程序,用戶可以直接進(jìn)行下載就可以用。3.3DSPBuilder簡介Altera可編程邏輯器件(PLD)中的DSP系統(tǒng)設(shè)計(jì)需要高級算法和HDL開發(fā)工具。AlteraDSPBuilder將TheMathWorksMATLAB和Simulink系統(tǒng)級設(shè)計(jì)工具的算法開發(fā)、仿真和驗(yàn)證功能與VHDL綜合、仿真和Altera開發(fā)工具整合在一起,實(shí)現(xiàn)了這些工具的集成。DSPBuilder在算法友好的開發(fā)環(huán)境中幫助設(shè)計(jì)人員生成DSP設(shè)計(jì)硬件表征,從而縮短了DSP設(shè)計(jì)周期。已有的MATLAB函數(shù)和Simulink模塊可以和AlteraDSPBuilder模塊以及Altera知識產(chǎn)權(quán)(IP)MegaCore功能相結(jié)合,將系統(tǒng)級設(shè)計(jì)實(shí)現(xiàn)和DSP算法開發(fā)相鏈接。DSPBuilder支持系統(tǒng)、算法和硬件設(shè)計(jì)共享一個(gè)公共開發(fā)平臺。設(shè)計(jì)人員可以使用DSPBuilder模塊迅速生成Simulink系統(tǒng)建模硬件。DSPBuilder包括比特和周期精度的Simulink模塊,涵蓋了算法和存儲(chǔ)功能等根本操作??梢允褂肈SPBuilder模型中的MegaCore功能實(shí)現(xiàn)復(fù)雜功能的集成。Altera還提供DSPBuilder高級模塊集,這一Simulink庫實(shí)現(xiàn)了時(shí)序驅(qū)動(dòng)的Simulink綜合。AlteraMegaCore是高級參數(shù)化IP功能,例如有限沖擊響應(yīng)(FIR)濾波器和快速傅立葉變換(FFT)等,經(jīng)過配置能夠迅速方便的到達(dá)系統(tǒng)性能要求。MegaCore功能支持Altera的IP評估特性,使您在購置許可之前,便可以驗(yàn)證功能及其時(shí)序。AlteraIPMegaStore網(wǎng)站上為DSPBuilder和IP評估流程提供DSPIP完整介紹DSPBuilderSignalCompiler模塊讀取由DSPBuilder和MegaCore模塊構(gòu)建的Simulink建模文件(.mdl),生成VHDL文件和工具命令語言(Tcl)腳本,進(jìn)行綜合、硬件實(shí)施和仿真。圖示為DSPBuilder設(shè)計(jì)流程。DSPBuilder是一個(gè)系統(tǒng)級〔或算法級〕設(shè)計(jì)工具,它構(gòu)架在多個(gè)軟件工具之上,并把系統(tǒng)級和RTL級兩個(gè)設(shè)計(jì)領(lǐng)域的設(shè)計(jì)工具連接起來,最大程度地發(fā)揮了兩種工具的優(yōu)勢。DSPBuilder依賴于MathWorks公司的數(shù)學(xué)分析工具M(jìn)atlab/Simulink,以Simulink的Blockset出現(xiàn),可以在Simulink中進(jìn)行圖形化設(shè)計(jì)和仿真,同時(shí)又通過SignalCompiler可以把Matlab/Simulink的設(shè)計(jì)文件〔.mdl〕轉(zhuǎn)成相應(yīng)的硬件描述語言VHDL設(shè)計(jì)文件〔.vhd〕,以及用于控制綜合與編譯的TCL腳本。而對后者的處理可以由FPGA/CPLD開發(fā)工具QuartusII來完成。3.4軟件平臺QuartusII介紹圖3.2QuartusII軟件界面如圖3.2所示為QuartusII軟件的根本界面,QuartusII軟件是Altera的綜合開發(fā)工具,它集成了Altera的FPGA/CPLD開發(fā)流程中所涉及的所有工具和第三方軟件接口。QuartusII幾乎支持Altera現(xiàn)行的所有FPGA,在該集成開發(fā)環(huán)境中可以實(shí)現(xiàn)電路的設(shè)計(jì)、綜合、適配到最后形成下載文件以及在線配置FPGA,還能對電路進(jìn)行功能仿真,對適配后形成的最終電路進(jìn)行時(shí)序仿真。也就是說只要有了QuartusII這個(gè)集成開發(fā)環(huán)境,就根本上可以完成Altera公司FPGA開發(fā)過程中的所有工作。另外,為了方便設(shè)計(jì),QuartusII還提供了免費(fèi)LPM模塊供用戶調(diào)用,如計(jì)數(shù)器、存儲(chǔ)器、加法器、乘法器等。除了這些免費(fèi)的LPM模塊外,Altera公司還開發(fā)了有償IP核提供應(yīng)有需要的用戶使用。這些LPM模塊和IP核都大大簡化了設(shè)計(jì)過程,縮短了開發(fā)周期。QuartusII支持多種輸入方式,常用的有:〔1〕原理圖輸入:這種方法最直觀,適合頂層電路的設(shè)計(jì);〔2〕硬件描述語言輸入:包括AHDL、VHDL及VerilogHDL輸入。采用硬件描述語言的優(yōu)點(diǎn)易于使用自頂向下的設(shè)計(jì)方法、易于模塊規(guī)劃和復(fù)用、移植性強(qiáng)、通用性好?!?〕網(wǎng)表輸入:對于在其他軟件系統(tǒng)上設(shè)計(jì)的電路,可以采用這種設(shè)計(jì)方法,而不必重新輸入,QuartusII支持的網(wǎng)表文件包括EDIF、VHDL及Verilog等格式。這種方法的優(yōu)點(diǎn)是可以充分利用現(xiàn)有的設(shè)計(jì)資源。第4章系統(tǒng)實(shí)現(xiàn)本章主要介紹了DDS信號發(fā)生器的實(shí)現(xiàn)過程,開頭局部講述了包括DDS信號發(fā)生器的原理圖,材料選擇的比擬以及重點(diǎn)模塊的介紹。后面一局部主要講述單片機(jī)控制軟件的設(shè)計(jì),包括人機(jī)接口的定義、主程序框圖。4.1設(shè)計(jì)要求設(shè)計(jì)要求如下:1、具有產(chǎn)生正弦波、方波、三角波、鋸齒波四種周期性波形;2、輸出信號頻率范圍0Hz~5MHz,重復(fù)頻率可調(diào),頻率步進(jìn)間隔小于等于1Hz;3、輸出信號幅值范圍0-5V〔峰.峰值〕,信號幅值和直流偏移量可數(shù)控調(diào)節(jié);4、具有穩(wěn)幅輸出功能,當(dāng)負(fù)載變化時(shí),輸出電壓幅度變化不大于±3%〔負(fù)載電阻變化范圍:50Ω~正無窮〕;5、具有顯示輸出波形類型、重復(fù)頻率等功能。4.2系統(tǒng)方案論證與比擬4.2.1產(chǎn)生DDS信號波形方案的選擇目前主流的DDS信號發(fā)生器方案有兩種:方案一、采用專用DDS集成芯片實(shí)現(xiàn)的信號發(fā)生器;方案二、采用單片機(jī)+FPGA實(shí)現(xiàn)的DDS信號發(fā)生器。比擬這兩種方案,專用DDS芯片內(nèi)部的波形數(shù)據(jù)存放在ROM型存儲(chǔ)器中,波形數(shù)據(jù)無法修改故而只能產(chǎn)生固定波形的信號,但系統(tǒng)比擬容易實(shí)現(xiàn)。而采用單片機(jī)+FPGA實(shí)現(xiàn)的DDS信號發(fā)生器那么是將波形數(shù)據(jù)存儲(chǔ)器改為FPGA上的RAM行存儲(chǔ)器,波形信號能實(shí)時(shí)改變,在利用單片機(jī)系統(tǒng)進(jìn)行控制和處理后,能實(shí)現(xiàn)DDS任意波形發(fā)生器,功能更加完善,更新更加方便。故本設(shè)計(jì)選用方案二。4.2.2單片機(jī)處理器比擬選擇方案一:采用AT89C51單片機(jī)處理電路,其擁有并行I/O口32個(gè),對于實(shí)際應(yīng)用來說遠(yuǎn)遠(yuǎn)不夠,且不具備自帶AD、DA,使得電路結(jié)構(gòu)復(fù)雜。方案二:STC12C5A60S2單片機(jī)內(nèi)部資源非常豐富,是目前功能最全、速度最快的51內(nèi)核SoC單片機(jī)之一,包括告訴8051微處理器內(nèi)核,擴(kuò)充終端處理系統(tǒng),1280字節(jié)內(nèi)部RAM,和60KB的閃速存儲(chǔ)器,多達(dá)39個(gè)I/O引腳,兩個(gè)內(nèi)部振蕩器和片內(nèi)調(diào)試電路,能很好的完本錢系統(tǒng)所需的單線程,鍵盤功能分支程序控制。在本設(shè)計(jì)中選用方案二。4.3系統(tǒng)理論分析及設(shè)計(jì)4.3.1總體設(shè)計(jì)本設(shè)計(jì)采用單片機(jī)+FPGA實(shí)現(xiàn)的DDS信號發(fā)生器,整個(gè)DDS信號發(fā)生器由單片機(jī)子系統(tǒng)、FPGA子系統(tǒng)、模擬子系統(tǒng)三局部組成,系統(tǒng)原理框圖如下列圖4.1所示:單片機(jī)FPGA單片機(jī)FPGAEP1C3T144C8LCD1602按鍵DA轉(zhuǎn)換放大圖4.1DDS信號發(fā)生器系統(tǒng)框圖4.3.2主要技術(shù)參數(shù)的分析與確定DDS信號發(fā)生器的技術(shù)指標(biāo)取決于DDS系統(tǒng)的時(shí)鐘頻率、相位累加器的位數(shù)、波形數(shù)據(jù)表的長度等參數(shù),下面對這些參數(shù)進(jìn)行討論,以選擇適合的模擬電路元件以實(shí)現(xiàn)高質(zhì)量的DDS信號。1、輸出帶寬當(dāng)頻率控制字M=1時(shí),輸出信號的最低頻率為〔4.1〕式中,為參考時(shí)鐘頻率,N為相位累加器的位數(shù)。當(dāng)N取很大值時(shí),最低輸出頻率可以認(rèn)為到達(dá)DDS最低頻率的零頻。DDS的最高輸出頻率由參考時(shí)鐘周期和一個(gè)周期波形采樣點(diǎn)數(shù)決定,假設(shè)采樣點(diǎn)數(shù)為X,那么最高輸出頻率為〔4.2〕2、頻率分辨率頻率分辨率由下式?jīng)Q定:〔4.3〕在此式中,當(dāng)N取值足夠大時(shí),DDS信號可以到達(dá)很高的信號分辨率。3、DDS信號的質(zhì)量由于DDS信號發(fā)生器采用全數(shù)字設(shè)計(jì),不可防止在采樣時(shí)會(huì)帶來D/A產(chǎn)生的幅度量化噪聲和相位累加運(yùn)算截?cái)喈a(chǎn)生的相位噪聲。改善DDS信號質(zhì)量的主要方法有:增加波形存儲(chǔ)器和D/A的字寬;增加每個(gè)周期數(shù)據(jù)的樣本數(shù),提高外部參考時(shí)鐘頻率和通過低通濾波器來改善輸出信號質(zhì)量。綜合上述討論和對器件本錢以及硬件系統(tǒng)復(fù)雜度的考慮,DDS子系統(tǒng)的參數(shù)確定如下:參考時(shí)鐘頻率:100MHz;頻率控制字的位寬:32位;相位累加器的位寬:32位;波形存儲(chǔ)器的地址位寬:10位;波形存儲(chǔ)器的數(shù)據(jù)位寬:8位。4.4單片機(jī)軟件和硬件設(shè)計(jì)DDS信號發(fā)生器采用FPGA等硬件來完成高速波形的產(chǎn)生任務(wù),其工作不需要單片機(jī)過多的干預(yù)。單片機(jī)子系統(tǒng)只需完成鍵盤輸入、液晶顯示、向FPGA傳送數(shù)據(jù)、輸出信號的幅值和直流偏移量的數(shù)字控制等功能。從軟件的總體結(jié)構(gòu)來看,單片機(jī)控制軟件是一種單線程、鍵盤功能的分支程序。4.4.1硬件電路圖設(shè)計(jì)硬件電路圖采用AltiumDesign10設(shè)計(jì)的原理圖和PCB圖,主控芯片是STC12C5A60S2,采用貼片封裝,液晶顯示:圖4.2STC12C5A60S2單片機(jī)最小系統(tǒng)此次采用的單片機(jī)是STC12C5A60S2單片機(jī),屬于增強(qiáng)型51單片機(jī),具有ROM空間大,資源充足,最重要的是提高了運(yùn)算速度。其最小系統(tǒng)原理圖如圖4.2。圖4.3液晶顯示模塊液晶采用普通LCD1602液晶,顯示效果清晰,簡潔明了,原理圖如圖4.3。圖4.4電源電路供電電源采用5V電壓,使用AS1117.3.3把5V降壓為3.3V電壓提供應(yīng)FPGA芯片,再使用AS1117.1.5把3.3V減壓為1.5V提供應(yīng)FPGA核心模塊,電源前后級均有濾波電容,并有電源指示燈。其原理圖如4.4。4.4.2單片機(jī)編程根據(jù)DDS信號發(fā)生器的功能設(shè)計(jì)了如圖4.5所示的LCD顯示頁面。液晶第一行為頻率大小顯示,液晶第二行2為波形類型,在給定頻率輸入頁面中,8個(gè)小方框所顯示的位置用于顯示輸入給定的頻率值。給定的頻率范圍為00000001~40000000Hz。為了操作方便,允許輸入給定頻率的位數(shù)在1~8位之間。對于DDS信號發(fā)生器來說,鍵盤主要用于選擇信號波形、輸入頻率值、控制輸出信號的幅值和直流偏移量。由于按鍵數(shù)量比擬少,鍵盤采用獨(dú)立式鍵盤。LCD顯示和鍵盤各按鍵的定義如圖4.5所示。按鍵4選中位減1按鍵5波形切換按鍵3選中位加1按鍵4選中位減1按鍵5波形切換按鍵3選中位加1按鍵2光標(biāo)向左移位按鍵1光標(biāo)向左移位圖4.5LCD顯示定義及按鍵功能定義DDS信號發(fā)生器的控制程序可分為顯示函數(shù)和鍵盤效勞函數(shù)兩局部。在確定主程序和鍵盤中斷效勞程序的功能時(shí)有兩種方案:一種方案是主程序只完成初始化,將鍵盤讀入和處理全部由鍵盤中斷效勞程序中完成;另一種方案是主程序完成初始化和鍵值處理功能,而鍵盤中斷效勞程序只完成鍵值讀入。由于鍵值處理程序設(shè)計(jì)數(shù)值運(yùn)算、LCD模塊的顯示,將這些耗時(shí)的鍵值處理程序放入中斷效勞程序不符合程序設(shè)計(jì)的一般原那么,因此,選用第二種方案。主程序首先完成對液晶、中斷的初始化,STC12C5A60S2內(nèi)部資源初始化,LCD模塊初始化。初始化完成以后就不斷檢測有無按鍵鍵入,當(dāng)有按鍵鍵入時(shí),根據(jù)鍵值顯示相應(yīng)的波形和相關(guān)位的閃爍。單片機(jī)將4個(gè)字節(jié)頻率字發(fā)送到FPGA中;各種波形共用一個(gè)頻率字,單片機(jī)送四個(gè)字節(jié)到FPGA,F(xiàn)PGA把四個(gè)字節(jié)組合為32位的頻率字,送給DSPBuilder生成的模塊,該模塊需要頻率字和幅度字。由于輸入給定頻率的位數(shù)允許在1~8位變化,程序設(shè)計(jì)通過按修改位鍵來給定頻率的輸入。然后發(fā)送到FPGA的頻率控制字接收模塊。由于鍵盤輸入的給定頻率值為非壓縮型BCD碼,應(yīng)先將其轉(zhuǎn)化為二進(jìn)制數(shù),再根據(jù)公式〔2.5〕將給定頻率值轉(zhuǎn)化成為4字節(jié)的頻率控制字。當(dāng)相位累加器字寬N取32,參考時(shí)鐘頻率fclk取100MHz時(shí),頻率控制字可以由以下公式計(jì)算得到:〔4.4〕式子中fout為由二進(jìn)制數(shù)表示的給定頻率,乘上系數(shù)42.9496,就可以得到4字節(jié)的頻率控制字。頻率控制字由單片機(jī)產(chǎn)生,單片機(jī)根據(jù)頻率值計(jì)算出頻率字,直接發(fā)送給FPGA。寫頻率字函數(shù)見附錄A。4.5FPGA軟件和硬件設(shè)計(jì)4.5.1FPGA硬件設(shè)計(jì)FPGA硬件電路包括復(fù)位電路,時(shí)鐘電路,電源電路,下載電路,配置電路,其中電源電路和單片機(jī)公用一個(gè)電源。圖4.6復(fù)位電路和時(shí)鐘電路電路晶振采用50Mhz有源晶振,復(fù)位電路分為硬件復(fù)位和軟件復(fù)位,本電路采用硬件復(fù)位。電路如圖4.6。圖4.7AS_JTAGAS配置是指電路程序燒入EPCS中,當(dāng)電路通電時(shí),程序從EPCS中讀入到FPGA中實(shí)現(xiàn)配置FPGA的目的,在測試的時(shí)候電路是通過JTAG下載到FPGA中,配置片內(nèi)RAM實(shí)現(xiàn)編程。原理圖如4.7。圖4.8EPCS配置芯片該配置芯片相當(dāng)于儲(chǔ)存器,當(dāng)FPGA斷電后起到存儲(chǔ)電路配置的功能,當(dāng)FPGA上電后,F(xiàn)PGA從EPCS中把配置讀入FPGA中,EPCS有多種大小,有EPCS1、EPCS4、EPCS16等本次采用的是EPCS4。其原理圖如圖4.8。圖4.9JTAG下載端口JTAG下載端口是把電路下載到內(nèi)部RAM中,斷電后配置就消失了,每當(dāng)FPGA上電時(shí),都會(huì)從EPCS中讀取數(shù)據(jù)。內(nèi)部RAM只是暫時(shí)的連線。其原理圖如4.9。圖4.10FPGA核心供電根據(jù)FPGA的芯片使用手冊,F(xiàn)PGA采用兩種供電電壓,核心采用1.5V供電,外圍端口采用3.3V供電,圖4.10顯示了FPGA的所有電源接口。4.5.2FPGA軟件設(shè)計(jì)波形數(shù)據(jù)存儲(chǔ)器圖4.11MATLAB中ROM其中ROM中存放著波形數(shù)據(jù),為離散的點(diǎn)。正弦波波形數(shù)據(jù)為:127*sin([0:2*pi/(2^10):2*pi]);方波波形數(shù)據(jù):127*square([0:2*pi/(2^10):2*pi]);三角波波形數(shù)據(jù):127*sawtooth([0:2*pi/2^10:2*pi],0.5);鋸齒波波形數(shù)據(jù):127*sawtooth([0:2*pi/(2^10):2*pi]);產(chǎn)生的波形都是數(shù)據(jù)深度為1024字節(jié),寬度為8位?!?〕地址鎖存模塊STC12C5A60S2單片機(jī)P1口分時(shí)送出低8位地址和8位數(shù)據(jù)信息。通過FPGA內(nèi)部設(shè)計(jì)一個(gè)8位鎖存器即可獲取低8位地址。地址鎖存器的VHDL程序?yàn)椋簂ibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitymux4_1isport(d0,d1,d2,d3,d4:outstd_logic_vector(7downto0);..輸出32位數(shù)據(jù)a:instd_logic_vector(2downto0);..數(shù)據(jù)選擇端y:instd_logic_vector(7downto0));..數(shù)據(jù)輸入端endentitymux4_1;architectureoneofmux4_1isbeginprocess(a,y)begincaseaiswhen"000"=>d0<=y;--把第一次送的數(shù)據(jù)當(dāng)做32位的頻率字低8位when"001"=>d1<=y;--把第二次送的數(shù)據(jù)當(dāng)做32位的頻率字中間8位when"010"=>d2<=y;--把第三次送的數(shù)據(jù)當(dāng)做32位的頻率字中間8位when"011"=>d3<=y;--把第四次送的數(shù)據(jù)當(dāng)做32位的頻率字高8位when"100"=>d4<=y;--把第五次送的數(shù)據(jù)當(dāng)做8位的相位字8位whenothers=>null;endcase;endprocess;endarchitectureone;波形選擇設(shè)計(jì)波形選擇就是通過一個(gè)四位的計(jì)數(shù)器來選擇波形,計(jì)數(shù)器的計(jì)數(shù)信號接到按鍵上,通過按鍵來切換波形,比方正弦波,三角波等:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycount4bitisport(clk:instd_logic;..技術(shù)時(shí)鐘信號b:outstd_logic_vector(3downto0));--計(jì)數(shù)輸出端endcount4bit;architectureoneofcount4bitisbeginprocess(clk)variableqq:std_logic_vector(3downto0);beginifclk='1'andclk'eventthenif(qq="1001")then--五進(jìn)制循環(huán)計(jì)數(shù)qq:="0000";elseqq:=qq+1;endif;endif;b<=qq;endprocess;endarchitecture;相位累加器模塊的設(shè)計(jì)相位累加器是DDS子系統(tǒng)的核心,由32位加法器與32位累加存放器級聯(lián)構(gòu)成,對代表頻率大小的頻率控制字進(jìn)行累加運(yùn)算,輸出波形存儲(chǔ)器的地址。相位累加器的設(shè)計(jì)可以直接采用DSPBuilder中的模塊宏單元庫中的LMP_ADD_SUB宏單元,也可以用VHDL語言自行設(shè)計(jì)。以下就是采用Matlab實(shí)現(xiàn)的相位累加器,由32位加法器和32位存放器構(gòu)成:圖4.12頻率字接受模塊頂層圖頻率累加器采用32位加法器和32位的存放器構(gòu)成,其中的設(shè)計(jì)是在Matlab中完成。4.5.2MATLAB軟件設(shè)計(jì) 這次FPGA的軟件設(shè)計(jì)根本上都是由MATLAB來完成的,包括波形產(chǎn)生,波形的計(jì)算。MDL文件的生成,以及生成MDL文件后,通過matlab轉(zhuǎn)換成QuartusII工程,如果有現(xiàn)成的TCL腳本文件,那么在MatlabDSPBuilder環(huán)境下直接可以進(jìn)行下載操作。圖4.13MatlabSimulinkDSPBuilder工具第5章系統(tǒng)仿真本章第一步分主要介紹了系統(tǒng)測試的一些根本原來與方法。第二局部那么是對本系統(tǒng)進(jìn)行測試,主要觀察了輸出波形是否與所選波形對應(yīng),以及輸出頻率與給定頻率是否接近。該DDS信號發(fā)生器由于其設(shè)計(jì)穩(wěn)定性,電路合理性,根本完成設(shè)計(jì)要求指標(biāo)。5.1單片機(jī)軟件調(diào)試單片機(jī)軟件測試主要對產(chǎn)生的頻率字是否正確做個(gè)驗(yàn)證,送給單片機(jī)一個(gè)頻率值,單片機(jī)轉(zhuǎn)化為頻率字,單片機(jī)通過串口把頻率字發(fā)送到電腦端,對發(fā)送的頻率字做一個(gè)驗(yàn)證,即可得到頻率字是否正確,同時(shí)在按鍵的作用下,LCD顯示不同的波形和頻率,如果都顯示正確,那么單片機(jī)的測試工作就完成了。MatlabDSPBuilder仿真5.2.1DSPBuilder設(shè)計(jì)流程DSPBuilder是一個(gè)系統(tǒng)級(或算法級)設(shè)計(jì)工具,它架構(gòu)在多個(gè)軟件工具之上,并把系統(tǒng)級和RTL級兩個(gè)設(shè)計(jì)領(lǐng)域的設(shè)計(jì)工具連接起來,最大程度地發(fā)揮了兩種工具的優(yōu)勢。DSPBuilder依賴于MathWorks公司的數(shù)學(xué)分析工具M(jìn)atlab/Simulink,以Simulink的Blockset出現(xiàn),可以在Simulink中進(jìn)行圖形化設(shè)計(jì)和仿真,同時(shí)又通過SignalCompiler可以把Matlab/Simulink的設(shè)計(jì)文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描述語言VHDL設(shè)計(jì)文件(.vhd),以及用于控制綜合與編譯的TCL腳本。而對后者的處理可以由FPGA/CPLD開發(fā)工具QuartusII來完成。由于在FPGA上設(shè)計(jì)一個(gè)DSP模塊的復(fù)雜性,設(shè)計(jì)的性能(包括面積、速度、可靠性、設(shè)計(jì)周期)對于不同的應(yīng)用目標(biāo)將有不同的要求,涉及的軟件工具也不僅僅是Simulink和QuartusII,DSPBuilder針對不同情況提供了兩套設(shè)計(jì)流程,即自動(dòng)流程和手動(dòng)流程。圖5.1是利用DSPBuilder進(jìn)行DSP設(shè)計(jì)的流程框圖。如圖5.1所示,DSPBuilder設(shè)計(jì)流程的第一步是在Matlab/Simulink中進(jìn)行設(shè)計(jì)輸入,即在Matlab的Simulink環(huán)境中建立一個(gè)mdl模型文件,用圖形方式調(diào)用AlteraDSPBuilder和其它Simulink庫中的圖形模塊(Block),構(gòu)成系統(tǒng)級或算法級設(shè)計(jì)框圖(或稱Simulink設(shè)計(jì)模型)。第二步是利用Simulink強(qiáng)大的圖形化仿真、分析功能,分析此設(shè)計(jì)模型的正確性,完成模型仿真。在這兩步中,與一般的MatlabSimulink建模過程幾乎沒有什么區(qū)別,所不同的是設(shè)計(jì)模型庫采用AlteraDSPBuilder的Simulink庫,也不涉及到其它EDA軟件,沒有自動(dòng)流程和手動(dòng)流程的區(qū)別。第三步是DSPBuilder設(shè)計(jì)實(shí)現(xiàn)的關(guān)鍵一步,通過SignalCompiler把Simulink的模型文件(后綴為.mdl)轉(zhuǎn)化成通用的硬件描述語言VHDL文件(后綴為.vhd)。由于EDA工具軟件(諸如QuartusII、ModelSim)不能直接處理Matlab的.mdl文件,這就需要一個(gè)轉(zhuǎn)換過程。轉(zhuǎn)換獲得的HDL文件是基于RTL級(存放器傳輸級)的VHDL描述 圖5.1DSPBuilder設(shè)計(jì)流程再接下來的幾個(gè)步驟是對以上設(shè)計(jì)產(chǎn)生的VHDL的RTL代碼和仿真文件進(jìn)行綜合、編譯適配以及仿真。為了針對不同用戶的設(shè)計(jì)目的和設(shè)計(jì)要求,DSPBuilder提供了兩種不同的設(shè)計(jì)流程,主要可以分為自動(dòng)流程和手動(dòng)流程。如果采用DSPBuilder的自動(dòng)流程,幾乎可以忽略硬件的具體實(shí)現(xiàn)過程,可以選擇讓DSPBuilder自動(dòng)調(diào)用QuartusII等EDA設(shè)計(jì)軟件,完成綜合(Synthesis)、網(wǎng)表(ATOMNetlist)生成和QuartusII適配,甚至在Matlab中完成FPGA的配置下載過程。如果希望使用其它第三方的VHDL綜合器和仿真器(除Synplify、LeonardoSpectrum和QuartusII綜合器及ModelSim外),或是希望完成特定的適配設(shè)置,如邏輯鎖定、時(shí)序驅(qū)動(dòng)編譯、ESB特定功能應(yīng)用等,可以選用手動(dòng)流程設(shè)計(jì)。在手動(dòng)流程中,設(shè)計(jì)者可以靈活地指定綜合、適配條件。不過,需要手動(dòng)地調(diào)用VHDL綜合器進(jìn)行綜合,調(diào)用QuartusII進(jìn)行適配,調(diào)用ModelSim或者QuartusII進(jìn)行仿真,最后用QuartusII產(chǎn)生相應(yīng)的編程文件用于FPGA的配置。采用手動(dòng)流程時(shí),除了行為級仿真驗(yàn)證和設(shè)計(jì)輸入外,其它過程與標(biāo)準(zhǔn)的基于VHDL的EDA設(shè)計(jì)流程是完全一致的。由上一步DSPBuilder設(shè)計(jì)流程得到VHDL文件(由Simulink模型文件*.mdl通過SignalCompilder轉(zhuǎn)換而成),送入綜合器進(jìn)行綜合。綜合器可以是SynplifyPro,也可以是LeonardoSpectrum,或者采用Altera自己的QuartusII。在綜合時(shí),可能需要對綜合器進(jìn)行配置或者提供綜合的約束條件。由于這個(gè)過程操作可能比擬繁瑣,所以DSPBuilder的SignalCompiler相應(yīng)提供了一個(gè)接口,針對設(shè)計(jì),自動(dòng)產(chǎn)生一個(gè)TCL腳本與綜合器Synplify或者LeonardoSpectrum相接。綜合器在綜合操作后會(huì)產(chǎn)生一個(gè)網(wǎng)表文件,以供下一個(gè)流程使用。這里產(chǎn)生的網(wǎng)表文件稱為ATOM網(wǎng)表文件(如圖3.1所示),主要是EDIF網(wǎng)表文件(.edf電子設(shè)計(jì)交換格式文件)或VQM(.vqmVerilogQuartusMappingFile),它們是一種參數(shù)可設(shè)置的,并含有具體器件系列硬件特征(如邏輯宏單元LCs、I/O單元、乘積項(xiàng)、嵌入式系統(tǒng)塊ESB等)的網(wǎng)表文件。QuartusII可以利用這些ATOM網(wǎng)表文件針對選定的具體器件進(jìn)行適配,包括布線、布局、結(jié)構(gòu)優(yōu)化等操作,最后產(chǎn)生時(shí)序仿真文件和FPGA目標(biāo)器件的編程與配置文件。在這一步,設(shè)計(jì)者可以在QuartusII中完成對Pin(引腳)的鎖定,更改一些約束條件。如果用DSPBuilder產(chǎn)生的DSP模型只是龐大設(shè)計(jì)中的一個(gè)子模塊,那么可以在設(shè)計(jì)中調(diào)用DSPBuilder產(chǎn)生的VHDL文件,以構(gòu)成完整的設(shè)計(jì)。同時(shí),一樣可以使用QuartusII強(qiáng)大的LogicLock功能和SignalTap測試技術(shù)。在DSPBuilder設(shè)計(jì)流程的最后一步,可以在DSPBuilder中直接下載到FPGA用戶開發(fā)板上,或者通過QuartusII完成硬件的下載、測試。5.2.2MATLAB仿真結(jié)果用Matlab平臺DSPBuilder工具箱進(jìn)行仿真正弦波信號、方波信號、三角波信號、鋸齒波信號、FSK、ASK、AM、FM等信號,測試載波為頻率為1MHz時(shí)候輸出結(jié)果如圖5.1-5.9所示。圖5.2正弦波仿真波形圖5.3方波仿真波形圖5.4鋸齒波仿真波形圖5.5三角波仿真波形以上四種波形測試頻率均在1Mhz的情況下仿真得到圖5.6FSK仿真波形圖5.7PSK仿真波形圖5.8ASK仿真波5.9FM仿真波圖5.10AM仿真波第6章系統(tǒng)測試本章重點(diǎn)介紹硬件的焊接與測試,以及對波形的頻率和種類做測試。6.1硬件焊接與測試元器件買好后,接著進(jìn)行焊接,首先焊接的是FPGA芯片,然后晶振,復(fù)位,配置電路,下載電路,電源穩(wěn)壓芯片,單片機(jī)最小系統(tǒng);焊接完成后,通電測試,先測試的是FPGA的功能,下載正常,然后測試單片機(jī)的下載功能,程序下載后,液晶正常顯示。軟件3D效果和硬件焊接效果如圖6.1和6.2.圖6.1AltiumDesign103D效果圖圖6.2硬件焊接測試效果6.2測試波形頻率用鍵盤輸入頻率值,測試輸出信號的頻率值。表6.1所示為DDS信號發(fā)生器表6.1實(shí)測頻率與給定頻率對照表。給定頻率/Hz實(shí)測頻率/Hz正弦波方波三角波鋸齒波1010.0210.0210.0210.02100100.1100.1100.1100.11k1.002k1.002k1.002k1.002k10k10.03k10.03k10.03k10.03k100k100.2k100.2k100.2k100.2k500k500.8k500.8k500.8k500.8k800k799.4k799.4k799.4k799.4k1M1.002M1.002M1.002M1.002M3M3.005M3.005M3.005M3.005M5M5.01M5.01M5.01M5.01M6.3波形測試種類圖6.3正弦波圖6.4方波圖6.5鋸齒波圖6.6三角波圖6.7AM調(diào)制圖6.8FSK調(diào)制圖6.9ASK調(diào)制總結(jié)本文結(jié)合DDS波形發(fā)生器的設(shè)計(jì)和實(shí)現(xiàn),從理論和實(shí)際兩個(gè)方面,對數(shù)字直接頻率合成技術(shù)進(jìn)行了研究。經(jīng)過研究,完成了預(yù)定的設(shè)計(jì)任務(wù),在對DDS波形發(fā)生器的研究中,完成了軟件程序的設(shè)計(jì)包括單片機(jī)主程序以及初始化程序的設(shè)計(jì);分析了頻率合成技術(shù)的根本問題,并重點(diǎn)介紹了直接數(shù)字頻率合成技術(shù);研究了基于DDS原理利用FPGA的具體實(shí)現(xiàn)波形發(fā)生器的設(shè)計(jì)方法,完成了DDS頂層原理圖的設(shè)計(jì)。本設(shè)計(jì)完成了預(yù)定的所有功能,但由于時(shí)間倉促,本設(shè)計(jì)還有許多需要完善和改良的地方。本設(shè)計(jì)中能方便用戶控制的波形種類有限,對于任意波形的輸入控制,可利用現(xiàn)有的FPGA中的ROM資源來存儲(chǔ)波形周期數(shù)據(jù),另外還可利用內(nèi)部資源來創(chuàng)立RAM來存儲(chǔ)波形,,并且借助編程語言編寫軟件,來實(shí)現(xiàn)任意波形的周期數(shù)據(jù)送入FPGA。此外,系統(tǒng)未能實(shí)現(xiàn)對信號幅值和直流偏移量得可數(shù)控調(diào)節(jié),這也是設(shè)計(jì)的缺乏之處。所以,本設(shè)計(jì)的各項(xiàng)功能指標(biāo)還有待完善。參考文獻(xiàn)第五屆全國大學(xué)生電子設(shè)計(jì)競賽獲獎(jiǎng)[M],北京理工大學(xué)出版社,2001:132-138陳明義主編,電子技術(shù)課程設(shè)計(jì)實(shí)用教程[N],中南大學(xué)出版社,2001:64-75.潘松、黃繼業(yè)編著,EDA技術(shù)實(shí)用教程[J],科學(xué)出版社,2002:321-346胡宴如主編,胡宴如、耿蘇燕編寫,模擬電子技術(shù)根底[M],北京:高等教育出版社,1993:103-114孫江宏、李良玉編著,Protel99電路設(shè)計(jì)與應(yīng)用[N],機(jī)械工業(yè)出版社,2001:79-86劉守義主編,楊宏麗、王靜霞副主編,單片機(jī)應(yīng)用技術(shù)[N],西安電子科技大學(xué)出版社,2002:87-92何小艇主編,電子系統(tǒng)設(shè)計(jì)[J],浙江大學(xué)出版社,2000,6楊桔祥,高禮忠,詹宏英.電子測量技術(shù)根底[M].南京.東南大學(xué)出版社,2004周登榮.任意波形發(fā)牛器的電路設(shè)計(jì)與實(shí)現(xiàn)[D].成都.電子科技大學(xué).2007張永瑞,劉振起,楊林耀.電子測量技術(shù)根底[M].西安.西安電子科技大學(xué)出版社.2003許開華.DDS任意波形發(fā)生器波形數(shù)據(jù)生成[D].成都,電子科技大學(xué).2007王新柳.基于DSP的任意波形發(fā)生器的設(shè)計(jì)[D].成都,電子科技大學(xué).2007潘志浪.基于FPGA的DDS信號源的設(shè)計(jì)[D].武漢.武漢理工大學(xué).2007致謝四年的大學(xué)生活很快就要結(jié)束了,在四年當(dāng)中我取得的所有成績和收獲都離不開那些曾經(jīng)給予我指導(dǎo)和幫助的人們。在此,謹(jǐn)向所有關(guān)心我學(xué)業(yè)的老師、同學(xué)、家人和朋友表示衷心的感謝。此外,我要特別感謝我的指導(dǎo)教師梁成武老師,感謝梁老師對我的細(xì)心指導(dǎo),梁老師的熱情幫助和耐心指導(dǎo)是本次設(shè)計(jì)得以順利完成的根底,梁老師不僅以他淵博的學(xué)識、敏銳超前的學(xué)術(shù)意識使我在學(xué)術(shù)方面受益匪淺,而且,他謙遜待人、嚴(yán)謹(jǐn)治學(xué)的作風(fēng)以及對工作認(rèn)真負(fù)責(zé)的態(tài)度還給我樹立了做人的典范。附錄A/*FPGA頻率字寫入函數(shù)*/#include<REGX51.H>#include"1602.h"#include"delay.h"#include<stdio.h>#include<intrins.h>#include<math.h>unsignedcharKeyScan(void);sbitdata0=P2^0;sbitdata1=P2^1; #defineKeyPortP3//P1為8位數(shù)據(jù)口intset=0;//unsignedlongintF=1000;unsignedlongintF=10000;//unsignedcharAA=100;unsignedlongintK;//chardisplaytemp[8]={0},num;chartemp[16];unsignedcharwave=0;//頻率字共用體union{unsignedlongintK;unsignedcharDATA[4];}a;/*寫入FPGA頻率字*/ voiddds_wr_data(unsignedlongintfreq){a.K=(unsignedlongint)(freq*42.94967295); data1=0; data0=0;P1=a.DATA[3]; //送低位8位數(shù)據(jù) DelayMs(10); data1=0; data0=1; P1=a.DATA[2]; DelayMs(10); data1=1; data0=0; P1=a.DATA[1]; DelayMs(10); // 頻率字的高八位 data1=1; data0=1; P1=a.DATA[0]; }/*display函數(shù)*/voiddisplay(){ sprintf(temp,"FREQ=%08ldHz",F); LCD_Write_String(0,0,temp);//顯示第一行 KeyScan(); if(set!=0) LCD_Write_Com(0x0f);//顯示開關(guān) else LCD_Write_Com(0x0c); switch(set)//LCD根據(jù)工作

溫馨提示

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

最新文檔

評論

0/150

提交評論