畢業(yè)論文-基于fpga的空調(diào)控制器的設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  二〇一一年六月</b></p><p><b>  摘 要</b></p><p>  近幾年來(lái),隨著中國(guó)科學(xué)技術(shù)的進(jìn)步和人民生活水平的不斷提高,各種產(chǎn)業(yè)在迅速發(fā)展,當(dāng)然,空調(diào)業(yè)也包括其中,空調(diào)在公共場(chǎng)所,專用場(chǎng)地和普通家庭等場(chǎng)所都廣泛應(yīng)用。但是隨著空調(diào)數(shù)量的增加,相應(yīng)的負(fù)面問(wèn)題也隨之出現(xiàn),耗能的日益增加已成為我國(guó)部

2、分地區(qū)能源及電力供需矛盾的主要原因之一,當(dāng)務(wù)之急必須采取有效措施降低空調(diào)的能耗。同時(shí),利用傳統(tǒng)的方法調(diào)節(jié)室內(nèi)溫度也是存在很多缺陷的,如空調(diào)始終處于同一溫度,無(wú)法隨室溫的變化而自動(dòng)改變,造成能源的浪費(fèi)以及給人們生活帶來(lái)不便;室內(nèi)的空氣質(zhì)量沒(méi)有得到保證;運(yùn)行時(shí)間太長(zhǎng)導(dǎo)致空調(diào)的使用壽命縮短等。如何降低空調(diào)能耗,實(shí)現(xiàn)空調(diào)自動(dòng)控制,利用空調(diào)改善室內(nèi)溫度,延長(zhǎng)空調(diào)使用壽命已成為當(dāng)前首要課題。</p><p>  本文介紹了空

3、調(diào)控制器的設(shè)計(jì),提出了一種采用現(xiàn)場(chǎng)可編程門陣列器件FPGA實(shí)現(xiàn)空調(diào)控制器的方法,該設(shè)計(jì)采用A/D轉(zhuǎn)換器,用于模擬環(huán)境溫度、采用跑馬燈程序,用于顯示控制溫度情況。首先,闡述了空調(diào)控制器的基本原理。其次,本文給出了用Verilog HDL語(yǔ)言實(shí)現(xiàn)高效率空調(diào)控制器的設(shè)計(jì)及在Quartus II中的仿真結(jié)果,并對(duì)仿真結(jié)果進(jìn)行了分析、比較,確保了輸出波形的精確度。最后給出了其在FPGA上的實(shí)現(xiàn)。同時(shí),引入了A/D,故本設(shè)計(jì)可以根據(jù)不同的要求在不同

4、規(guī)模的FPGA上加以實(shí)現(xiàn)。</p><p>  關(guān)鍵詞:空調(diào)控制器;FPGA;Verilog HDL;Quartus II;A/D</p><p><b>  Abstract</b></p><p>  In recent years, With China's scientific and technological progres

5、s and the improvement of people’s standard of living, all kinds of industries are developing rapidly, Of course, including the industry of air conditioning. Air- conditionings are widely used in many places, such as in p

6、ublic places, special field and ordinary families. However, with the increasing number of air-conditioning, the corresponding negative issues appeared. Increasing energy consumption has become one of the major reas</p

7、><p>  This paper introduces a design of air-conditioning controller, proposing a method that uses FPGA devices to realize air-conditioning controlling. This design uses A/D converter, to simulate environmental

8、 temperature, and adopts scrolling program, to show the control over temperature. Firstly, this paper expounds the basic principle of air-condition. Secondly, the paper presets Verilog HDL language with highly efficient

9、design of the air-controller and the simulation results in Quartus II, and th</p><p>  Keywords: Air-Controller;FPGA;Verilog HDL;Quartus II;A/D</p><p><b>  目 錄</b></p><p&g

10、t;<b>  摘 要I</b></p><p>  AbstractII</p><p><b>  引 言1</b></p><p><b>  第一章 緒論2</b></p><p>  1.1 課題背景2</p><p>  1.2 研

11、究目的及意義2</p><p>  1.3 國(guó)內(nèi)外研究現(xiàn)狀3</p><p>  1.4 主要研究?jī)?nèi)容3</p><p>  第二章 空調(diào)的基本簡(jiǎn)介5</p><p>  2.1 空調(diào)基本原理5</p><p>  2.2 空調(diào)控制系統(tǒng)原理5</p><p>  2.2.1 空氣溫度

12、調(diào)節(jié)5</p><p>  2.2.2 空氣濕度調(diào)節(jié)6</p><p>  2.2.3 空氣其他參數(shù)調(diào)節(jié)6</p><p>  第三章 空調(diào)控制器的Verilog HDL設(shè)計(jì)7</p><p>  3.1 Verilog HDL簡(jiǎn)介7</p><p>  3.2 Quartus II簡(jiǎn)介7</p>

13、;<p>  3.3 空調(diào)控制器的Verilog HDL設(shè)計(jì)及仿真8</p><p>  3.3.1 空調(diào)控制器程序的設(shè)計(jì)及分析8</p><p>  3.3.2 空調(diào)控制器的時(shí)序仿真17</p><p>  第四章 空調(diào)控制器的FPGA實(shí)現(xiàn)19</p><p>  4.1 FPGA簡(jiǎn)介19</p>&l

14、t;p>  4.2 FPGA設(shè)計(jì)及驗(yàn)證20</p><p><b>  結(jié) 論23</b></p><p><b>  參考文獻(xiàn)24</b></p><p><b>  謝 辭25</b></p><p><b>  引 言</b></

15、p><p>  近幾十年來(lái),隨著中國(guó)科學(xué)技術(shù)進(jìn)步,各行各業(yè)發(fā)生翻天覆地的變化,當(dāng)今社會(huì)也隨之是數(shù)字化的社會(huì),是數(shù)字集成電路廣泛應(yīng)用的社會(huì)。數(shù)字集成電路不是一成不變的產(chǎn)品,它本身也是在不斷地進(jìn)行更新?lián)Q代以適應(yīng)人們的需求。它由早期的電子管、晶體管、小中規(guī)模集成電路,發(fā)展到超大規(guī)模集成電路(VLSIC,幾萬(wàn)門以上)以及許多具有特定功能的專用集成電路。但是,隨著微電子技術(shù)的發(fā)展,人們對(duì)集成電路提出更高的要求,因此競(jìng)爭(zhēng)也越來(lái)越

16、激烈,設(shè)計(jì)與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來(lái)獨(dú)立承擔(dān)。系統(tǒng)設(shè)計(jì)師們更愿意自己設(shè)計(jì)專用集成電路(ASIC)芯片,而且希望ASIC的設(shè)計(jì)周期盡可能短,最好是在實(shí)驗(yàn)室里就能設(shè)計(jì)出合適的ASIC芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件(FPLD),其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場(chǎng)可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。利用PLD器件實(shí)現(xiàn)時(shí),可以采用硬件乘加模塊,從而使其運(yùn)算速度比采用DSP器件快很多。因此基

