VHDL微波爐控制器設計_第1頁
VHDL微波爐控制器設計_第2頁
VHDL微波爐控制器設計_第3頁
VHDL微波爐控制器設計_第4頁
VHDL微波爐控制器設計_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

目錄緒論............................................................2關鍵技術簡介...................................................2.1FPGA簡介....................................................2.2VHDL語言概述.22.3ALTIUMDESIGNER簡介.........................................三、微波爐定時控制器的設計方案分析..................................3.1系統設計的要求..............................................43.2系統總體功能描述43.3各模塊的功能實現53.3.1輸入模塊...............................................53.3.2狀態控制模塊...........................................53.3.3顯示模塊...............................................5四、系統詳細設計....................................................74.1控制模塊.....................................................74.1.1狀態轉換控制...........................................74.1.2數據裝載94.1.3烹飪計時..............................................104.1.4控制模塊的實現........................................11五、系統仿真.......................................................5.1狀態控制器仿真..............................................115.2數據裝載器的仿真...........................................125.3烹飪計時器的仿真...........................................13六、結論..........................................................14一、緒論隨著人民生活水平的提高波爐開始進人越來越多的家庭給人們的生活帶來了極大的方便。微波爐由2450MHz的超高頻來加熱食物。它省時、省電、方便和衛生。作為現代的烹飪工具,微波爐的控制器體現著它的重要性能指標。目前大部分微波爐控制器采用單片機進行設計,電路比較復雜,性能不夠靈活。本文采用先進的EDA技術,用ALTIUM工作平臺和VHDL設計語言,設計了一種新型的微波爐控制器系統該系統具有系統復位時間設定烹飪計時等功能,在FPGA上實現。二、關鍵術簡介2.1FPGA介FPGA即現場可編程門陣列,它是在PAL、GALCPLD等可編程器件的基礎上進一步發展的產物它是作為專用集成電路(ASIC領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。目前以硬件描述語言(VerilogVHDL所完成的電路設計,可以經過簡單的綜合與布局快速的燒錄至FPGA上進行測試是現代IC設計驗證的技術主流。這些可編輯元件可以被用來實現一些基本的邏輯門電路(比如AND、OR、XOR、NOT或者更復雜一些的組合功能比如解碼器或數學方程式。在大多數的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發器Flipflop)或者其他更加完整的記憶塊。系統設計師可以根據需要通過可編輯的連接把FPGA內部的邏輯塊連接起來就好像一個電路試驗板被放在了一個芯片里一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者而改變,所以FPGA可以完成所需要的邏輯功能。FPGA一般來說比(專用集成芯片的速度要慢法完成復雜的設計,而且消耗更多的電能但是他們也有很多的優點比如可以快速成品可以被修改來改正程序中的錯誤和更便宜的造價商也可能會提供便宜的但是編輯能力差的FPGA。因為這些芯片有比較差的可編輯能力,所以這些設計的開發是在普通的FPGA上完成的,然后將設計轉移到一個類似于的芯片上。2.2VHDL言概述VHDL的文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,誕生于1982年1987年底VHDL被IEEE和美國國防部確認為標準硬件描述語言。VHDL主要用于描述數字系統的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統)分成外部(或稱可視部分,及端)和內部(或稱不可視部分涉及實體的內部功能和算法完成部分。在對一個設計實體定義了外部界面后一旦其內部開發完成后其他的設計就可以直接調用這個實體種將設計實體分成內外部分的概念是VHDL系統設計的基本點。VHDL語言能夠成為標準化的硬件描述語言并獲得廣泛應用,它自身必然具有很多其他硬件描述語言所不具備的優點歸納起來VHDL語言主要具有以下優點:(1)VHDL語言功能強大計方式多樣VHDL語言具有強大的語言結構只需采用簡單明確的VHDL語言程序就可以述十分復雜的硬件電路。同時,它還具有多層次的電路設計描述功能此外VHDL語言能夠同時支持同步電路異步電路和隨機電路的設計實現這是其他硬件描述語言所不能比擬的VHDL語言設計方法靈活多樣,既支持自頂向下的設計方式,也支持自底向上的設計方法;既支持模塊化設計方法,也支持層次化設計方法。(2)VHDL語言具有強大的硬件描述能力VHDL語言具有多層次的電路設計描述功能,既可描述系統級電路,也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結構描述,也可以采用三者的混合描述方式。同時VHDL語言也支持慣性延遲和傳輸延遲這樣可以準確地建立硬件電路的模型。VHDL語言的強大描述能力還體現在它具有豐富的數據類型。語言既支持標準定義的數據類型也支持用戶定義的數據類型這樣便會給硬件描述帶來較大的自由度。VHDL語言具有很強的移植能力VHDL語言很強的移植能力主要體現在:對于同一個硬件電路的VHDL語言描述,它可以從一個模擬器移植到另一個模擬器上從一個綜合器移植到另一個綜合器上或者從一個工作平臺移植到另一個工作平臺上去執行。VHDL語言的設計描述與器件無關采用VHDL語言描述硬件電路時,設計人員并不需要首先考慮選擇進行設計的器件。這樣做的好處是可以使設計人員集中精力進行電路設計的優化,而不需要考慮其他的問題。當硬件電路的設計描述完成以后語言允許采用多種不同的器件結構來實現(5)VHDL語言程序易于共享和復用VHDL語言采用基于庫(library)的設計方法設計過程中,設計人員可以建立各種可再次利用的模塊,一個大規模的硬件電路的設計不可能從門級電路開始一步步地進行設計而是一些模塊的累加這些模塊可以預先設計或者使用以前設計中的存檔模塊將這些模塊存放在庫中就可以在以后的設計中進行復用。由于VHDL語言是一種描述擬綜合優化和布線的標準硬件描述語言,因此它可以使設計成果在設計人員之間方便地進行交流和共享而減小硬件電路設計的工作量,縮短開發周期。2.3ALTIUMDESIGNER簡介Altium是原Protel軟件開發商Altium司推出的一體化的電子產品開發系統,主要運行WindowsXP操作系統。這套軟件通過把原理圖設計、電路仿真、PCB繪制編輯、拓撲邏輯自動布線、信號完整性分析和設計輸出等技術的完美融合為設計者提供了全新的設計解決方案使設計者可以輕松進行設計,熟練使用這一軟件必將使電路設計的質量和效率大大提高。AltiumDesigner除了全面繼承包括Protel99SE、ProtelDXP在內的先前一系列版本的功能和優點外還增加了許多改進和很多高端功能該平臺拓寬了板級設計的傳統界面全面集成了FPGA設計功能和設計實現功能從而允許工程設計人員能將系統設計中的與PCB設計及嵌入式設計集成在一起。由于Altium在繼承先前Protel軟件功能的基礎上,綜合了FPGA計和嵌入式系統軟件設計功能AltiumDesigner對計算機的系統需求比先前的版本要高一些。三、微波定時控制器設計方案分析3.1系統設計的要求現需設計一個微波爐控制器通過該控制器再配以個七段數碼二極管完成微波爐的定時及信息顯示。各信號的功能及要求如下:CLK是秒時鐘脈沖輸入,它接每秒一個時鐘脈沖的節拍信號。為復位信號,高電平有效,用于芯片的復位功能TEST為測試信號,高電平有效,用于測試4個七段數碼二極管工作是否正常。START為開始加熱信號,高電平有效,SET_UP信號為定時設置信號,高電平時可以設置定時時間DATA為定時的時間,COOK為加熱輸出,另外四個輸出分別表示顯示的定時時間的分和秒。3.2系統總體功能描述各信號功能及要求如下:CLK是秒時鐘脈沖輸入,它接每秒一個時鐘脈沖的節拍信號。為復位信號,高電平有效,用于芯片的復位功能TEST信號是測試信號,高電平有效,用于測試七段數碼管工作是否正常是烹調時間設置控制信號電平有效。DATA1一個16位總線輸入信號,輸入所設置的時間長短,它由高到低分為4組,每一組是BCD碼輸入,分別表示分、秒十位、個位的數字,如分59秒。START是烹調開始的控制信號,高電平有效COOK是烹調進行信號,外接用于控制烹調的繼電器開關,高電平時表明烹調已經開始或正在進行,低電平表示烹調結束或沒有進行。MIN_H,MIN_L,SEC_H,SEC_L四組七位總線信號,通過態的顯示完成烹調所剩的時間及測試狀態信息,烹調完畢的狀態信息。該微波爐控制器的具體功能要求如下:上電后系統首先處于復位狀態。在工作是首先按時間設置鍵設置烹調時間此時系統輸入DATA1的數據作為烹調所需的時間,然后系統自動回到復位狀態,同4個七段數碼管顯示時間信息。在按START鍵后系統進入烹調狀態。COOK號開始為高電平,此時4個七段數碼管每隔一秒鐘變化一次,用以刷新還剩剩余多少時間結束烹調。烹調結束后,COOK信號變為低電平,同時LCD顯示“0000”的信息,同時蜂鳴器發出提示音,然后系統回到復位狀態統可以通過按鍵隨時回到復位狀態復位狀態下,按在4個數碼管上會顯示“8888的信息,它可以測試工作是否正常。3.3各模塊的功能實現本系統主要由輸入、控制和顯示部分組成。輸入部分主要完成用戶對控制功能的設置采用按鍵作為輸入設備制部分是本系統的核心它接收用戶的輸入,完成相應的控制邏輯功能,并將當前的工作狀態等信息送到顯示部分。顯示部分主要監視系統工作狀態并提示用戶進行控制操作。3.3.1輸入模塊本系統采用鍵盤進行輸入設置,即由一個4*4矩陣鍵盤實現數據輸入控制。該矩陣鍵盤上16個按鍵分別是:輸入模塊包括時鐘脈沖電路、鍵盤掃描電路、消枓同步電路和鍵盤譯碼電路,通過該模塊將掃描得到的按鍵值送到控制模塊。3.3.2狀態控制模塊控制部分作為整個微波爐控制器系統的核心,它采用FPGA芯片作為主控核心,完成許多復雜的控制和數據處理任務通過輸入模塊提供的按鍵輸入實現數據信息裝載處理并將處理結果通過顯示模塊顯示出來其涉及到數據的裝載狀態轉換控制、烹飪計時。3.3.3顯示模塊顯示部分采用LCD和LED來實現。其中,LCD作為時間、狀態顯示,用發光二極管作為火力大小顯示。具體設計時,采用LCD進行8顯示,高四位顯示烹飪時間,低四位顯示當前的烹飪狀態3個LED顯示火力的大小,其中第一個亮表示小火,第一和第二個亮表示中火,3個全亮表示大火。3.4系統的工作流程開始系統復位、初始數據裝載

測試系統預置方案

自定義方案選擇解凍、蒸煮,烘烤

N是否閉合Y烹飪N時間到否Y結束四、系統細設計4.1控制模塊控制模塊是整個微波爐控制器系統的核心,完成許多復雜的控制和數據處理任務它通過輸入模塊提供的按鍵輸入實現數據信息裝載處理控制顯示模塊顯示相應的信息。控制模塊采芯片作為主控芯片其涉及到數據的裝載狀態控制轉換、烹飪計時等。其中,狀態控制轉換子模塊,其功能是控制微波爐工作過程中的狀態轉換并發出相關控制信號數據裝載子模塊其功能是根據按鍵信號設置定時時間最高溫度火力檔位烹調屬性設置以及烹調數據信息裝載烹飪計時子模塊其功能是對時鐘進行減法計數提供烹調完成時的狀態信號音效控制子模塊其功能是控制微波爐工作時的音效提示這里直接外接一個蜂鳴器實現該功能。其功能子模塊圖如下:控制模塊狀態轉換控制子模塊

數據裝載子模塊

烹飪計時子模塊4.1.1狀態轉換控制根據微波爐工作流程的描述分析狀態轉換條件及輸出信號可以得到控制模塊的狀態轉換圖下面,根據上述狀態轉換圖和ASM圖進行程序設計,在編寫程序代碼實現狀態轉換控制子模塊過程時,首先,如果RESET=‘則系統復位,當前狀態為初始狀態,當同步時鐘脈沖,當前狀態為下一狀態,用程序代碼表示如下IFRESET='1'THENCURR_STATE<=DEFAULT;ELSIFCLK'EVENTANDCLK='1'THENCURR_STATE<=;ENDIF;當當前狀態為初始狀態時,LOAD_LED<='0';LOAD_DONE<='0';<='0';此時,顯示測試狀態:WHENLED_TEST=>LOAD_LED<='1';COOK時間設置狀態:WHENSETTING=>LOAD_SET<='1';COOK完成信息顯示狀態:WHENFINISHED=>LOAD_DONE<='1';COOK在初始狀態果按TEST狀態即為顯示測試狀態按下“SETUP”鍵下一狀態即為時間設置狀態果按“START鍵即烹調開始進行時,此時下一狀態為減法計數定時狀態,該過程用程序代碼實現如下:WHENDEFAULT=>IFTEST='1'THENNEXT_STATE<=LED_TEST;LOAD_LED<='1';ELSIFSETUPTHENNEXT_STATE<=SETTING;LOAD_SET<='1';ELSIFTHENNEXT_STATE<=COUNTER;COOK<='1';ENDIF;在減法計數定時狀態果輸出指示烹調信息完成下一狀態為顯示信息完成狀態,顯示烹調完成信息,否則,下一狀態還是減法計數定時狀態高電平有效,用程序代碼實現如下:WHENCOUNTER=>IFDONE='1'THENNEXT_STATE<=FINISHED;LOAD_DONE<='1';ELSENEXT_STATE<=COUNTER;COOK<='1';ENDIF;生成的控制模塊相應的電路符號:4.1.2數據裝載數據裝載器本質上就是一三選一的數據選擇器據其應完成的邏輯功能,本設計可采用一個進程來完成,但由于三個被選擇的數據只有一個來自輸入口,因此另兩個被選擇的數據則通過進程的說明部分定義兩個常數來產生于裝入測試的數據可以用4個8作為顯示測試信息數據過八個譯碼器譯碼后顯示測試信息編碼此常數應是8個分段的4BCD碼1000100010001000同理的BCD碼分別0000000000000000顯示DONE的常“0000通過上述分析,該模塊的主要程序可實現如下:PROCESS(DATA1,LOAD_LED,LOAD_SET,)ISCONSTANTTEST8:STD_LOGIC_VECTOR(15DOWNTO0):=X"8888";CONSTANTSTD_LOGIC_VECTOR(15DOWNTO;VARIABLETEMP:STD_LOGIC_VECTORDOWNTO0);BEGINLOAD<=LOAD_LEDORLOAD_DONEORLOAD_SET;TEMP:=LOAD_LED&LOAD_DONE&LOAD_SET;CASETEMPISWHEN"100"=>DATA2<=TEST8;WHEN"010"=>DATA2<=COOKED;WHEN"001"=>DATA2<=DATA1;WHENOTHERSNULL;ENDCASE;ENDPROCESS;完成VHDL源程序的輸入,編譯、運行,生成相應的電路符號4.1.3烹飪計時烹飪計時器JSQ為減計數計數器,其最大計時時間為,因此可以編寫一個60進制計數器來實現。由所學知識可知計數的功能是累計輸入脈沖的個數實現計數功能的數字電路即計數器被計數的脈沖可以是周期性脈沖也可以是非周期性脈沖通常加在計數器的時鐘脈沖輸入端,作為計數器的時鐘脈沖。計數器的代碼如下:IF(CLK'EVENTANDCLK='1')THENIF(TIME1(3DOWNTO0)="0000")THENTIME1(3DOWNTO0)<="1001";IF(TIME1(7DOWNTO4)="0000")THENTIME1(7DOWNTO4)<="0101";IF(TIME1(11DOWNTO8)="0000")THENTIME1(11DOWNTO8)<="1001";IF(TIME1(15DOWNTO12)="0000")THENTIME1(15DOWNTO12)<="0101";ELSETIME1(15DOWNTO12)<=TIME1(15DOWNTO12)-1;ENDIF;ELSETIME1(11DOWNTO8)<=TIME1(11DOWNTO8)-1;ENDIF;ELSETIME1(7DOWNTO4)<=TIME1(7DOWNTO4)-1;ENDIF;ELSETIME1(3DOWNTO0)<=TIME1(3DOWNTO0)-1;ENDIF;ENDIF;生成相應的電路符號:其中TIME_OUT[3..0]表示秒個位,TIME_OUT[7..4]表示秒的十位,TIME_OUT[11..8]示分的個位,TIME_OUT[15..12]示分的十位。輸入信號LOAD為高電平時完成信號的載入;COOK號為高電平時,在每個時鐘周期的上升沿進行減法計數。輸出信號DONE表示烹調時間到。4.1.4控制模塊的實現綜合上述分析,對該控制模塊進行完整設計,連線圖如下:其中,輸入信號為時鐘輸入信號,時鐘上升沿敏感TEST為碼顯示管測試信號,高電平有效,用于測試顯示管是否正常工作為烹調時間設置時間,高電平有效時允許設置烹調時間;DATAIN為數據輸入信號,用于設置烹調間的長短為調開始的控制信號,高電平有效時開始烹調RESET為復位信號,電平有效時系統復位。DATAOUT[3..0],DATAOUT[7..4],DATAOUT[15..12]別表示秒個位、秒十位、分個位、分十位。他們分別接8位的搞死為,動態地顯示完成烹調所剩的時間以及測試狀態信息“五、系統真5.1態控制器仿真完成狀態轉換控制器KZQ子模塊VHDL源程序文件輸入后,保存文件,對文件進行編譯,然后編寫測試平臺文件進行仿真:其中輸入信號為RESETSETUPSTARTTESTCLKDONE輸出信號為COOK、LOAD_TEST、LOAD_SETLOAD_DONE。控制器根據輸入信號和自身當時所處的狀態完成狀態的轉換和輸出相應的控制信號LOAD_SET指示數據裝載器裝入設置的烹調時間數據;LOAD_DONE指示轉載起裝入烹調完畢的狀態信息“0000”的顯示驅動信息數據LOAD_TEST指示裝載器裝入用于測試的數“8888以顯示驅動信息數據;COOK指示烹調正在進行之中,并提示計時器進行減計數。仿真結果如圖:分析該仿真文件,可以看到,當測試信號TEST高電平有效時,測試輸出信號LOAD_TEST為高電平;否則,當時間設置信SETUP為高電平時,對應的指示信

溫馨提示

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

評論

0/150

提交評論