利用WHDL設(shè)計(jì)洗衣機(jī)控制器_第1頁
利用WHDL設(shè)計(jì)洗衣機(jī)控制器_第2頁
利用WHDL設(shè)計(jì)洗衣機(jī)控制器_第3頁
利用WHDL設(shè)計(jì)洗衣機(jī)控制器_第4頁
利用WHDL設(shè)計(jì)洗衣機(jī)控制器_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、利用VHDL設(shè)計(jì)洗衣機(jī)控制器1 引言2 選題研究的意義21 課題來源22 課題研究的背景23 研究的目的和意義4 應(yīng)解決的主要問題與應(yīng)達(dá)到的技術(shù)要求241 需解決的主要問題洗衣機(jī)控制系統(tǒng)的核心部件是控制器。洗衣機(jī)控制電路包括控制器、控制對(duì)象、狀態(tài)顯示電路、計(jì)時(shí)器與報(bào)警電路。它是一閉環(huán)系統(tǒng),部結(jié)構(gòu)有洗衣機(jī)狀態(tài)轉(zhuǎn)23 / 23換時(shí)間信號(hào)產(chǎn)生器、狀態(tài)計(jì)數(shù)器、數(shù)據(jù)選擇器和狀態(tài)譯碼器,它能自動(dòng)發(fā)出順序循環(huán)控制信號(hào)(S、R、L),并同時(shí)完成在該狀態(tài)下的計(jì)時(shí)功能。另外,它還向控制對(duì)象提供一個(gè)工作過程的周期信號(hào)(T),作循環(huán)次數(shù)累計(jì)??刂茖?duì)象是由4位二進(jìn)制計(jì)數(shù)器和4位數(shù)值比較器構(gòu)成,它對(duì)T作計(jì)數(shù),與此同時(shí)與人

2、工輸入的預(yù)置循環(huán)數(shù)比較,隨時(shí)將反應(yīng)受控器自身狀態(tài)的信號(hào)反饋給控制器,從而實(shí)現(xiàn)系統(tǒng)的控制功能。242 需實(shí)現(xiàn)洗衣機(jī)控制器的控制功能 洗衣機(jī)的狀態(tài)為待機(jī)5s正轉(zhuǎn)60s待機(jī)5s反轉(zhuǎn)60s,并用3個(gè)LED燈和7段顯示器分別表示其工作狀態(tài)和顯示相應(yīng)工作狀態(tài)下的時(shí)間。自行設(shè)定洗衣機(jī)的循環(huán)次數(shù),這里設(shè)最大的循環(huán)次數(shù)為15次。 具有緊急情況的處理功能。當(dāng)發(fā)生緊急情況時(shí),立即轉(zhuǎn)入到待機(jī)狀態(tài),緊急情況解除后繼續(xù)執(zhí)行后續(xù)步驟。 洗衣機(jī)設(shè)定循環(huán)次數(shù)遞減到零時(shí)立即報(bào)警,以表示洗衣機(jī)設(shè)定的循環(huán)次數(shù)已經(jīng)結(jié)束。 輸入變量:時(shí)鐘CLK,直接清零RD,暫停/連續(xù)EN,設(shè)定洗衣機(jī)的循環(huán)次數(shù)SET。輸出變量:三個(gè)工作狀態(tài)S、R、L,

3、一個(gè)過程周期T(T4),8421BCD碼Q7Q0輸出與報(bào)警信號(hào)。25 國外研究現(xiàn)狀,發(fā)展趨勢(shì)與存在的主要問題26設(shè)計(jì)工具介紹3 洗衣機(jī)控制器設(shè)計(jì)的方案論證3.1 洗衣機(jī)控制器設(shè)計(jì)的方案選擇設(shè)計(jì)洗衣機(jī)控制器,通??梢杂萌N方法來實(shí)現(xiàn)。方法一,可以用純機(jī)械式來設(shè)計(jì)控制器。本方法利用機(jī)械原理來設(shè)計(jì)定時(shí)器。例如可以利用彈簧儲(chǔ)存能量和釋放能量的過程得到定時(shí)時(shí)間。其原理如同機(jī)械式(上發(fā)條)的鐘表。由于長(zhǎng)時(shí)間工作,金屬容易疲勞,一旦出現(xiàn)這樣的情況,其定時(shí)的誤差變大,導(dǎo)致定時(shí)不準(zhǔn)確。同時(shí)由于金屬的疲勞和磨損等,可能引發(fā)定時(shí)器停擺,輪子打滑,進(jìn)水等問題。但機(jī)械式控制器具有制造方便,成本低等特點(diǎn),所以在很多場(chǎng)合應(yīng)