17、于FPGA的自編程實(shí)現(xiàn)方式成了空調(diào)控制器實(shí)現(xiàn)的首選[1]。本文主要介紹空調(diào)控制器的設(shè)計(jì)方案和基于FPGA的實(shí)現(xiàn)方法。</p><p>  在本次空調(diào)控制器設(shè)計(jì)中,溫度數(shù)據(jù)是基于ADC0809芯片中完成的。在設(shè)計(jì)A/D采樣控制器中,ADC0809是CMOS的8為A/D轉(zhuǎn)換器,片內(nèi)有8路模擬開關(guān),可控制8個(gè)模擬量中的一個(gè)進(jìn)入轉(zhuǎn)換器。轉(zhuǎn)換時(shí)間約為100us,ADC0809含鎖存控制的8路開光,輸出由三態(tài)緩沖器控制,單5

18、v電源供電??照{(diào)控制器接收到ADC0809轉(zhuǎn)換過(guò)來(lái)的數(shù)據(jù)進(jìn)行相關(guān)的處理,并且在LED中顯示實(shí)驗(yàn)結(jié)果。同時(shí)可以用七段譯碼器程序替換流水燈程序,用數(shù)字44444444表示制熱,22222222表示制冷,11111111表示初始狀態(tài)。</p><p><b>  第一章 緒論</b></p><p><b>  1.1 課題背景</b></p&g

19、t;<p>  過(guò)去很長(zhǎng)一段時(shí)間以來(lái),人們大多數(shù)采用單片機(jī)來(lái)實(shí)現(xiàn)空調(diào)控制器的設(shè)計(jì),因?yàn)樗哂谐杀据^低的特點(diǎn)。但設(shè)計(jì)出來(lái)的控制器性能一般,并且普通單片機(jī)的集成度通常較低,例如Intel公司自己開發(fā)的AT89S51只有128個(gè)字節(jié)片的內(nèi)數(shù)據(jù)存儲(chǔ)器,32根可編程I/O口線,5個(gè)中斷源。顯然,我們要完成更為復(fù)雜的運(yùn)算和控制功能,就不得不對(duì)外擴(kuò)展,可是外部硬件電路具有延時(shí)等不可預(yù)知風(fēng)險(xiǎn),這又迫使擴(kuò)展?fàn)奚麢C(jī)性能為代價(jià)。而且這種設(shè)計(jì)方

20、法具有局限性,受制于硬件電路,開發(fā)有一定的難度。而一些愛好者自己研發(fā)的空調(diào)專用芯片,大多數(shù)因技術(shù)上的限制,靈活性和壽命方面沒(méi)有什么優(yōu)勢(shì)。</p><p>  FPGA作為一種新興的可編程技術(shù),是進(jìn)行原型設(shè)計(jì)最理想的載體,其準(zhǔn)確的可測(cè)試性和目前已達(dá)到的深亞微米級(jí)工藝,能較好的解決傳統(tǒng)設(shè)計(jì)方法中的諸多難題。其豐富的編程資源和靈活的編程特性,能將許多原體需要借助外部硬件實(shí)現(xiàn)的功能,轉(zhuǎn)化為軟件編程來(lái)完成,使升級(jí)改進(jìn)更為靈

21、活。而且這種設(shè)計(jì)方法能在軟件階段就對(duì)設(shè)計(jì)做出準(zhǔn)確的預(yù)測(cè)和評(píng)估,從而能極大的開發(fā)效率,有效避免前期的風(fēng)險(xiǎn)投資?,F(xiàn)代先進(jìn)的FPGA工藝技術(shù),使得FPGA在功耗和價(jià)格方面大為降低。FPGA也可以用來(lái)做模型機(jī),因?yàn)樵谠O(shè)計(jì)一個(gè)電路時(shí),首選要確定線路,然后進(jìn)行軟件模擬及優(yōu)化,以確定所設(shè)計(jì)電路的功能入性能。然而隨著電路規(guī)模的不斷增大,工作頻率的不斷提高,將會(huì)給電路引入許多分布參數(shù)的影響,而這在用軟件模擬中很難反映出來(lái),這時(shí)候就有必要做硬件仿真,由于F

22、PGA具有非常靈活的可編程特性,所以就可以用來(lái)做硬件仿真的模型機(jī)了。有了該模型機(jī)就可以直觀地測(cè)試其邏輯功能及性能指標(biāo)[2]。研究基于FPGA的空調(diào)控制器的設(shè)計(jì)有著重大的意義。</p><p>  1.2 研究目的及意義</p><p>  隨著我國(guó)近幾年來(lái)空調(diào)業(yè)得迅猛發(fā)展與空調(diào)的普遍應(yīng)用,其能耗占我國(guó)總能耗的比重日益增大,已成為我國(guó)部分地區(qū)能源及電力供需矛盾的主要原因之一,而且由于空調(diào)回風(fēng)

23、等問(wèn)題很難保證室內(nèi)人員獲得的新風(fēng)質(zhì)量。我國(guó)已成為世界上空調(diào)用戶最多的國(guó)家,也是“空調(diào)病”發(fā)病率最多的國(guó)家。因此如何改善和提高空調(diào)系統(tǒng)運(yùn)行效率,減少能耗,改善室內(nèi)空氣品質(zhì),已成為我國(guó)空調(diào)業(yè)發(fā)展的一個(gè)急需解決的問(wèn)題 [3] 。</p><p>  對(duì)于電信業(yè)來(lái)說(shuō),隨著市場(chǎng)經(jīng)濟(jì)的不斷深入,各種規(guī)章制度的不斷完善,市場(chǎng)的運(yùn)作模式逐步與國(guó)際接軌,同時(shí)企業(yè)之間的競(jìng)爭(zhēng)也越來(lái)越殘酷。對(duì)于中國(guó)電信怎樣已經(jīng)上市的大型電信企業(yè),必須考

24、慮以最小的成本投入創(chuàng)造最大的利潤(rùn)回報(bào)。在這樣的形式下,節(jié)電降耗不僅符合我國(guó)的基本國(guó)情,又滿足企業(yè)的生存發(fā)展策略。</p><p>  移動(dòng)通信站的人工降溫的,空氣凈化及其運(yùn)行管理是電信維護(hù)部門的工作重點(diǎn)之一,現(xiàn)有的移動(dòng)基站絕大多數(shù)依然采用空調(diào)降溫的方法,投資大,運(yùn)行時(shí)間長(zhǎng),占用了大量的運(yùn)營(yíng)成本[4]。</p><p>  本次用FPGA設(shè)計(jì)空調(diào)控制器對(duì)如何降低空調(diào)能耗,開發(fā)周期短,可移植性

