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