基于FPGA的空調(diào)控制系統(tǒng)設計_第1頁
基于FPGA的空調(diào)控制系統(tǒng)設計_第2頁
基于FPGA的空調(diào)控制系統(tǒng)設計_第3頁
基于FPGA的空調(diào)控制系統(tǒng)設計_第4頁
基于FPGA的空調(diào)控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于FPGA的空調(diào)控制系統(tǒng)設計摘要近兒年來,隨著中國科學技術(shù)的進步和人民生活水平的不斷 提高,各種產(chǎn)業(yè)在迅速發(fā)展,當然,空調(diào)業(yè)也包括其中,空調(diào)在 公共場所,專用場地和普通家庭等場所都廣泛應用。但是隨著空 調(diào)數(shù)量的增加,相應的負面問題也隨之出現(xiàn),耗能的日益增加已 成為我國部分地區(qū)能源及電力供需矛盾的主要原因之一,當務之 急必須釆取有效措施降低空調(diào)的能耗。如何降低空調(diào)能耗,實現(xiàn) 空調(diào)自動控制,利用空調(diào)改善室內(nèi)溫度,延長空調(diào)使用壽命已成 為當前首要課題。本文介紹了空調(diào)控制器的設計,提出了一種釆用現(xiàn)場可編程 門陣列器件FPGA實現(xiàn)空調(diào)控制器的方法,該設訃采用釆用Altera 公司高性價比FPGA, C

2、yclonelV系列EP4CE6E22C8做主控制 器,使用高精度的溫度傳感器DS18B20釆集環(huán)境溫度,LCD 1602 用于顯示控制溫度情況,并用按鍵調(diào)節(jié)控制溫度和定時,LED燈 模擬空調(diào)電機狀態(tài),本設計給出了用Verilog HDL語言實現(xiàn)高效 率空調(diào)控制器的設計,最后給出了其在FPGA硬件上實現(xiàn) 關鍵詞:空調(diào)控制器FPGA CyclonelV Verilog HDLAbstractAbstractIn recent years , with the continuous improvement of scientific and technological progress and t

3、he Chinese peoples living standards , the rapid development of various industries in the course, which also includes the air-conditioning industry , air conditioners are widely used in public places , special venues and ordinary families and other places However, with the increasing number of air-co

4、nditioning , the corresponding negative issues appeared, increasing energy consumption has become one of the energy and electricity supply and demand in some areas of the main reasons , it is imperative to take effective measures to reduce the energy consumption of air conditioning How to reduce air

5、 conditioning energy consumption for air conditioning automatic control , the use of air conditioning to improve the indoor temperature and prolong the life of air conditioning has become a priority issue.This paper describes the design of air conditioning controller presents a method using field pr

6、ogrammable gate array device FPGA controller for air conditioning , which is designed using Alteras high- cost FPGA, CyclonelV series EP4CE6E22C8 master controller, using high-precision temperature collecting the ambient temperature sensor DS18B20 , LCD 1602 display control for temperature condition

7、s , with the temperature and timing adjustment control buttons , LED lights simulate air-conditioned motor state , this design gives the Verilog HDL language used to achieve high efficiency air conditioning controller design , Finally its implementation in FPGA hardwareKeywordsKeywords: aircondition

8、ingcontroller, FPGA, CyclonelV, VerilogHDL目錄摘要 .Abstract.1目錄.HI前言.11 FPGA的概述.21FPGA的特點.21.2本設計中使用的FPGA具有的特點 .32系統(tǒng)方案論證與確定.42.1方案的選擇 .4方案1: .4方案厶 .52.2方案論證與確定 .63硬件電路設計.73.1硬件整體結(jié)構(gòu)及原理 .73.2電源部分 .83.3時鐘電路 .83.4按鍵電路 .93.5溫度傳感器DS18B20的特點 .93.6 DS18B20的測溫原理.103.7程序下載 .114.軟件設計 .134.1頂層結(jié)構(gòu)框圖: .144.2DS18B20的狀

9、態(tài)機框圖: .154.3LCD 1602的狀態(tài)機框圖: .175 Mode I s i m仿真及仿真 .195.1 Modelsim 介紹 .195.2 書寫testbench激勵信號 .205.3時鐘模塊仿真 .205.3.1時鐘模塊的激勵信號testbench .205.3.2時鐘仿真波形及分析.225.4溫度數(shù)據(jù)處理及空調(diào)電機仿真 .235.4.1LED 模塊激勵信號 testbench.235.4.2LED模塊仿真結(jié)果及分析 .256實際運行結(jié)果及總結(jié).266配置管腳.266.2燒錄程序 .266.3運行結(jié)果分析 .27致謝 .29參考文獻 .30附件程序代碼 .31頂層模塊Veril

10、ogHDL代碼: .31DS18B20 模塊 VerilogHDL 代碼:.33LCD 1602 模塊 VerilogHDL 代碼: .48clock 模塊 VerilogHDL 代碼: .55按鍵模塊VerilogHDL代碼: .57LED 模塊 VerilogHDL 代碼: .59刖旨本論文主要任務是設計基于FPGA的空調(diào)控制系統(tǒng)的設汁。本課題的設計釆用了溫度傳感器DS18B20作為前端溫度采集,采用 Altera 公司高性價比 FPGA: CyclonelV 系列 EP4CE6E22C8做主控制器。控制器部分在Quart” II平臺使用VerilogHDL語言編寫,主體程序采用了狀態(tài)機作