25、好,升級(jí)靈活等有重要意義。</p><p>  1.3 國(guó)內(nèi)外研究現(xiàn)狀</p><p>  目前,國(guó)內(nèi)外空調(diào)控制器的實(shí)現(xiàn)方法有很多種:</p><p>  (1)基于ARM7的空調(diào)控制器的實(shí)現(xiàn)。這種方法的缺點(diǎn)是PID控制參數(shù)調(diào)整有一定的難度,并且應(yīng)用程序不夠完善[5]。</p><p> ?。?)用單片機(jī)來(lái)實(shí)現(xiàn)。單片機(jī)的接口性能比較良發(fā)好,容

26、易實(shí)現(xiàn)人機(jī)接口。但是由于單片機(jī)集成度通常較低,系統(tǒng)設(shè)計(jì)比較復(fù)雜[6]。</p><p>  (3)基于嵌入式的VRV空調(diào)控制器的研究[7]。</p><p> ?。?)利用特殊用途的芯片實(shí)現(xiàn)。這種方案的缺點(diǎn)是靈活性差,而且開發(fā)工具很不完善[8]。</p><p>  (5)用FPGA等可編程器件來(lái)設(shè)計(jì)空調(diào)控制器。由于FPGA產(chǎn)品的迅速發(fā)展,人們可以利用Altera、

27、Xilinx等公司提供的產(chǎn)品,使用其相關(guān)開發(fā)工具和VHDL等硬件開發(fā)語(yǔ)言,通過(guò)軟件編程用硬件實(shí)現(xiàn)特定的功能。這一方法由于具有通用性的特點(diǎn)并可以實(shí)現(xiàn)其他功能,因此目前都是有比較活躍的研究領(lǐng)域。</p><p>  1.4 主要研究?jī)?nèi)容</p><p>  本論文主要研究?jī)?nèi)容是:</p><p> ?。?)空調(diào)控制器的理論和結(jié)構(gòu)</p><p>

28、  空調(diào)控制系統(tǒng),即利用計(jì)算機(jī)控制技術(shù),將空調(diào)系統(tǒng)中各種信號(hào)(溫度、濕度、壓力、狀態(tài)等),通過(guò)輸入裝置輸入計(jì)算機(jī),經(jīng)相應(yīng)程序運(yùn)算處理,將處理后的信號(hào)經(jīng)輸出裝置輸出,進(jìn)而控制相應(yīng)的執(zhí)行機(jī)構(gòu)[9]。</p><p>  (2)空調(diào)控制器的設(shè)計(jì)方法</p><p>  FPGA技術(shù)的一個(gè)巨大優(yōu)勢(shì),就是用自頂向下的設(shè)計(jì)思路,將設(shè)計(jì)化處理,為完成控制器的各項(xiàng)功能,設(shè)計(jì)劃分為多個(gè)模塊進(jìn)行。</p

29、><p> ?。?)空調(diào)控制器的FPGA實(shí)現(xiàn)</p><p>  當(dāng)今社會(huì)是數(shù)字化的社會(huì),是數(shù)字集成電路廣泛應(yīng)用的社會(huì)。數(shù)字集成電路本身在不斷地進(jìn)行更新?lián)Q代。它由早期的電子管、晶體管、小中規(guī)模集成電路,發(fā)展到超大規(guī)模集成電路(VLSIC,幾萬(wàn)門以上)以及許多具有特定功能的專用集成電路。但是,隨著微電子技術(shù)的發(fā)展,設(shè)計(jì)與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來(lái)獨(dú)立承擔(dān)。系統(tǒng)設(shè)計(jì)師們更愿意自己設(shè)計(jì)

30、專用集成電路(ASIC)芯片,而且希望ASIC的設(shè)計(jì)周期盡可能短,最好是在實(shí)驗(yàn)室里就能設(shè)計(jì)出合適的ASIC芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件(FPLD),其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場(chǎng)可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。利用PLD器件實(shí)現(xiàn)時(shí),可以采用硬件乘加模塊,從而使其運(yùn)算速度比采用DSP器件快很多。因此基于FPGA的自編程實(shí)現(xiàn)方式成了空調(diào)控制器實(shí)現(xiàn)的首選。本文主要介紹空調(diào)控制器的設(shè)計(jì)方案和基

31、于FPGA的實(shí)現(xiàn)方法。</p><p>  第二章 空調(diào)的基本簡(jiǎn)介</p><p>  2.1 空調(diào)基本原理</p><p>  空調(diào)在作制冷運(yùn)行時(shí),低溫低壓的制冷劑氣體被壓縮機(jī)吸入后加壓變成高溫高壓的制冷劑氣體,高溫高壓的制冷劑氣體在室外換熱器中發(fā)熱(通過(guò)冷凝器冷凝)變成中溫高壓的液體(熱量通過(guò)室外循環(huán)空氣帶走),中溫高壓的液體在經(jīng)過(guò)節(jié)流部件節(jié)流降壓后變?yōu)榈蜏氐蛪?/p>

32、的氣體(室內(nèi)空氣經(jīng)過(guò)換熱器表面被冷卻降溫,達(dá)到使室內(nèi)溫度下降的目的),低溫低壓的制冷劑氣體再被壓縮機(jī)吸入,如此循環(huán)。</p><p>  空調(diào)在制熱運(yùn)行時(shí),低溫低壓的制冷劑氣體被壓縮機(jī)吸入后加壓變成高溫高壓的制冷劑氣體,高溫高壓的制冷氣體在室內(nèi)換熱器中放熱變成中溫高壓的液體(室內(nèi)空氣經(jīng)過(guò)換熱器表面被加熱,達(dá)到使室內(nèi)溫度升高的目的),中溫高壓的液體再經(jīng)過(guò)節(jié)流部分節(jié)流降壓后變?yōu)榈蜏氐蛪旱囊后w,低溫低壓的液體在換熱器中

33、吸熱蒸發(fā)后變?yōu)榈蜏氐蛪旱臍怏w(室外空氣經(jīng)過(guò)換熱器表面被冷卻降溫),低溫低壓的氣體再被壓縮機(jī)機(jī)吸收,如此循環(huán)。</p><p>  2.2 空調(diào)控制系統(tǒng)原理</p><p>  空調(diào)控制系統(tǒng),即利用計(jì)算控制技術(shù),將空調(diào)系統(tǒng)中各種信號(hào)(溫度,濕度,壓力狀態(tài)等),通過(guò)輸入裝置輸入計(jì)算機(jī),經(jīng)相應(yīng)程序運(yùn)算處理,將處理后的信號(hào)經(jīng)過(guò)輸出裝置輸出,進(jìn)而控制相應(yīng)的執(zhí)行機(jī)構(gòu)。</p><p