4、用面依然比較廣。方法二,利用單片機(jī)控制。利用單片機(jī)設(shè)計(jì)控制器也是一種理想的設(shè)計(jì)方案。其優(yōu)點(diǎn)突出,主要表現(xiàn)為:前期開發(fā)投入少,效率高,設(shè)計(jì)周期短,控制精度較高。但單片機(jī)芯片單價(jià)高,如果大批量生產(chǎn),其性價(jià)比較低;另外,在實(shí)際工作過程中容易出現(xiàn)死機(jī),程序調(diào)用混亂等問題。方法三,采用FPGA。FPGA具有體積小,可靠性高等優(yōu)點(diǎn)。它一方面克服了機(jī)械式控制器所引發(fā)的定時(shí)器停擺,輪子打滑,進(jìn)水等缺點(diǎn);另一方面也克服了利用單片機(jī)設(shè)計(jì)的控制器的問題,不易出現(xiàn)死機(jī),程序調(diào)用混亂等問題。同時(shí),采用大批量生產(chǎn)時(shí),其性價(jià)比高。雖然方案二也能實(shí)現(xiàn)設(shè)計(jì)任務(wù),但程序結(jié)構(gòu)繁冗,用戶看起來不太直觀。方案三只用一個(gè)轉(zhuǎn)換器就能實(shí)現(xiàn),

5、程序簡(jiǎn)單也能較好的完成設(shè)計(jì)任務(wù)。且移植性好,功能更容易擴(kuò)展。本設(shè)計(jì)選擇方案三實(shí)現(xiàn)洗衣機(jī)控制器的功能。3.2數(shù)字系統(tǒng)的FPGA設(shè)計(jì)流程 3.2.1設(shè)計(jì)系統(tǒng)結(jié)構(gòu)框圖系統(tǒng)結(jié)構(gòu)框圖8如圖2所示。洗衣機(jī)控制電路包括控制器,控制對(duì)象,狀態(tài)顯示電路,計(jì)時(shí)器與報(bào)警電路??刂破魇窍到y(tǒng)的核心部件。它是一閉環(huán)系統(tǒng),部結(jié)構(gòu)有5s和60s信號(hào)產(chǎn)生器,狀態(tài)計(jì)數(shù)器,數(shù)據(jù)選擇器和狀態(tài)譯碼器,它能自動(dòng)發(fā)出順序控制信號(hào)(S、R、L),并同時(shí)完成在該狀態(tài)下的計(jì)時(shí)功能。另外,它還向控制對(duì)象提供一個(gè)工作過程的周期信號(hào)(T),作循環(huán)次數(shù)累計(jì)??刂茖?duì)象是由4位二進(jìn)制計(jì)數(shù)器和4位數(shù)值比較器構(gòu)成,它對(duì)T作計(jì)數(shù),與此同時(shí)與人工輸入的預(yù)置循環(huán)數(shù)比

6、較,隨時(shí)將反應(yīng)受控器自身轉(zhuǎn)臺(tái)的信號(hào)反饋給控制器,實(shí)現(xiàn)系統(tǒng)的控制功能8。圖2 系統(tǒng)的結(jié)構(gòu)框圖狀態(tài)顯示電路是通過3個(gè)LED燈來顯示洗衣機(jī)的狀態(tài):當(dāng)洗衣機(jī)暫?;虺霈F(xiàn)緊急情況時(shí)第二個(gè)LED燈亮,當(dāng)洗衣機(jī)正轉(zhuǎn)時(shí)第一個(gè)LED燈都亮,當(dāng)洗衣機(jī)反轉(zhuǎn)時(shí),只有第三個(gè)LED燈亮。報(bào)警控制電路的功能是當(dāng)設(shè)定的循環(huán)次數(shù)減到零時(shí)提示用戶。LED燈和數(shù)碼管顯示電路:通過LED燈來顯示洗衣機(jī)的各種工作狀態(tài),利用數(shù)碼管來顯示時(shí)間。3.2.2洗衣機(jī)控制框圖蜂鳴報(bào)警系統(tǒng)(根據(jù)機(jī)器運(yùn)行的過程或狀態(tài)給出蜂鳴或報(bào)警)供電系統(tǒng)(提供控制板電源)門蓋狀態(tài)檢測(cè)(檢測(cè)洗滌過程中門蓋狀態(tài))供排水系統(tǒng)(按照一定的洗滌中期進(jìn)水或排水)電機(jī)驅(qū)動(dòng)系統(tǒng)(驅(qū)

7、動(dòng)電機(jī)按照一定的周期或節(jié)奏洗滌與脫水)負(fù)載檢測(cè)系統(tǒng)( 檢測(cè)衣物重量 )用戶接口(獲得用戶輸入同時(shí)反映機(jī)器狀態(tài))控制器圖3 洗衣機(jī)控制系統(tǒng)3.2.3洗衣機(jī)控制系統(tǒng)流程圖洗滌洗滌放入衣物水流設(shè)置水位設(shè)置模式選擇洗滌時(shí)間設(shè)置默認(rèn)洗滌時(shí)間手動(dòng)設(shè)置洗滌時(shí)間進(jìn)水進(jìn)水排水進(jìn)水清洗排水脫水自動(dòng)斷電圖4 洗衣機(jī)控制系統(tǒng)流程圖3.2.4洗衣機(jī)狀態(tài)轉(zhuǎn)移圖S0S1S2S211S221S3S4S5S222S212S8S7S6圖5 洗衣機(jī)狀態(tài)轉(zhuǎn)移圖4 設(shè)計(jì)論述系統(tǒng)有3個(gè)工作狀態(tài):正轉(zhuǎn),反轉(zhuǎn),暫停,由狀態(tài)標(biāo)志量count控制。count=0時(shí),洗衣機(jī)正轉(zhuǎn),時(shí)間持續(xù)60s;count=1時(shí)洗衣機(jī)第一次暫停,時(shí)間持續(xù)5s;co