11、為主要控制方式。并使用Modelsim進行軟件功能仿真,排除設訃錯誤,提高軟件設訃效率。硬件主要有五大模塊:溫度設置模塊、定時模塊、LCD顯示 模塊、分頻模塊、FPGA控制器模塊。最后實現(xiàn)使用FPGA比較 設置溫度與測量所得溫度,并發(fā)出指令給空調(diào)電機執(zhí)行部分,使用 LED燈模擬,根據(jù)按鍵設置溫度實現(xiàn)升溫或降溫,當設定溫度與 測量溫度相等時,不執(zhí)行調(diào)節(jié)溫度功能。另外要能根據(jù)輸入數(shù)據(jù) 的變化和溫度傳感器測量得到的溫度同步變化LCD上顯示。該課題的研究將有助于釆用FPGA的系列產(chǎn)品的開發(fā)。同時 可以大大縮短FPGA的開發(fā)時間。另外,由于模塊的易用性,也 將使得更多的釆用FPGA產(chǎn)品應用于溫控領域,為

12、行業(yè)和我們的 生活帶來新的變化。1 1 FPGAFPGA的概述1.11.1 FPGAFPGA的特點FPGA (Field Programmable Gate Array),即現(xiàn)場可編程門 陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步 發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領域中的一種半定 制電路而岀現(xiàn)的,既解決了定制電路的不足,乂克服了原有可編 程器件門電路數(shù)有限的缺點川前以硬件描述語W( Verilog HDL 或VHDL)所完成的電路設計,可以經(jīng)過簡單的綜合與布局,快 速的燒錄至FPGA上進行測試,是現(xiàn)代IC設計驗證的技術(shù)主流。 這些可編輯元件可以被用來實現(xiàn)一些基本