34、>  空氣調(diào)節(jié)的簡(jiǎn)稱就是空調(diào)。它的主要作用是對(duì)空氣的溫度、濕度、潔凈度和空氣流速等參數(shù)進(jìn)行調(diào)節(jié)創(chuàng)造一個(gè)使人感到很舒適的室內(nèi)(大氣)環(huán)境;或者是滿足生產(chǎn)工藝過(guò)程,實(shí)驗(yàn)過(guò)程的需求。為了實(shí)現(xiàn)這一功能,空氣調(diào)節(jié)所依靠的技術(shù)手段只要是通風(fēng)換氣,具體地說(shuō),就是加工和處理一定的空氣進(jìn)入室內(nèi),使室內(nèi)大氣環(huán)境滿足要求。對(duì)空氣處理過(guò)程包括加溫(降溫),加濕(除濕),凈化等,即常說(shuō)的熱濕處理??諝庹{(diào)節(jié)主要包括溫度調(diào)節(jié)和濕度調(diào)節(jié)[10]。</p&g

35、t;<p>  2.2.1 空氣溫度調(diào)節(jié)</p><p>  通過(guò)空調(diào)可以調(diào)節(jié)室內(nèi)的溫度,保證我們有一個(gè)舒適的生活環(huán)境。不過(guò),我們?cè)诙荆ㄏ募荆┦褂每照{(diào)的時(shí)候,溫度并不是調(diào)的越高(低)越好。這是因?yàn)橐粋€(gè)合理的房間溫度應(yīng)使人既感到舒適,又有利于健康。所以說(shuō),合理調(diào)節(jié)空調(diào)溫度對(duì)于消費(fèi)者來(lái)說(shuō)也是很重要的??照{(diào)房間合理的溫度在夏天應(yīng)為26℃~28℃,冬天應(yīng)在18℃~20℃。</p><p

36、>  2.2.2 空氣濕度調(diào)節(jié)</p><p>  人應(yīng)生活在一個(gè)濕度相對(duì)適宜的環(huán)境里,如果空氣相對(duì)濕度過(guò)高或者是過(guò)低都將使人感到不舒適,甚至引起疾病。正常情況下,冬季相對(duì)濕度在45%~55%之間,夏季在55%~65%之間,人在此環(huán)境下生活才適應(yīng)。但是我們得結(jié)合溫度綜合考慮,如果溫度變化在正常范圍內(nèi),那么相對(duì)濕度即時(shí)便在45%~75%的范圍內(nèi)變化,人們也是能適應(yīng)的。</p><p>

37、  2.2.3 空氣其他參數(shù)調(diào)節(jié)</p><p>  除了常規(guī)的空氣溫度、濕度調(diào)節(jié)以外,在特殊的場(chǎng)合,空調(diào)系統(tǒng)還實(shí)現(xiàn)控制質(zhì)量、空氣壓力等調(diào)節(jié)。舒適空調(diào)要保證一定的新風(fēng)量,否則人們會(huì)感到不舒服;在對(duì)空間潔凈度有要求的場(chǎng)合,如精密生產(chǎn)加工車間、生物醫(yī)藥制品間等特殊的高潔凈度場(chǎng)合,需要正壓調(diào)節(jié),以免不滿足要求的空氣進(jìn)入而損害潔凈間的清潔度;對(duì)產(chǎn)生有害氣體的有害有毒物品生產(chǎn)車間,污染物處理間或是病毒經(jīng)空氣傳染的嚴(yán)重傳染病

38、隔離病房等場(chǎng)合,須采用負(fù)壓調(diào)節(jié)以免有毒,有害氣體泄漏造成空氣的污染和破壞[11]。</p><p>  第三章 空調(diào)控制器的Verilog HDL設(shè)計(jì)</p><p>  3.1 Verilog HDL簡(jiǎn)介</p><p>  硬件描述語(yǔ)言(HDL: Hardware Description Language)是硬件設(shè)計(jì)人員和EDA工具之間的界面,它主要用于從算法級(jí)

39、、門級(jí)到開關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡(jiǎn)單的門和完整的電子數(shù)字系統(tǒng)之間。硬件描述語(yǔ)言的主要功能是編寫設(shè)計(jì)文件,建立電子系統(tǒng)行為級(jí)的仿真模型,然后利用高性能的計(jì)算機(jī)對(duì)用數(shù)字Verilog HDL建模的復(fù)雜數(shù)字邏輯進(jìn)行仿真,之后再對(duì)它進(jìn)行自動(dòng)綜合以生成符合要求且在電路結(jié)構(gòu)上可以實(shí)現(xiàn)的數(shù)字邏輯網(wǎng)表(Netlist),然后根據(jù)網(wǎng)絡(luò)表和適合某種工藝的器件自動(dòng)生成具體電路,最后生成該工藝條件下具體電路的

40、延時(shí)模型。仿真驗(yàn)證無(wú)誤后用于制造ASIC芯片或?qū)懭隖PGA和CPLD中。系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。Verilog HDL是一種以文本形式來(lái)描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語(yǔ)言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語(yǔ)言,都是在20世紀(jì)80年代中期開發(fā)出來(lái)的,前者由Gateway Desig</p>

41、<p>  Verilog HDL語(yǔ)言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制;提供編程語(yǔ)言接口(PLI),通過(guò)該接口可以在模擬,驗(yàn)證期間從設(shè)計(jì)外部訪問(wèn)設(shè)計(jì),包括模擬的具體控制和運(yùn)行。支持多個(gè)設(shè)計(jì)層次的混合層次建模;最重要的是Verilog HDL語(yǔ)言與C語(yǔ)言很相似,從C語(yǔ)言中繼承多種操作符和結(jié)構(gòu),其核心子集非常易于學(xué)習(xí)和使用,而這對(duì)大多數(shù)建模應(yīng)用

42、來(lái)說(shuō)已經(jīng)足夠。由于HDL語(yǔ)言本身是專門面向硬件與系統(tǒng)設(shè)計(jì)的,這樣的安排可以使學(xué)習(xí)者同時(shí)獲得設(shè)計(jì)實(shí)際電路的經(jīng)驗(yàn)。</p><p>  3.2 Quartus II簡(jiǎn)介</p><p>  Quartus II 是Altera的新一代集成開發(fā)軟件,使用Quartus II可完成從設(shè)計(jì)輸入、綜合配置、仿真到編程下載整個(gè)的設(shè)計(jì)過(guò)程,Quartus II也可以直接調(diào)用Synplify Pro、Leo

