版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、利用VHDL設(shè)計洗衣機控制器1 引言2 選題研究的意義21 課題來源22 課題研究的背景23 研究的目的和意義4 應(yīng)解決的主要問題與應(yīng)達到的技術(shù)要求241 需解決的主要問題洗衣機控制系統(tǒng)的核心部件是控制器。洗衣機控制電路包括控制器、控制對象、狀態(tài)顯示電路、計時器與報警電路。它是一閉環(huán)系統(tǒng),部結(jié)構(gòu)有洗衣機狀態(tài)轉(zhuǎn)23 / 23換時間信號產(chǎn)生器、狀態(tài)計數(shù)器、數(shù)據(jù)選擇器和狀態(tài)譯碼器,它能自動發(fā)出順序循環(huán)控制信號(S、R、L),并同時完成在該狀態(tài)下的計時功能。另外,它還向控制對象提供一個工作過程的周期信號(T),作循環(huán)次數(shù)累計??刂茖ο笫怯?位二進制計數(shù)器和4位數(shù)值比較器構(gòu)成,它對T作計數(shù),與此同時與人
2、工輸入的預(yù)置循環(huán)數(shù)比較,隨時將反應(yīng)受控器自身狀態(tài)的信號反饋給控制器,從而實現(xiàn)系統(tǒng)的控制功能。242 需實現(xiàn)洗衣機控制器的控制功能 洗衣機的狀態(tài)為待機5s正轉(zhuǎn)60s待機5s反轉(zhuǎn)60s,并用3個LED燈和7段顯示器分別表示其工作狀態(tài)和顯示相應(yīng)工作狀態(tài)下的時間。自行設(shè)定洗衣機的循環(huán)次數(shù),這里設(shè)最大的循環(huán)次數(shù)為15次。 具有緊急情況的處理功能。當發(fā)生緊急情況時,立即轉(zhuǎn)入到待機狀態(tài),緊急情況解除后繼續(xù)執(zhí)行后續(xù)步驟。 洗衣機設(shè)定循環(huán)次數(shù)遞減到零時立即報警,以表示洗衣機設(shè)定的循環(huán)次數(shù)已經(jīng)結(jié)束。 輸入變量:時鐘CLK,直接清零RD,暫停/連續(xù)EN,設(shè)定洗衣機的循環(huán)次數(shù)SET。輸出變量:三個工作狀態(tài)S、R、L,
3、一個過程周期T(T4),8421BCD碼Q7Q0輸出與報警信號。25 國外研究現(xiàn)狀,發(fā)展趨勢與存在的主要問題26設(shè)計工具介紹3 洗衣機控制器設(shè)計的方案論證3.1 洗衣機控制器設(shè)計的方案選擇設(shè)計洗衣機控制器,通??梢杂萌N方法來實現(xiàn)。方法一,可以用純機械式來設(shè)計控制器。本方法利用機械原理來設(shè)計定時器。例如可以利用彈簧儲存能量和釋放能量的過程得到定時時間。其原理如同機械式(上發(fā)條)的鐘表。由于長時間工作,金屬容易疲勞,一旦出現(xiàn)這樣的情況,其定時的誤差變大,導致定時不準確。同時由于金屬的疲勞和磨損等,可能引發(fā)定時器停擺,輪子打滑,進水等問題。但機械式控制器具有制造方便,成本低等特點,所以在很多場合應(yīng)
4、用面依然比較廣。方法二,利用單片機控制。利用單片機設(shè)計控制器也是一種理想的設(shè)計方案。其優(yōu)點突出,主要表現(xiàn)為:前期開發(fā)投入少,效率高,設(shè)計周期短,控制精度較高。但單片機芯片單價高,如果大批量生產(chǎn),其性價比較低;另外,在實際工作過程中容易出現(xiàn)死機,程序調(diào)用混亂等問題。方法三,采用FPGA。FPGA具有體積小,可靠性高等優(yōu)點。它一方面克服了機械式控制器所引發(fā)的定時器停擺,輪子打滑,進水等缺點;另一方面也克服了利用單片機設(shè)計的控制器的問題,不易出現(xiàn)死機,程序調(diào)用混亂等問題。同時,采用大批量生產(chǎn)時,其性價比高。雖然方案二也能實現(xiàn)設(shè)計任務(wù),但程序結(jié)構(gòu)繁冗,用戶看起來不太直觀。方案三只用一個轉(zhuǎn)換器就能實現(xiàn),
5、程序簡單也能較好的完成設(shè)計任務(wù)。且移植性好,功能更容易擴展。本設(shè)計選擇方案三實現(xiàn)洗衣機控制器的功能。3.2數(shù)字系統(tǒng)的FPGA設(shè)計流程 3.2.1設(shè)計系統(tǒng)結(jié)構(gòu)框圖系統(tǒng)結(jié)構(gòu)框圖8如圖2所示。洗衣機控制電路包括控制器,控制對象,狀態(tài)顯示電路,計時器與報警電路??刂破魇窍到y(tǒng)的核心部件。它是一閉環(huán)系統(tǒng),部結(jié)構(gòu)有5s和60s信號產(chǎn)生器,狀態(tài)計數(shù)器,數(shù)據(jù)選擇器和狀態(tài)譯碼器,它能自動發(fā)出順序控制信號(S、R、L),并同時完成在該狀態(tài)下的計時功能。另外,它還向控制對象提供一個工作過程的周期信號(T),作循環(huán)次數(shù)累計。控制對象是由4位二進制計數(shù)器和4位數(shù)值比較器構(gòu)成,它對T作計數(shù),與此同時與人工輸入的預(yù)置循環(huán)數(shù)比
6、較,隨時將反應(yīng)受控器自身轉(zhuǎn)臺的信號反饋給控制器,實現(xiàn)系統(tǒng)的控制功能8。圖2 系統(tǒng)的結(jié)構(gòu)框圖狀態(tài)顯示電路是通過3個LED燈來顯示洗衣機的狀態(tài):當洗衣機暫?;虺霈F(xiàn)緊急情況時第二個LED燈亮,當洗衣機正轉(zhuǎn)時第一個LED燈都亮,當洗衣機反轉(zhuǎn)時,只有第三個LED燈亮。報警控制電路的功能是當設(shè)定的循環(huán)次數(shù)減到零時提示用戶。LED燈和數(shù)碼管顯示電路:通過LED燈來顯示洗衣機的各種工作狀態(tài),利用數(shù)碼管來顯示時間。3.2.2洗衣機控制框圖蜂鳴報警系統(tǒng)(根據(jù)機器運行的過程或狀態(tài)給出蜂鳴或報警)供電系統(tǒng)(提供控制板電源)門蓋狀態(tài)檢測(檢測洗滌過程中門蓋狀態(tài))供排水系統(tǒng)(按照一定的洗滌中期進水或排水)電機驅(qū)動系統(tǒng)(驅(qū)
7、動電機按照一定的周期或節(jié)奏洗滌與脫水)負載檢測系統(tǒng)( 檢測衣物重量 )用戶接口(獲得用戶輸入同時反映機器狀態(tài))控制器圖3 洗衣機控制系統(tǒng)3.2.3洗衣機控制系統(tǒng)流程圖洗滌洗滌放入衣物水流設(shè)置水位設(shè)置模式選擇洗滌時間設(shè)置默認洗滌時間手動設(shè)置洗滌時間進水進水排水進水清洗排水脫水自動斷電圖4 洗衣機控制系統(tǒng)流程圖3.2.4洗衣機狀態(tài)轉(zhuǎn)移圖S0S1S2S211S221S3S4S5S222S212S8S7S6圖5 洗衣機狀態(tài)轉(zhuǎn)移圖4 設(shè)計論述系統(tǒng)有3個工作狀態(tài):正轉(zhuǎn),反轉(zhuǎn),暫停,由狀態(tài)標志量count控制。count=0時,洗衣機正轉(zhuǎn),時間持續(xù)60s;count=1時洗衣機第一次暫停,時間持續(xù)5s;co
8、unt=2時洗衣機反轉(zhuǎn),時間持續(xù)60s;count=3時洗衣機第二次暫停,時間持續(xù)5 s,此時一個工作周期結(jié)束會產(chǎn)生控制信號T,設(shè)定的循環(huán)次數(shù)減1,若減1后循環(huán)次數(shù)為零,則洗衣機停止工作,產(chǎn)生報警信號;若循環(huán)次數(shù)不為零則繼續(xù)工作。如果系統(tǒng)產(chǎn)生復(fù)位信號,則洗衣機停止工作產(chǎn)生報警信號。整個控制功能的VHDL程序見附錄一。該程序經(jīng)編譯后創(chuàng)立的模塊圖如圖8所示,其輸入輸出信號說明如下:系統(tǒng)時鐘CLK,直接清零RD,暫停/連續(xù)EN,設(shè)定洗衣機的循環(huán)次數(shù)SET,報警脈沖信號CLK_1024;LAMP:洗衣機運行各狀態(tài)指示燈Seg2,seg1:各狀態(tài)運行時間的顯示Seg4,seg3:設(shè)定工作周期顯示時間計數(shù)
9、ALARM:報警信號部信號說明:temp:狀態(tài)轉(zhuǎn)換控制信號count:狀態(tài)轉(zhuǎn)換信號C:清零信號s1,s2,s3,s4:狀態(tài)值T:控制器產(chǎn)生的控制信號A:報警信號圖11 I/O模塊圖432 使用說明 在EN為低電平時通過SET設(shè)定洗衣機循環(huán)工作的次數(shù)。 通過按鍵將EN置為高電平,啟動洗衣機工作,以后可通過EN暫停/繼續(xù)。 若中途發(fā)生故障,可通過按鍵RD直接清零復(fù)位,待清除故障后重新啟動。 洗衣機結(jié)束工作,報警,可通過RD或EN直接取消報警,將EN置為低電平,即可重新設(shè)定工作次數(shù)。44 測試仿真步驟 在Max+plus軟件平臺上進行仿真的基本步驟如下: 選File/Project/Name菜單建立
10、項目名。見圖12圖12 選File/New菜單,并選text Editor條目,進入文本編輯窗,然后輸入電路設(shè)計文件。見圖13圖13 選File/Project/Save & Check 菜單將文件存盤并檢查文件的正確性。見圖14。圖14 選Max+plus/waveform Editor菜單,編輯輸入信號波形(在波形編輯窗口,選Node/Enter Nodes from SNF菜單將輸入和輸出端口調(diào)入,然后再編輯)。見圖15。圖15 選Max+plus/Simulator 菜單進行行為仿真。見圖16圖16 觀察仿真結(jié)果,研究設(shè)計的正確性。5 結(jié)果分析測試仿真波形見附錄二BCD碼模塊仿
11、真波形和七段顯示譯碼模塊仿真波形如附錄二中圖1和圖2所示,測試波形正確。執(zhí)行設(shè)定次數(shù)為2的波形圖見附錄二圖3所示,測試波形符合要求。加入暫停信號后的波形。從附錄二圖4整體上看暫停有效。從附錄二圖5細節(jié)上看程序具有記憶功能,能從斷點處裝載,繼續(xù)工作,符合要求。加入RD信號后的波形附錄二圖6復(fù)位信號有效,復(fù)位后報警提示成功。6 設(shè)計總結(jié)設(shè)計過程中采用了VHDL語言進行編寫,并用MAX + plus軟件進行仿真,它主要是對洗衣機工作狀態(tài)、時間進行控制,在整個設(shè)計過程中,我先對FPGA的結(jié)構(gòu)和VHDL的語法結(jié)構(gòu)進一步的掌握,然后著重根據(jù)設(shè)計原理和思路著手編程,其間參考了不少文獻資料,對計數(shù)器、數(shù)據(jù)選擇
12、器、譯碼器、數(shù)值比較器的功能、邏輯圖、引腳圖進行分析,然后再在MAX + plus上進行編譯仿真,分析波形,修改程序直至與設(shè)計要求相符。當然在研究中還存在不少問題,比如我設(shè)計的洗衣機只是半自動的,其功能還不完善,如水位的控制、脫水、漂洗的方式等都還沒設(shè)計出來;仿真的波形還沒完全達到設(shè)計標準,對時間的延遲沒考慮清楚等,如果是對課題的進一步研究可以增加洗衣機的功能,這就還需要增加傳感器等等,同時還可以添加一個測試程序,就可以更加直觀的看到仿真結(jié)果。參考文獻1 黃任. VHDL入門、解惑、經(jīng)典實例、經(jīng)驗總結(jié). 第一版,:航空航天大學,2005.12 譚會生,瞿遂春. EDA技術(shù)綜合應(yīng)用實例與分析.
13、第一版,:電子科技大學,2004.113 松,黃繼業(yè). EDA技術(shù)實用教程. 第三版,:科學,20064 徐光輝,程東旭,黃如. 基于FPGA的嵌入式開發(fā)與應(yīng)用. 第一版,:電子工業(yè),2006.95 郭冀嶺,王君瑞,王遠波. 用VHDL實現(xiàn)智能洗衣機控制系統(tǒng)有限狀態(tài)機的設(shè)計. 電子技術(shù),2004; 6 淵,馬善農(nóng). 基于CPLD的洗衣機控制器. 科技廣場,2007; 7 波,王章瑞,高一波. 基于VHDL的洗衣機控制器設(shè)計. 科技設(shè)計成果,2007; 8 司孝平,嚴峰. 基于FPGA的洗衣機控制器設(shè)計與實驗教學. 天中學刊,2006; 9 司孝平,嚴峰. 對一種洗衣機控制器的FPGA設(shè)計改進.
14、 大學學報(自然科學版), 2006; 10 曉博,展威,素娟. 數(shù)字電壓表的VHDL設(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-整個洗衣機控制模塊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)生的控制信號Tassign A=(!tim&&EN); /報警信號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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學信息技術(shù)第三冊 第19課帶變量的過程教學實錄 北京版
- 2023九年級歷史下冊 第一單元 殖民地人民的反抗與資本主義制度的擴展第4課 日本明治維新教學實錄 新人教版
- 六年級兒童節(jié)講話稿10篇
- 銀行的實習報告模板集錦五篇
- 2024六年級英語上冊 Unit 2 School in Canada Lesson 11 Always Do Your Homework教學實錄 冀教版(三起)
- 異位妊娠說課-教學課件
- 老師道歉信范文集合五篇
- 第3課 突破封鎖線(教學實錄)-教學實錄2023-2024學年粵教版(B版)小學信息技術(shù)六年級下冊
- 駕駛員工作述職報告6篇
- 教師學期個人總結(jié)2021匯報【10篇】
- 庫存管理中的供應(yīng)與需求平衡
- 中建八局一公司新員工手冊
- WB原理流程課件
- 設(shè)備管理的設(shè)備績效績效指標和評價體系
- 智能安防智慧監(jiān)控智慧管理
- 2024年甘肅蘭州生物制品研究所有限責任公司招聘筆試參考題庫附帶答案詳解
- 保單檢視報告活動策劃
- 室外消火栓安裝工程檢驗批質(zhì)量驗收記錄表
- AI在藥物研發(fā)中的應(yīng)用
- 遼寧省沈陽市鐵西區(qū)2023-2024學年七年級上學期期末考試英語試題(含聽力)
- 于永正教育文集:于永正:我怎樣教語文
評論
0/150
提交評論