畢業(yè)設(shè)計(jì)論文--基于FPGA的微波爐控制器設(shè)計(jì).doc
摘摘 要要 本論文介紹了應(yīng)用 FPGA 芯片和硬件描述語言(VHDL)設(shè)計(jì)微波爐控制器系統(tǒng) 的方法。系統(tǒng)使用 VHDL 編程實(shí)現(xiàn)各底層模塊的功能,頂層的設(shè)計(jì)采用圖形輸入完 成。論文主要闡述模塊化設(shè)計(jì)的思想和狀態(tài)圖的描述方法,以及他們?cè)谟布枋稣Z 言中的應(yīng)用,并展示了其在 Quartus II 開發(fā)系統(tǒng)下的仿真結(jié)果。 微波爐控制器系統(tǒng)是一個(gè)實(shí)用型的系統(tǒng),系統(tǒng)不僅具有操作簡(jiǎn)單的功能,而且 烹調(diào)效果好,你可以按照固定程序烹調(diào)一些家常菜,可以采取分時(shí)、分不同級(jí)別火 力加熱,既能節(jié)約時(shí)間又能節(jié)約能源。主要有以下幾個(gè)模塊:輸入模塊、控制模塊 和顯示模塊。輸入模塊實(shí)現(xiàn)按鍵掃描和鍵盤譯碼、控制模塊包括狀態(tài)轉(zhuǎn)換控制、數(shù) 據(jù)裝載、烹飪計(jì)時(shí)、溫度控制、音效提示等等、顯示模塊涉及到顯示譯碼和指示燈 的閃爍。 經(jīng)過對(duì)系統(tǒng)做需求分析,詳細(xì)功能設(shè)計(jì)、編碼,模塊連接,并利用 FPGA 實(shí)現(xiàn) 相應(yīng)的功能,經(jīng)過波形仿真、下載調(diào)試,驗(yàn)證了設(shè)計(jì)方案的可行性及實(shí)現(xiàn)方法的有 效性,基本實(shí)現(xiàn)了系統(tǒng)的要求。 關(guān)鍵詞:關(guān)鍵詞:FPGA;VHDL;微波爐;狀態(tài)圖;定時(shí)器 Abstract This paper introduces the method that applying FPGA chip and VHDL to design the control system of microwave ovens. The system uses VHDL to fulfill the function of each bottom module and the design of the top layer is completed via graphic entering. This paper mainly illustrates the idea of module design and description method of state chart and that their application in VHDL and simulation results in the develop system of Quartus II. Microwave controller system is a utility-type system that includes not only the function of simple operation, but also good effect of cook. According to fixed routine, you can cook some homely dish via taking different time and different level firepower to heat, and this can not only save time, but also save energy. It mainly includes a couple of modules as follows: input module, control module and display module. Input module fulfills key-press scanning and keyboard decoding, control module includes status switching control, data loading, cook time, temperature control, sound effect tip and so on, display module comes down to display coding decipher and the flashing of indicator light. Through the analysis of requirement, detailed function design, coding, module connection, using FPGA to fulfill relevant function. Through waveform simulation, download debugging, it verifies the feasibility of the design and the effectiveness of realization method and basically fulfill the requirement of the system. Keywords: FPGA, VHDL, Microwave oven, Status chart, timer 目目 錄錄 1.緒論.1 1.1.任務(wù)的提出1 1.2.課題的內(nèi)容和要求1 1.3.設(shè)計(jì)的目的和意義2 2.關(guān)鍵技術(shù)簡(jiǎn)介.3 2.1.FPGA 簡(jiǎn)介.3 2.2.VHDL 語言概述3 2.3.Quartus II 開發(fā)系統(tǒng)簡(jiǎn)介5 3.系統(tǒng)總體設(shè)計(jì).7 3.1.系統(tǒng)總體設(shè)計(jì)方案7 3.2.系統(tǒng)功能模塊描述9 3.2.1. 輸入模塊10 3.2.2. 控制模塊10 3.2.3. 顯示模塊11 3.3.系統(tǒng)的工作流程11 4.系統(tǒng)詳細(xì)設(shè)計(jì).13 4.1.輸入模塊設(shè)計(jì)13 4.1.1. 鍵盤掃描13 4.1.2. 鍵盤譯碼16 4.1.3. 輸入模塊的實(shí)現(xiàn)17 4.2.控制模塊設(shè)計(jì)18 4.2.1. 狀態(tài)轉(zhuǎn)換控制19 4.2.2. 數(shù)據(jù)裝載22 4.2.3. 烹飪計(jì)時(shí)23 4.2.4. 溫度控制26 4.2.5. 控制模塊的實(shí)現(xiàn)29 4.3.顯示模塊設(shè)計(jì)31 5.系統(tǒng)仿真.35 5.1.輸入模塊仿真35 5.2.狀態(tài)轉(zhuǎn)換控制器仿真35 5.3.數(shù)據(jù)裝載器仿真36 5.4.烹飪計(jì)時(shí)器仿真37 5.5.顯示譯碼器仿真39 6.結(jié)論.41 致 謝42 參考文獻(xiàn)43 附 錄44 基于 FPGA 的微波爐控制器設(shè)計(jì) 1. 緒論緒論 隨著人民生活水平的提高,微波爐開始進(jìn)人越來越多的家庭,它給人們的生活 帶來了極大的方便。微波爐由 2450MHz 的超高頻來加熱食物。它省時(shí)、省電、方便 和衛(wèi)生。作為現(xiàn)代的烹飪工具,微波爐的控制器體現(xiàn)著它的重要性能指標(biāo)。目前大 部分微波爐控制器采用單片機(jī)進(jìn)行設(shè)計(jì),電路比較復(fù)雜,性能不夠靈活。本文采用 先進(jìn)的 EDA 技術(shù),利用 Quartus II 工作平臺(tái)和 VHDL 設(shè)計(jì)語言,設(shè)計(jì)了一種新型的 微波爐控制器系統(tǒng)。該系統(tǒng)具有系統(tǒng)復(fù)位、時(shí)間設(shè)定、烹飪計(jì)時(shí)、溫度控制和音效 提示等功能,在 FPGA 上實(shí)現(xiàn)。 1.1. 任務(wù)的提出任務(wù)的提出 在現(xiàn)代人快節(jié)奏生活中,微波爐已成為便捷生活的一部分。隨著控制技術(shù)和智 能技術(shù)的發(fā)展,微波爐也向著智能化、信息化發(fā)展。而現(xiàn)有市售的微波爐其主要弊 端為:不能按既有程序進(jìn)行烹調(diào),需要使用者根據(jù)食物的類型、數(shù)量、溫度等因素 去設(shè)定微波爐的工作時(shí)間,若設(shè)定的工作時(shí)間過長(zhǎng),含水分較多的食物可能會(huì)產(chǎn)生 過熱碳化的現(xiàn)象,若時(shí)間過短則達(dá)不到預(yù)期的烹調(diào)效果。不僅在節(jié)能方面未做過多 考慮,使用者還需要經(jīng)常翻看使用說明書才能完成操作過程。針對(duì)這些問題,筆者 認(rèn)為有必要研制一種操作簡(jiǎn)單且烹調(diào)效果好的微波爐,根據(jù)一些家常菜按固定程序 烹調(diào)的現(xiàn)象,可采取分時(shí)、分檔火力加熱,節(jié)時(shí)又節(jié)能。 1.2. 課題的內(nèi)容和要求課題的內(nèi)容和要求 本課題是基于 FPGA 的微波爐控制器設(shè)計(jì),即設(shè)計(jì)一個(gè)具備定時(shí)、溫控、信息 顯示和音響效應(yīng)提示功能的微波爐控制器,實(shí)現(xiàn)一些功能: 該微波爐控制器能夠在任意時(shí)刻取消當(dāng)前工作,復(fù)位為初始狀態(tài)。 可以根據(jù)需要設(shè)置烹調(diào)時(shí)間的長(zhǎng)短,系統(tǒng)最長(zhǎng)的烹調(diào)時(shí)間為 59 分 59 秒;開 始烹調(diào)后,能夠顯示剩余時(shí)間的多少。 可以根據(jù)需要設(shè)置烹調(diào)最高溫度值,系統(tǒng)最高的烹調(diào)溫度為 999;開始烹 調(diào)后,能夠顯示系統(tǒng)當(dāng)前溫度值。 可以控制火力大小,供選擇的火力檔位有高、中、低三個(gè)火力檔位。 音響效應(yīng)提示直接外接一個(gè)蜂鳴器,同時(shí)用一個(gè)指示燈提示。 顯示微波爐控制器的烹調(diào)狀態(tài)。 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 1.3. 設(shè)計(jì)的目的和意義設(shè)計(jì)的目的和意義 目前大部分微波爐控制器采用單片機(jī)進(jìn)行設(shè)計(jì),電路比較復(fù)雜,性能不夠靈活。 本設(shè)計(jì)采用先進(jìn)的 EDA 技術(shù),利用 VHDL 設(shè)計(jì)語言,設(shè)計(jì)一種新型的微波爐控制 器。該控制器具有系統(tǒng)復(fù)位、狀態(tài)控制、時(shí)間設(shè)定、火力檔位選擇、烹飪計(jì)時(shí)、溫 度控制、顯示譯碼和音效提示等功能,基于 FPGA 芯片實(shí)現(xiàn)。 該微波爐控制系統(tǒng),除實(shí)現(xiàn)常規(guī)的解凍、烹調(diào)、烘烤的基本功能外,還進(jìn)行了 創(chuàng)新設(shè)計(jì),實(shí)現(xiàn)了微波爐的自定義設(shè)置。 本系統(tǒng)控制部分以 FPGA 芯片為核心,通過功能按鍵設(shè)置和手動(dòng)數(shù)據(jù)輸入,完 成不同功能時(shí)自動(dòng)以預(yù)置方案或者自定義方案加熱。其中,預(yù)制方案提供烹調(diào)、烘 烤、解凍等系統(tǒng)烹調(diào)流程,僅供用戶選擇,無需設(shè)置;而自定義方案,用戶根據(jù)食 物含量、重量等手動(dòng)設(shè)置時(shí)間、溫度和選擇火力等操作。在烹飪過程中,能通過數(shù) 碼管顯示或者指示燈提示知道食物的成熟度,可以智能控制。 該系統(tǒng)在功能執(zhí)行時(shí),能實(shí)現(xiàn)門開關(guān)檢測(cè)、鍵盤輸入掃描、溫度控制、LED 顯 示、工作狀態(tài)指示、蜂鳴等。 基于 FPGA 的微波爐控制器設(shè)計(jì) 2. 關(guān)鍵技術(shù)簡(jiǎn)介關(guān)鍵技術(shù)簡(jiǎn)介 2.1. FPGA 簡(jiǎn)介簡(jiǎn)介 FPGA(FieldProgrammable Gate Array) ,即現(xiàn)場(chǎng)可編程門陣列,它是在 PAL、GAL、CPLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成 電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克 服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。 目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡(jiǎn)單 的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。 這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如 AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。 在大多數(shù)的 FPGA 里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器 (Flipflop)或者其他更加完整的記憶塊。 系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把 FPGA 內(nèi)部的邏輯塊連接起來, 就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品 FPGA 的邏輯塊和 連接可以按照設(shè)計(jì)者而改變,所以 FPGA 可以完成所需要的邏輯功能。 FPGA 一般來說比 ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì), 而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來 改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的 FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的 FPGA 上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于 ASIC 的芯片上。 2.2. VHDL 語言概述語言概述 VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,誕生于 1982 年。1987 年底,VHDL 被 IEEE 和美國國防部確認(rèn)為標(biāo) 準(zhǔn)硬件描述語言。 VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有 硬件特征的語句外,VHDL 的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算 機(jī)高級(jí)語言。VHDL 的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一 個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 不可視部分) ,既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外 部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將 設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是 VHDL 系統(tǒng)設(shè)計(jì)的基本點(diǎn)。 VHDL 語言能夠成為標(biāo)準(zhǔn)化的硬件描述語言并獲得廣泛應(yīng)用,它自身必然具有 很多其他硬件描述語言所不具備的優(yōu)點(diǎn)。歸納起來,VHDL 語言主要具有以下優(yōu)點(diǎn): (1) VHDL 語言功能強(qiáng)大,設(shè)計(jì)方式多樣 VHDL 語言具有強(qiáng)大的語言結(jié)構(gòu), 只需采用簡(jiǎn)單明確的 VHDL 語言程序就可以 述十分復(fù)雜的硬件電路。同時(shí), 它還具有多層次的電路設(shè)計(jì)描述功能。此外,VHDL 語言能夠同時(shí)支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì)實(shí)現(xiàn),這是其他硬件描述 語言所不能比擬的。VHDL 語言設(shè)計(jì)方法靈活多樣,既支持自頂向下的設(shè)計(jì)方式, 也支持自底向上的設(shè)計(jì)方法;既支持模塊化設(shè)計(jì)方法,也支持層次化設(shè)計(jì)方法。 (2) VHDL 語言具有強(qiáng)大的硬件描述能力 VHDL 語言具有多層次的電路設(shè)計(jì)描述功能,既可描述系統(tǒng)級(jí)電路,也可以描 述門級(jí)電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可 以采用三者的混合描述方式。同時(shí),VHDL 語言也支持慣性延遲和傳輸延遲,這樣 可以準(zhǔn)確地建立硬件電路的模型。VHDL 語言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富 的數(shù)據(jù)類型。VHDL 語言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型, 這樣便會(huì)給硬件描述帶來較大的自由度。 (3) VHDL 語言具有很強(qiáng)的移植能力 VHDL 語言很強(qiáng)的移植能力主要體現(xiàn)在:對(duì)于同一個(gè)硬件電路的 VHDL 語言 描述,它可以從一個(gè)模擬器移植到另一個(gè)模擬器上,從一個(gè)綜合器移植到另一個(gè)綜 合器上,或者從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)上去執(zhí)行。 (4) VHDL 語言的設(shè)計(jì)描述與器件無關(guān) 采用 VHDL 語言描述硬件電路時(shí),設(shè)計(jì)人員并不需要首先考慮選擇進(jìn)行設(shè)計(jì) 的器件。這樣做的好處是可以使設(shè)計(jì)人員集中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化,而不需要 考慮其他的問題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后,VHDL 語言允許采用多種不同 的器件結(jié)構(gòu)來實(shí)現(xiàn)。 (5) VHDL 語言程序易于共享和復(fù)用 VHDL 語言采用基于庫 ( library) 的設(shè)計(jì)方法。在設(shè)計(jì)過程中,設(shè)計(jì)人員可以 建立各種可再次利用的模塊,一個(gè)大規(guī)模的硬件電路的設(shè)計(jì)不可能從門級(jí)電路開始 基于 FPGA 的微波爐控制器設(shè)計(jì) 一步步地進(jìn)行設(shè)計(jì),而是一些模塊的累加。這些模塊可以預(yù)先設(shè)計(jì)或者使用以前設(shè) 計(jì)中的存檔模塊,將這些模塊存放在庫中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用。 由于 VHDL 語言是一種描述、模擬、綜合、優(yōu)化和布線的標(biāo)準(zhǔn)硬件描述語言, 因此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享,從而減小硬件電路 設(shè)計(jì)的工作量,縮短開發(fā)周期。 2.3. Quartus II 開發(fā)系統(tǒng)簡(jiǎn)介開發(fā)系統(tǒng)簡(jiǎn)介 Altera 公司的 Quartus II 開發(fā)系統(tǒng)以其獨(dú)特的設(shè)計(jì)理念,為用戶提供了一種全 新的可編程邏輯器件開發(fā)系統(tǒng)。它集合了 Altera 的全部 CPLD/FPGA 器件的硬件開 發(fā)功能,同時(shí)也可以實(shí)現(xiàn)系統(tǒng)級(jí)設(shè)計(jì)、綜合、仿真、約束等功能,還具有在線測(cè)試 功能。 Quartus II 7.0 軟件具有以下特性: 1、提供的集成物理綜合技術(shù) Quartus II 軟件包括唯一的 FPGA 供應(yīng)商提供的集成物理綜合優(yōu)化技術(shù)。 Quartus II 物理綜合選項(xiàng)應(yīng)用在編譯的布局布線階段,而與采用何種綜合工具無關(guān)。 2、更快的時(shí)序逼近 Quartus II 軟件用戶能夠利用強(qiáng)大的時(shí)序逼近流程特性來優(yōu)化設(shè)計(jì),使其超過按 鍵式編譯結(jié)果的性能。Quartus II 軟件的時(shí)序逼近流程由于其包含了內(nèi)置物理綜合工 具以及豐富的圖形分析和編輯工具,提供了強(qiáng)大的交互探測(cè)能力,具有極大的吸引 力。 3、最易使用的設(shè)計(jì)優(yōu)化技術(shù) Quartus II 軟件采用按鍵式設(shè)計(jì)流程,滿足了大部分設(shè)計(jì)的時(shí)序要求。當(dāng)設(shè)計(jì)人 員進(jìn)一步需要更好的編譯結(jié)果時(shí),Quartus II 軟件提供了一些高級(jí)工具,可以輕松地 實(shí)現(xiàn)優(yōu)化設(shè)計(jì)。用戶可以使用設(shè)計(jì)空間搜索器(DSE)采用自動(dòng)技術(shù),是寄存器到 寄存器設(shè)計(jì)性能平均提高 21%。時(shí)序優(yōu)化顧問工具在 Quartus II 軟件內(nèi)給設(shè)計(jì)人員 提供了一個(gè)虛擬的現(xiàn)場(chǎng)應(yīng)用工程師。這個(gè)工具基于當(dāng)前設(shè)計(jì)工程設(shè)置和約束,提供 詳細(xì)的優(yōu)化設(shè)計(jì)時(shí)序性能的建議。 4、實(shí)現(xiàn)后期設(shè)計(jì)更改的同時(shí)保持性能 可編程邏輯設(shè)計(jì)軟件的一個(gè)傳統(tǒng)困難是;當(dāng)引入后期設(shè)計(jì)更改的時(shí)候,如何保 持設(shè)計(jì)的性能。然而,Quartus II 軟件能夠輕松地實(shí)現(xiàn)后期設(shè)計(jì)更改。最新的增量式 設(shè)計(jì)編輯器和編譯技術(shù)給設(shè)計(jì)人員提供了布局布線后設(shè)計(jì)更改的最佳支持。這些技 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 術(shù)包括: Quartus II 芯片編輯器; 在 LogicLock(tm)區(qū)域中實(shí)現(xiàn)布局布線鎖定的能力; 使用漸進(jìn)式編譯,僅實(shí)現(xiàn)對(duì)部分改動(dòng)的設(shè)計(jì)進(jìn)行修改。 5、提供并行開發(fā) FPGA 和結(jié)構(gòu)化 ASIC Quartus II 軟件能夠提供 FPGA 設(shè)計(jì)和結(jié)構(gòu)化 ASIC 設(shè)計(jì)之間的無縫移植。 Quartus II 軟件能夠編譯 HardCopy Stratix 器件,從而提供了高性能低成本器件的解 決方法。HardCopy Stratix 結(jié)構(gòu)化 ASIC 提供了比 Stratix FPGA 平均高 50%的性能, 進(jìn)步一步加強(qiáng)了 Stratix III 器件系列 65nm 性能的領(lǐng)先性。 Altera 公司的 Quartus II 設(shè)計(jì)軟件提供完整的多平臺(tái)設(shè)計(jì)環(huán)境,能夠直接滿足 特定設(shè)計(jì)需要,為可編程芯片系統(tǒng)(SOPC)提供全面的設(shè)計(jì)環(huán)境。Quartus II 軟件 含有 FPGA 核 CPLD 設(shè)計(jì)所有階段的解決方案,其設(shè)計(jì)流程包含設(shè)計(jì)輸入、綜合、 布局布線、時(shí)序分析、仿真、編程和配置等步驟,其中的布局布線還包括功耗分析、 調(diào)試、工程更改管理幾個(gè)部分。這些操作都可以利用 Quartus II 軟件實(shí)現(xiàn)。 此外,Quartus II 軟件為設(shè)計(jì)流程的每個(gè)階段提供了 Quartus II 圖形用戶界面、 EDA 工具界面以及命令行界面??梢栽谡麄€(gè)流程中只使用這些界面中的一個(gè),也可 以在設(shè)計(jì)流程的不同階段使用不同的界面。 基于 FPGA 的微波爐控制器設(shè)計(jì) 3. 系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì) 3.1. 系統(tǒng)總體設(shè)計(jì)方案系統(tǒng)總體設(shè)計(jì)方案 根據(jù)題目要求,該系統(tǒng)控制部分以 FPGA 芯片為核心,實(shí)現(xiàn)時(shí)間設(shè)置、溫度設(shè) 定、火力選擇、音效響應(yīng)提示、LED 數(shù)碼管顯示等,在硬件組成上,涉及到電源供 電、按鍵輸入、LED 數(shù)碼管顯示、指示燈提示等。 以下是該系統(tǒng)總體框圖,如圖 3.1 所示: 圖圖 3.1 微波爐控制器系統(tǒng)總體框圖微波爐控制器系統(tǒng)總體框圖 該控制器系統(tǒng)在 EDA 實(shí)驗(yàn)箱上實(shí)現(xiàn)的外觀布局如圖 3.2 所示。采用 Cyclone II 芯片 EP2C35F672C8 作為控制芯片,16 個(gè)按鍵組成的 4*4 矩陣鍵盤,每個(gè)按鍵代表 的功能如圖 3.2 所示,8 個(gè) LED 作為 8 個(gè)狀態(tài)提示指示燈, 4 位 LED 數(shù)碼管顯示 加熱倒計(jì)時(shí),3 位 LED 數(shù)碼管顯示當(dāng)前溫度值,1 位 LED 數(shù)碼管顯示當(dāng)前火力檔位。 在圖 3.2 中,各按鍵功能如下: 復(fù)位:按下此鍵,系統(tǒng)進(jìn)入初始狀態(tài),8 個(gè)數(shù)碼管上會(huì)顯示“88888888”的信息, 所有 LED 指示燈亮。 測(cè)試 :在待機(jī)狀態(tài)下按下此鍵,則數(shù)碼管和發(fā)光二極管全亮、全滅交替閃爍。 10Min 1Min/100/High 10Sec/10/Middle 1Sec/1/Low:四個(gè)鍵用于設(shè) 定加熱時(shí)間、最高溫度或者選擇火力檔位。當(dāng)按下時(shí)間設(shè)置按鍵時(shí),四個(gè)按鍵分別 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 表示設(shè)置定時(shí)時(shí)間的分、秒的十位和個(gè)位的數(shù)字;當(dāng)按下溫度設(shè)定 按鍵時(shí),后面三 個(gè)按鍵分別表示設(shè)定最高溫度的百位、十位、個(gè)位;當(dāng)按下火力設(shè)定按鍵時(shí),后面 三個(gè)按鍵分別表示火力檔位的高、中、低三個(gè)檔位。由于在時(shí)間設(shè)置和溫度設(shè)定時(shí), 四個(gè)按鍵初始值均為 0,因此需要借助/+1 /-1 兩個(gè)按鍵共同實(shí)現(xiàn)時(shí)間、溫度的 設(shè)定操作。比如設(shè)定烹飪時(shí)間為 12 分 59 秒,只需要選擇 10Min 鍵,然后按/+1 鍵“1”次;選擇 1Min/100/High 鍵,然后按/+1鍵“2”次;選擇 10Sec/10/Middle 鍵,然后按/+1鍵“5”次;選擇 1Sec/1/Low 鍵,然后按/+1鍵“9”次。同理,溫度 設(shè)定操作如上。 10 Min 1 Min /100 /High 10 Sec /10 /Middle 1 Sec /1 /Low /+1 /-1 烹烹調(diào)調(diào) 復(fù)復(fù)位位 RESET 暫暫停停取取消消 Cancel 測(cè)測(cè)試試 TEST 火火力力設(shè)設(shè)定定 Power 溫溫度度設(shè)設(shè)定定 Tempera ture 時(shí)時(shí)間間設(shè)設(shè)置置 SET_T 烘烘烤烤解解凍凍 開開始始確確認(rèn)認(rèn) S ST TA AR RT T FPGA 控制 芯片 工工 作作 狀狀 態(tài)態(tài) 暫暫 停停 測(cè)測(cè) 試試 烹烹 調(diào)調(diào) 烘烘 烤烤 解解 凍凍 意意 外外 報(bào)報(bào) 警警 完完 成成 提提 示示 顯顯 示示 時(shí)時(shí) 間間顯顯 示示 溫溫 度度 火火力力 指指示示 3.2 系統(tǒng)外觀布局系統(tǒng)外觀布局 暫停/取消:用于暫停食物烹飪過程或者取消食物烹飪前的參數(shù)設(shè)置過程。在 食物烹飪過程中,若按下該鍵,則停止食物烹飪,進(jìn)入待機(jī)狀態(tài);在參數(shù)設(shè)置時(shí), 若按下此鍵,可取消設(shè)置的參數(shù)。 火力設(shè)定 :用于設(shè)定系統(tǒng)火力檔位。按下該鍵,進(jìn)入選擇 1Min/100/High 基于 FPGA 的微波爐控制器設(shè)計(jì) 10Sec/10/Middle 1Sec/1/Low 按鍵狀態(tài)。 溫度設(shè)定 :設(shè)置加熱的溫度最高值。當(dāng)按下該鍵時(shí),進(jìn)入調(diào)整 1Min/100 /High 10Sec/10/Middle 1Sec/1/Low 按鍵狀態(tài)。 時(shí)間設(shè)置 :設(shè)置系統(tǒng)工作時(shí)間。按下該鍵,進(jìn)入調(diào)整 10Min 1Min/100 /High 10Sec/10/Middle 1Sec/1/Low /+1 /-1 按鍵狀態(tài)。 烹調(diào) :快速設(shè)定當(dāng)前烹飪時(shí)間和火力到適合烹調(diào)的值。 烘烤 :快速設(shè)定當(dāng)前烹飪時(shí)間和火力到適合烘烤的值。 解凍 :快速設(shè)定當(dāng)前烹飪時(shí)間和火力到適合解凍的值。 開始/確認(rèn) :在選擇烹調(diào)、烘烤、解凍或者設(shè)置時(shí)間、設(shè)定溫度、選擇火力等 烹飪參數(shù)后,按下此鍵,開始進(jìn)行烹飪。 指示燈功能如下: 完成提示:提示微波爐工作完成。該燈亮?xí)r,表示烹飪完成; 意外報(bào)警:提示意外情況發(fā)生。該燈亮?xí)r,表示出現(xiàn)意外,微波爐暫停工作; 解凍:該燈亮?xí)r,表示工作在解凍模式下; 烘烤:該燈亮?xí)r,表示工作在烘烤模式下; 烹調(diào):該燈亮?xí)r,表示工作在烹調(diào)模式下; 測(cè)試:該燈亮?xí)r,表示微波爐處于測(cè)試狀態(tài); 開門指示:指示微波爐的門的狀態(tài),門開時(shí)燈亮,門關(guān)時(shí)燈滅; 工作狀態(tài):指示微波爐處于工作狀態(tài),工作時(shí)燈亮,不工作時(shí)燈滅; 3.2. 系統(tǒng)功能模塊描述系統(tǒng)功能模塊描述 本系統(tǒng)主要由輸入、控制和顯示部分組成。輸入部分主要完成用戶對(duì)控制功能 的設(shè)置,采用按鍵作為輸入設(shè)備??刂撇糠质潜鞠到y(tǒng)的核心,它接收用戶的輸入, 完成相應(yīng)的控制邏輯功能,并將當(dāng)前的工作狀態(tài)等信息送到顯示部分。顯示部分主 要監(jiān)視系統(tǒng)工作狀態(tài)并提示用戶進(jìn)行控制操作。 以下是該系統(tǒng)功能模塊圖,如圖 3.3 所示 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 圖圖 3.3 系統(tǒng)功能模塊圖系統(tǒng)功能模塊圖 3.2.1. 輸入模塊輸入模塊 輸入部分一般采用鍵盤或旋鈕作為輸入,由于實(shí)驗(yàn)室已有設(shè)備限制,本系統(tǒng)采 用鍵盤進(jìn)行輸入設(shè)置,即由一個(gè) 4*4 矩陣鍵盤實(shí)現(xiàn)數(shù)據(jù)輸入控制。該矩陣鍵盤上 16 個(gè)按鍵分別是:10Min 1Min/100/High 10Sec/10/Middle 1Sec/1/Low /+1 復(fù)位 暫停/取消 測(cè)試 /-1 火力設(shè)定 溫度設(shè)定 時(shí)間設(shè)置 烹調(diào) 烘烤 解凍 開始/確認(rèn)。輸入模塊包括時(shí)鐘脈沖電路、鍵盤掃描電路、消枓同步 電路和鍵盤譯碼電路,通過該模塊將掃描得到的按鍵值送到控制模塊。 3.2.2. 控制模塊控制模塊 控制部分作為整個(gè)微波爐控制器系統(tǒng)的核心,它采用 FPGA 芯片作為主控核心, 完成許多復(fù)雜的控制和數(shù)據(jù)處理任務(wù)。它通過輸入模塊提供的按鍵輸入實(shí)現(xiàn)數(shù)據(jù)信 息裝載處理,并將處理結(jié)果通過顯示模塊顯示出來。其涉及到數(shù)據(jù)的裝載、狀態(tài)轉(zhuǎn) 換控制、烹飪計(jì)時(shí)、溫度控制、火力控制、音響效應(yīng)提示等。 基于 FPGA 的微波爐控制器設(shè)計(jì) 3.2.3. 顯示模塊顯示模塊 顯示部分采用七段數(shù)碼管和發(fā)光二極管來實(shí)現(xiàn)。由于數(shù)碼管顯示信息較少,一 些信息用數(shù)碼管顯示不夠直觀,因此本系統(tǒng)在采用數(shù)碼管顯示的同時(shí),還用發(fā)光二 極管作為輔助顯示。其中,用七段數(shù)碼管作為時(shí)間、溫度、火力大小顯示,用發(fā)光 二極管作為狀態(tài)提示顯示。具體設(shè)計(jì)時(shí),采用 4 位 LED 數(shù)碼管顯示加熱倒計(jì)時(shí),3 位 LED 數(shù)碼管顯示當(dāng)前溫度值,1 位 LED 數(shù)碼管顯示當(dāng)前火力檔位。8 個(gè)狀態(tài)提示 指示燈分別表示:工作狀態(tài)、開門指示、測(cè)試、烹調(diào)、烘烤、解凍、意外報(bào)警、完 成提示。 3.3. 系統(tǒng)的工作流程系統(tǒng)的工作流程 微波爐控制器系統(tǒng)的工作流程為:上電后,系統(tǒng)首先處于一種復(fù)位狀態(tài),其各 電路模塊均處于初始狀態(tài)。此時(shí),8 個(gè)數(shù)碼管上會(huì)顯示“88888888”的信息,所有指 示燈亮。按 TEST 鍵,數(shù)碼管和發(fā)光二極管全亮、全滅交替閃爍,可以測(cè)試數(shù)碼管 和指示燈工作是否正常。系統(tǒng)工作時(shí),首先通過鍵盤輸入數(shù)據(jù),比如,按烹調(diào)、烘 烤、解凍鍵選擇系統(tǒng)預(yù)置方案,或者按時(shí)間設(shè)置鍵設(shè)置時(shí)間,按溫度設(shè)定鍵設(shè)置溫 度,按火力選擇鍵選擇火力,結(jié)合 10Min、1Min/100/High、10Sec/10 /Middle、1Sec/1/Low 按鍵進(jìn)行自定義方案設(shè)置,設(shè)置結(jié)束以后,表示數(shù)據(jù)裝載完 成,按 START 鍵后系統(tǒng)進(jìn)入烹調(diào)狀態(tài)。在烹飪過程中,可以按暫停/取消鍵暫停烹 飪,或者重新設(shè)置時(shí)間、溫度、火力。烹飪結(jié)束后,系統(tǒng)會(huì)發(fā)出音效提示,同時(shí), 系統(tǒng)自動(dòng)進(jìn)入復(fù)位狀態(tài)。 根據(jù)系統(tǒng)工作流程,繪制主程序流程圖,如圖 3.4 所示: 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 圖圖 3.4 系統(tǒng)工作流程圖系統(tǒng)工作流程圖 基于 FPGA 的微波爐控制器設(shè)計(jì) 4. 系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)詳細(xì)設(shè)計(jì) 4.1. 輸入模塊設(shè)計(jì)輸入模塊設(shè)計(jì) 輸入模塊采用 4*4 矩陣鍵盤作為輸入設(shè)備,實(shí)現(xiàn)數(shù)據(jù)輸入控制。矩陣鍵盤是一 種常見的輸入裝置,在日常生活中,矩陣鍵盤在計(jì)算機(jī)、電話、手機(jī)、微波爐等格 式電子產(chǎn)品上已經(jīng)被廣泛應(yīng)用,計(jì)算機(jī)鍵盤通常采用行列掃描法來確定所按下鍵的 行列位置。由于鍵盤按鍵是一種機(jī)械開關(guān),所以設(shè)計(jì)其控制電路時(shí),需要涉及到鍵 盤掃描、鍵盤譯碼,光靠矩陣鍵盤是無法完成按鍵輸入工作的。其中鍵盤掃描又涉 及到時(shí)序產(chǎn)生、按鍵掃描和消除抖動(dòng)。 4.1.1. 鍵盤掃描鍵盤掃描 鍵盤處理的重要環(huán)節(jié)是時(shí)序產(chǎn)生、鍵盤掃描和按鍵消抖,以下分別針對(duì)所涉及 到的電路進(jìn)行描述。 1、時(shí)序產(chǎn)生電路 本時(shí)序產(chǎn)生電路中使用了三種不同頻率的工作脈沖波形:系統(tǒng)時(shí)鐘脈沖、掃描 鍵盤時(shí)鐘、鍵盤消抖動(dòng)時(shí)鐘。分別定義如下: CLK: IN STD_LOGIC; -系統(tǒng)時(shí)鐘脈沖 CLK_SCAN : OUT STD_LOGIC; -掃描鍵盤時(shí)鐘 CLK_DEB : OUT STD_LOGIC -鍵盤消抖動(dòng)時(shí)鐘 一般消抖動(dòng)信號(hào)時(shí)鐘頻率必須比其它的電路使用的脈沖信號(hào)頻率更高,一般消抖 動(dòng)頻率是鍵盤掃描或 LED 頻率的 4 倍或更高。這里系統(tǒng)時(shí)鐘頻率取 50MHZ,掃描 時(shí)鐘頻率取 100KHZ,消抖時(shí)鐘頻率取 200KHZ。 生成的電路符號(hào)如下,圖 4.1 所示: CLKCLK_SCAN CLK_DEB clk_gen inst 圖圖 4.1 時(shí)序產(chǎn)生電路符號(hào)時(shí)序產(chǎn)生電路符號(hào) 2、按鍵掃描電路 所謂行列式鍵盤掃描,即用帶有 I/O 口的線組成行列式結(jié)構(gòu),按鍵設(shè)置在行列 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 的交點(diǎn)上。行列式矩陣鍵盤原理:按鍵設(shè)置在行列線的交叉點(diǎn),行列線分別連接到 按鍵的兩端。列線通過上拉電阻截止+5V 電壓,即列線的輸出被定位到高電平狀態(tài); 判斷有無按鍵按下時(shí)通過行線送出掃描信號(hào),然后列線讀取狀態(tài)得到。其方法是依 次給行線送低電平,檢查列線的輸入。若列線全為高電平,則代表所在行無按鍵按 下,若列線出現(xiàn)低電平,則低電平所在的行和出現(xiàn)低電平的列的交叉點(diǎn)處有按鍵 按 下。行掃描信號(hào)為 KEY_DRV30,列輸入信號(hào)為 KEY_IN30,與按鍵的對(duì)應(yīng)關(guān) 系如表 4.1 所示。 表表 4.1 nm 行列矩陣對(duì)應(yīng)關(guān)系表行列矩陣對(duì)應(yīng)關(guān)系表 K KE EY Y_ _D DR RV V3 3 K KE EY Y_ _D DR RV V0 0K KE EY Y_ _I IN N3 3 K KE EY Y_ _I IN N0 0對(duì)對(duì)應(yīng)應(yīng)的的按按鍵鍵 11101 11012 10113 1110 01114 11105 11016 10117 1101 01118 11109 11010 1011A 1011 0111B 1110C 1101D 1011E 0111 0111F 鍵盤掃描電路是用來產(chǎn)生掃描信號(hào) KEY_DRV30,其變化為周期性的有規(guī)律 的變化(1110 1101 1011 0111),停留在每個(gè)狀態(tài)的時(shí)間由按鍵的機(jī)械物理特性決定, 按鍵在閉合和斷開的瞬太短的按鍵掃描時(shí)間容易采集到按鍵抖動(dòng),太長(zhǎng)的掃描時(shí)間 容易丟失某些較快的按鍵信息。 完成程序設(shè)計(jì),生成相應(yīng)的電路符號(hào),如圖 4.2 所示: 基于 FPGA 的微波爐控制器設(shè)計(jì) SCAN_CLKKEY_DRV30 key_scan inst5 圖圖 4.2 鍵盤掃描電路符號(hào)鍵盤掃描電路符號(hào) 3、按鍵消抖電路 當(dāng)一個(gè)按鍵按下和釋放時(shí),對(duì)應(yīng)信號(hào)線電平的變化有一個(gè)不穩(wěn)定期,即所謂 “抖動(dòng)”,這是因?yàn)槎鄶?shù)開關(guān)的閉合和斷開都有一個(gè)過程,并不是即刻實(shí)現(xiàn)的。在讀 取鍵盤狀態(tài)時(shí)必須避開這個(gè)不穩(wěn)定期,以免造成誤判,這樣一個(gè)做法叫做“去抖”。 如果當(dāng)在一段時(shí)間內(nèi)都連續(xù)多次讀到同一個(gè)非空(即有鍵按下)的掃描碼,可 以認(rèn)為這時(shí)按鍵已處于穩(wěn)定狀態(tài),這時(shí)得到的掃描碼就代表了一個(gè)鍵盤動(dòng)作,抖動(dòng) 的影響已經(jīng)被剔除。按照這個(gè)想法,只需設(shè)置一個(gè)倒數(shù)計(jì)數(shù)器,當(dāng)每次讀到的非空 掃描碼與上一次的相同,就將計(jì)數(shù)器加 1;而當(dāng)一旦讀到不同的掃描碼或空碼則立 即將計(jì)數(shù)器清 0。如果計(jì)數(shù)器的值達(dá)到某預(yù)定值 N 時(shí),則表示連續(xù) N 次讀到同一掃 描碼,于是可認(rèn)為已經(jīng)讀到了有效的按鍵。設(shè)鍵盤掃描的間隔是 T,則去抖的時(shí)間 就是 N * T。在實(shí)際中,因?yàn)橐话闳说陌存I速度至多是 10 次/秒,亦即一次按鍵時(shí)間 是 100ms,所以按下的時(shí)間可估算為 50ms。因此,鍵盤掃描的頻率取 100KHz,消 抖時(shí)鐘頻率取 200KHz。 綜合上述分析,該鍵盤掃描子模塊關(guān)鍵代碼如下: COUNTER:BLOCK IS BEGIN PROCESS(CLK)IS BEGIN IF(CLKEVENT AND CLK=1)THEN Q K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE LD_TEST LD_CLK LD_DONE IF(TEST=1) THEN NEXT_STATE IF DONE=1 THEN NEXT_STATE DATA2 DATA2 DATA2 NULL; END CASE; END PROCESS; 完成 VHDL 源程序的輸入,編譯、運(yùn)行,生成相應(yīng)的電路符號(hào),如下圖 4.11 所示: DATA1150 LD_TEST LD_CLK LD_DONE DATA2150 LOAD ALARM ZZQ inst5 圖圖 4.11 ZZQ 電路符號(hào)電路符號(hào) 4.2.3. 烹飪計(jì)時(shí)烹飪計(jì)時(shí) 烹飪計(jì)時(shí)器 JSQ 為減計(jì)數(shù)計(jì)數(shù)器,其最大計(jì)時(shí)時(shí)間為 59:59,因此可用兩個(gè)減 計(jì)數(shù)十進(jìn)制計(jì)數(shù)器 DCNT10 和兩個(gè)減計(jì)數(shù)六進(jìn)制計(jì)數(shù)器 DCNT6 級(jí)聯(lián)構(gòu)成。其中, 兩個(gè)十進(jìn)制的減法計(jì)數(shù)器用于分、秒的個(gè)位減法計(jì)數(shù),兩個(gè)六進(jìn)制的減法計(jì)數(shù)器用 于分、秒的十位減法計(jì)數(shù)。 由所學(xué)知識(shí)可知,計(jì)數(shù)的功能是累計(jì)輸入脈沖的個(gè)數(shù),實(shí)現(xiàn)計(jì)數(shù)功能的數(shù)字電 基于 FPGA 的微波爐控制器設(shè)計(jì) 路即計(jì)數(shù)器,被計(jì)數(shù)的脈沖可以是周期性脈沖,也可以是非周期性脈沖,通常加在 計(jì)數(shù)器的時(shí)鐘脈沖輸入端,作為計(jì)數(shù)器的時(shí)鐘脈沖。 因此,根據(jù)減法計(jì)數(shù)器隨計(jì)數(shù)脈沖的不斷輸入而遞減計(jì)數(shù),在具體設(shè)計(jì)該十進(jìn) 制減法計(jì)數(shù)器和六進(jìn)制減法計(jì)數(shù)器過程中,可以當(dāng)計(jì)數(shù)值減到 0 時(shí),其計(jì)數(shù)器的數(shù) 值自動(dòng)轉(zhuǎn)為定時(shí)設(shè)定時(shí)間,在十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)過程中,可表達(dá)為: IF CQI=“0000“ THEN CQI=(cout-6) AND touthourin) THEN ALARMDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=“0000000“; END CASE; END PROCESS; 生成電路符號(hào),如圖 4.22 所示: AIN430DOUT760 YMQ inst4 圖圖 4.22 YMQ 電路符號(hào)電路符號(hào) 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 5. 系統(tǒng)仿真系統(tǒng)仿真 5.1. 輸入模塊仿真輸入模塊仿真 完成該鍵盤輸入模塊 VHDL 源程序文件輸入后,保存文件,對(duì)文件進(jìn)行編譯, 生成該輸入模塊部分的原理框圖,如圖 5.1 所示: CLK KEY_IN30 OUT_CLK OUT_DATA150 keyboard inst VCC CLK INPUT VCC KEY_IN30 INPUT DATA150 OUTPUT CLK OUTPUT 圖圖 5.1 輸入模塊原理框圖輸入模塊原理框圖 其中,CLK 為系統(tǒng)時(shí)鐘脈沖,KEY_IN30為按鍵輸入,KEY_OUT30為按 鍵輸入譯碼后的輸出值。 添加引腳,對(duì)該原理圖進(jìn)行編譯、仿真。 5.2. 狀態(tài)轉(zhuǎn)換控制器仿真狀態(tài)轉(zhuǎn)換控制器仿真 完成狀態(tài)轉(zhuǎn)換控制器 KZQ 子模塊 VHDL 源程序文件輸入后,保存文件,對(duì)文 件進(jìn)行編譯,然后生成其模塊原理圖,如圖 5.2 所示: RESET SET_T START TEST CLK DONE COOK LD_TEST LD_CLK LD_DONE ALARM KZQ inst VCC RESET INPUT VCC SET_T INPUT VCC START INPUT VCC TEST INPUT VCC CLK INPUT VCC DONE INPUT COOK OUTPUT LD_TEST OUTPUT LD_CLK OUTPUT LD_DONE OUTPUT ALARM OUTPUT 圖圖 5.2 狀態(tài)轉(zhuǎn)換控制器狀態(tài)轉(zhuǎn)換控制器 KZQ 原理圖原理圖 其中,輸入信號(hào)為 RESET、SET_T、START、TEST、CLK、DONE,輸出信 號(hào)為 COOK、LD_TEST、LD_CLK、LD_DONE、ALARM。 KZQ 根據(jù)輸入信號(hào)和自身當(dāng)時(shí)所處的狀態(tài)完成狀態(tài)的轉(zhuǎn)換和輸出相應(yīng)的控制信 號(hào)。LD_CLK 指示 ZZQ 裝入設(shè)置的烹調(diào)時(shí)間數(shù)據(jù);LD_DONE 指示 ZZQ 裝入烹調(diào) 完畢的狀態(tài)信息“donE”的顯示驅(qū)動(dòng)信息數(shù)據(jù);LD_TEST 指示 ZZQ 裝入用于測(cè)試的 數(shù)據(jù)“8888”以顯示驅(qū)動(dòng)信息數(shù)據(jù);COOK 指示烹調(diào)正在進(jìn)行之中,并提示計(jì)時(shí)器進(jìn) 基于 FPGA 的微波爐控制器設(shè)計(jì) 行減計(jì)數(shù);ALARM 為外接音響效應(yīng)揚(yáng)聲器。 添加引腳,對(duì)該原理圖進(jìn)行編譯、仿真,其仿真結(jié)果,如圖 5.3 所示: 圖圖 5.3 狀態(tài)轉(zhuǎn)換控制器狀態(tài)轉(zhuǎn)換控制器 KZQ 仿真圖仿真圖 分析該仿真文件,可以看到,當(dāng)測(cè)試信號(hào) TEST 為高電平有效時(shí),測(cè)試輸出信 號(hào) LD_TEST 為高電平;否則,當(dāng)時(shí)間設(shè)置信號(hào) SET_T 為高電平時(shí),對(duì)應(yīng)的指示信 號(hào) LD_CLK 輸出高電平;當(dāng)烹飪開始信號(hào) START 信號(hào)為高電平時(shí),對(duì)應(yīng)輸出 COOK 為高電平;當(dāng)復(fù)位信號(hào) RESET 為高電平時(shí),系統(tǒng)復(fù)位清零,恢復(fù)初始狀態(tài)。 仿真結(jié)果符合模塊設(shè)計(jì)的要求。 5.3. 數(shù)據(jù)裝載器仿真數(shù)據(jù)裝載器仿真 完成數(shù)據(jù)裝載器 ZZQ 子模塊 VHDL 源程序文件輸入后,保存文件,對(duì)文件進(jìn) 行編譯,生成該數(shù)據(jù)裝載器子模塊原理圖,如圖 5.4 所示: DATA1150 LD_TEST LD_CLK LD_DONE DATA2150 LOAD ALARM ZZQ inst VCC LD_TEST INPUT VCC LD_CLK INPUT VCC LD_DONE INPUT DATA2150 OUTPUT VCC DATA1150 INPUT LOAD OUTPUT ALARM OUTPUT 圖圖 5.4 數(shù)據(jù)裝載器數(shù)據(jù)裝載器 ZZQ 原理圖原理圖 其中,輸入信號(hào) LD_DONE 為高電平時(shí),輸出烹調(diào)完畢的狀態(tài)信息數(shù)據(jù); LD_CLK 為高電平時(shí),輸出設(shè)置的烹調(diào)時(shí)間數(shù)據(jù);LD_TEST 為高電平時(shí),輸出測(cè)試 數(shù)據(jù)。輸出信號(hào) LOAD 用于指示電路正處于上述三路信號(hào)模式中的哪一種,同時(shí)提 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 示 JSQ 將處于數(shù)據(jù)裝入狀態(tài)。 添加引腳,對(duì)該原理圖進(jìn)行編譯、仿真,其仿真結(jié)果如圖 5.5 所示: 圖圖 5.5 數(shù)據(jù)裝載器數(shù)據(jù)裝載器 ZZQ 仿真圖仿真圖 分析該模塊仿真結(jié)果,由于數(shù)據(jù)裝載器本質(zhì)上即多了選擇譯碼電路??芍?dāng) LD_CLK、LD_TEST、LD_DONE 三路信號(hào)中有且僅有一路信號(hào)電平有效時(shí),選擇 器相應(yīng)的值作為輸出。 5.4. 烹飪計(jì)時(shí)器仿真烹飪計(jì)時(shí)器仿真 對(duì)烹飪計(jì)時(shí)器模塊頂層文件進(jìn)行編譯,生成對(duì)應(yīng)的元件,添加引腳,得到該烹 飪計(jì)時(shí)器子模塊原理圖。如圖 5.6 所示: CLK LOAD COOK DATA5150 SEC_L30 SEC_H30 MIN_L30 MIN_H30 DONE ALARM JSQ inst VCC CLK INPUT VCC LOAD INPUT VCC COOK INPUT VCC DATA150 INPUT SEC_L30 OUTPUT SEC_H30 OUTPUT MIN_L30 OUTPUT MIN_H30 OUTPUT DONE OUTPUT ALARM OUTPUT 圖圖 5.6 烹飪計(jì)時(shí)器烹飪計(jì)時(shí)器 JSQ 原理圖原理圖 其中,輸入信號(hào) LOAD 為高電平時(shí)完成信號(hào)的載入;COOK 信號(hào)為高電平時(shí), 在每個(gè)時(shí)鐘周期的上升沿進(jìn)行減法計(jì)數(shù)。輸出信號(hào) DONE 表示烹調(diào)時(shí)間到; ALARM 表示音響效應(yīng);SEC_L30、SEC_H30、MIN_L30、MIN_H30顯 示所剩時(shí)間,和測(cè)試狀態(tài)信息、烹調(diào)完畢狀態(tài)信息等。 由于烹調(diào)計(jì)時(shí)器是由兩個(gè)減計(jì)數(shù)十進(jìn)制計(jì)數(shù)器 DCNT10 和兩個(gè)減計(jì)數(shù)六進(jìn)制計(jì) 數(shù)器 DCNT6 級(jí)聯(lián)構(gòu)成,因此,先完成兩個(gè)減計(jì)數(shù)十進(jìn)制和六進(jìn)制計(jì)數(shù)器的 VHDL 源程序文件輸入,保存文件并對(duì)文件進(jìn)行編譯、仿真。以下分別是兩減計(jì)數(shù)器的功 基于 FPGA 的微波爐控制器設(shè)計(jì) 能仿真圖。如圖 5.7、5.8 所示: 圖圖 5.7 十進(jìn)制計(jì)數(shù)器十進(jìn)制計(jì)數(shù)器 DCNT10 仿真圖仿真圖 圖圖 5.8 六進(jìn)制計(jì)數(shù)器六進(jìn)制計(jì)數(shù)器 DCNT6 仿真圖仿真圖 分析以上計(jì)數(shù)器仿真結(jié)果,當(dāng) LOAD 高電平有效時(shí),對(duì)應(yīng)的輸出數(shù)據(jù) CQ 為輸 入數(shù)據(jù) DATAIN 的數(shù)值;否則,在時(shí)鐘脈沖上升沿,當(dāng) ENA 高電平有效時(shí),計(jì)數(shù) 器進(jìn)行減計(jì)數(shù),當(dāng)計(jì)數(shù)值減到 0 時(shí),其計(jì)數(shù)器的數(shù)值自動(dòng)轉(zhuǎn)為最大計(jì)時(shí)時(shí)間,在這 個(gè)過程中,當(dāng)每次計(jì)數(shù)值減到 0 時(shí),輸出信號(hào) CARRT_OUT 記一次數(shù),即實(shí)現(xiàn)烹調(diào) 過程定時(shí)計(jì)數(shù)。 由以上分析可知,仿真結(jié)果正確,即實(shí)現(xiàn)了減法計(jì)數(shù)功能。 在前面仿真正確的基礎(chǔ)上,生成相應(yīng)的元件,對(duì)兩計(jì)數(shù)器進(jìn)行級(jí)聯(lián),構(gòu)成烹調(diào) 計(jì)時(shí)器內(nèi)部原理框圖,對(duì)該原理圖進(jìn)行編譯、仿真,得到其仿真結(jié)果圖。為了直觀 有效的觀察該烹調(diào)計(jì)時(shí)器的實(shí)現(xiàn)結(jié)果,這里分別設(shè)置不同的定時(shí)時(shí)間進(jìn)行仿真,其 對(duì)應(yīng)的仿真結(jié)果如圖 5.9、5.10 所示: 圖 5.9 為定時(shí)時(shí)間(4 分 57 秒)的仿真結(jié)果圖。 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 圖圖 5.9 烹調(diào)計(jì)時(shí)器烹調(diào)計(jì)時(shí)器 JSQ 仿真圖(仿真圖(4 分分 57 秒)秒) 圖 5.10 為定時(shí)時(shí)間(59 分 59 秒)的仿真結(jié)果圖。 圖圖 5.10 烹調(diào)計(jì)時(shí)器烹調(diào)計(jì)時(shí)器 JSQ 仿真圖(仿真圖(59 分分 59 秒)秒) 由以上仿真結(jié)果可以看到,該 JSQ 模塊實(shí)現(xiàn)了烹調(diào)計(jì)時(shí)的定時(shí)作用。 5.5. 顯示譯碼器仿真顯示譯碼器仿真 完成顯示譯碼器 YMQ 模塊 VHDL 源程序文件輸入后,保存文件,對(duì)文件進(jìn)行 編譯,生成該譯碼器模塊框圖,如圖 5.11 所示: AIN430DOUT760 YMQ inst VCC AIN4 INPUT DOUT7 OUTPUT 圖圖 5.11 顯示譯碼器顯示譯碼器 YMQ 框圖框圖 其中,AIN4 為信號(hào)輸入端,DOUT7 輸出顯示,外接 秒個(gè)位、秒十位、分個(gè) 基于 FPGA 的微波爐控制器設(shè)計(jì) 位、分十位的按鍵。 添加引腳,對(duì)該原理圖進(jìn)行編譯、仿真,其仿真結(jié)果如圖 5.12 所示: 圖圖 5.12 顯示譯碼器顯示譯碼器 YMQ 仿真圖仿真圖 分析仿真結(jié)果,可知,該譯碼器實(shí)現(xiàn)了顯示譯碼功能。 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 6. 結(jié)論結(jié)論 該課題是利用 ALTERA 公司的 QUARTUS 開發(fā)環(huán)境和軟件,進(jìn)行 VHDL 程序 設(shè)計(jì),然后進(jìn)行仿真,調(diào)試,以 CYC-L2 V2.0 便攜式 EDA/SOPC/DSP 實(shí)驗(yàn)系統(tǒng)為 硬件平臺(tái),實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的微波爐控制器系統(tǒng)的設(shè)計(jì)。在整個(gè)畢業(yè)設(shè)計(jì)過程中, 進(jìn)行了系統(tǒng)的總體設(shè)計(jì),硬件設(shè)備的選用,軟件和開發(fā)環(huán)境的安裝,VHDL 程序設(shè) 計(jì)與仿真。 設(shè)計(jì)的重點(diǎn)主要在系統(tǒng)的規(guī)劃以及程序的設(shè)計(jì)與調(diào)試上,要做到鍵盤與數(shù)碼管, LED 燈的一體化,需要在鍵位設(shè)置時(shí)進(jìn)行準(zhǔn)確的設(shè)計(jì),通過鍵盤的掃描,消抖和譯 碼,達(dá)到一鍵一碼的目的,做到功能的完善。 設(shè)計(jì)的難點(diǎn)主要在功能控制上,數(shù)據(jù)和控制信號(hào)較多,狀態(tài)之間的轉(zhuǎn)化也較為 復(fù)雜,在設(shè)計(jì)中帶來了一些困難。另外在仿真分析上,因?yàn)樾枰獪y(cè)試的結(jié)果很多, 有些結(jié)果無法預(yù)料,無法在仿真中看到。 本設(shè)計(jì)也存在一定的不足。由于本身能力和實(shí)驗(yàn)器材的限制,無法在系統(tǒng)中建 立完善的體制,只是實(shí)現(xiàn)了一個(gè)微波爐控制器的基本功能。比如像存儲(chǔ)功能,就沒 有在系統(tǒng)中考慮到,這些都有待以后的繼續(xù)提高和完善。 基于 FPGA 的微波爐控制器設(shè)計(jì) 致致 謝謝 本文是在導(dǎo)師 XX 的認(rèn)真要求和悉心指導(dǎo)下完成的。在這半年期間,無論是從 選題的確定,論文的寫作、修改到最后的定稿,時(shí)刻都能得到 XX 老師的啟發(fā)和引 導(dǎo)。特別是她多次詢問我設(shè)計(jì)進(jìn)程,在我感到進(jìn)展困難的時(shí)候?yàn)槲抑更c(diǎn)迷津,幫助 我開拓思路,精心點(diǎn)撥,熱忱鼓勵(lì)。正是在 XX 老師不遺余力的幫助下,我的設(shè)計(jì) 思路才得以能夠從混亂到清晰,論文材料才能夠從蕪雜到精到,語言組織才可以從 瑣碎到精煉,一步一步接近完善。XX 老師嚴(yán)肅的教學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精 益求精的工作作風(fēng)深深地感染和激勵(lì)著我,在此,謹(jǐn)向 XX 老師致以我最誠摯的謝 意和崇高的敬意!謝謝 XX 老師! 在學(xué)習(xí)期間,也得到學(xué)院各位老師的無私幫助和熱心教誨,在此向?qū)W院的各位 領(lǐng)導(dǎo)、老師表示衷心的感謝,謝謝你們給我提供了一個(gè)友好融洽的學(xué)習(xí)環(huán)境。同時(shí), 對(duì)各位老師在專業(yè)知識(shí)與其他方面給予的幫助,在此一并表示誠摯的謝意!也感謝 在我學(xué)習(xí)和生活中給予幫助的各位同學(xué),特別是同組成員 XX 同學(xué),從最初的選題 理解以及模塊搭建到最后的論文撰寫,我們一起討論學(xué)習(xí),他給予了我很大幫助。 再一次向我的導(dǎo)師 XX 老師表示感謝,并向所有在論文完成過程中給予過我關(guān) 心、幫助和支持的老師、同學(xué)、朋友們致以最誠摯的謝意,謝謝你們! 同時(shí)也感謝學(xué)校圖書館給我們提供了良好的查詢資料和下載資料的場(chǎng)所,感謝 學(xué)院為我們提供了良好的做畢業(yè)設(shè)計(jì)的環(huán)境。 感謝參加論文評(píng)審和答辯的各位教授、專家! 感謝你們能在百忙之中給予指導(dǎo)! 感謝所有關(guān)心我的人! 西南石油大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 參考文獻(xiàn)參考文獻(xiàn) 1 李華MCS- 51 系列單片機(jī)使用接口技術(shù)北京:北京航空航天大學(xué)出版社, 1990 2 黃繼昌傳感器工作原理及應(yīng)用實(shí)例北京:人民郵電出版社,1998 3 紀(jì)宗南單片機(jī)外圍器件實(shí)用手冊(cè)輸入通道器件分冊(cè)北京:北京航空航天 大學(xué)出版社,1998 4 閻石數(shù)字電子技術(shù)基礎(chǔ)北京:高等教育出版社,2004 5 張志剛FPGA 與 SOPC 設(shè)計(jì)教程:DE2 實(shí)踐西安:西安電子科技大學(xué)出 版社,2007 6 汪國強(qiáng)SOPC 技術(shù)與應(yīng)用北京:機(jī)械工業(yè)出版社,2006 7 江思敏VHDL 數(shù)字電路及系統(tǒng)設(shè)計(jì)北京:機(jī)械工業(yè)出版社,2006 8 甘歷VHDL 應(yīng)用與開發(fā)實(shí)踐北京:科學(xué)出版社,2003 9 陳榮,陳華VHDL 芯片設(shè)計(jì)北京:機(jī)械工業(yè)出版社,2006 10 王誠,吳繼華,范麗珍Altera FPGA/CPLD 設(shè)計(jì):基礎(chǔ)篇北京:人民郵 電出版社,2005 11 徐光輝,程?hào)|旭,黃如基于 FPGA 的嵌入式開發(fā)與應(yīng)用北京:電子工 業(yè)出版社,2006 12 李景華,杜玉遠(yuǎn)可編程邏輯器件與 EDA 技術(shù)沈陽:東北大學(xué)出版社, 2000 13 王國強(qiáng)EDA 技術(shù)與應(yīng)用北京:電子工業(yè)出版社,2006 14 億特科技CPLD/FPGA 應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開發(fā)北京:人民郵電出版 社,2005 15 Bob Zeidman基于 FPGA&CPLD 的數(shù)字 IC 設(shè)計(jì)方法北京:北京航空航 天大學(xué)出版社,2004 16 Wayne WolfThe system based on FPGA design北京:機(jī)械工業(yè)出版社, 2005 基于 FPGA 的微波爐控制器設(shè)計(jì) 附附 錄錄 系統(tǒng)整體結(jié)構(gòu)圖系統(tǒng)整體結(jié)構(gòu)圖