43、nardo Spectrum以及ModelSim等第三方EDA工具來(lái)完成設(shè)計(jì)任務(wù)的綜合和仿真。此外,Quartus II與MATLAB和DSP Builder結(jié)合可以進(jìn)行基于FPGA的DSP系統(tǒng)開發(fā),方便而快捷;Quartus II還可以與SOPC Builder結(jié)合,實(shí)現(xiàn)SOPC系統(tǒng)的開發(fā)。</p><p>  Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,

44、提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。</p><p>  Quartus II支持Altera的IP核,包含了LPM/Mega Function宏功能模塊庫(kù),使用戶可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對(duì)第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具[13]。</p><p>  

45、此外,Quartus II 通過(guò)和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。</p><p>  Maxplus II 作為Altera的上一代PLD設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對(duì)Max

46、plus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設(shè)計(jì)輔助工具,集成了SOPC和HardCopy設(shè)計(jì)流程,并且繼承了Maxplus II 友好的圖形界面及簡(jiǎn)便的使用方法。</p><p>  Altera Quartus II 作為一種可編

47、程邏輯的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來(lái)越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。Altera的Quartus II可編程邏輯軟件屬于第四代PLD開發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于Internet的協(xié)作設(shè)計(jì)。Quartus平臺(tái)與Cadence、Exemplar Logic、 Mentor Graphics、Synopsys和Synplicity等EDA供應(yīng)商的開發(fā)工具相兼容。改進(jìn)了軟件的Logic

48、Lock模塊設(shè)計(jì)功能,增添 了FastFit編譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。支持MAX7000/MAX3000等乘積項(xiàng)器件[14]。</p><p>  3.3 空調(diào)控制器的Verilog HDL設(shè)計(jì)及仿真</p><p>  3.3.1 空調(diào)控制器程序的設(shè)計(jì)及分析</p><p>  空調(diào)機(jī)的工作過(guò)程如下:</p><p>

