一種基于VHDL的洗衣機控制器設(shè)計
摘要:為降低設(shè)計成本,縮短設(shè)計周期,提出一種基于VHDL的洗衣機控制器的設(shè)計方案。該方案采用模塊化的設(shè)計思想,并使用狀態(tài)機完成控制模塊的設(shè)計。整個系統(tǒng)在QuartusⅡ開發(fā)平臺上完成設(shè)計、編譯和仿真,并在FPGA硬件實驗箱上進(jìn)行測試。仿真波形和測試結(jié)果均表明該設(shè)計方案切實可行。
本文引用地址:http://www.ex-cimer.com/article/246896.htm為提高洗衣機控制系統(tǒng)的智能性,以及定時和轉(zhuǎn)速的精確度,目前洗衣機控制系統(tǒng)通常采用數(shù)字電路而不是傳統(tǒng)的機械式控制。隨著EDA(Electronic Design Automation,電子設(shè)計自動化)技術(shù)的發(fā)展,采用硬件描述語言在EDA開發(fā)軟件上完成電子系統(tǒng)的設(shè)計和仿真,并下載到可編程邏輯器件上調(diào)試已成為數(shù)字電路設(shè)計的新趨勢。
與傳統(tǒng)的數(shù)字電路設(shè)計方法相比,EDA技術(shù)具有以下特點:1)用軟件方式設(shè)計硬件;2)用軟件方式設(shè)計的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)開發(fā)軟件自動完成的;3)設(shè)計過程中可用有關(guān)軟件進(jìn)行各種仿真;4)系統(tǒng)可現(xiàn)場編程,在線升級;5)整個系統(tǒng)可集成在一個芯片上,體積小、功耗低、可靠性高;6)設(shè)計的移植性好、效率高;7)適合分工設(shè)計、團(tuán)隊協(xié)作;8)設(shè)計成本低、設(shè)計周期短。基于此,我們使用硬件描述語言VHDL在EDA主流開發(fā)軟件QuartusⅡ上完成洗衣機控制器設(shè)計、編譯和仿真,并下載到FPGA硬件實驗箱上進(jìn)行測試。測試結(jié)果表明該設(shè)計方案切實可行。
1 總體設(shè)計方案
通過對市面上的洗衣機控制器的調(diào)查,設(shè)計洗衣機控制系統(tǒng)需實現(xiàn)洗滌模式選擇,水位控制,洗滌電機控制,洗衣狀態(tài)、水位與剩余時間顯示等功能。具體功能為:1)能對洗滌模式、水位、洗滌時間、漂洗時間、脫水時間進(jìn)行設(shè)置;2)根據(jù)不同的洗滌模式,設(shè)置不同的電機轉(zhuǎn)速;3)能通過數(shù)碼管和LED顯示燈的形式顯示水位、洗衣的剩余時間、當(dāng)前洗衣的狀態(tài)等信息;4)能在洗衣過程中隨時暫停,啟動后從暫停前狀態(tài)繼續(xù)開始洗衣;5)能實現(xiàn)系統(tǒng)復(fù)位功能,按復(fù)位鍵后使洗衣機系統(tǒng)恢復(fù)到起始狀態(tài)。
根據(jù)洗衣機控制器的功能,設(shè)置了4個模塊,分別是按鍵選擇模塊、計數(shù)模塊、控制模塊和時間顯示模塊,其系統(tǒng)框圖如圖1所示。基于模塊化設(shè)計思想,采用自頂向下的層次化設(shè)計方法進(jìn)行設(shè)計,其輸入為:啟動信號、暫停信號、各種用戶設(shè)置信號、1 Hz的計時時鐘信號和1kHz的掃描時鐘信號;其輸出為:當(dāng)前狀態(tài)剩余時間顯示(2位共陰極7段數(shù)碼管顯示)、洗衣狀態(tài)、電機控制信號、水位和進(jìn)水信號。
2 核心模塊設(shè)計
2.1 按鍵選擇模塊設(shè)計
洗衣機洗衣過程分為4階段:進(jìn)水→洗滌→漂洗→脫水。其中進(jìn)水時間由水量大小決定。水量設(shè)置為高、中、低3檔,用戶通過撥動兩位水量設(shè)置按鍵進(jìn)行選擇。當(dāng)用戶不撥動任何按鍵時,即按鍵值為00時,水量設(shè)置為默認(rèn)值:即中檔,4升。表1給出了水量設(shè)置按鍵與水量大小和進(jìn)水時間的對應(yīng)關(guān)系。
洗滌、漂洗和脫水時間由洗衣模式?jīng)Q定。我們將洗衣模式分為自動設(shè)置和手動設(shè)置兩種。在手動設(shè)置時,用戶通過撥動3組手動洗衣設(shè)置按鍵:洗滌設(shè)置按鍵、漂洗設(shè)置按鍵和脫水設(shè)置按鍵分別設(shè)置洗滌、漂洗和脫水時間。表2給出了這3組設(shè)置按鍵與洗滌、漂洗和脫水時間的對應(yīng)關(guān)系。當(dāng)用戶不撥動任何按鍵時,時間取默認(rèn)值,即中檔(按鍵值為10時對應(yīng)的時間)
自動設(shè)置模式包括:強力、常用、輕柔3種洗衣模式,用戶通過撥動兩位自動洗衣模式選擇鍵進(jìn)行選擇。當(dāng)用戶選擇自動設(shè)置模式時,控制器將根據(jù)用戶選擇的洗衣模式自動設(shè)置相應(yīng)的洗滌時間、漂洗時間、脫水時間。表3給出了不同洗衣模式下的洗滌、漂洗和脫水時間。
需要注意的是:自動設(shè)置模式的優(yōu)先級高于手動設(shè)置模式。若用戶誤操作,同時撥動了自動洗衣模式選擇鍵和手動洗衣時間設(shè)置鍵(這種情況很容易發(fā)生),洗衣機控制器認(rèn)為選擇的是自動洗衣模式,本模塊將按選擇的自動洗衣模式輸出相應(yīng)時間和洗滌轉(zhuǎn)速到控制模塊。而當(dāng)用戶不撥動任何自動洗衣模式選擇鍵時,默認(rèn)選擇手動設(shè)置模式。有趣的是,當(dāng)自動洗衣模式選擇鍵和手動洗衣時間設(shè)置按鍵均未撥動時,即用戶直接啟動洗衣機,將選擇手動設(shè)置模式的默認(rèn)值(中檔)。此時,洗滌、漂洗和脫水時間分別為15,20,5分鐘,而這和自動設(shè)置模式中的常用洗衣模式完全相同。這種洗衣模式是最常用的一種模式,通過這種默認(rèn)設(shè)置,用戶可以有效避免復(fù)雜的選擇,直接啟動洗衣機洗衣。
不論是選擇什么洗衣模式,洗滌電機的邏輯控制過程始終相同:在洗衣和漂洗時,電機以洗滌轉(zhuǎn)速正向連續(xù)工作5秒,暫停工作1秒,然后以相同的洗滌轉(zhuǎn)速反向連續(xù)工作5秒,暫停工作1秒,如此循環(huán)控制電機,直到洗衣和漂洗定時結(jié)束;在脫水時,電機以600轉(zhuǎn)/分鐘的轉(zhuǎn)速正向連續(xù)工作5秒,暫停工作1秒,如此循環(huán)控制電機,直到脫水定時結(jié)束。洗滌電機的洗滌轉(zhuǎn)速將根據(jù)洗衣模式有所調(diào)整,其默認(rèn)轉(zhuǎn)速為60轉(zhuǎn)/分鐘。當(dāng)洗衣模式為強力時,電機轉(zhuǎn)速增加為72轉(zhuǎn)/分鐘;當(dāng)洗衣模式為輕柔時,電機轉(zhuǎn)速降低為45轉(zhuǎn)/分鐘;而其他模式,包括手動設(shè)置模式均采用默認(rèn)轉(zhuǎn)速60轉(zhuǎn)/分鐘。
按鍵選擇模塊的主要功能是根據(jù)用戶撥動的各種設(shè)置按鍵,如水量設(shè)置、自動洗衣模式選擇、手動洗衣時間設(shè)置,進(jìn)行匯總,按照前面所提供的各種設(shè)置按鍵與控制信息之間的關(guān)系,輸出進(jìn)水、洗、漂洗、脫水時間、洗滌轉(zhuǎn)速到控制模塊控制洗衣過程,輸出洗衣總時間到計數(shù)模塊控制計數(shù),輸出水位信號控制水位顯示的LED燈。
2.2 計數(shù)模塊設(shè)計
計數(shù)模塊的輸入為來自按鍵選擇模塊的洗衣總時間total、1 Hz計時時鐘信號以及復(fù)位和暫停信號。計數(shù)模塊實現(xiàn)從0到total的計數(shù),并輸出計數(shù)到控制模塊。計數(shù)模塊的計數(shù)初值num為零,每過一時鐘周期,計數(shù)值num加1。當(dāng)num
評論