基于CPLD多波形信號發(fā)生器設(shè)計說明_第1頁
基于CPLD多波形信號發(fā)生器設(shè)計說明_第2頁
基于CPLD多波形信號發(fā)生器設(shè)計說明_第3頁
基于CPLD多波形信號發(fā)生器設(shè)計說明_第4頁
基于CPLD多波形信號發(fā)生器設(shè)計說明_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章緒論1.1研究內(nèi)容及意義高精度的信號源對通信系統(tǒng)、電子對抗以及各種電子測量技術(shù)十分重要。隨著電子技術(shù)的發(fā)展,對信號源頻率的準(zhǔn)確度、穩(wěn)定度,以及頻譜純度等方面要求越來越高。傳統(tǒng)的信號發(fā)生器由于波形精度低,頻率穩(wěn)定性差等缺點,已經(jīng)不能滿足許多實際應(yī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)點,使其得到越來越廣泛的應(yīng)用,成為眾多電子系統(tǒng)中不可缺少的組成部分。在現(xiàn)代電子技術(shù)中,信號源在各種實驗應(yīng)用和實驗測試處理中應(yīng)用非常廣泛作,為激勵源,仿真各種測試信號。本文根據(jù)信號波形的產(chǎn)生特點,采用基于 CPLD/FPGA 的 VHDL 硬件描述語言,仿真實現(xiàn)了多波形發(fā)生器的設(shè)計。仿真結(jié)果輸出較高精度、穩(wěn)定的波形信號,可以滿足測量或各種實際需要,方便、簡易實用。1.2 國內(nèi)外研究概況傳統(tǒng)的波形發(fā)生器多采用模擬電路或單片機或?qū)S眯酒捎诔杀靖呋蚩刂品绞讲混`活或波形種類少不能滿足實際需求。目前市場上的數(shù)字信號發(fā)生器主要采用直接數(shù)字合成技術(shù),這種波形發(fā)生器不僅可以產(chǎn)生可變頻的載頻信 號、各

3、種調(diào)制信號,同時還能和計算機配合產(chǎn)生用戶自定義的有限帶寬的任意信號,可以為多領(lǐng)域的測試提供寬帶寬、高分辨率的測試信號。從目前發(fā)展?fàn)顩r來看,國外數(shù)字信號發(fā)生器的研制和生產(chǎn)技術(shù)已經(jīng)較為成 熟。國內(nèi)市場上的波形發(fā)生器,其電路形式有采用運放及分立元件構(gòu)成;也有采用單片集成的函數(shù)發(fā)生器,而在現(xiàn)代電子系統(tǒng)設(shè)計中,DDS 技術(shù)發(fā)展迅速,由于其易于單片集成,積小,價格低,功耗小,因此其應(yīng)用也越來越廣泛。并且在相對帶寬、頻率轉(zhuǎn)換時間、高分辨力、相位連續(xù)性、正交輸出以及集成化等一系列性能指標(biāo)方面遠遠超過了傳統(tǒng)頻率合成技術(shù)所能達到的水平, 為系統(tǒng)提供了優(yōu)于模擬信號源的性能。1.3本文主要內(nèi)容本文的設(shè)計主要基于可編程

4、邏輯器件 CPLD 設(shè)計多波形信號發(fā)生器,由VHDL 編程實現(xiàn),并通過外圍數(shù)模轉(zhuǎn)換電路,完成函數(shù)信號發(fā)生器的設(shè)計,最后對整個波形發(fā)生器進行調(diào)試仿真。第一章為對多波形信號發(fā)生器的研究內(nèi)容及發(fā)展的綜合概述。第二章為系統(tǒng)設(shè)計平臺介紹、系統(tǒng)設(shè)計方式及原理框圖概述。第三章為硬件設(shè)計及外圍電路方案介紹。第四章為系統(tǒng)的軟件設(shè)計及各模塊的具體功能介紹。第五章介紹了系統(tǒng)調(diào)試過程、解決問題及調(diào)試仿真結(jié)果。第六章是為本次設(shè)計作綜合總 結(jié)。第二章2.1 系統(tǒng)設(shè)計平臺介紹系統(tǒng)概述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)和器件編程三個步驟及相應(yīng)的功能仿真,時序仿真和器件功能測試三個驗證過程??删幊踢壿嬈骷?CPLD 設(shè)計流程如圖 2.1 所示:圖 2.1 可編

6、程邏輯器件設(shè)計流程圖如圖 2.1 所示,設(shè)計輸入可分為兩種類型,圖形輸入和 HDL 文本輸入, 常用的有原理圖輸入和應(yīng)用硬件描述語言設(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 Insti

7、tute of Electrical and Electronics Engineers)進一步發(fā)展并發(fā)布,是硬件描述語言的業(yè)界標(biāo)準(zhǔn)之一。VHDL 具有與具體硬件電路無關(guān)和與設(shè)計平臺無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力。相比其他硬件描述語言,VHDL 的優(yōu)勢表現(xiàn)在以下幾點:(1) VHDL 對設(shè)計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進行獨立的設(shè)計。VHDL 采用類似高級語言的語句格式完成對硬件行為的描述,具備更強的模塊化能力,并擁有良好的可讀性以及程序的移植性。(2)(3) VHDL 具有多層次的設(shè)計描述功能,既可以描述系

8、統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。本次設(shè)計是基于 Quartus II 軟件設(shè)計的,Quartus II 是 Altera 公司的綜合性 PLD/FPGA 開發(fā)軟件,支持原理圖、VHDL、VerilogHDL 以及 AHDL(Altera Hardware Description Language等多種設(shè)計輸入形式,內(nèi)嵌自 有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD 設(shè)計流程。圖形或HDL 編輯分析與綜合適配器編程文件匯編編程器時序分析器設(shè)計輸入綜合或編譯適配器件下載仿真圖 2.2 Quartu

9、s II 設(shè)計流程圖圖 2.2 上排所示的 是 Quartus II 編譯設(shè)計的主控界面,它 顯示了Quartus II 自動設(shè)計的各主要處理環(huán)節(jié)和設(shè)計流程,包括設(shè)計輸入編輯、設(shè)計分析與綜合、適配、編程文件匯編、時序參數(shù)提取以及編程下載幾個步驟。圖2.2 下排的流程框圖,是與上面的 Quartus II 設(shè)計流程相對照的標(biāo)準(zhǔn)的 EDA 開發(fā)流程。2.2 信號發(fā)生器設(shè)計方式介紹Direct Digital Synthesis(DDS)是 20 世紀(jì) 60 年代末出現(xiàn)的第三代頻率合成技術(shù)。用 DDS 技術(shù)來設(shè)計制作一個基于 CPLD 的三相多波形函數(shù)發(fā)生器,并使它能輸出正弦波、三角波、方波等波形信

10、號源,三種波形的相位差為120。信號發(fā)生器中的 CPLD 芯片是 DDS 的控制及數(shù)據(jù)處理的核心,電路系統(tǒng)主要由數(shù)控分頻、尋址計數(shù)器、模 360 加法器、波形數(shù)據(jù)儲存 ROM 和外圍DAC 轉(zhuǎn)換電路組成。波形數(shù)據(jù)產(chǎn)生器由數(shù)控分頻、尋址計數(shù)器、正弦 ROM、方波三角波 ROM 構(gòu)成。在時鐘信號發(fā)生器作用下,根據(jù)輸入數(shù)據(jù)不同產(chǎn)生不同的分頻比,數(shù)控分頻生成相應(yīng)頻率的時鐘信號作為尋址計數(shù)器的輸入時鐘, 產(chǎn)生對 ROM 進行尋址的地址,輸出波形數(shù)據(jù)后,再由 DAC 電路數(shù)模轉(zhuǎn)換處理后輸出最終所需要的波形信號。本系統(tǒng)采用 Quartus II 開發(fā)平臺,VHDL 語言編程實現(xiàn)。方波和三角波波形 ROM 模

11、塊利用邏輯單元實現(xiàn) ROM 設(shè)計,由于正弦查找表較為復(fù)雜,用邏輯單元實現(xiàn)數(shù)據(jù)較多,所以正弦 ROM 采用 LPM_ROM 定制,完成外圍電路的焊接之后,通過 Quartus II 把編寫完的程序燒錄入 CPLD 芯片,再通過示波器對整個波形發(fā)生器進行調(diào)試,使其達到預(yù)期的效果。2.3 系統(tǒng)原理框圖介紹根據(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)絡(luò)的基準(zhǔn)電壓實現(xiàn)

12、。CLKDFR(數(shù)控分頻器)XunZhi(尋址計數(shù)器)ROMm21波形數(shù)據(jù)SIN_ROMDATA4.0數(shù)據(jù)輸入M360加法器ROMm21波形數(shù)據(jù)SIN_ROMM360加法器ROMm21波形數(shù)據(jù)SIN_ROM基于 CPLD 的波形數(shù)據(jù)產(chǎn)生器系統(tǒng)模塊如圖 2.3 所示。圖 2.3 波形數(shù)據(jù)系統(tǒng)框圖圖中 DFR 為數(shù)控分頻器,根據(jù)儀器面板 4 位數(shù)字量開關(guān)產(chǎn)生的預(yù)置數(shù)據(jù)D 輸出不同頻率的時鐘,以改變輸出信號的頻率。XunZhi 根據(jù)輸入的始終產(chǎn)生計數(shù)地址,在時鐘的作用下,ROM,SIN_ROM 模塊分別產(chǎn)生方波和三角波、正弦波的波形數(shù)據(jù),再通過 m360 模塊將地址進行移相處理,可輸出不同相位的波形

13、,m21(數(shù)據(jù)選擇器)在面板上的波形選擇開關(guān) sel 的控制下,選擇輸出不同的波形數(shù)據(jù),送至 D/A 轉(zhuǎn)換電路。D/A 轉(zhuǎn)換采用 8 位的 DAC0832 芯片。第三章3.1CPLD 及芯片介紹硬件及外圍電路設(shè)計CPLD復(fù)雜可編程邏輯器件,是從PAL和GAL器件發(fā)展出來的器件,相對而言規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。通過借助集成開發(fā)軟件平臺進行基本的設(shè)計,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng)。CPLD編程技術(shù)采用電可擦除儲存單元的E2PROM或

14、Flash Memory技術(shù),CPLD被編程后改變了電可擦除儲存單元中的信息,掉電后可保存。由于內(nèi)部采用固定長度的金屬線進行各邏輯塊的互連,所以設(shè)計的邏輯電路具有時間可預(yù)測性,避免了分段式互連結(jié)構(gòu)時序不完全預(yù)測的缺點。本次設(shè)計采用 Altera 公司的 ACEX1K 系列 EP1K10TC100-3,其典型邏輯門數(shù)(包括邏輯門和 RAM)為 10000 門,最大可用系統(tǒng)門數(shù)為 56000 門,邏輯單元( Logic elements)為 576 個,邏輯陣列模塊( Logic array blocks)為 36 個,嵌入式陣列模塊(Embedded array blocks)為 3 個, RA

15、M 總?cè)萘繛?12288 字節(jié),EP1K10TC100-3 具有 100 個管腳,除電源引腳、地線引腳、全局控制引腳和 JTAG 引腳外,共提供了 66 個可用 I/O 腳, 這些引腳可以任意配置為輸入、輸出和雙向方式,芯片的工作電壓為+5V。通常情況下在硬件調(diào)試的過程中一般使用下載電纜進行下載,而當(dāng)調(diào)試完成以后要用配置芯片對 FPGA 進行配置。配置芯片在每次系統(tǒng)上電以后自動將配置文件加載到 FPGA 中形成電路。3.2硬件總體方案介紹由于模擬電路復(fù)雜程度較高,而且在檢查電路的時候會有很大的工作量,且可調(diào)性差。并且電路帶來的高頻干擾也會更大,影響波形效果。而單片機電路確定方案后不易更改硬件電

16、路,可變性不高,功能修改完善不方便,所以本次設(shè)計除了采用 CPLD 設(shè)計電路,由于其可編程特性,在設(shè)計調(diào)試時可以不斷改變電路硬件的邏輯關(guān)系,而不必改變系統(tǒng)的硬件結(jié)構(gòu),縮短了設(shè)計周期,提高了設(shè)計效率。數(shù)控分頻電路在完成模塊程序編譯仿真后,通過 USB-Blaster 編程器將系統(tǒng)配置文件下時DAC鐘CCPLD主控電路數(shù)模示波器輸出L轉(zhuǎn)K換波形選擇輸入載入 CPLD 芯片,分別將數(shù)控分頻輸入、波形選擇控制輸入以及波形數(shù)據(jù)輸出連接 CPLD 主控芯片。圖 3.1 是本次設(shè)計的基本硬件框圖:圖 3.1 系統(tǒng)基本硬件電路外部輸入通過四位撥碼開關(guān)控制分頻倍數(shù),可對頻率進行調(diào)節(jié),在通過兩位撥碼開關(guān)控制波形選

17、擇,系統(tǒng)時鐘信號由開發(fā)箱上提供,八位波形數(shù)據(jù)輸出接試驗箱的 DAC 轉(zhuǎn)換模塊,由于示波器只有兩路輸入,所以需要再設(shè)計一個D/A 轉(zhuǎn)換電路將兩種相位的波形進行比較。3.3CPLD 及外圍電路設(shè)計3.3.1CPLD 主控電路設(shè)計本次設(shè)計主控電路設(shè)計基于北京百科融創(chuàng) EDA 教學(xué)開發(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 引腳為外部時

18、鐘輸入口,I/O71、I/O70、I/O69、I/O68 為數(shù)控分頻外部控制端口,I/O20I/O23、I/O26I/O28、I/O30 腳為初始相位八位波形數(shù)據(jù)輸出端;I/O31I/O34、I/O45I/O48 為移向后的波形數(shù)據(jù)輸出端,波形數(shù)據(jù)輸出接 DAC 模塊的八位數(shù)據(jù)輸入,通過示波器觀察輸出波形信號。3.3.2DAC 數(shù)模轉(zhuǎn)換模塊設(shè)計由于從波形 ROM 中讀出的波形數(shù)據(jù)還只是一個數(shù)字信號,要得到最后的輸出信號必須經(jīng)過數(shù)模轉(zhuǎn)換器。因此在波形 ROM 輸出之后要設(shè)計一個 D/A 轉(zhuǎn)換電路。廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。本次設(shè)計采用 DAC0832 來

19、實現(xiàn) D/A 轉(zhuǎn)換,DAC0832 是雙列直插式 8 位 D/A 轉(zhuǎn)換器,能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。由于其價格低數(shù)模(D/A)轉(zhuǎn)換電路的作用是把已經(jīng)合成的波形幅值的數(shù)字量轉(zhuǎn)換成模擬量,其速度和特性直接影響整個系統(tǒng)的性能。D/A 轉(zhuǎn)換器件的首要特性要求是高速,其次是轉(zhuǎn)換位數(shù),本設(shè)計中選用 8 位的 D/A 芯片 DAC0832。波形幅度量化序列經(jīng) D/A 轉(zhuǎn)換后成為階梯波。D/A 的輸出用電壓形式表示一般應(yīng)為:Vout= - D V2NREF(式 3.1)式中 D 為 D/A 的輸入數(shù)據(jù)值,N 為 D/AC 的位數(shù),即通常所指的 D/AC的分辨率,V REF為輸入 D/A 的參

20、考電壓。DAC0832 對信號進行數(shù)模轉(zhuǎn)換后,將數(shù)字信號恢復(fù)為模擬信號,再由UA741 構(gòu)成的放大電路進行放大處理,完善波形信號,使波形能夠達到標(biāo)準(zhǔn)效果。外圍 DAC 電路原理圖如圖 3.3 所示:圖 3.3 DAC0832 外圍電路設(shè)計在 DAC 外圍電路中,UA741 接+12V、-12V 電源,DAC0832 接 5V 電源,在電源接口處接一電容,起濾除雜波作用,在信號輸出加入了濾波電路, 接入示波器,得到穩(wěn)定的波形信號。第四章軟件程序設(shè)計程序部分基于 Quartus II 通過 VHDL 語言實現(xiàn)。系統(tǒng)采用自頂向下設(shè)計原則,先完成各個子模塊仿真設(shè)計,綜合編譯后,通過軟件生成圖元文件,再

21、設(shè)計系統(tǒng)頂層原圖,將各個模塊連接,最后進行系統(tǒng)總體仿真。4.1 系統(tǒng)流程設(shè)計本次設(shè)計主要包括數(shù)控分頻模塊、尋址計數(shù)模塊、360移相模塊、波形ROM 儲存模塊、波形選擇模塊等,系統(tǒng)總體設(shè)計流程圖如下圖 4.1 所示:開始數(shù)控分頻模塊尋址計數(shù)模塊360移相模塊波形ROM儲存模塊波形選擇模塊結(jié)束圖 4.1 系統(tǒng)設(shè)計流程圖波形 ROM 模塊針對不同的波形信號,通過不同的方式設(shè)計 ROM 模塊, 像三角波方波這樣波形簡單變化緩慢的波形,通過邏輯單元實現(xiàn) ROM 設(shè)計, 而對于正弦波這樣的波形,查找表比較復(fù)雜,波形數(shù)據(jù)較大,所以利用了LPM_ROM 定制法設(shè)計正弦波的存儲 ROM,最后再通過波形選擇輸出波

22、形數(shù)據(jù)。4.2 子模塊的設(shè)計4.2.1數(shù)控分頻器數(shù)控分頻器的功能是在輸入端輸入不同數(shù)據(jù)時,對輸入時鐘產(chǎn)生不同的分頻比,輸出不同頻率的時鐘,以改變輸出信號的頻率。本設(shè)計中利用并行預(yù)置數(shù)的減法計數(shù)器實現(xiàn),他的工作原理是:減法計數(shù)器在并行預(yù)置數(shù)的基礎(chǔ)上, 在時鐘的作用下進行減計數(shù),當(dāng)計數(shù)值為零時產(chǎn)生溢出信號,加載預(yù)置數(shù)據(jù), 并且將溢出信號作為分頻器的輸出信號,實現(xiàn) N 分頻信號輸出。其分頻系數(shù) N 為N =D +1(式 4.1)D 為預(yù)置數(shù)的值。為了得到占空比為 50%的矩形時鐘信號,將輸出再進行二分頻。由此,該分頻器的總分頻系數(shù)為 2N。本設(shè)計中一個波形周期由 64 個時鐘信號組成,則輸出信號頻率

23、為:fout=fclk(式 4.2)2 64N時鐘頻率為 24 MHz。數(shù)控分頻器模塊如圖 4.2 所示:圖 4.2 數(shù)控分頻器模塊略去聲明部分,數(shù)控分頻器的核心程序如下所示: architecture one of kongzhi issignal full:std_logic;-定義內(nèi)部溢出標(biāo)識signal temp:std_logic_vector(1 downto 0);beginp1:process(clk)-N+1 分頻進程variable cnt9:integer range 0 to 31; beginif (clkevent and clk=1)then-上升沿檢測if(cn

24、t9=0)thencnt9:=d;-重新加載預(yù)置數(shù)Dfull=1;-計數(shù)值為零時,產(chǎn)生溢出信號else cnt9:=cnt9-1;-否則,進行減一計數(shù)操作full=0; end if; end if;end process;p2:process(full)-二分頻進程beginif(fullevent and full=1)then-上升沿檢測if(temp=11)then-二位二進制計數(shù),最低位每個時鐘temp=00;-翻轉(zhuǎn)一次,由此實現(xiàn)二分頻elsetemp=temp+1;-計數(shù)值加一end if; end if;end process;fout=not temp(0);-選擇二分頻輸出e

25、nd 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尋址輸出波形數(shù)據(jù)的尋址信號,尋址空間為512字節(jié),尋址計數(shù)器模塊圖元文件如圖4.4所示:圖4.4 尋址計數(shù)器模塊其核心程序如下: process(clk)variable count:std_logic_vector(8 downto 0); beginif (clkeve

26、nt and clk=1)then-時鐘上升沿檢測if(count0);-計數(shù)清零end if;end if;address=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的相位

27、差,當(dāng)輸出尋址數(shù)大于512 時,須對尋址地址進行取模處理,即超出設(shè)定值作減512處理。系統(tǒng)模360 加法器圖元模塊如圖4.6所示:圖4.6 尋址地址移相模塊地址移相模塊核心代碼如下所示: process(d)variable temp:std_logic_vector(7 downto 0);begintemp:=d+170;-相移120if(temp512)thendout=temp;-將移相后的地址輸出elsedout=temp-512;-加法計滿后,對地址進行取模end if;end process;該模塊在Quartus II中的仿真結(jié)果下圖4.7所示:圖4.7 模360加法器仿真結(jié)果

28、由仿真結(jié)果可知,尋址地址在通過模360加法器模塊后,地址向后移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) beginif(sel=00)then-波形控制選擇,輸出方波if(address256)then-當(dāng)?shù)刂酚嫈?shù)至半

29、個尋址空間,波形數(shù)據(jù)值為data1);elsedata0);-剩余計數(shù)空間,波形數(shù)據(jù)值為0 end if;而三角波的產(chǎn)生程序,當(dāng)檢測到地址處于前半個周期時,地址每作一次計數(shù),輸出數(shù)據(jù)進行加同一個數(shù)操作,當(dāng)?shù)刂诽幱诤蟀雮€周期時,進行減同一個數(shù)操作。將一個尋址空間計數(shù)時間作為三角波的周期,程序采用前半個周期作加1操作,后半個周期作減1操作。三角波的邏輯發(fā)生程序如下:elsif(sel=01)then-波形選擇控制,輸出三角波if(address256)then-前半個周期進行加1 data=address(7 downto 0);elseaddresstemp=512-address;-后半個周期

30、作減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é)果可知,當(dāng)方波尋址地址計數(shù)至一半時,輸出數(shù)據(jù)從0跳變值255,而再經(jīng)過半個尋址周期再從255跳至0,如此重復(fù)跳變;而選擇三角波輸出時,當(dāng)每次地址加1的時候,輸出八位波形數(shù)據(jù)開始計數(shù),從0加到1,然后每來一個地址就加一次,直到增到255,等下一個地址到輸出波形數(shù)據(jù)將從255減到254,然后每來一個地址就減一次,直到減到0,依次重復(fù)

31、,輸出的波形數(shù)據(jù)經(jīng)過DAC0832數(shù)模轉(zhuǎn)換分別形成方波、三角波。4.2.5 LPM定制正弦波ROM模塊由于采用邏輯單元實現(xiàn)正弦波的波形ROM比較復(fù)雜,需要輸入正弦波形數(shù)據(jù)查找表,正弦波查找表取值樣點較多,所以系統(tǒng)中采用LPM_ROM來定制正弦ROM模塊。正弦ROM模塊圖元在系統(tǒng)中如圖4.11所示:圖4.11 LPM定制的正弦ROM模塊在通過LPM定制正弦ROM模塊之前,需要生產(chǎn)儲存器中波形數(shù)據(jù)的初始化文件,所謂儲存器的初始化文件就是可調(diào)出存于 RAM或ROM中的數(shù)據(jù)或程序文件代碼。在EDA設(shè)計中,通過EDA設(shè)計的存儲器中的代碼文件必須有EDA軟件在同一編譯時自動調(diào)入,所以此類代碼文件的類型,即

32、初始化文件格式須滿足一定的要求,在 Quartus II中接受兩種格式的初始化文件,(.mif)格式和(.hex)格式。生成MIF文件的方式有很多種,在此次設(shè)計中,正弦ROM初始化文件采用的是專用MIF文件生成器,MIF生成軟件Mif Maker2010。打開軟件后,先對所需的MIF文件對應(yīng)的波形參數(shù)進行設(shè)置,選擇“查看”后,在下拉菜單中選擇“全局參數(shù)設(shè)置”,設(shè)置正弦波參數(shù)數(shù)據(jù)長度為512,地址位寬為8位,初始相位為0度,其參數(shù)設(shè)置如圖4.12所示。在設(shè)置完參數(shù)后,選擇“設(shè)定波形”,再選擇“正弦波”,如圖4.13所示,選擇文件名“sin_rom.mif”存盤。圖4.12 正弦波形參數(shù)設(shè)置圖4.

33、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.15 LPM_ROM參數(shù)設(shè)置圖4.16 加載初始化配置文件在LPM_ROM 模塊定制是, 加入通過軟件生成的初始化配置文件sin_rom.mif

34、文件,通過對正弦LPM_ROM模塊的仿真,得到如圖 4.17所示結(jié)果:圖4.17 LPM_ROM仿真測試在LPM_ROM的仿真波形圖中,隨著CLK上升沿的出現(xiàn),對應(yīng)的波形數(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ù),通過DAC0832數(shù)模轉(zhuǎn)換,最后在示波器上顯示波形,其圖元如圖 4.18所示:圖4.18 二選一波形選擇輸出模塊二選一數(shù)據(jù)選擇輸出

35、主要程序如下:process(sel)- 波形數(shù)據(jù)選擇信號檢測beginif(sel=10)then- 當(dāng)波形選擇“10”, 選擇正弦波Q=data2;- 輸出正弦ROM中的波形數(shù)據(jù)elseQ=data1;- 否則輸出方波或者三角波波形數(shù)據(jù)end if;end process;最后通過軟件仿真,模塊仿真結(jié)果如圖4.19所示:圖4.19 波形數(shù)據(jù)選擇模塊仿真結(jié)果由仿真結(jié)果可以看出,當(dāng)波形選擇信號輸入“ 10”選擇正弦波輸出時,二選一數(shù)據(jù)選擇模塊輸出DATA2,即正弦波形ROM的數(shù)據(jù),該模塊測試正確。4.3各模塊總體仿真在完成各子模塊仿真后,創(chuàng)建頂層原理圖文件,根據(jù)系統(tǒng)方案將各模塊連接起來,尋址計

36、數(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ù)據(jù)特點以及相位變化 的仿真結(jié)果都符合要求,說明系統(tǒng)設(shè)計方案正確可行。第五章系統(tǒng)調(diào)試在完成軟件部分的仿真設(shè)計后,并將外圍數(shù)模轉(zhuǎn)換電路的設(shè)計焊接工作完成,開始系統(tǒng)軟硬件聯(lián)

37、合調(diào)試。將ROM中存儲的數(shù)據(jù)接入D/A模塊后,將DAC輸出端接上示波器,一開始示波器可以看到近似方波和鋸齒波的波形,正弦波的波形少了1/4,由于第一次調(diào)試是利用EDA試驗開發(fā)平臺的DAC轉(zhuǎn)換模塊,所以問題出現(xiàn)在DAC外圍電路的概率不大,然后就是軟件部分,在核對完各模塊的程序部分后,初步認(rèn)為應(yīng)該是存儲器ROM的初始化文件參數(shù)沒有設(shè)置好。在重新更改正弦波的波形采樣參數(shù)后,接入系統(tǒng)中進行調(diào)試,但是效果并不很明顯,出現(xiàn)的是方波和鋸齒波,正弦波形依舊是缺少1/4左右,在試過幾次更改正弦ROM調(diào)用的sin_rom.mif文件后,問題還是沒有得到解決。然后,再把注意轉(zhuǎn)到程序部分,檢查后發(fā)現(xiàn),由于系統(tǒng)采用的是

38、9位地址,但是尋址計數(shù)器模塊中的尋址空間卻只有360字節(jié),沒有將9位地址寫滿, 影響到后面的ROM尋址輸出,后來將尋址計數(shù)中的尋址空間加大至512,這樣就正好在9位地址計數(shù)計滿時尋址空間達到最大值,再將ROM模塊中的地址對應(yīng)尋址計數(shù)器稍作修改,最后在示波器上觀察到方波,三角波及正弦波的穩(wěn)定波形。在示波器能夠觀察到穩(wěn)定正確的波形后,便開始將另一組輸出接入本次設(shè)計的DAC數(shù)模轉(zhuǎn)換模塊,再通過示波器的兩路輸入,對同一波形的不同相位進行觀察比較, 但本次設(shè)計的數(shù)模轉(zhuǎn)換模塊并沒有起到數(shù)模轉(zhuǎn)換作用,因為示波器的第二路輸入沒有波形出現(xiàn),調(diào)試出錯。在檢查完電路后,并沒有漏焊或短接的焊接錯誤,DAC0832芯片

39、的接法也沒有錯誤,一開始以為可能是方案不對,便將DAC0832外接的單運放UA741換成了雙運放LM324,但仍舊沒有波形輸出,幾次調(diào)試都無果,利用示波器檢查DAC0832的輸出,并沒有錯誤,通過網(wǎng)絡(luò)檢查芯片的用法,又將UA741從原來的單電源工作改成了雙電源工作,但是出來的波形也很不分辨率不高,波形不穩(wěn)定。最后在檢查連接時,原因在于使用的直流穩(wěn)壓電源沒有將地共接在一起,導(dǎo)致波形波動太大,無法識別。在將線路重新連接檢查后,外圍數(shù)模轉(zhuǎn)換成功實現(xiàn)了波形輸出。通過示波器觀察,兩組相位波形如圖5.1、5.2、5.3所示:圖5.1 方波波形輸出結(jié)果圖5.2 三角波波形數(shù)據(jù)結(jié)果圖5.3 正弦波波形數(shù)據(jù)結(jié)果

40、由于示波器限制,從波形圖可以看出,兩路波形相位相處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)多種波形輸出,包括方波、三角波、正弦波,并通過地址移相使得輸出波形實現(xiàn)相位相差120。而且,由于CPLD 具有可編程重置特性, 因而可以方便地改變控制方式或更換波形數(shù)據(jù),而且簡單易行,易于系統(tǒng)升級,

41、同時具有很高的性價比。從開始準(zhǔn)備,查找資料、確定方案、設(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 實現(xiàn)了外圍電路的數(shù)模轉(zhuǎn)換功能;并能通過夠穩(wěn)定輸出多種波形。本次設(shè)計雖然整體上基本實現(xiàn)了三相多波形的功能要求,但是仍有許多不足之處,由于 EDA 開發(fā)平臺中芯片時鐘檢測出現(xiàn)問題,在

42、示波器中的分頻倍數(shù)和仿真的分頻倍數(shù)不一樣,使得波形之間的相位變化不是很準(zhǔn)確,并且,在功能上,系統(tǒng)沒有加入調(diào)幅功能,波形幅度只能通過數(shù)模轉(zhuǎn)換的外圍電路調(diào) 節(jié),在移相模塊中,由于調(diào)試的時間有限,邏輯關(guān)系不是很嚴(yán)密,尚存有改進之處。通過本次畢業(yè)設(shè)計,加深了解了波形發(fā)生器的市場需求,以及可編程邏輯器件的電路設(shè)計,但在實際的情況中,應(yīng)該考慮實際需要,多加改善設(shè)計方案,在實現(xiàn)信號發(fā)生器功能的同時考慮完善方案細節(jié)。參考文獻1. Timothy M. Rowan, and Russel J. Kerkman, A new synchronous current regulatorandan analysis of current r

溫馨提示

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

評論

0/150

提交評論