49、;  空調(diào)分為單冷空調(diào)和冷暖兩用空調(diào),工作原理是一樣的,空調(diào)一般使用的制冷劑是氟利昂。 氟利昂的特性是:由氣態(tài)變?yōu)橐簯B(tài)時(shí),釋放大量的熱量。而由液態(tài)轉(zhuǎn)變?yōu)闅鈶B(tài)時(shí),會(huì)吸收大量的熱量??照{(diào)就是據(jù)此原理而設(shè)計(jì)的。 </p><p>  壓縮機(jī)將氣態(tài)的制冷劑壓縮為高溫高壓的液態(tài)制冷劑,所以室外機(jī)吹出來(lái)的是熱風(fēng)。然后到毛細(xì)管,進(jìn)入蒸發(fā)器(室內(nèi)機(jī)),由于制冷劑從毛細(xì)管到達(dá)蒸發(fā)器后空間突然增大,壓力減小,液態(tài)的制冷劑就會(huì)汽化,變

50、成氣態(tài)低溫的制冷劑,從而吸收大量的熱量,蒸發(fā)器就會(huì)變冷,室內(nèi)機(jī)的風(fēng)扇將室內(nèi)的空氣從蒸發(fā)器中吹過(guò),所以室內(nèi)機(jī)吹出來(lái)的就是冷風(fēng);空氣中的水蒸汽遇到冷的蒸發(fā)器后就會(huì)凝結(jié)成水滴,順著水管流出去,這就是空調(diào)會(huì)出水的原因。</p><p>  接通電源后,用戶通過(guò)按鍵設(shè)定溫度(默認(rèn)為25℃)并指定工作模式(手動(dòng)/自動(dòng)),空調(diào)機(jī)開始運(yùn)行。</p><p>  當(dāng)溫度高于設(shè)定溫度,且超過(guò)允許誤差范圍時(shí),壓

51、縮機(jī)開始運(yùn)行,環(huán)境溫度隨壓縮機(jī)運(yùn)行而下降。當(dāng)環(huán)境溫度降到設(shè)定溫度附近,且進(jìn)入允許誤差范圍之內(nèi)時(shí),壓縮機(jī)停止運(yùn)行。</p><p>  當(dāng)環(huán)境溫度低于設(shè)定溫度,且超過(guò)允許誤差范圍時(shí),加熱裝置開始運(yùn)行,環(huán)境溫度隨加熱裝置運(yùn)行而上升。當(dāng)環(huán)境溫度到達(dá)設(shè)定溫度附近,且進(jìn)入允許誤差范圍之內(nèi)時(shí),加熱裝置停止運(yùn)行。</p><p>  壓縮機(jī)和加熱器周而復(fù)始的運(yùn)行,保證環(huán)境溫度控制在設(shè)定的溫度范圍之內(nèi)。&

52、lt;/p><p>  本設(shè)計(jì)的Verilog HDL程序由一個(gè)主程序模塊和四個(gè)子程序模塊組成,其中主程序如下:</p><p>  modul air-condition(clk,reset,temp_Setkey,Auto_switch,temp_Test,to_hot,to_cool, temp_Set);</p><p>  input clk,reset;&l

53、t;/p><p>  input[1:0]temp_Setkey;</p><p>  input[2:0]Auto_switch;</p><p>  input[5:0]temp_Test;</p><p>  output reg to_hot,to_cool;</p><p>  output reg[5:0]te

54、mp_Set;</p><p>  parameter s0=2'b00,s1=2'b01,s2=2'b10;</p><p>  reg[1:0]current_state,next_state;</p><p>  wire[5:0]temp_H,temp_L;</p><p>  wire test_H,test

55、_L;</p><p>  reg w1,w2,w3,w4;</p><p>  always @(posedge clk,posedge reset)</p><p><b>  begin</b></p><p>  if(reset)temp_Set<=25;</p><p><

56、b>  else</b></p><p><b>  begin</b></p><p>  w1<=temp_Setkey[0];</p><p><b>  w2<=w1;</b></p><p>  w3<=temp_Setkey[1];</p>

57、<p><b>  w4<=w3;</b></p><p>  if((w1&w2==0)&(w1==1))temp_Set<=temp_Set+1;</p><p>  else if((w3&w4==0)&(w3==1))temp_Set<=temp_Set-1;</p><p&g

58、t;<b>  end</b></p><p><b>  end</b></p><p>  assign temp_H=temp_Set+1,</p><p>  temp_L=temp_Set-1;</p><p>  assign test_H=(temp_Test>temp_H)?1

59、:0,</p><p>  test_L=(temp_Test<temp_L)?1:0;</p><p>  always @(posedge reset,posedge clk)</p><p><b>  begin</b></p><p>  if(reset)current_state=s0;</p&

60、gt;<p>  else current_state=next_state;</p><p><b>  end</b></p><p>  always @(Auto_switch,current_state,test_H,test_L)</p><p><b>  begin</b></p>

61、<p>  if(Auto_switch[2]==1)</p><p><b>  begin</b></p><p>  if(Auto_switch[0]==1)</p><p><b>  begin</b></p><p>  to_hot<=0;</p>

62、<p>  to_cool<=0;</p><p><b>  end</b></p><p>  else if(Auto_switch[1]==1)</p><p><b>  begin</b></p><p>  to_hot<=1;</p><p&

63、gt;  to_cool<=0;</p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  to_hot<=0;</p><p>  to_c

64、ool<=1;</p><p><b>  end</b></p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  case

65、(current_state)</p><p><b>  s0:</b></p><p><b>  begin</b></p><p>  to_hot<=0;</p><p>  to_cool<=0;</p><p>  if(test_H==1&

66、test_L==0)</p><p>  next_state<=s1;</p><p>  else if(test_H==0&test_L==1)</p><p>  next_state<=s2;</p><p>  else next_state<=s0;</p><p><b&

67、gt;  end</b></p><p><b>  s1:</b></p><p><b>  begin</b></p><p>  to_hot<=0;</p><p>  to_cool<=1;</p><p>  if(test_H==0&a

68、mp;test_L==0)</p><p>  next_state<=s0;</p><p>  else if(test_H==0&test_L==1)</p><p>  next_state<=s2;</p><p>  else next_state<=s1;</p><p><

69、;b>  end</b></p><p><b>  s2:</b></p><p><b>  begin</b></p><p>  to_hot<=1;</p><p>  to_cool<=0;</p><p>  if(test_H==

70、0&test_L==0)</p><p>  next_state<=s0;</p><p>  else if(test_H==1& test_L==0)</p><p>  next_state<=s1;</p><p>  else next_state<=s2;</p><p>

71、;<b>  end</b></p><p>  default:next_state<=s0;</p><p><b>  endcase</b></p><p><b>  end</b></p><p><b>  end</b></p&

72、gt;<p><b>  endmodule</b></p><p>  主程序里調(diào)用了三個(gè)子程序,分別是A/D采樣控制電路、跑馬燈程序,之后是7段顯示器程序設(shè)計(jì)。</p><p>  在設(shè)計(jì)A/D采樣控制器中,ADC0809是CMOS的8為A/D轉(zhuǎn)換器,片內(nèi)有8路模擬開關(guān),可控制8個(gè)模擬量中的一個(gè)進(jìn)入轉(zhuǎn)換器。轉(zhuǎn)換時(shí)間約為100us,ADC0809含鎖存

73、控制的8路開光,輸出由三態(tài)緩沖器控制,單5v電源供電。START是轉(zhuǎn)換啟動(dòng)信號(hào),高電平有效。ALE是3位通道選擇地址信號(hào)(ADDC、ADDB、ADDA)的鎖存信號(hào)。當(dāng)模擬量送至某一輸入端(如IN1或IN2等)時(shí),由3位地址信號(hào)選擇,而地址信號(hào)有ALE鎖存。EOC是轉(zhuǎn)換狀態(tài)信號(hào),轉(zhuǎn)換開始后EOC為低電平,當(dāng)啟動(dòng)轉(zhuǎn)換約100us后,EOC由負(fù)變正,以示轉(zhuǎn)換結(jié)束。在EOC的上升沿后,若使輸出使能信號(hào)OE為高電平,則控制打開三態(tài)緩沖期,把轉(zhuǎn)換好

74、的8為數(shù)據(jù)結(jié)果輸至數(shù)據(jù)總線,至此ADC0809的一次結(jié)束。下面分別給ADC0809采樣的控制狀態(tài)圖和主要程序。如下圖3.1為控制ADC0809采樣的狀態(tài)圖。</p><p><b>  對(duì)0809初始化</b></p><p><b>  由LOCK信號(hào)鎖存</b></p><p><b>  轉(zhuǎn)換好的數(shù)據(jù)<

75、;/b></p><p><b>  啟動(dòng)A/D轉(zhuǎn)換</b></p><p><b>  對(duì)采樣周期中等待</b></p><p>  OE=“1”數(shù)據(jù)輸出有效</p><p>  EOC=“1”,轉(zhuǎn)換結(jié)束 EOC=“0”,正在轉(zhuǎn)換&l

76、t;/p><p>  圖3.1 控制ADC0809采樣的狀態(tài)圖</p><p><b>  主要程序如下: </b></p><p>  module ADCINT_v(D,CLK,EOC,ALE,START,OE,ADDA,LOCK0,Q);</p><p>  input[7:0]D;</p><p&

77、gt;  input CLK;</p><p>  input EOC;</p><p>  output reg ALE;</p><p>  output reg START;</p><p>  output reg OE;</p><p>  output ADDA;</p><p> 

78、 output LOCK0;</p><p>  output [7:0]Q;</p><p>  parameter st0=3'b000,</p><p>  st1=3'b001,</p><p>  st2=3'b010,</p><p>  st3=3'b011,</p&

79、gt;<p>  st4=3'b100;</p><p>  reg[2:0]current_state,next_state;</p><p>  reg[7:0]REGL;</p><p><b>  reg LOCK;</b></p><p>  assign ADDA=1'b1;&l

80、t;/p><p>  assign Q=REGL,LOCK0=LOCK;</p><p>  always @(current_state,EOC)</p><p><b>  begin:COM</b></p><p>  case(current_state)</p><p><b> 

81、 st0:</b></p><p><b>  begin</b></p><p>  ALE<=1'b0;START<=1'B0;LOCK<=1'B0;OE<=1'b0;</p><p>  next_state<=st1;</p><p>&l

82、t;b>  end</b></p><p><b>  st1:</b></p><p><b>  begin</b></p><p>  ALE<=1'b1;START<=1'b1;LOCK<=1'b0;OE<=1'b0;</p>

83、<p>  next_state<=st2;</p><p><b>  end</b></p><p><b>  st2:</b></p><p><b>  begin</b></p><p>  ALE<=1'b0;START<=1&

84、#39;b0;LOCK<=1'b0;OE<=1'b0;</p><p>  if(EOC==1)next_state<=st3;</p><p>  else next_state<=st2;</p><p><b>  end</b></p><p><b>  st3

85、:</b></p><p><b>  begin</b></p><p>  ALE<=1'b0;START<=1'b0;LOCK<=1'b1;OE<=1'b1;</p><p>  next_state<=st4;</p><p><b&

86、gt;  end</b></p><p><b>  st4:</b></p><p><b>  begin</b></p><p>  ALE<=1'b0;START<=1'b0;LOCK<=1'b1;OE<=1'b1;</p><

87、p>  next_state<=st0;</p><p><b>  end</b></p><p><b>  default:</b></p><p>  next_state<=st0;</p><p><b>  endcase</b></p&g

88、t;<p><b>  end</b></p><p>  always @(posedge CLK)</p><p><b>  begin:REG</b></p><p>  current_state<=next_state;</p><p><b>  end&

89、lt;/b></p><p>  always @(posedge LOCK)</p><p>  begin:LATCH1</p><p><b>  REGL<=D;</b></p><p><b>  end</b></p><p><b>  e

90、ndmodule</b></p><p>  為了模擬電機(jī)轉(zhuǎn)動(dòng)還得用一個(gè)簡(jiǎn)單的跑馬燈程序作為子模塊,其輸入端口為rst、clk、sel[1..0],輸出端口為led[7..0],其中sel用于模塊選擇,led用于控制8個(gè)LED燈。</p><p>  該子程序的Verilog HDL編程如下:</p><p>  module maomadeng (cl

91、k,led,to_hot,to_cool,rst);</p><p>  input rst,clk;</p><p>  input to_hot,to_cool;</p><p>  output [7:0]led;</p><p>  reg [7:0] led;</p><p>  reg[2:0]cnt1;&

92、lt;/p><p>  reg[2:0]cnt2;</p><p>  always @(posedge clk)</p><p><b>  begin</b></p><p>  if(rst) begin cnt1<=0;cnt2<=0;end</p><p><b>  

93、else</b></p><p>  case ({to_hot,to_cool}) </p><p><b>  2'b01:</b></p><p><b>  begin</b></p><p>  if(cnt1==0)led=8'b00000001;<

94、;/p><p>  else led<=led<<1;</p><p>  cnt1=cnt1+1;</p><p><b>  end</b></p><p><b>  2'b10:</b></p><p><b>  begin</

95、b></p><p>  if(cnt2==0) led=8'b10000000;</p><p>  else led<=led>>1;</p><p>  cnt2=cnt2+1;</p><p><b>  end</b></p><p><b> 

96、 2'b11:</b></p><p><b>  begin</b></p><p>  led=8'b00000000;</p><p><b>  end</b></p><p>  default:led=8'b01010101;</p>&

97、lt;p><b>  endcase</b></p><p><b>  end</b></p><p><b>  endmodule</b></p><p><b>  七段顯示器程序:</b></p><p>  module paomaden

98、g(bcd,leds);</p><p>  input [3:0]bcd;</p><p>  output reg [1:7]leds;</p><p>  always @(bcd)</p><p>  case (bcd) </p><p>  0:leds=7'b1111110;</p>

99、<p>  1:leds=7'b0110000;</p><p>  2:leds=7'b1101101;</p><p>  3:leds=7'b1111001;</p><p>  4:leds=7'b0110011;</p><p>  5:leds=7'b1011011;</

100、p><p>  6:leds=7'b1011111;</p><p>  7:leds=7'b1110000;</p><p>  8:leds=7'b1111111;</p><p>  9:leds=7'b1111011;</p><p>  4'b1010:leds=7'

101、;b1110111;</p><p>  4'b1011:leds=7'b0011111;</p><p>  4'b1100:leds=7'b1001110;</p><p>  4'b1101:leds=7'b0111101;</p><p>  4'b1110:leds=7'

102、;b1001111;</p><p>  4'b1111:leds=7'b1000111;</p><p>  default :leds=7'bx; </p><p><b>  endcase</b></p><p><b>  endmodule</b></p&

103、gt;<p>  3.3.2 空調(diào)控制器的時(shí)序仿真</p><p>  本設(shè)計(jì)的Verilog HDL編程在Quartus II中的仿真結(jié)果如下所示:</p><p>  圖3.2 空調(diào)控制器在Quartus II中的時(shí)序仿真結(jié)果</p><p>  如圖3.2所示,當(dāng)環(huán)境溫度高于設(shè)定溫度時(shí),且在手動(dòng)模式下,開始按temp_Setkey[0]鍵制冷,每

104、按一次減少一度;如果想停止設(shè)置可以按Auto_switch[0]鍵,電機(jī)停轉(zhuǎn);當(dāng)設(shè)定溫度在19度時(shí),如果感覺到冷,可以按temp_Setkey[1]鍵,每按一次增加一度。如果想讓空調(diào)進(jìn)入自動(dòng)控制溫度狀態(tài)可以設(shè)置Auto_switch[2]等于0。</p><p>  空調(diào)控制器的模塊圖如下所示:</p><p>  圖3.3 空調(diào)控制器的模塊圖</p><p>  

105、此模塊包括四個(gè)子模塊,分別位A/D轉(zhuǎn)換模塊,用于模擬環(huán)境溫度,在設(shè)計(jì)A/D采樣控制器中,ADC0809是CMOS的8為A/D轉(zhuǎn)換器,片內(nèi)有8路模擬開關(guān),可控制8個(gè)模擬量中的一個(gè)進(jìn)入轉(zhuǎn)換器。轉(zhuǎn)換時(shí)間約為100us,ADC0809含鎖存控制的8路開光,輸出由三態(tài)緩沖器控制,單5v電源供電。START是轉(zhuǎn)換啟動(dòng)信號(hào),高電平有效。ALE是3位通道選擇地址信號(hào)(ADDC、ADDB、ADDA)的鎖存信號(hào)。當(dāng)模擬量送至某一輸入端(如IN1或IN2等)

106、時(shí),由3位地址信號(hào)選擇,而地址信號(hào)有ALE鎖存。EOC是轉(zhuǎn)換狀態(tài)信號(hào),轉(zhuǎn)換開始后EOC為低電平,當(dāng)啟動(dòng)轉(zhuǎn)換約100us后,EOC由負(fù)變正,以示轉(zhuǎn)換結(jié)束。在EOC的上升沿后,若使輸出使能信號(hào)OE為高電平,則控制打開三態(tài)緩沖期,把轉(zhuǎn)換好的8為數(shù)據(jù)結(jié)果輸至數(shù)據(jù)總線,至此ADC0809的一次結(jié)束;起初設(shè)計(jì)采用流水燈模塊,用于模擬電機(jī)運(yùn)轉(zhuǎn),流水燈從右往左亮表示制冷,從左往右亮表示制熱,全亮表示溫度適中;為了使效果更加明顯,也可以用七段顯示器模塊代

107、替流水燈模塊(如圖3.3),右下角的模塊就是一個(gè)7段譯碼器模塊,顯示器為11111111表示溫度適中,22222222表</p><p>  第四章 空調(diào)控制器的FPGA實(shí)現(xiàn)</p><p>  4.1 FPGA簡(jiǎn)介</p><p>  FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、CPLD等可編程

108、器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。目前以硬件描述語(yǔ)言(Verilog HDL或VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過(guò)簡(jiǎn)單的綜合與布局,快速的燒錄至FPGA上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來(lái)實(shí)現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼

109、器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過(guò)可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來(lái),就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。</p><p>  FPGA采用了邏輯單元陣列LCA(Logic Cell

110、Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)主要有:</p><p>  (1) 采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn)就能得到合用的芯片;</p><p> ?。?) FPGA可做其他全定制或