8、unt=2時(shí)洗衣機(jī)反轉(zhuǎn),時(shí)間持續(xù)60s;count=3時(shí)洗衣機(jī)第二次暫停,時(shí)間持續(xù)5 s,此時(shí)一個(gè)工作周期結(jié)束會(huì)產(chǎn)生控制信號(hào)T,設(shè)定的循環(huán)次數(shù)減1,若減1后循環(huán)次數(shù)為零,則洗衣機(jī)停止工作,產(chǎn)生報(bào)警信號(hào);若循環(huán)次數(shù)不為零則繼續(xù)工作。如果系統(tǒng)產(chǎn)生復(fù)位信號(hào),則洗衣機(jī)停止工作產(chǎn)生報(bào)警信號(hào)。整個(gè)控制功能的VHDL程序見附錄一。該程序經(jīng)編譯后創(chuàng)立的模塊圖如圖8所示,其輸入輸出信號(hào)說明如下:系統(tǒng)時(shí)鐘CLK,直接清零RD,暫停/連續(xù)EN,設(shè)定洗衣機(jī)的循環(huán)次數(shù)SET,報(bào)警脈沖信號(hào)CLK_1024;LAMP:洗衣機(jī)運(yùn)行各狀態(tài)指示燈Seg2,seg1:各狀態(tài)運(yùn)行時(shí)間的顯示Seg4,seg3:設(shè)定工作周期顯示時(shí)間計(jì)數(shù)

9、ALARM:報(bào)警信號(hào)部信號(hào)說明:temp:狀態(tài)轉(zhuǎn)換控制信號(hào)count:狀態(tài)轉(zhuǎn)換信號(hào)C:清零信號(hào)s1,s2,s3,s4:狀態(tài)值T:控制器產(chǎn)生的控制信號(hào)A:報(bào)警信號(hào)圖11 I/O模塊圖432 使用說明 在EN為低電平時(shí)通過SET設(shè)定洗衣機(jī)循環(huán)工作的次數(shù)。 通過按鍵將EN置為高電平,啟動(dòng)洗衣機(jī)工作,以后可通過EN暫停/繼續(xù)。 若中途發(fā)生故障,可通過按鍵RD直接清零復(fù)位,待清除故障后重新啟動(dòng)。 洗衣機(jī)結(jié)束工作,報(bào)警,可通過RD或EN直接取消報(bào)警,將EN置為低電平,即可重新設(shè)定工作次數(shù)。44 測(cè)試仿真步驟 在Max+plus軟件平臺(tái)上進(jìn)行仿真的基本步驟如下: 選File/Project/Name菜單建立

10、項(xiàng)目名。見圖12圖12 選File/New菜單,并選text Editor條目,進(jìn)入文本編輯窗,然后輸入電路設(shè)計(jì)文件。見圖13圖13 選File/Project/Save & Check 菜單將文件存盤并檢查文件的正確性。見圖14。圖14 選Max+plus/waveform Editor菜單,編輯輸入信號(hào)波形(在波形編輯窗口,選Node/Enter Nodes from SNF菜單將輸入和輸出端口調(diào)入,然后再編輯)。見圖15。圖15 選Max+plus/Simulator 菜單進(jìn)行行為仿真。見圖16圖16 觀察仿真結(jié)果,研究設(shè)計(jì)的正確性。5 結(jié)果分析測(cè)試仿真波形見附錄二BCD碼模塊仿