13、的邏輯門電路(比如 AND、OR、XOR、NOT)或者更復雜一些的組合功能比如解碼 器或數(shù)學方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里 也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記 憶塊。系統(tǒng)設計師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部 的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。 一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者而改 變,所以FPGA可以完成所需要的邏輯功能。FPGA采用了邏輯單元陣列LCA (Logic Cell Array)這樣一 個概念,內(nèi)部包括可配置邏輯模塊CLB ( Configurable Logic Block

14、)、輸出輸入模塊IOB (Input Output Block)和內(nèi)部連線 (Interconnect)三個部分。FPGA的基本特點主要有:(1)釆用FPGA設計ASIC電路,用戶不需要投片生產(chǎn)就能 得到合用的芯片;(2)FPGA可做其他全定制或半定制ASIC電路的試樣片;(3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳:(4)FPGA是ASIC電路中設計周期最短、開發(fā)費用最低、 風險最小的器件之一;(5)FPGA采用高速CHMOS T藝,功耗低,可以與CMOS、TTL電平兼容。可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度和可靠性 的最佳選擇之一。LI前FPGA的品種很多,有XILINX的XC系

15、 列、TI公司的TPC系列、ALTERA公司的FIEX系列等。FPGA是山存放在片內(nèi)RAM中的程序來設置其工作狀態(tài)的。 因此,工作時需要對片內(nèi)的RAM進行編程。用戶可以根據(jù)不同 的配置模式采用不同的編程方式。加電時,F(xiàn)PGA芯片將EPROM 中的數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進入工作 狀態(tài)。掉電后,F(xiàn)PGA恢復成白片,內(nèi)部邏輯關系消失。因此, FPGA能夠反復使用。FPGA的編程不需專用的FPGA編程器, 只需用通用的EPROM PROM編程器即可。當需要修改FPGA 功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA、不同 的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PG

16、A的使用非 常靈活。1.21.2本設計中使用的FPGAFPGA具有的特點(1)Altera 新的 CycloneIV FPGA 器件系列擴展了 Cyclone 系列EP4CE6E22C8,成本最低,功耗最低的FPGA。(2)具有6272個邏輯單元(LE)。(3)50MHz時鐘輸入。(4)高達270Kbits嵌入式存儲器。(5)15個嵌入式18x18乘法器。(6)2通用PLL鎖相環(huán)。(7)8個用戶I/O塊,提供91個I/O 口。2 2系統(tǒng)方案論證與確定2.12.1方案的選擇U前大多數(shù)的的空調(diào)溫度控制系統(tǒng)都采用了以單片機作為控 制器的設汁,但是隨著可編程邏輯器件的發(fā)展,家用電器的控制 部分也越來越

17、多地使用可編程邏輯器件來實現(xiàn),所以下面提供了 以單片機和可編程邏輯器件(FPGA)為核心控制器件的2個方 案進行選擇。方案1 1:該方案采用的是AT89C51單片機為核心控制器件,用它來 處理各個單元電路的工作以及檢測其運行情況。首先通過溫度傳 感器對空氣進行溫度采集,將采集的溫度信號作A/D轉(zhuǎn)換,使其 模擬信號轉(zhuǎn)變成數(shù)字信號,然后輸給單片機,再山單片機控制顯 示,并比較采集的溫度與設定的溫度是否一致,然后驅(qū)動空調(diào)機 的加熱或降溫循環(huán)對空氣進行處理,從而模擬實現(xiàn)空調(diào)溫度控制 單元的工作情況,本設計中我們釆用的是AD590溫度傳感器,通 過溫度系統(tǒng)采集電路采集相關溫度數(shù)值,再山AD0809組成的

18、 A/D轉(zhuǎn)換電路進行轉(zhuǎn)換,最終的到數(shù)字信號,將其直接輸給單片 機,然后山單片機機根據(jù)內(nèi)部程序判斷,執(zhí)行相關控制程序,驅(qū) 動個單元電路的工作。其方框圖如圖2.1所示:按鍵輸入ADC0809A/D轉(zhuǎn)換器AT89C51控制器AD950溫度傳感器圖2.1方案一方案2 2:該方案以FPGA為核心控制器件,采用數(shù)字溫度傳感器 DS18B20進行溫度釆集,將采集到的溫度數(shù)字直接以數(shù)字信號傳 輸給FPGA控制器,控制器通過比較釆集的溫度和用戶設定的溫 度來做出發(fā)送降溫還是加熱的控制信號給空調(diào)機。同時通過 FPGA芯片還可以實現(xiàn)定時和控制顯示,使用LCD 1602將傳感器 測量到的溫度,設定的溫度、定時時長都顯

19、示出來。其方框圖如 下圖2.2所示:圖2.2方案二2.22.2方案論證與確定通過比較兩個方案,方案1釆用單片機為核心控制器件,該 方案的優(yōu)點是容易控制,系統(tǒng)原理比較簡單,電路可靠,容易實 現(xiàn)控制U的。但是該方案中的溫度測量電路,譯碼電路復雜,容 易產(chǎn)生誤差和山電路復雜而導致的設備使用壽命低等一系列問 題。方案2釆用的是以FPGA為核心控制器件,同時溫度傳感器 采用的是高精度的數(shù)字溫度傳感器DS18B20,通過該傳感器采集 的溫度信息不需要經(jīng)過信號放大和A/D轉(zhuǎn)換直接以數(shù)字信號的形 式傳遞給控制芯片,使得電路的連接大大的簡化了,減小了電路 復雜所帶來的誤差等問題。而且FPGA芯片所具有的可編程修

20、改 的特點以及其強大的邏輯功能都是單片機難以達到的,這樣不但 給設計過程中帶來一系列的便利,而且在空調(diào)的功能日趨人性化 和智能話的發(fā)展趨勢下,以FPGA為控制器件的設計無疑更加具 有市場競爭力。所以同過上面的對兩個方案的比較論證,本次設計釆用方案 2來實現(xiàn)。3 3硬件電路設計3.13.1硬件整體結(jié)構(gòu)及原理硬件電路主要包括電源電路、石英晶振、溫度傳感器、FPGA 控制器、LCD 1602顯示、按鍵組成。本設計采用Altera公司高性 價比FPGA, CyclonelV系列EP4CE6E22C8做主控制器,溫度傳 感器采用高精度數(shù)字溫度傳感器DS18B20o整個電路的匸作原理 是山50MHz石英晶

21、振FPGA提供時鐘信號,數(shù)字式溫度傳感器 DS18B20將釆集的溫度信息以數(shù)字信號的形式直接傳遞給FPGA 芯片,用戶也可通過按鈕根據(jù)需要自己設定溫度值。采集溫度和 設定溫度都送給FPGA控制器,控制器通過對兩個溫度值的比較 做出判斷,當測量溫度大于設定溫度時就想空調(diào)的電機發(fā)出制冷 的控制信號;當測量溫度小于設定溫度時,則發(fā)出一加熱的控制 信號:當兩者相等時則不制冷也不加熱。通過執(zhí)行機構(gòu)工作狀態(tài) 的轉(zhuǎn)換來達到改變環(huán)境溫度的口的。同時,F(xiàn)PGA還可以對設定 溫度進行定時,并將定時的時間、測量溫度和設定溫度的值通過 LCD 1602顯示出來。整個硬件的框圖如圖3.1所示:按鍵輸入7z z50MHz

22、JTAG下載時鐘輸入圖3. 1硬件框圖3 3 2 2電源部分使用DC/DC電源芯片AMS1117系列的11173.3V. 1117 - 2.5Vs 1117 - 1.2V,分別給 FPGA 提供 3.3V I/O 口電壓,2.5V 輔助 電壓和1.2V內(nèi)核電壓。AMS1117是一個正向低壓降穩(wěn)壓器,在1A電流下壓降為 1.2Vo 固定輸出電壓為 1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、 5.0V和可調(diào)版本,具有1%的精度。AMS1117內(nèi)部集成過熱保 護和限流電路。其電路原理圖如圖3.2所示:圖3.2電源電路3 3 3 3時鐘電路為系統(tǒng)提供50MHz的穩(wěn)定時鐘,如圖3.3

23、所示。VCC 3V3T-4R13VCCCLKENGNDU2圖3.3時鐘電路clock in3.43.4按鍵電路圖3.5按鍵電路3 3 5 5溫度傳感器DS18B20DS18B20的特點DS18B20是美國DALLS公司生產(chǎn)的單線數(shù)字溫度傳感器。 它具有微型化、低功耗、高性能、抗干攏能力強、易配微處理器 等優(yōu)點。特別適合于構(gòu)成多點溫度測控系統(tǒng)。可直接將溫度轉(zhuǎn)化 成串行數(shù)字信號供微機處理,而且每片DS18B20都有唯一的產(chǎn)品 號并可存入其ROM中。以便在構(gòu)成大型溫度測控系統(tǒng)時在單線 上掛接任意多個DS18B2O芯片。DS18B20的性能特點如下:(1)獨特的單線接口引腳進行通信;(2)多個DS18

24、B20可以并聯(lián)在唯一的三線上,實現(xiàn)多點組網(wǎng) 功能;(3)無須外部器件;1XTAL2通過一個10K的上拉電阻使I/O保持確定狀態(tài),如圖3.5所示。(4)可以通過數(shù)據(jù)線供電,電壓范圍3.05.5V;(5)零待機功耗;(6)溫度以9或12位數(shù)字讀出;(7)用戶可定義的非易失性溫度報警設置;報警搜索命令識別并標志超過程序限定溫度(溫度報警條件) 的器件;負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒 毀,但不能正常工作。3.63.6 DS18B20DS18B20的測溫原理經(jīng)過單線接口訪問DS18B20的協(xié)議如下:1、 初始化2、ROM操作3、RAM存貯器操作4、 處理數(shù)據(jù)每次訪問單總線器件,必須嚴格

25、遵守這個協(xié)議(即操作序列), 如果出現(xiàn)序列混亂,則單總線器件不會響應主機。但是,這個準 則對于搜索ROM命令和報警搜索命令例外,在執(zhí)行兩者中任何 一條命令之后,主機不能執(zhí)行其后的功能命令,必須返回至第一 步。初始化基于單總線上的所有傳輸過程都是以初始化開始的,初始化 過程由主機發(fā)出的復位脈沖和從機響應的應答脈沖組成。應答脈 沖使主機知道總線上有從機設備且準備就緒。(2)ROM操作在主機檢測到應答脈沖后,就可以發(fā)出ROM命令。這些命 令與各個從機設備的唯一 64位ROM代碼相關,允許主機在單 總線上連接多個從機設備時,指定操作某個從機設備。這些命令 還允許主機能夠檢測到總線上有多少個從機設備以及

26、其設備類 型,或者有沒有設備處于報警狀態(tài)。從機設備可能支持5種ROM 命令(實際情況與具體型號有關),每種命令長度為8位。主機 在發(fā)出存貯器操作命令之前,必須送岀合適的ROMRAM存貯器操作- -10-10-U10VCC DATA GND在主機發(fā)出ROM命令,以訪問某個指定的DS18B20 ,接著 就可以發(fā)出DS18B20支持的某個存貯器操作命令。數(shù)據(jù)處理數(shù)據(jù)處理是當主機通過前三步的通信,在從機上得到了需要 的數(shù)據(jù),再進行進一步處理的環(huán)節(jié),這部分根據(jù)用戶的需要而定。電路原理圖如圖3.6:VCC 3V3C4 10uF/16VR7100DATA,DS18B20圖3.6溫度傳感器電路3.73.7程序

27、下載通過JTAG接口電路,使用Altera的USB blaster程序下載 器,通過計算機的USB接口可對Altera的FPGA/CPLD以及配置芯 片進行編程、調(diào)試等操作,對程序燒錄的FPGA里面。VCC_3V3圖3.6程序下載電路4.4.軟件設計在Quartus II 11.0平臺使用VerilogHDL語言編寫,主體程序 釆用了狀態(tài)機作為主要控制方式。程序中主要使用了狀態(tài)機對 DS18B20進行了時序控制,通過一些命令使DS18B20采集獲得 溫度值傳送到FPGA控制器。最后將數(shù)據(jù)送給LCD顯示電路進 行顯示,從而可以實時地觀察到溫度變化,同時LED閃爍進行模 擬空調(diào)電機運作。編寫好Ve

28、rilgHDL代碼后,在Modelsim 6.5平臺上進行前仿 真。同時通過Modelsim書寫testbench,經(jīng)行RTL級功能仿真。主 旨在于驗證電路的功能是否符合設計要求,其特點是不考慮電路 門延遲與線延遲,主要是驗證電路與理想情況是否一致??删C合 FPGA代碼是用RTL級代碼語言描述的,其輸入為RTL級代碼與 Testbench.o在設計的最初階段發(fā)現(xiàn)問題,可節(jié)省大量的精力-13-13-4 4 1 1頂層結(jié)構(gòu)框圖:軟件設計分為六大模塊,頂層模塊,DS18B20模塊,時鐘分 頻模塊,按鍵輸入模塊,LCD 1602模塊,LED模塊。如圖4所 示:圖4頂層結(jié)構(gòu)框圖4.24.2 DS18B2

29、0DS18B20的狀態(tài)機框圖:DS18B20模塊采用狀態(tài)機方法設計,然而DS18B20對時序 要求比較嚴格,所以設計中不得不使用非常多的狀態(tài)來解決這一 問題。設計中采用格雷碼來進行狀態(tài)機編碼,使用格雷碼每個相 鄰的狀態(tài)切換只有一個bit的信號跳變,其DS18B20的狀態(tài)機框 圖如圖4.2所示。/格雷碼狀態(tài)機parameter SOO parameter SO parameter S1 parameter S2 parameter S3 parameter S4 parameter S5 parameter S6 parameter S7=51100; = 5h01;=51103;=51102;

30、=51106;=51107;=5*hO5;=5h04;=5*hOC;parameter WRITEO = 5hOD; parameter WRITE 1= 5hOF;parameter WRITEOO = 5*hOE; parameter WRITEO 1 = 5*hOA;parameter READO parameter READ1 parameter READ2 parameter READ3= 5*hOB:=5h09: =5h08; = 5*hl8;statealways4:OUTDalways4:OUTD elkelk oneone _w_w ire-diire-di rere ctc

31、t resetreset cnt_1us1cnt_1us1 9.09.0 step5.Ostep5.OREADOREADOREAD1READ1READ2READ2READ3READ35050SOOSOO5151525253535454555556565757WRI1E0WRI1E0 WRITEOOWRITEOOWRI1E1WRI1E1WRITEWRITE (Fl(Fl圖4.2 DS18B2O的狀態(tài)機框圖-16-16 4 4 3 3 LCD1602LCD1602的狀態(tài)機框圖:要實現(xiàn)LCD 1602的顯示,程序設計同樣采用狀態(tài)機的設計方 法,鑒于狀態(tài)機的個數(shù)并不多,這里釆用獨熱碼編碼機制。使用 獨

32、熱碼,狀態(tài)機中為每一種狀態(tài)分配一個觸發(fā)器。只有一個觸發(fā) 器當前設置為高位,其余均設置為低位。其狀態(tài)機框圖如圖4.3所示。/獨熱碼狀態(tài)機編碼/個字符位(光標顯示是關閉的,所以實際上設置是看不出效果的)set_ddraml=10*b000100000, 設置DDRAM的地址:第一行起始為0 x00 (注意輸出時DB7泄要為1)set_ddram2= 10*b001000000, 設置 DDRAM 的地址:第二行為 0 x40(注意輸出時DB7泄要為1)write.raml = 10W10000000, 數(shù) 據(jù)寫入 DDRAM 相 應 的 地 址 write_ram2 = 10 100000000;

33、 數(shù)據(jù)寫入 parameter idleclear=lObOOOOOOOOO,=lObOOOOOOOOLset function初始狀態(tài),下一個狀態(tài)為CLEAR淸屏功能設巻:8位數(shù)據(jù)接口/2行顯示/5*8點 陣字符set_mode閉=lObOOOOOlOOO./入方式設置:數(shù)據(jù)讀寫操作后, 地址自動加一/回而不動shift=lObOOOO 10000, /光標、畫而位移設置:光標向左平移一=lObOOOOOOOlO,switch_mode = lObOOOOOOlOO, 顯示開關控制:開顯示,光標和閃爍關DDRAM 相應的地址圖4.3 LCD 1602的狀態(tài)機框圖5 5 ModelsimMod

34、elsim仿真及仿真5.15.1 ModelsimModelsim 介紹ModelSim是業(yè)界最優(yōu)秀的HDL語言仿真器。它提供最友 好的調(diào)試環(huán)境,是唯一的單內(nèi)核支持VHDL和Verilog混合仿真 的仿真器。是作FPGA/ASIC設計的RTL級和門級電路仿真的首 選。它釆用直接優(yōu)化的編譯技術(shù)、Tcl/Tk技術(shù)、和單一內(nèi)核仿真 技術(shù),編譯仿真速度快,編譯的代碼與平臺無關,便于保護IP核, 個性化的圖形界面和用戶接口,為用戶加快調(diào)錯提供強有力的手 段。全面支持VHDL和Verilog語言的IEEE標準,支持C/C+ 功能調(diào)用和調(diào)試。主要特點:RTL和門級優(yōu)化,本地編譯結(jié)構(gòu), 編譯仿真速度快;單內(nèi)核

35、VHDL和Verilog混合仿真;源代碼模 版和助手,項U管理;集成了性能分析、波形比較、代碼覆蓋等 功能;數(shù)據(jù)流 ChaseX: Signal Spy; C 和 Tcl/Tk 接口,C 調(diào)試。它支持Verilog. VHDL以及他們的混合仿真,它可以將整個 程序分步執(zhí)行,使設計者直接看到他的程序下一步要執(zhí)行的語句, 而且在程序執(zhí)行的任何步驟任何時刻都可以查看任意變量的當前 值,可以在Dataflow窗口查看某一單元或模塊的輸入輸出的連續(xù) 變化等,比Quartus自帶的仿真器功能強大的多,是U前業(yè)界最 通用的仿真器之一。-19-19-5.25.2書寫testbenchtestbench激勵信號

36、testbench是一種驗證的手段。首先,任何設計都是會有輸入輸 出的。但是在軟環(huán)境中沒有激勵輸入,也不會對你設計的輸出正 確性進行評估。那么此時便有一種,模擬實際環(huán)境的輸入激勵和 輸出校驗的一種“虛擬平臺”的產(chǎn)生。在這個平臺上你可以對你的 設計從軟件層面上進行分析和校驗,這個就是testbench的含義。5.35.3時鐘模塊仿真5.3.15.3.1時鐘模塊的激勵信號testbenchtestbench本設計驗證功能,對時間不進行嚴格控制,為方便觀看仿真 結(jié)果,在測試文件中將延時調(diào)小了。testbench代碼如下:timescale Ips/Ipsmodule USER_test_clock;

37、reg elk;reg rsCn;wire 7:0 hour;wire 7:0 min;wire 7:0 second;clock m.clk(clk),.rst_n(rst_n),hour(hour),.m in(min),second(second) );initialbeginclk=0;while(l)-20-20-#1 clk=clk; end給出時鐘激勵信號initialbeginrst_n= 1;#100 rst_n = 0; 給出復位激勵信號 #100 rst_n =1;endendmodule-21-21-5.3.25.3.2時鐘仿真波形及分析時鐘波形仿真結(jié)果如下圖5.3所示

38、:elk表示時鐘信號rst_n表示復位信號second表示秒計數(shù)min表示分計數(shù)hour表示小時計數(shù)觀察波形,當給出復位信號時,時間全部清零當秒計數(shù)到59秒時,秒計數(shù)清零,同時分計數(shù)加一; 當分計數(shù)到59秒時,分計數(shù)清零,同時小時計數(shù)加一; 當小時計數(shù)到23秒時,小時計數(shù)清零;!|ii n n T T ist.nist.n1 113132 2 rinrin515114fiefie2 2 5KCd5KCd 3939501S1JV|u X5252 閃 5454(55(55飭b b 158158 5959toto 131131 1 1加防M M10707 (08(08 紡11D11D )11)11

39、1212 1313 )14)14|15|15圖5.3時鐘仿真波形圖5.45.4溫度數(shù)據(jù)處理及空調(diào)電機仿真設計中釆用4位LED燈來模擬空調(diào)電機的運轉(zhuǎn),LED|O表 示空調(diào)電機處于待機狀態(tài);LED2表示空調(diào)電機進行升溫控制; LED3表示空調(diào)進行降溫控制;LED1保留;以上數(shù)據(jù)位低電平 有效。5.4.15.4.1 LEDLED模塊激勵信號testbenchtestbench本設計驗證功能,對時間不進行嚴格控制,為方便觀看仿真 結(jié)果,在測試文件中將延時調(diào)小了。testbench代碼如下: timescale lps/lpsmodule USERjestJed;reg elk:reg rsMi;reg

40、 15:Odata;reg 23:0 t;reg 7:0 sjime;reg 7:0 s_tmp;wire 3:0 led ;ledl( (.clk(clk),.rst_n(rst_n),.data(data),t,s_lmp(s_tmp),.sjime(sjime),.1 ed(led););initialbeginclk=O;while(l)# 10 clk=clk;給出時鐘激勵信號endinitialbeginrst_n= 1;#200 rst_n = 0: /給岀復位激勵信號#20 rst_n=l;endinitialbegint=0;初始化時間s_time=0;初始化設置時間s_tm

41、p=0;初始化設苣溫度data=0;初始化溫度endinitialbegin#300 data 15:0=16,h0240;sjmp7:0=8*h25; 給出信號 data 和 sjmp #350 data=0;endinitialbegin#400 data15:0=16,h0250;sjmp7:0=8,h25; 給出信號 data 和 sjmp #450 data=0;endinitialbegin#500 data 15:0=16h0260;s_tmp7:0=8h25; 給出信號 data 和 sjmp#550 data=0;endinitialbegin#600 t23:0=24h00

42、2200; sJime7:0=8,h22;#650t=0;endendniodule5.4.25.4.2 LEDLED模塊仿真結(jié)果及分析仿真結(jié)果如圖5.4所示,elk表示時鐘輸入信號,rst_n表示復位信 號,data表示實際溫度數(shù)據(jù),s_tmp表示設置的溫度值,t表示實 時時間,Time表示設置的定時時間。根據(jù)仿真結(jié)果,可以得出以 下結(jié)論:1、設置溫度(t_tmp)為25,當實時溫度(data)為24, led結(jié)果 為1011和1111交替變換,表示LED2在閃爍,說明空調(diào)電機正 在進行升溫控制;2、 設置溫度為25(t_tmp),當實時溫度(data)為25, led結(jié)果為 1110,表示

43、LED0長亮,說明空調(diào)電機處于待機模式;3、 設置溫度為25(t_tmp),當實時溫度為(data)為26, led結(jié)果 為0111和1111交替變換,表示LED3在閃爍,說明空調(diào)電機正 在進行降溫控制;4、 設置定時時fB(s_time)為22分,當實時時間(t)為22時,led 結(jié)果為1111,表示所有的LED燈都處于關閉狀態(tài),說明空調(diào)電機處 于關機模式,停止工作;圖5.4LED模塊波形仿真圖6 6實際運行結(jié)果及總結(jié)6.16.1配置管腳在quartus II 11.0中通過Pin planner配置好相應管腳。設計中 對于DS18B20的數(shù)據(jù)位設計為上拉電阻,所以在DS18B20的數(shù) 據(jù)位

44、管腳配置時設置為上拉模式。未用引腳需要設左約朿,否則會出現(xiàn)未知情況。set_.location. .assignment PIN_24 -toRESETset_.location assignment PIN_23 -toCLKset.location assignment PIN_32 -toDQset.location assignment PIN_89 -toKEYfOset.location assignment PIN_90 -toKEY1set.location assignment PIN_91 -toKEY2set.location assignment PIN_25 -toK

45、EY3set.location assignment PIN_88 -toKEY4set.location assignment PIN_70 -toLED0set.location assignment PIN_71 -toLED1set.location assignment PIN_72 -toLED2set.location assignment PIN_73 -toLED3set_.location assignment PIN_84 -toLCD1set_.location assignment PIN_85 -toLCD2set_.location assignment PIN_

46、98 -toLCD3set.location assignment PIN_99 -toLCD4set.location assignment PIN_100 -toLCD5set.location assignment PIN_101 -toLCD6set.location assignment PIN_103 -toLCD7set.location assignment PIN_104 -toLCD8set.location assignment PIN_105 -toLCD9set.location assignment PIN_106 -toLCD 10set.location ass

47、ignment PIN_110 -toLCD 116.26.2燒錄程序通過JTAG接口電路,使用Altera的USB blaster程序下載器, 通過計算機的USB接口可對Altera的FPGA/CPLD以及配置芯片 進行編程、調(diào)試等操作,對程序燒錄的FPGA里面。6.36.3運行結(jié)果分析運行結(jié)果如下圖6.1所示,分析結(jié)果如下:1、LCD 1602第一行顯示實時溫度,以及設置溫度。LCD 1602 第二行顯示實時時間以及定時時間。當設置溫度和設置時間均為 0時表示未設置相關操作,即不設置定時和溫度。2、當給外界環(huán)境進行升溫或降溫時,可以看到LCD 1602的顯 示數(shù)值不斷增大或減小,說明DS1

48、8B20I作正常。3、當設定好設置溫度時,如果外界環(huán)境溫度低于設定溫度時, LED2不斷閃爍,表明模擬空調(diào)電機正在進行升溫操作。4、當設定好設置溫度時,如果外界環(huán)境溫度高于設定溫度時, LED3不斷閃爍,表明模擬空調(diào)電機正在進行降溫操作。5、 當設定好設置溫度時,如果外界溫度和設定溫度相等, LED0長亮,表明模擬空調(diào)電機處于待機模式。6、當設置好定時時間時,如果實時時間和定時時間相等,LED 燈全部熄滅,表明空調(diào)電機處于關機模式。在實際的FPGA開發(fā)板上的運行結(jié)果,跟在Modelsim中運行 完全一致,這也驗證了軟件程序設計的正確性。同時通按鍵的加減來設置的溫度和設置的定時都能夠順利實 現(xiàn),

49、LED能按設定要求經(jīng)行閃爍,完成了對空調(diào)電機的模擬控制。-27-27 - -圖61實際運行結(jié)果圖致謝非常感謝各位老師在我大學的最后學習階段一一畢業(yè)設計階 段給自己的指導,從最初的定題,到資料收集,到寫作、修改, 到論文定稿,給了我耐心的指導和無私的幫助,在此表示我誠摯 的謝意。同時,感謝所有任課老師和所有同學在這四年來給自己 的指導和幫助,是他們教會了我專業(yè)知識,教會了我如何學習, 教會了我如何做人。正是由于他們,我才能在各方面取得顯著的 進步,在此向他們表示我由衷的謝意,并祝所有的老師培養(yǎng)出越 來越多的優(yōu)秀人才,桃李滿天下!通過這一階段的努力,我的畢業(yè)論文基于FPGA的空調(diào)控 制系統(tǒng)設計終于

50、完成了,這意味著大學生活即將結(jié)束。在大學 階段,我在學習上和思想上都受益非淺,這除了自身的努力外, 與各位老師、同學和朋友的關心、支持和鼓勵是分不開的。寫作畢業(yè)論文是一次再系統(tǒng)學習的過程,畢業(yè)論文的完成, 同樣也意味著新的學習生活的開始。我將銘記我曾是一名理工學 子,在今后的工作中把“窮究于理,成就于工”的優(yōu)良傳統(tǒng)發(fā)揚光 大。感謝各位老師的批評指導!-29-29 - -參考文獻1夏寧聞,VerlogHDL數(shù)字系統(tǒng)設計教程,北京航空航天大學出 版社。2009 杜慧敬,基于VerilogHDL的FPGA設汁基礎,西安電子科技 大學出版社。20093黃志偉.FPGA系統(tǒng)設計與實踐M.北京:清華大學出

51、版社。 20054袁俊泉,孫敬琪,曹瑞.Verilog HDL數(shù)字系統(tǒng)設訃及其應用M. 西安:西安電子出版社。20035王金明.數(shù)字系統(tǒng)設計與Verilog HDLM,4t京:電子工業(yè)出版 社。201130-30-附件程序代碼頂層模塊VerilogHDLVerilogHDL代碼:module UESR_test(elk,rst,DQ, lcd_rs , lcd_rw , lcd_en , lcd_data, key.in , led);input elk, rst ;inout DQ;input 3:01key_in;/輸入50MHz時鐘/溫度數(shù)據(jù)總線/按鍵輸入output 3:0. led;

52、/led燈輸出output lcd_rs;/LCD1602片選信號output lcd_rw;/LCD1602讀寫信號output lcd_en;/LCD1602使能信號output 7:0. lcd_data;LCD1602數(shù)據(jù)位wire 3: 0 key_value;wire 15:0 temperature ;wire 23:0 timed;wire 7:0. set_tmp;wire 7:0. set_time;DS18B20 QI (/DS18B20 模塊 elk(elk), rst_n(rst),one_wiz(DQ), 3131 temperature (temperature

53、);key_scan KO ( . sys_clk(clk),/按鍵掃描模塊sys_rstn(rst),key_in(key_in),key_value(key_value),);clock cO (. elk (elk), timed(timed);/時鐘分頻計時模塊lcdl602 sO(/LCD顯示模塊sys_clk(clk),sys_rstn(rst),lcd_:rs(lcd_:rs),lcd_rw(lcd_:rw),lcd_en(lcd_en),lcd_data(lcd_d3ta),di splay_data(temperature ),display_time(timed) ,set

54、_temp(key_value),set_time(set_time), set_tmp(set_tmp);led dO(/led閃爍模塊endmoduleclk(clk),sys_rstn(rst), led 仃 ed),data(temperature),t (timed), s_time (set_t ime),s_tmp(set_tmp);/ 50MHz 時鐘/異步復位/ One-Wire 總線/輸出溫度值DS18B20DS18B20 模塊 VerilogHDLVerilogHDL 代碼:module DS18B20( inputelk,/inputrst_n,inoutonc_wie

55、output 15:0 temperature);reg rst_n;reg 19:0count;always (posedge elk)beginif(coumv20h80000)beginrst_n=l;count=count+l;endelse if(count20*h8ffff)beginrst_n=0;count=count+l;endelserst_nlMHz開始十+卄卄+卄+卄+十+十卄+ reg 5:0 ent;計數(shù)子always (posedge elk, negedge rst_n)if (!rst_n)ent = 0;elseif (ent = 49)ent = 0; 3

56、333 - -reg clk_lus:elseent = ent + rbl;/ 1MHz時鐘always (posedge elk, negedge rst_n)if (!rst_n)clk_lus = 0;elseif (ent = 24)/ 24 = 50/2 - 1clk_lus = 0;elseclk_lus lMHz結(jié)束/ -延時模塊的使用十+卄+十十+卄+卄+十+/延時模塊開始/+卄卄+卄+卄+十+十卄+reg 19:0 cnt_lus;/ lus 延時計數(shù)子reg cnt_lus_clear;/ 請 lus 延時計數(shù)子always (posedge clk_lus)if (cm

57、_lus_clcar)cnt_lus = 0;elsecnt_lus = cnt_lus+ fbl;/ -/延時模塊結(jié)朿/ -十+卄+十十+卄+卄+十+/DS18B20狀態(tài)機開始丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄丄TT I I 1 1 1 1 i-r-ri-r-r rT-rrT-r丁TTTTTFTTTTTF 1 1 I I TTTTTTTT丁丁 Y Y J J I I ITTTITTT丁丁/TTt/TTt T T 1 1 rTTTTTrTTTTT T T格雷碼 parameter SOO parameter SO1 1 1 1 1 1 1 1 1 1 1

58、 1 1 1 1 1 1 1 1 1 r r t t tt1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1=5h00:=5h00:= = 5*h01;5*h01;34-34-/ One-Wire總線緩存寄存器/采集到的溫度值緩存器(未處/子狀態(tài)寄存器050/有效位reg onc_wire_buf;parameter S1 parameter S2 parameter S3 parameter S4 parameter S5 parameter S6 parameter S7=5hO3;=5hO2:=5*h06:=5W7:=51)05;

59、=5h04:=5*h0C;parameter WRITEO = 5hOD; parameter WRITE 1 = 5hOF;parameter WRITEOO = 5 WE: parameter WRITEO 1 =5hOA:parameter READO parameter READ1 parameter READ2 parameter READ3=5hOB:=5hO9;=51108;= 51118;reg 4:0 state;/-/狀態(tài)寄存器statereg 15:0 teinperature_buf;理)reg 5:0 step;reg 3:0 bit_valid;always (po

60、sedge clk_Ius, negedge rst_n) beginif (!rst_n)beginone_wire_buf = 1bZ;step= 0;state= SOO;elsebegincase (state) SOO : begintemperature_buf = 16hOOlF;=SO:/寫數(shù)據(jù)endSO:begin cnt_lus_clear = 1; one_wire_buf = 0; state= SI;end/初始化SI :beginciH_lus_clcar = 0;if (cnt_lus = 500) begincnt_lus_clear = 1;延時500uson

溫馨提示

  • 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

提交評論