111、半定制ASIC電路的試樣片;</p><p> ?。?) FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳;</p><p> ?。?) FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一;</p><p> ?。?) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。</p><p>  可以說(shuō),F(xiàn)PGA芯片

112、是小批量系統(tǒng)提高系統(tǒng)集成度和可靠性的最佳選擇之一。目前FPGA的品種很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。</p><p>  FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的。因此,工作時(shí)需要對(duì)片內(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)。

113、掉電后,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的使用非常靈活。</p><p>  4.2 FPGA設(shè)計(jì)及驗(yàn)證</p><p>  下圖為使用FPGA驗(yàn)

114、證結(jié)果的使用流程:</p><p>  圖4.1 FPGA驗(yàn)證結(jié)果流程圖</p><p>  FPGA是一種門電路可以高達(dá)上百萬(wàn),時(shí)鐘頻率可達(dá)幾百兆的可編程邏輯器件。在數(shù)字信號(hào)處理領(lǐng)域中FPGA技術(shù)得到了廣泛應(yīng)用。本設(shè)計(jì)將使用FPGA進(jìn)行最終仿真。FPGA設(shè)計(jì)環(huán)境為:</p><p>  圖4.2 實(shí)踐FPGA的測(cè)試環(huán)境</p><p>  

115、圖4.3 空調(diào)控制器在Quartus II中的時(shí)序仿真結(jié)果</p><p>  上圖為模塊生成后得到的時(shí)序仿真圖。由圖可知,當(dāng)輸入溫度信號(hào)為30度時(shí)得到了如上圖所示的仿真結(jié)果。當(dāng)把本設(shè)計(jì)程序下載到FPGA中并通過(guò)邏輯分析儀后,得出的結(jié)果如圖4.4,圖4.5,圖4.6所示??梢钥闯?,邏輯分析儀中的仿真結(jié)果與Quartus II中的仿真結(jié)果完全相同,證明了本設(shè)計(jì)的正確性。</p><p>  