11、真波形和七段顯示譯碼模塊仿真波形如附錄二中圖1和圖2所示,測(cè)試波形正確。執(zhí)行設(shè)定次數(shù)為2的波形圖見附錄二圖3所示,測(cè)試波形符合要求。加入暫停信號(hào)后的波形。從附錄二圖4整體上看暫停有效。從附錄二圖5細(xì)節(jié)上看程序具有記憶功能,能從斷點(diǎn)處裝載,繼續(xù)工作,符合要求。加入RD信號(hào)后的波形附錄二圖6復(fù)位信號(hào)有效,復(fù)位后報(bào)警提示成功。6 設(shè)計(jì)總結(jié)設(shè)計(jì)過程中采用了VHDL語言進(jìn)行編寫,并用MAX + plus軟件進(jìn)行仿真,它主要是對(duì)洗衣機(jī)工作狀態(tài)、時(shí)間進(jìn)行控制,在整個(gè)設(shè)計(jì)過程中,我先對(duì)FPGA的結(jié)構(gòu)和VHDL的語法結(jié)構(gòu)進(jìn)一步的掌握,然后著重根據(jù)設(shè)計(jì)原理和思路著手編程,其間參考了不少文獻(xiàn)資料,對(duì)計(jì)數(shù)器、數(shù)據(jù)選擇

12、器、譯碼器、數(shù)值比較器的功能、邏輯圖、引腳圖進(jìn)行分析,然后再在MAX + plus上進(jìn)行編譯仿真,分析波形,修改程序直至與設(shè)計(jì)要求相符。當(dāng)然在研究中還存在不少問題,比如我設(shè)計(jì)的洗衣機(jī)只是半自動(dòng)的,其功能還不完善,如水位的控制、脫水、漂洗的方式等都還沒設(shè)計(jì)出來;仿真的波形還沒完全達(dá)到設(shè)計(jì)標(biāo)準(zhǔn),對(duì)時(shí)間的延遲沒考慮清楚等,如果是對(duì)課題的進(jìn)一步研究可以增加洗衣機(jī)的功能,這就還需要增加傳感器等等,同時(shí)還可以添加一個(gè)測(cè)試程序,就可以更加直觀的看到仿真結(jié)果。參考文獻(xiàn)1 黃任. VHDL入門、解惑、經(jīng)典實(shí)例、經(jīng)驗(yàn)總結(jié). 第一版,:航空航天大學(xué),2005.12 譚會(huì)生,瞿遂春. EDA技術(shù)綜合應(yīng)用實(shí)例與分析.

13、第一版,:電子科技大學(xué),2004.113 松,黃繼業(yè). EDA技術(shù)實(shí)用教程. 第三版,:科學(xué),20064 徐光輝,程?hào)|旭,黃如. 基于FPGA的嵌入式開發(fā)與應(yīng)用. 第一版,:電子工業(yè),2006.95 郭冀嶺,王君瑞,王遠(yuǎn)波. 用VHDL實(shí)現(xiàn)智能洗衣機(jī)控制系統(tǒng)有限狀態(tài)機(jī)的設(shè)計(jì). 電子技術(shù),2004; 6 淵,馬善農(nóng). 基于CPLD的洗衣機(jī)控制器. 科技廣場(chǎng),2007; 7 波,王章瑞,高一波. 基于VHDL的洗衣機(jī)控制器設(shè)計(jì). 科技設(shè)計(jì)成果,2007; 8 司孝平,嚴(yán)峰. 基于FPGA的洗衣機(jī)控制器設(shè)計(jì)與實(shí)驗(yàn)教學(xué). 天中學(xué)刊,2006; 9 司孝平,嚴(yán)峰. 對(duì)一種洗衣機(jī)控制器的FPGA設(shè)計(jì)改進(jìn).

