




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一章 緒論1.1 研究容與意義 高精度的信號源對通信系統(tǒng)、電子對抗以與各種電子測量技術(shù)十分重要。隨著電子技術(shù)的發(fā)展,對信號源頻率的準確度、穩(wěn)定度,以與頻譜純度等方面要求越來越高。傳統(tǒng)的信號發(fā)生器由于波形精度低,頻率穩(wěn)定性差等缺點,已經(jīng)不能滿足許多實際應用的需要。本系統(tǒng)設(shè)計的函數(shù)發(fā)生器是以可編程邏輯器件CPLD為核心,采用直接頻率合成技術(shù),通過數(shù)模轉(zhuǎn)換電路,構(gòu)成一個精度較高,波形穩(wěn)定的函數(shù)信號發(fā)生器。較傳統(tǒng)的頻率合成技術(shù)相比,直接頻率合成技術(shù)(Direct Digital Synthesis,簡稱DDS),具有頻率分辨率高、頻率轉(zhuǎn)變速度快、輸出相位連續(xù)、相位噪聲低、可編程和全數(shù)字化、便于集成等
2、突出優(yōu)點,使其得到越來越廣泛的應用,成為眾多電子系統(tǒng)中不可缺少的組成部分。在現(xiàn)代電子技術(shù)中,信號源在各種實驗應用和實驗測試處理中應用非常廣泛作,為激勵源,仿真各種測試信號。本文根據(jù)信號波形的產(chǎn)生特點,采用基于 CPLD/FPGA 的 VHDL 硬件描述語言,仿真實現(xiàn)了多波形發(fā)生器的設(shè)計。仿真結(jié)果輸出較高精度、穩(wěn)定的波形信號,可以滿足測量或各種實際需要,方便、簡易實用。1.2 國外研究概況傳統(tǒng)的波形發(fā)生器多采用模擬電路或單片機或?qū)S眯酒?,由于成本高或控制方式不靈活或波形種類少不能滿足實際需求。目前市場上的數(shù)字信號發(fā)生器主要采用直接數(shù)字合成技術(shù),這種波形發(fā)生器不僅可以產(chǎn)生可變頻的載頻信號、各種調(diào)制
3、信號,同時還能和計算機配合產(chǎn)生用戶自定義的有限帶寬的任意信號,可以為多領(lǐng)域的測試提供寬帶寬、高分辨率的測試信號。從目前發(fā)展狀況來看,國外數(shù)字信號發(fā)生器的研制和生產(chǎn)技術(shù)已經(jīng)較為成熟。國市場上的波形發(fā)生器,其電路形式有采用運放與分立元件構(gòu)成;也有采用單片集成的函數(shù)發(fā)生器,而在現(xiàn)代電子系統(tǒng)設(shè)計中, DDS技術(shù)發(fā)展迅速,由于其易于單片集成,積小,價格低,功耗小,因此其應用也越來越廣泛。并且在相對帶寬、頻率轉(zhuǎn)換時間、高分辨力、相位連續(xù)性、正交輸出以與集成化等一系列性能指標方面遠遠超過了傳統(tǒng)頻率合成技術(shù)所能達到的水平,為系統(tǒng)提供了優(yōu)于模擬信號源的性能。1.3 本文主要容本文的設(shè)計主要基于可編程邏輯器件CP
4、LD設(shè)計多波形信號發(fā)生器,由VHDL編程實現(xiàn),并通過外圍數(shù)模轉(zhuǎn)換電路,完成函數(shù)信號發(fā)生器的設(shè)計,最后對整個波形發(fā)生器進行調(diào)試仿真。第一章為對多波形信號發(fā)生器的研究容與發(fā)展的綜合概述。第二章為系統(tǒng)設(shè)計平臺介紹、系統(tǒng)設(shè)計方式與原理框圖概述。第三章為硬件設(shè)計與外圍電路方案介紹。第四章為系統(tǒng)的軟件設(shè)計與各模塊的具體功能介紹。第五章介紹了系統(tǒng)調(diào)試過程、解決問題與調(diào)試仿真結(jié)果。第六章是為本次設(shè)計作綜合總結(jié)。第二章 系統(tǒng)概述2.1 系統(tǒng)設(shè)計平臺介紹EDA(Electronic Design Automation)技術(shù)作為現(xiàn)代電子設(shè)計技術(shù)的核心,它依賴功能強大的計算機,在EDA工具軟件平臺上,對以硬件描述語言
5、HDL(Hardware Description Language)為系統(tǒng)邏輯描述手段完成的設(shè)計文件,自動完成邏輯化簡、邏輯分割、邏輯綜合、結(jié)構(gòu)綜合(布局布線),以與邏輯優(yōu)化和仿真測試等項功能,直至實現(xiàn)既定性能的電子線路系統(tǒng)功能。本系統(tǒng)通過可編程邏輯器件CPLD設(shè)計,其特點是直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測試和實現(xiàn)快捷,開發(fā)效率高,成本低,工作可靠性好等,CPLD器件的設(shè)計可分為設(shè)計輸入,設(shè)計實現(xiàn)和器件編程三個步驟與相應的功能仿真,時序仿真和器件功能測試三個驗證過程。可編程邏輯器件CPLD設(shè)計流程如圖2.1所示:圖2.1 可編程邏輯器件設(shè)計流程圖如圖2.1所示,設(shè)計輸入
6、可分為兩種類型,圖形輸入和HDL文本輸入,常用的有原理圖輸入和應用硬件描述語言設(shè)計輸入,在下載之前,通過軟件進行綜合和仿真,這種設(shè)計方法可以節(jié)約設(shè)計周期,設(shè)計靈活性,成本低。由于其可編程特性,可以通過軟件對系統(tǒng)功能進行修改,易于更改和開發(fā)。在硬件描述語言方面,本系統(tǒng)采用了VHDL硬件描述語言, VHDL全名是VHSIC(Very High Speed Integrated Circuit) Hardware Description Language是EDA技術(shù)的重要組成部分,由美國國防部發(fā)起創(chuàng)建,由IEEE (The Institute of Electrical and Electronic
7、s Engineers)進一步發(fā)展并發(fā)布,是硬件描述語言的業(yè)界標準之一。VHDL具有與具體硬件電路無關(guān)和與設(shè)計平臺無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力。相比其他硬件描述語言,VHDL 的優(yōu)勢表現(xiàn)在以下幾點:(1) VHDL對設(shè)計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實現(xiàn)的目標器件是什么,而進行獨立的設(shè)計。(2) VHDL采用類似高級語言的語句格式完成對硬件行為的描述,具備更強的模塊化能力,并擁有良好的可讀性以與程序的移植性。(3) VHDL具有多層次的設(shè)計描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或
8、結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。本次設(shè)計是基于Quartus II軟件設(shè)計的,Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以與AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式,嵌自有的綜合器以與仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。圖2.2 Quartus II設(shè)計流程圖圖2.2上排所示的是Quartus II編譯設(shè)計的主控界面,它顯示了Quartus II自動設(shè)計的各主要處理環(huán)節(jié)和設(shè)計流程,包括設(shè)計輸入編輯、設(shè)計分析與綜合、適配、編程文件
9、匯編、時序參數(shù)提取以與編程下載幾個步驟。圖2.2下排的流程框圖,是與上面的Quartus II設(shè)計流程相對照的標準的EDA開發(fā)流程。2.2 信號發(fā)生器設(shè)計方式介紹Direct Digital Synthesis(DDS)是20世紀60年代末出現(xiàn)的第三代頻率合成技術(shù)。用DDS技術(shù)來設(shè)計制作一個基于CPLD的三相多波形函數(shù)發(fā)生器,并使它能輸出正弦波、三角波、方波等波形信號源,三種波形的相位差為120。信號發(fā)生器中的CPLD芯片是DDS的控制與數(shù)據(jù)處理的核心,電路系統(tǒng)主要由數(shù)控分頻、尋址計數(shù)器、模360加法器、波形數(shù)據(jù)儲存ROM和外圍DAC轉(zhuǎn)換電路組成。波形數(shù)據(jù)產(chǎn)生器由數(shù)控分頻、尋址計數(shù)器、正弦RO
10、M、方波三角波ROM構(gòu)成。在時鐘信號發(fā)生器作用下,根據(jù)輸入數(shù)據(jù)不同產(chǎn)生不同的分頻比,數(shù)控分頻生成相應頻率的時鐘信號作為尋址計數(shù)器的輸入時鐘,產(chǎn)生對ROM進行尋址的地址,輸出波形數(shù)據(jù)后,再由DAC電路數(shù)模轉(zhuǎn)換處理后輸出最終所需要的波形信號。本系統(tǒng)采用Quartus II開發(fā)平臺,VHDL語言編程實現(xiàn)。方波和三角波波形ROM模塊利用邏輯單元實現(xiàn)ROM設(shè)計,由于正弦查找表較為復雜,用邏輯單元實現(xiàn)數(shù)據(jù)較多,所以正弦ROM采用LPM_ROM定制,完成外圍電路的焊接之后,通過Quartus II把編寫完的程序燒錄入CPLD芯片,再通過示波器對整個波形發(fā)生器進行調(diào)試,使其達到預期的效果。2.3 系統(tǒng)原理框圖
11、介紹根據(jù)設(shè)計要求,多波形信號發(fā)生器由3部分組成,即時鐘信號發(fā)生器、波形數(shù)據(jù)產(chǎn)生器和D/A轉(zhuǎn)換電路。晶體振蕩器產(chǎn)生穩(wěn)定度很高的時鐘信號,在時鐘信號的作用下,波形數(shù)據(jù)產(chǎn)生器生成頻率可變的波形數(shù)據(jù)數(shù)字信號,經(jīng)數(shù)模轉(zhuǎn)換電路最終輸出所需波形信號。幅度的調(diào)節(jié)可通過改變D/A轉(zhuǎn)換芯片電阻網(wǎng)絡的基準電壓實現(xiàn)?;贑PLD的波形數(shù)據(jù)產(chǎn)生器系統(tǒng)模塊如圖2.3所示。圖2.3 波形數(shù)據(jù)系統(tǒng)框圖圖中DFR為數(shù)控分頻器,根據(jù)儀器面板4位數(shù)字量開關(guān)產(chǎn)生的預置數(shù)據(jù)D輸出不同頻率的時鐘,以改變輸出信號的頻率。XunZhi根據(jù)輸入的始終產(chǎn)生計數(shù)地址,在時鐘的作用下,ROM,SIN_ROM模塊分別產(chǎn)生方波和三角波、正弦波的波形數(shù)據(jù)
12、,再通過m360模塊將地址進行移相處理,可輸出不同相位的波形,m21(數(shù)據(jù)選擇器)在面板上的波形選擇開關(guān)sel的控制下,選擇輸出不同的波形數(shù)據(jù),送至D/A轉(zhuǎn)換電路。D/A轉(zhuǎn)換采用8位的DAC0832芯片。第三章 硬件與外圍電路設(shè)計3.1 CPLD與芯片介紹CPLD復雜可編程邏輯器件,是從PAL和GAL器件發(fā)展出來的器件,相對而言規(guī)模大,結(jié)構(gòu)復雜,屬于大規(guī)模集成電路圍。是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。通過借助集成開發(fā)軟件平臺進行基本的設(shè)計,用原理圖、硬件描述語言等方法,生成相應的目標文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng)。CPLD編
13、程技術(shù)采用電可擦除儲存單元的E2PROM或Flash Memory技術(shù),CPLD被編程后改變了電可擦除儲存單元中的信息,掉電后可保存。由于部采用固定長度的金屬線進行各邏輯塊的互連,所以設(shè)計的邏輯電路具有時間可預測性,避免了分段式互連結(jié)構(gòu)時序不完全預測的缺點。本次設(shè)計采用Altera公司的ACEX1K系列EP1K10TC100-3,其典型邏輯門數(shù)(包括邏輯門和RAM)為10000門,最大可用系統(tǒng)門數(shù)為56000門,邏輯單元(Logic elements)為576個,邏輯陣列模塊(Logic array blocks)為36個,嵌入式陣列模塊(Embedded array blocks)為3個,R
14、AM總?cè)萘繛?2288字節(jié),EP1K10TC100-3具有100個管腳,除電源引腳、地線引腳、全局控制引腳和JTAG引腳外,共提供了66個可用I/O腳,這些引腳可以任意配置為輸入、輸出和雙向方式,芯片的工作電壓為+5V。通常情況下在硬件調(diào)試的過程中一般使用下載電纜進行下載,而當調(diào)試完成以后要用配置芯片對FPGA進行配置。配置芯片在每次系統(tǒng)上電以后自動將配置文件加載到FPGA中形成電路。3.2 硬件總體方案介紹由于模擬電路復雜程度較高,而且在檢查電路的時候會有很大的工作量,且可調(diào)性差。并且電路帶來的高頻干擾也會更大,影響波形效果。而單片機電路確定方案后不易更改硬件電路,可變性不高,功能修改完善不
15、方便,所以本次設(shè)計除了采用CPLD設(shè)計電路,由于其可編程特性,在設(shè)計調(diào)試時可以不斷改變電路硬件的邏輯關(guān)系,而不必改變系統(tǒng)的硬件結(jié)構(gòu),縮短了設(shè)計周期,提高了設(shè)計效率。在完成模塊程序編譯仿真后,通過USB-Blaster編程器將系統(tǒng)配置文件下載入CPLD芯片,分別將數(shù)控分頻輸入、波形選擇控制輸入以與波形數(shù)據(jù)輸出連接CPLD主控芯片。圖3.1是本次設(shè)計的基本硬件框圖:圖3.1 系統(tǒng)基本硬件電路外部輸入通過四位撥碼開關(guān)控制分頻倍數(shù),可對頻率進行調(diào)節(jié),在通過兩位撥碼開關(guān)控制波形選擇,系統(tǒng)時鐘信號由開發(fā)箱上提供,八位波形數(shù)據(jù)輸出接試驗箱的DAC轉(zhuǎn)換模塊,由于示波器只有兩路輸入,所以需要再設(shè)計一個D/A轉(zhuǎn)換
16、電路將兩種相位的波形進行比較。3.3 CPLD與外圍電路設(shè)計3.3.1 CPLD主控電路設(shè)計本次設(shè)計主控電路設(shè)計基于百科融創(chuàng)EDA教學開發(fā)平臺,CPLD芯片為Altera公司的EP1K10TC100-3,共100個管腳,提供66個 可用I/O腳,系統(tǒng)包括控制輸入與波形數(shù)據(jù)輸出,共使用23個I/O腳,圖3.2為CPLD主控芯片管腳分配圖。圖3.2 CPLD主控芯片I/O6、I/O7腳為波形控制開關(guān),I/O9引腳為外部時鐘輸入口,I/O71、I/O70、I/O69、I/O68為數(shù)控分頻外部控制端口,I/O20I/O23、I/O26I/O28、I/O30腳為初始相位八位波形數(shù)據(jù)輸出端;I/O31I/
17、O34、I/O45I/O48為移向后的波形數(shù)據(jù)輸出端,波形數(shù)據(jù)輸出接DAC模塊的八位數(shù)據(jù)輸入,通過示波器觀察輸出波形信號。3.3.2 DAC數(shù)模轉(zhuǎn)換模塊設(shè)計由于從波形ROM中讀出的波形數(shù)據(jù)還只是一個數(shù)字信號,要得到最后的輸出信號必須經(jīng)過數(shù)模轉(zhuǎn)換器。因此在波形ROM輸出之后要設(shè)計一個D/A轉(zhuǎn)換電路。本次設(shè)計采用DAC0832來實現(xiàn)D/A轉(zhuǎn)換,DAC0832是雙列直插式8位D/A轉(zhuǎn)換器,能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。由于其價格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應用系統(tǒng)中得到廣泛的應用。數(shù)模(D/A)轉(zhuǎn)換電路的作用是把已經(jīng)合成的波形幅值的數(shù)字量轉(zhuǎn)換成模擬量,其速度和特性直接影
18、響整個系統(tǒng)的性能。D/A轉(zhuǎn)換器件的首要特性要高速,其次是轉(zhuǎn)換位數(shù),本設(shè)計中選用8位的D/A芯片DAC0832。波形幅度量化序列經(jīng)D/A轉(zhuǎn)換后成為階梯波。D/A的輸出用電壓形式表示一般應為:(式3.1)式中D為D/A的輸入數(shù)據(jù)值,N為D/AC的位數(shù),即通常所指的D/AC的分辨率,為輸入D/A的參考電壓。DAC0832對信號進行數(shù)模轉(zhuǎn)換后,將數(shù)字信號恢復為模擬信號,再由UA741構(gòu)成的放大電路進行放大處理,完善波形信號,使波形能夠達到標準效果。外圍DAC電路原理圖如圖3.3所示:圖3.3 DAC0832外圍電路設(shè)計在DAC外圍電路中,UA741接+12V、-12V電源,DAC0832接5V電源,在
19、電源接口處接一電容,起濾除雜波作用,在信號輸出加入了濾波電路,接入示波器,得到穩(wěn)定的波形信號。第四章 軟件程序設(shè)計程序部分基于Quartus II 通過VHDL語言實現(xiàn)。系統(tǒng)采用自頂向下設(shè)計原則,先完成各個子模塊仿真設(shè)計,綜合編譯后,通過軟件生成圖元文件,再設(shè)計系統(tǒng)頂層原圖,將各個模塊連接,最后進行系統(tǒng)總體仿真。4.1 系統(tǒng)流程設(shè)計本次設(shè)計主要包括數(shù)控分頻模塊、尋址計數(shù)模塊、360°移相模塊、波形ROM儲存模塊、波形選擇模塊等,系統(tǒng)總體設(shè)計流程圖如下圖4.1所示:圖4.1 系統(tǒng)設(shè)計流程圖波形ROM 模塊針對不同的波形信號,通過不同的方式設(shè)計ROM模塊,像三角波方波這樣波形簡單變化緩慢
20、的波形,通過邏輯單元實現(xiàn)ROM設(shè)計,而對于正弦波這樣的波形,查找表比較復雜,波形數(shù)據(jù)較大,所以利用了LPM_ROM定制法設(shè)計正弦波的存儲ROM,最后再通過波形選擇輸出波形數(shù)據(jù)。4.2 子模塊的設(shè)計4.2.1 數(shù)控分頻器數(shù)控分頻器的功能是在輸入端輸入不同數(shù)據(jù)時,對輸入時鐘產(chǎn)生不同的分頻比,輸出不同頻率的時鐘,以改變輸出信號的頻率。本設(shè)計中利用并行預置數(shù)的減法計數(shù)器實現(xiàn),他的工作原理是:減法計數(shù)器在并行預置數(shù)的基礎(chǔ)上,在時鐘的作用下進行減計數(shù),當計數(shù)值為零時產(chǎn)生溢出信號,加載預置數(shù)據(jù),并且將溢出信號作為分頻器的輸出信號,實現(xiàn)N分頻信號輸出。其分頻系數(shù)N為 (式4.1)D為預置數(shù)的值。為了得到占空比
21、為50%的矩形時鐘信號,將輸出再進行二分頻。由此,該分頻器的總分頻系數(shù)為2N。本設(shè)計中一個波形周期由64個時鐘信號組成,則輸出信號頻率為: (式4.2)時鐘頻率為24 MHz。數(shù)控分頻器模塊如圖4.2所示:圖 4.2 數(shù)控分頻器模塊略去聲明部分,數(shù)控分頻器的核心程序如下所示:architecture one of kongzhi is signal full:std_logic; -定義部溢出標識 signal temp:std_logic_vector(1 downto 0);beginp1:process(clk) -N+1分頻進程 variablet9:integer range 0 t
22、o 31;begin if (clk'event and clk='1')then -上升沿檢測 if(cnt9=0)thencnt9:=d; -重新加載預置數(shù)Dfull<='1' -計數(shù)值為零時,產(chǎn)生溢出信號elset9:=cnt9-1; -否則,進行減一計數(shù)操作full<='0'end if;end if;end process;p2:process(full) -二分頻進程beginif(full'event and full='1')then -上升沿檢測if(temp="11&quo
23、t;)then -二位二進制計數(shù),最低位每個時鐘temp<="00" -翻轉(zhuǎn)一次,由此實現(xiàn)二分頻else temp<=temp+1; -計數(shù)值加一end if;end if;end process;fout<=not temp(0); -選擇二分頻輸出end one;通過Quartus II仿真結(jié)果如下圖4.3所示:圖4.3 數(shù)控分頻器仿真結(jié)果通過以上仿真結(jié)果,在分頻數(shù)據(jù)輸入端輸入“0011”,實現(xiàn)2(D+1)分頻,在時鐘信號輸出端fout,可以看到,該模塊完成了輸入時鐘8分頻,此模塊設(shè)計符合理論值。4.2.2 尋址計數(shù)器模塊尋址計數(shù)器主要用于產(chǎn)生對ROM
24、尋址輸出波形數(shù)據(jù)的尋址信號,尋址空間為512字節(jié),尋址計數(shù)器模塊圖元文件如圖4.4所示:圖4.4 尋址計數(shù)器模塊其核心程序如下:process(clk) variable count:std_logic_vector(8 downto 0);begin if (clk'event and clk='1')then-時鐘上升沿檢測 if(count<511)then-計數(shù)圍為512字節(jié) count:=count+1;-計數(shù)值加1 else count:=(others=>'0');-計數(shù)清零 end if; end if; address<
25、;=count;-輸出尋址信號end process;在Quartus II中仿真結(jié)果如圖4.5所示:圖4.5 計數(shù)地址仿真結(jié)果由于系統(tǒng)ROM尋址地址采用9位地址數(shù),所以尋址計數(shù)器通過時鐘CLK產(chǎn)生尋址空間為512字節(jié)的地址。由以上仿真結(jié)果看出,尋址計數(shù)模塊可以產(chǎn)生穩(wěn)定有效的尋址地址。4.2.3 模360加法器設(shè)計模360加法器用來產(chǎn)生120°的相移, 以形成三相相差為120°的輸出波形。由于尋址空間為512 字節(jié),所以在此模塊中地址每次加170,輸出尋址地址產(chǎn)生1/3的相位差,當輸出尋址數(shù)大于512 時,須對尋址地址進行取模處理,即超出設(shè)定值作減512處理。系統(tǒng)模360
26、加法器圖元模塊如圖4.6所示:圖4.6 尋址地址移相模塊地址移相模塊核心代碼如下所示:process(d) variable temp:std_logic_vector(7 downto 0); begin temp:=d+170; -相移120°if(temp<512)thendout<=temp; -將移相后的地址輸出else dout<=temp-512; -加法計滿后,對地址進行取模end if;end process;該模塊在Quartus II中的仿真結(jié)果下圖4.7所示:圖4.7 模360加法器仿真結(jié)果由仿真結(jié)果可知,尋址地址在通過模360加法器模塊后,
27、地址向后移1/3個尋址空間,仿真結(jié)果在理論值圍中。4.2.4 波形儲存ROM設(shè)計波形ROM模塊主要用于存儲各種波形數(shù)據(jù), 以便通過尋址計數(shù)器尋址輸出并經(jīng)D/ A轉(zhuǎn)換來輸出各種波形, 其中包括方波、三角波。在系統(tǒng)中,該模塊的圖元模塊如圖4.8所示:圖4.8 波形存儲模塊在模塊程序中,由于方波波形簡單,變化緩慢,波形產(chǎn)生通過每計數(shù)半個尋址空間一次翻轉(zhuǎn),形成方波,周期為一個尋址空間計數(shù)時間。process(address,sel)begin if(sel="00")then -波形控制選擇,輸出方波 if(address<256)then -當?shù)刂酚嫈?shù)至半個尋址空間,波形數(shù)
28、據(jù)值為data<=(others=>'1');else data<=(others=>'0'); -剩余計數(shù)空間,波形數(shù)據(jù)值為0end if;而三角波的產(chǎn)生程序,當檢測到地址處于前半個周期時,地址每作一次計數(shù),輸出數(shù)據(jù)進行加同一個數(shù)操作,當?shù)刂诽幱诤蟀雮€周期時,進行減同一個數(shù)操作。將一個尋址空間計數(shù)時間作為三角波的周期,程序采用前半個周期作加1操作,后半個周期作減1操作。三角波的邏輯發(fā)生程序如下:elsif(sel="01")then -波形選擇控制,輸出三角波 if(address<256)then -前半個周
29、期進行加1 data<=address(7 downto 0);else addresstemp<=512-address; -后半個周期作減1操作 data<=addresstemp(7 downto 0); -三角波波形數(shù)據(jù)輸出end if;對ROM模塊進行仿真,其仿真結(jié)果如下圖4.9、圖4.10所示:圖4.9 方波存儲ROM模塊仿真結(jié)果圖4.10 三角波存儲ROM模塊仿真結(jié)果由Quartus II中仿真結(jié)果可知,當方波尋址地址計數(shù)至一半時,輸出數(shù)據(jù)從0跳變值255,而再經(jīng)過半個尋址周期再從255跳至0,如此重復跳變;而選擇三角波輸出時,當每次地址加1的時候,輸出八位波形
30、數(shù)據(jù)開始計數(shù),從0加到1,然后每來一個地址就加一次,直到增到255,等下一個地址到輸出波形數(shù)據(jù)將從255減到254,然后每來一個地址就減一次,直到減到0,依次重復,輸出的波形數(shù)據(jù)經(jīng)過DAC0832數(shù)模轉(zhuǎn)換分別形成方波、三角波。4.2.5 LPM定制正弦波ROM模塊由于采用邏輯單元實現(xiàn)正弦波的波形ROM比較復雜,需要輸入正弦波形數(shù)據(jù)查找表,正弦波查找表取值樣點較多,所以系統(tǒng)中采用LPM_ROM來定制正弦ROM模塊。正弦ROM模塊圖元在系統(tǒng)中如圖4.11所示:圖4.11 LPM定制的正弦ROM模塊在通過LPM定制正弦ROM模塊之前,需要生產(chǎn)儲存器中波形數(shù)據(jù)的初始化文件,所謂儲存器的初始化文件就是可
31、調(diào)出存于RAM或ROM中的數(shù)據(jù)或程序文件代碼。在EDA設(shè)計中,通過EDA設(shè)計的存儲器中的代碼文件必須有EDA軟件在同一編譯時自動調(diào)入,所以此類代碼文件的類型,即初始化文件格式須滿足一定的要求,在Quartus II中接受兩種格式的初始化文件,(.mif)格式和(.hex)格式。生成MIF文件的方式有很多種,在此次設(shè)計中,正弦ROM初始化文件采用的是專用MIF文件生成器,MIF生成軟件Mif Maker 2010。打開軟件后,先對所需的MIF文件對應的波形參數(shù)進行設(shè)置,選擇“查看”后,在下拉菜單中選擇“全局參數(shù)設(shè)置”,設(shè)置正弦波參數(shù)數(shù)據(jù)長度為512,地址位寬為8位,初始相位為0度,其參數(shù)設(shè)置如圖
32、4.12所示。在設(shè)置完參數(shù)后,選擇“設(shè)定波形”,再選擇“正弦波”,如圖4.13所示,選擇文件名“sin_rom.mif”存盤。圖4.12 正弦波形參數(shù)設(shè)置圖4.13 正弦波采樣波形在完成存儲器初始化文件sin_rom.mif生成后,需要開始通過LPM對MIF文件調(diào)用,生成正弦波波形數(shù)據(jù)存儲ROM模塊。在原理圖編輯窗,存盤名為SIM_ROM1,創(chuàng)建工程后,單擊左下的MegaWizard Plug-InManager管理器按鈕,進入圖4.14的LPM模塊調(diào)用編輯:圖4.14 LPM模塊調(diào)用在完成LPM_ROM模塊命名后,設(shè)置ROM模塊的參數(shù)設(shè)置(圖4.15)和初始化文件的配置(圖4.16):圖4.
33、15 LPM_ROM參數(shù)設(shè)置圖4.16 加載初始化配置文件在LPM_ROM模塊定制是,加入通過軟件生成的初始化配置文件sin_rom.mif文件,通過對正弦LPM_ROM模塊的仿真,得到如圖4.17所示結(jié)果:圖4.17 LPM_ROM仿真測試在LPM_ROM的仿真波形圖中,隨著CLK上升沿的出現(xiàn),對應的波形數(shù)據(jù)輸出與MIF文件中的取樣數(shù)據(jù)完全吻合。即完成了正弦波波形數(shù)據(jù)輸出,LPM_ROM輸出通過數(shù)模轉(zhuǎn)換在示波器上顯示正弦波波形。4.2.6 二選一選擇輸出模塊本次設(shè)計中,由于正弦波形ROM模塊與方波、三角波波形ROM模塊分開設(shè)計,所以在波形數(shù)據(jù)輸出時需要通過一個數(shù)據(jù)選擇模塊來選擇輸出波形數(shù)據(jù),
34、通過DAC0832數(shù)模轉(zhuǎn)換,最后在示波器上顯示波形,其圖元如圖4.18所示:圖4.18 二選一波形選擇輸出模塊二選一數(shù)據(jù)選擇輸出主要程序如下:process(sel) -波形數(shù)據(jù)選擇信號檢測beginif(sel="10")then -當波形選擇“10”,選擇正弦波Q<=data2; -輸出正弦ROM中的波形數(shù)據(jù) elseQ<=data1; -否則輸出方波或者三角波波形數(shù)據(jù)end if;end process;最后通過軟件仿真,模塊仿真結(jié)果如圖4.19所示:圖4.19 波形數(shù)據(jù)選擇模塊仿真結(jié)果由仿真結(jié)果可以看出,當波形選擇信號輸入“10”選擇正弦波輸出時,二選一
35、數(shù)據(jù)選擇模塊輸出DATA2,即正弦波形ROM的數(shù)據(jù),該模塊測試正確。4.3各模塊總體仿真在完成各子模塊仿真后,創(chuàng)建頂層原理圖文件,根據(jù)系統(tǒng)方案將各模塊連接起來,尋址計數(shù)模塊在根據(jù)分頻后的時鐘信號產(chǎn)生尋址地址后,經(jīng)過波形存儲ROM模塊,最后通過DAC數(shù)模轉(zhuǎn)化外圍電路,在示波器中顯示波形。通過Quartus II對總體模塊進行仿真,其仿真原理圖如圖4.20所示:圖4.20波形發(fā)生器總模塊仿真圖對總模塊編譯仿真后,其仿真結(jié)果如圖4.21、4.22、4.23所示:圖4.21 方波波形數(shù)據(jù)輸出仿真結(jié)果圖4.22 正弦波波形數(shù)據(jù)輸出仿真結(jié)果圖4.23 三角波波形數(shù)據(jù)輸出仿真結(jié)果通過仿真結(jié)果可以看出,波形數(shù)
36、據(jù)特點以與相位變化 的仿真結(jié)果都符合要求,說明系統(tǒng)設(shè)計方案正確可行。第五章 系統(tǒng)調(diào)試在完成軟件部分的仿真設(shè)計后,并將外圍數(shù)模轉(zhuǎn)換電路的設(shè)計焊接工作完成,開始系統(tǒng)軟硬件聯(lián)合調(diào)試。將ROM中存儲的數(shù)據(jù)接入D/A模塊后,將DAC輸出端接上示波器,一開始示波器可以看到近似方波和鋸齒波的波形,正弦波的波形少了1/4,由于第一次調(diào)試是利用EDA試驗開發(fā)平臺的DAC轉(zhuǎn)換模塊,所以問題出現(xiàn)在DAC外圍電路的概率不大,然后就是軟件部分,在核對完各模塊的程序部分后,初步認為應該是存儲器ROM的初始化文件參數(shù)沒有設(shè)置好。在重新更改正弦波的波形采樣參數(shù)后,接入系統(tǒng)中進行調(diào)試,但是效果并不很明顯,出現(xiàn)的是方波和鋸齒波,
37、正弦波形依舊是缺少1/4左右,在試過幾次更改正弦ROM調(diào)用的sin_rom.mif文件后,問題還是沒有得到解決。然后,再把注意轉(zhuǎn)到程序部分,檢查后發(fā)現(xiàn),由于系統(tǒng)采用的是9位地址,但是尋址計數(shù)器模塊中的尋址空間卻只有360字節(jié),沒有將9位地址寫滿,影響到后面的ROM尋址輸出,后來將尋址計數(shù)中的尋址空間加大至512,這樣就正好在9位地址計數(shù)計滿時尋址空間達到最大值,再將ROM模塊中的地址對應尋址計數(shù)器稍作修改,最后在示波器上觀察到方波,三角波與正弦波的穩(wěn)定波形。在示波器能夠觀察到穩(wěn)定正確的波形后,便開始將另一組輸出接入本次設(shè)計的DAC數(shù)模轉(zhuǎn)換模塊,再通過示波器的兩路輸入,對同一波形的不同相位進行觀
38、察比較, 但本次設(shè)計的數(shù)模轉(zhuǎn)換模塊并沒有起到數(shù)模轉(zhuǎn)換作用,因為示波器的第二路輸入沒有波形出現(xiàn),調(diào)試出錯。在檢查完電路后,并沒有漏焊或短接的焊接錯誤,DAC0832芯片的接法也沒有錯誤,一開始以為可能是方案不對,便將DAC0832外接的單運放UA741換成了雙運放LM324,但仍舊沒有波形輸出,幾次調(diào)試都無果,利用示波器檢查DAC0832的輸出,并沒有錯誤,通過網(wǎng)絡檢查芯片的用法,又將UA741從原來的單電源工作改成了雙電源工作,但是出來的波形也很不分辨率不高,波形不穩(wěn)定。最后在檢查連接時,原因在于使用的直流穩(wěn)壓電源沒有將地共接在一起,導致波形波動太大,無法識別。在將線路重新連接檢查后,外圍數(shù)模
39、轉(zhuǎn)換成功實現(xiàn)了波形輸出。通過示波器觀察,兩組相位波形如圖5.1、5.2、5.3所示:圖5.1 方波波形輸出結(jié)果圖5.2 三角波波形數(shù)據(jù)結(jié)果圖5.3 正弦波波形數(shù)據(jù)結(jié)果由于示波器限制,從波形圖可以看出,兩路波形相位相處240°左右,尋址地址經(jīng)過了兩次移相處理,基本實現(xiàn)了移相功能。系統(tǒng)調(diào)試結(jié)束,本次設(shè)計基本實現(xiàn)三相多波形信號發(fā)生器的基本功能。圖5.4是DAC數(shù)模轉(zhuǎn)化模塊的焊接成品圖:圖5.4 DAC0832數(shù)模轉(zhuǎn)換電路第六章 結(jié)論通過本次設(shè)計,基本實現(xiàn)了三相多波形信號發(fā)生器的產(chǎn)生,此次設(shè)計通過DDS技術(shù)與可編程邏輯器件CPLD相結(jié)合,運用Quartus II開發(fā)平臺實現(xiàn)多種波形輸出,包括
40、方波、三角波、正弦波,并通過地址移相使得輸出波形實現(xiàn)相位相差120°。而且,由于CPLD 具有可編程重置特性, 因而可以方便地改變控制方式或更換波形數(shù)據(jù),而且簡單易行,易于系統(tǒng)升級,同時具有很高的性價比。從開始準備,查找資料、確定方案、設(shè)計模塊、硬件焊接、仿真調(diào)試到實現(xiàn)課題要求,經(jīng)過幾個月的時間,設(shè)計結(jié)合任波形發(fā)生器的產(chǎn)生原理與直接頻率合成技術(shù)的理論,完成了三相多波形發(fā)生器的功能實現(xiàn),歸納起來主要做了如下幾方面的工作:1、基于VHDL硬件描述語言實現(xiàn)了系統(tǒng)中各個模塊的所需功能,并逐個通過仿真;2、設(shè)計了LPM_ROM正弦定制ROM模塊,實現(xiàn)了正弦波形數(shù)據(jù)存儲;3、利用DAC0832實
41、現(xiàn)了外圍電路的數(shù)模轉(zhuǎn)換功能;并能通過夠穩(wěn)定輸出多種波形。本次設(shè)計雖然整體上基本實現(xiàn)了三相多波形的功能要求,但是仍有許多不足之處,由于EDA開發(fā)平臺中芯片時鐘檢測出現(xiàn)問題,在示波器中的分頻倍數(shù)和仿真的分頻倍數(shù)不一樣,使得波形之間的相位變化不是很準確,并且,在功能上,系統(tǒng)沒有加入調(diào)幅功能,波形幅度只能通過數(shù)模轉(zhuǎn)換的外圍電路調(diào)節(jié),在移相模塊中,由于調(diào)試的時間有限,邏輯關(guān)系不是很嚴密,尚存有改進之處。通過本次畢業(yè)設(shè)計,加深了解了波形發(fā)生器的市場需求,以與可編程邏輯器件的電路設(shè)計,但在實際的情況中,應該考慮實際需要,多加改善設(shè)計方案,在實現(xiàn)信號發(fā)生器功能的同時考慮完善方案細節(jié)。參考文獻1. Timothy M. Rowan, and Russel J.
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度手店面轉(zhuǎn)租合同:電競主題客棧轉(zhuǎn)租管理協(xié)議
- 2025年度離婚協(xié)議書模板:離婚后子女撫養(yǎng)權(quán)及贍養(yǎng)費協(xié)議
- 2025年度自愿離婚協(xié)議及財產(chǎn)分割執(zhí)行合同
- 二零二五年度物業(yè)賠償業(yè)主裝修期間意外事故協(xié)議
- 2025年度時尚服裝加盟店合作協(xié)議
- 2025年度餐飲服務業(yè)勞動合同解除協(xié)議
- 二零二五年度反擔保合同匯編:農(nóng)業(yè)產(chǎn)業(yè)化項目融資風險控制
- 二零二五年度順豐快遞員績效獎金合同
- 二零二五年度耕地租賃與農(nóng)業(yè)文化遺產(chǎn)保護合同
- 企業(yè)信息管理軟件開發(fā)合同
- 教育科學研究方法(小學教育專業(yè))全套教學課件
- 《孔乙己》跨學科教學設(shè)計 2023-2024學年部編版語文九年級下冊
- 2024-2030年中國射頻集成電路(RFIC)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- SYT 0440-2021 工業(yè)燃氣輪機安裝技術(shù)規(guī)范-PDF解密
- 診所校驗現(xiàn)場審核表
- 2024屆安徽省安慶市高三下學期二?;瘜W試題及答案
- 電影活著展示課件
- 改變學習方式促進學生發(fā)展結(jié)題報告
- 中國常見食物營養(yǎng)成分表
- 09J202-1 坡屋面建筑構(gòu)造(一)-2
- 金嗓子喉片行業(yè)分析
評論
0/150
提交評論