116、開機(jī)復(fù)位:溫度調(diào)節(jié)要注意居住和工作在外界的溫差不宜過(guò)大,把環(huán)境溫度調(diào)節(jié)到所要求的范圍內(nèi)。本次設(shè)計(jì)開機(jī)復(fù)位為25度(圖4.4)。</p><p>  圖4.4 在邏輯分析儀中開機(jī)復(fù)位的仿真結(jié)果</p><p>  制冷:當(dāng)環(huán)境溫度過(guò)高,需要空調(diào)制冷來(lái)營(yíng)造一個(gè)舒適的環(huán)境,這時(shí)可以按temp_Setkey[1]鍵,每按一次空調(diào)顯示溫度為降低一度,按到19度時(shí),如果感覺舒適可以停止操作(圖4.4)

117、。</p><p>  圖4.5 在邏輯分析中制冷的仿真結(jié)果</p><p>  制熱:在室內(nèi)溫度為19度一段時(shí)間后,如果感覺稍微有點(diǎn)涼,那可以直接按temp_Setkey[0],同理,每按一次溫度升高一度(圖4.6)。</p><p>  圖4.6 在邏輯分析儀中制熱的仿真結(jié)果</p><p><b>  結(jié) 論</b>

118、;</p><p>  本文首先介紹了國(guó)內(nèi)外空調(diào)控制器的發(fā)展現(xiàn)狀和有關(guān)空調(diào)控制器的理論,以此為依據(jù)設(shè)計(jì)了空調(diào)控制器??照{(diào)控制器設(shè)計(jì)包括對(duì)環(huán)境溫度和電機(jī)正反運(yùn)轉(zhuǎn)以及制冷制熱控制的設(shè)計(jì),電機(jī)運(yùn)轉(zhuǎn)狀態(tài)可以采用流水燈來(lái)指示,即正轉(zhuǎn)時(shí)流水燈運(yùn)動(dòng)方向從左向右;反轉(zhuǎn)時(shí)流水燈從右向左;停轉(zhuǎn)時(shí)流水燈熄滅。溫度控制可以采用A/D采樣模塊實(shí)現(xiàn),程序?qū)崿F(xiàn)也是很簡(jiǎn)單的。</p><p>  本文通過(guò)Verilog

119、HDL來(lái)設(shè)計(jì)空調(diào)控制器,且能下載到FPGA上成功的驗(yàn)證,優(yōu)點(diǎn)是其能夠在較短的時(shí)間內(nèi)設(shè)計(jì)出高標(biāo)準(zhǔn)的產(chǎn)品。相對(duì)于速度慢,專用性強(qiáng),編程難的普通設(shè)計(jì)方法,還是有較大的優(yōu)勢(shì)的。并通過(guò)功能仿真和時(shí)序仿真來(lái)驗(yàn)證空調(diào)控制器。并且本設(shè)計(jì)中根據(jù)外界溫度自動(dòng)控制室內(nèi)溫度,起到節(jié)能的作用。</p><p>  FPGA技術(shù)的引入,使得設(shè)計(jì)擺脫了硬件電路的束縛,只需將更多的精力致力與軟件的設(shè)計(jì)和優(yōu)化上,從而極大地提高了設(shè)計(jì)效率。本設(shè)計(jì)從

120、任務(wù)提出到最終完成硬件測(cè)試僅歷時(shí)兩個(gè)多月,這一定程度上也證明了在空調(diào)控制器的設(shè)計(jì)中引入現(xiàn)代FPGA技術(shù)的可行和巨大潛力。隨著FPGA技術(shù)及其制作工藝的不斷進(jìn)步將FPGA技術(shù)融入該類空調(diào)控制器的研發(fā)和生產(chǎn)之中將大有可為。</p><p>  為了進(jìn)一步研究,考慮為空調(diào)控制器增加風(fēng)扇轉(zhuǎn)速顯示和控制功能。在空調(diào)控制系統(tǒng)中,風(fēng)扇轉(zhuǎn)速?zèng)Q定了溫度變化的快慢,是空調(diào)控制器中一個(gè)比較重要的控制變量。</p><

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論