14、 大學(xué)學(xué)報(bào)(自然科學(xué)版), 2006; 10 曉博,展威,素娟. 數(shù)字電壓表的VHDL設(shè)計(jì)與實(shí)現(xiàn). 儀表技術(shù),2005; 11 EP1C12.pdf . 12 EP1C8.pdf. 13 ByteBlaster_II_Download_Cable.pdf. 致 附錄一 程序源代碼-BCD碼變換模塊。module bcdma(clk,TIMES,t);input clk;input 3:0 TIMES;output 7:0 t;reg 7:0 t;always (posedge clk)beginif(TIMES>4'b1001)t<=TIMES+8'b0000011

15、0;elset<=TIMES+8'b00000000;endendmodule-共陰極七段顯示譯碼模塊module decode(COUNT,oseg1,oseg2);input 7:0 COUNT;output 6:0 oseg1,oseg2;reg 6:0 oseg1,oseg2;always (COUNT7:0)begincase(COUNT3:0)4'h1: oseg1 = 7'b0000110;4'h2: oseg1 = 7'b1011011; 4'h3: oseg1 = 7'b1001111; 4'h4: ose

16、g1 = 7'b1100110; 4'h5: oseg1 = 7'b1101101; 4'h6: oseg1 = 7'b1111101; 4'h7: oseg1 = 7'b0000111; 4'h8: oseg1 = 7'b1111111; 4'h9: oseg1 = 7'b1100111; 4'ha: oseg1 = 7'b1110111;4'hb: oseg1 = 7'b1111100;4'hc: oseg1 = 7'b0111001;4'hd:

17、oseg1 = 7'b1011110;4'he: oseg1 = 7'b1111001;4'hf: oseg1 = 7'b1110001;4'h0: oseg1 = 7'b0111111;endcase case( COUNT7:4 )4'h1: oseg2 = 7'b0000110;4'h2: oseg2 = 7'b1011011; 4'h3: oseg2 = 7'b1001111; 4'h4: oseg2 = 7'b1100110; 4'h5: oseg2 = 7

18、'b1101101; 4'h6: oseg2 = 7'b1111101; 4'h7: oseg2 = 7'b0000111; 4'h8: oseg2 = 7'b1111111; 4'h9: oseg2 = 7'b1100111; 4'ha: oseg2 = 7'b1110111;4'hb: oseg2 = 7'b1111100;4'hc: oseg2 = 7'b0111001;4'hd: oseg2 = 7'b1011110;4'he: oseg2 =

19、 7'b1111001;4'hf: oseg2 = 7'b1110001;4'h0: oseg2 = 7'b0111111;endcase endendmodule-掃描選擇輸出模塊module scan4(rd,clk,seg1,seg2,seg3,seg4,c1,c2,c3,c4,seg); output6 : 0seg; output c1,c2,c3,c4; input clk,rd; input6 : 0seg1,seg2,seg3,seg4;reg6 : 0seg;reg c1,c2,c3,c4; reg1: 0sel;always(pose

20、dge clk)beginif (rd=1) sel<=0;else if(sel=3) sel<=0;elsesel<=sel+1;end always(sel)begincase (sel1: 0) 2'b00:beginseg<=seg1;c1=1;c2=0;c3=0;c4=0;end2'b01:beginseg<=seg2;c1=0;c2=1;c3=0;c4=0;end2'b10:beginseg<=seg3;c1=0;c2=0;c3=1;c4=0;end2'b11:beginseg<=seg4;c1=0;c2=

21、0;c3=0;c4=1;endendcaseendendmodule-整個(gè)洗衣機(jī)控制模塊module washer1(CLK,CLK_1024,SET,RD,EN,LAMP,seg,c1,c2,c3,c4,ALARM); output6 : 0seg; output c1,c2,c3,c4; output3 : 0LAMP; output ALARM; input CLK,CLK_1024,EN,RD; input3 : 0SET; reg7 : 0num; reg temp,C,ALARM; reg2 : 0count; reg7 : 0s1,s2,s3,s4; reg3 : 0LAMP,t

22、im;reg6:0seg;reg c1,c2,c3,c4;reg6 : 0seg1,seg2,seg3,seg4;reg7:0t;wire T,A; assign T=(count=0&&num=2&&LAMP=2)|!EN|RD); /控制器產(chǎn)生的控制信號(hào)Tassign A=(!tim&&EN); /報(bào)警信號(hào)always /狀態(tài)轉(zhuǎn)換置數(shù) begin s1 <=8'h 60; s2 <=8'h 05; s3 <=8'h 60; s4 <=8'h 05; endalways (posedge CLK) /控制器模塊beginif(!RD)beginC<=0; if(EN&&!C) begin if(!temp&&tim) begin temp<=1; case(count) 0: begin num<=s1;LAMP<=4;count<=1;end 1: begin num<=s2;LAMP<=2;count<=2;end 2: begin num<=s3;LAMP<=1;count<=3;end 3: begin num

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論