本發(fā)明屬于洗衣機(jī)技術(shù)領(lǐng)域,具體地說(shuō),是涉及一種洗衣機(jī)故障檢測(cè)處理方法。
背景技術(shù):
現(xiàn)在的洗衣機(jī)軟件程序檢測(cè)方法,僅對(duì)門(mén)開(kāi)關(guān)控制信號(hào)進(jìn)行相關(guān)處理,利用2個(gè)IO口檢測(cè)門(mén)開(kāi)關(guān)信號(hào),每10ms掃描讀取一次門(mén)開(kāi)關(guān)信號(hào)輸入口,如果連續(xù)100ms讀取的輸入信號(hào)不變,則把2個(gè)IO口的信號(hào)進(jìn)行與非計(jì)算后賦值給緩沖寄存器,只要有一個(gè)IO口檢測(cè)到門(mén)開(kāi),則認(rèn)為是門(mén)打開(kāi),顯示板與電源控制板通訊,利用CRC 8位校驗(yàn),顯示板收到門(mén)開(kāi)或連續(xù)3秒與電源控制板通訊不上,則控制電機(jī)停轉(zhuǎn)。該方法無(wú)法檢測(cè)到洗衣機(jī)的其他故障,如電機(jī)一直正轉(zhuǎn)或者一直反轉(zhuǎn)、洗滌不止;或者脫水不止;或者進(jìn)水不止等類(lèi)似現(xiàn)象、或者整機(jī)在進(jìn)水、洗滌、脫水等狀態(tài),打開(kāi)上蓋均不報(bào)警,存在用戶使用安全隱患等,導(dǎo)致洗衣機(jī)在洗滌過(guò)程中若出現(xiàn)上述故障,沒(méi)有及時(shí)的進(jìn)行故障查出,存在安全隱患。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了解決目前沒(méi)有專(zhuān)門(mén)針對(duì)洗衣機(jī)運(yùn)行過(guò)程中程序故障進(jìn)行檢測(cè)的技術(shù)問(wèn)題,提出了一種洗衣機(jī)故障檢測(cè)處理方法,可以解決上述問(wèn)題。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn):
一種洗衣機(jī)故障檢測(cè)處理方法,包括以下步驟:
PC指針檢測(cè)步驟
(11)、分別對(duì)洗衣機(jī)的各運(yùn)行過(guò)程進(jìn)行檢測(cè),洗衣機(jī)的每個(gè)運(yùn)行過(guò)程對(duì)應(yīng)一個(gè)子程序,在各子程序運(yùn)行初始分別為邏輯寄存器賦值,所述運(yùn)行過(guò)程至少包括注水過(guò)程、洗滌過(guò)程、脫水過(guò)程;
(12)、在各子程序運(yùn)行結(jié)束后分別檢測(cè)邏輯寄存器的當(dāng)前值是否與賦值相同,若當(dāng)前值與賦值不同,則判斷為PC指針故障,并根據(jù)賦值記錄當(dāng)前故障出現(xiàn)于洗衣機(jī)的哪個(gè)運(yùn)行過(guò)程;
(13)、當(dāng)判斷為PC指針故障時(shí),等待時(shí)間t1,并繼續(xù)檢測(cè)邏輯寄存器的當(dāng)前值是否與賦值相同,若相同,則繼續(xù)執(zhí)行該子程序,否則執(zhí)行系統(tǒng)復(fù)位。
進(jìn)一步的,所述步驟(13)中,所述執(zhí)行系統(tǒng)復(fù)位后,讀取水位傳感器檢測(cè)的當(dāng)前水位值,將當(dāng)前水位值與設(shè)定水位值進(jìn)行比較,若當(dāng)前水位值大于或等于設(shè)定水位值,則跳過(guò)注水過(guò)程,執(zhí)行注水過(guò)程的下一過(guò)程,若當(dāng)前水位值為零,則執(zhí)行脫水過(guò)程。
進(jìn)一步的,還包括過(guò)零中斷檢測(cè)步驟:
(21)、設(shè)定過(guò)零中斷周期T1,檢測(cè)加載在電機(jī)上信號(hào)的實(shí)際過(guò)零中斷周期T;
(22)、比較T是否在[T1-△t1,T1+△t1]區(qū)間范圍內(nèi),若是,則判斷為過(guò)零中斷正常,否則,判斷為過(guò)零中斷異常;
(23)、當(dāng)判斷為過(guò)零中斷異常時(shí),則執(zhí)行系統(tǒng)復(fù)位。
進(jìn)一步的,還包括定時(shí)中斷檢測(cè)步驟:
當(dāng)檢測(cè)到洗衣機(jī)在運(yùn)行過(guò)程中打開(kāi)上蓋時(shí),洗衣機(jī)并未執(zhí)行報(bào)警和/或停止當(dāng)前運(yùn)行子程序的步驟,則判斷為定時(shí)中斷異常,執(zhí)行系統(tǒng)復(fù)位。
進(jìn)一步的,還包括單片機(jī)RAM的DC故障檢測(cè)步驟:
周期性對(duì)單片機(jī)RAM所有地址采用棋盤(pán)法循環(huán)檢測(cè);
檢測(cè)前先把測(cè)試地址的數(shù)值保存并關(guān)閉中斷,首先給第一個(gè)測(cè)試地址賦值0x55或者0xaa中的其中一個(gè)值,同時(shí)給下一測(cè)試地址賦值0x55或者0xaa中的另外一個(gè)值,再分別將兩測(cè)試地址中數(shù)據(jù)讀取,并與寫(xiě)入的數(shù)據(jù)進(jìn)行比較,若不等則認(rèn)為RAM有問(wèn)題,進(jìn)行異常處理;若相等,采用同樣的方式將其他測(cè)試地址進(jìn)行檢測(cè),直至將所有測(cè)試地址檢測(cè)完畢。
進(jìn)一步的,還包括對(duì)單片機(jī)寄存器故障檢測(cè)步驟:
周期性對(duì)所有寄存器采用棋盤(pán)法循環(huán)檢測(cè);
逐一對(duì)各個(gè)寄存器寫(xiě)入0x55或者0xaa中的其中一個(gè)值后再讀取,并比較讀取的值與寫(xiě)入的值是否一致,然后寫(xiě)入0x55或者0xaa中的另外一個(gè)值后再讀取,并比較讀取的值與寫(xiě)入的值是否一致,只有兩次比較結(jié)果均一致時(shí),得出該寄存器正常的結(jié)論,否則該寄存器具有故障,報(bào)寄存器故障。
進(jìn)一步的,還包括對(duì)ROM檢測(cè)的步驟,計(jì)算ROM區(qū)代碼的CRC-16校驗(yàn)和,并將計(jì)算結(jié)構(gòu)與ROM中存儲(chǔ)的固定的CRC-16校驗(yàn)和進(jìn)行比較,若不一致,則認(rèn)為ROM有問(wèn)題,進(jìn)行異常處理。
進(jìn)一步的,對(duì)ROM檢測(cè)的步驟中,每次取ROM里的32字節(jié)的數(shù)據(jù)進(jìn)行CRC-16計(jì)算得到一個(gè)校驗(yàn)值,直到ROM里的所有數(shù)據(jù)計(jì)算完,得出所有ROM區(qū)的CRC-16校驗(yàn)值。
進(jìn)一步的,還包括對(duì)特殊功能寄存器處理的步驟:周期性的對(duì)單片機(jī)用到的功能模塊的配置寄存器按照設(shè)定值進(jìn)行重復(fù)賦值。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)和積極效果是:本發(fā)明的洗衣機(jī)故障檢測(cè)處理方法,能夠防止出現(xiàn)洗衣機(jī)算法內(nèi)部運(yùn)行錯(cuò)誤,防止進(jìn)水不止、空桶狀態(tài)一直洗滌等錯(cuò)誤運(yùn)行模式發(fā)生,保障了洗衣機(jī)的安全運(yùn)行,降低了因洗衣機(jī)故障對(duì)人身帶來(lái)傷害的可能性。
結(jié)合附圖閱讀本發(fā)明實(shí)施方式的詳細(xì)描述后,本發(fā)明的其他特點(diǎn)和優(yōu)點(diǎn)將變得更加清楚。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明所提出的洗衣機(jī)故障檢測(cè)處理方法的一種實(shí)施例中PC指針檢測(cè)步驟流程圖;
圖2是本發(fā)明所提出的洗衣機(jī)故障檢測(cè)處理方法的一種實(shí)施例中過(guò)零中斷檢測(cè)步驟流程圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
術(shù)語(yǔ)解釋?zhuān)?/p>
PC:程序計(jì)數(shù)器,全文簡(jiǎn)稱(chēng)PC;
RAM:隨機(jī)存取存儲(chǔ)器Random Access Memory的縮寫(xiě), 全文簡(jiǎn)稱(chēng)RAM;
ROM:只讀存儲(chǔ)器Read Only Memory的縮寫(xiě), 全文簡(jiǎn)稱(chēng)ROM;
CRC:循環(huán)冗余校驗(yàn)碼Cyclic Redundancy Check的縮寫(xiě),全文簡(jiǎn)稱(chēng)CRC,CRC-16指16位循環(huán)冗余校驗(yàn)碼;
DC:模數(shù)轉(zhuǎn)換。
實(shí)施例一,本實(shí)施例提出了一種洗衣機(jī)故障檢測(cè)處理方法,包括以下步驟:
PC指針檢測(cè)步驟,如圖1所示:
S11、分別對(duì)洗衣機(jī)的各運(yùn)行過(guò)程進(jìn)行檢測(cè),洗衣機(jī)的每個(gè)運(yùn)行過(guò)程對(duì)應(yīng)一個(gè)子程序,在各子程序運(yùn)行初始分別為邏輯寄存器賦值,所述運(yùn)行過(guò)程至少包括注水過(guò)程、洗滌過(guò)程、脫水過(guò)程;
S12、在各子程序運(yùn)行結(jié)束后分別檢測(cè)邏輯寄存器的當(dāng)前值是否與賦值相同,若當(dāng)前值與賦值不同,則判斷為PC指針故障,并根據(jù)賦值記錄當(dāng)前故障出現(xiàn)于洗衣機(jī)的哪個(gè)運(yùn)行過(guò)程;
S13、當(dāng)判斷為PC指針故障時(shí),等待時(shí)間t1,并繼續(xù)檢測(cè)邏輯寄存器的當(dāng)前值是否與賦值相同,若相同,則繼續(xù)執(zhí)行該子程序,否則執(zhí)行系統(tǒng)復(fù)位。
PC指針的值總是指向當(dāng)前程序的運(yùn)行點(diǎn)的地址,洗衣機(jī)運(yùn)行過(guò)程中,若程序出現(xiàn)PC指針異常,控制失效,洗衣機(jī)會(huì)發(fā)生某一運(yùn)行過(guò)程持續(xù)進(jìn)行,如洗滌不止;或者脫水不止;或者進(jìn)水不止等現(xiàn)象。上述故障輕則對(duì)電機(jī)或者其他硬件造成損壞,重者產(chǎn)生事故,威脅用戶人身安全。本洗衣機(jī)故障檢測(cè)處理方法通過(guò)PC指針檢測(cè),能夠及時(shí)檢測(cè)出運(yùn)行安全問(wèn)題,并采取相應(yīng)的處理,防止出現(xiàn)洗衣機(jī)算法內(nèi)部運(yùn)行錯(cuò)誤,導(dǎo)致進(jìn)水不止、空桶狀態(tài)一直洗滌等錯(cuò)誤運(yùn)行模式發(fā)生,保障了洗衣機(jī)的安全運(yùn)行,降低了因洗衣機(jī)故障對(duì)人身帶來(lái)傷害的可能性。
在本實(shí)施例中,所述步驟S13中,所述執(zhí)行系統(tǒng)復(fù)位后,為了防止已經(jīng)執(zhí)行過(guò)的程序重復(fù)執(zhí)行,如注水過(guò)程,若已經(jīng)注滿,就無(wú)需再一次注水,防止進(jìn)一步導(dǎo)致新的故障發(fā)生,因此,本實(shí)施例中通過(guò)讀取水位傳感器檢測(cè)的當(dāng)前水位值,將當(dāng)前水位值與設(shè)定水位值進(jìn)行比較,若當(dāng)前水位值大于或等于設(shè)定水位值,則跳過(guò)注水過(guò)程,執(zhí)行注水過(guò)程的下一過(guò)程,若在洗滌狀態(tài)下且當(dāng)前水位值為零,則執(zhí)行脫水過(guò)程。由于經(jīng)歷步驟S11和步驟S12,至少運(yùn)行了一個(gè)完整的子程序,因此,可以判斷至少執(zhí)行完注水過(guò)程,若當(dāng)前水位值為零,就無(wú)需再重新注水、洗滌等,直接執(zhí)行脫水過(guò)程,避免了水資源以及電能的浪費(fèi),而且節(jié)約洗滌時(shí)間。
作為一個(gè)優(yōu)選的實(shí)施例,本實(shí)施例中還包括過(guò)零中斷檢測(cè)步驟:
S21、設(shè)定過(guò)零中斷周期T1,檢測(cè)加載在電機(jī)上信號(hào)的實(shí)際過(guò)零中斷周期T;
S22、比較T是否在[T1-△t1,T1+△t1]區(qū)間范圍內(nèi),若是,則判斷為過(guò)零中斷正常,否則,判斷為過(guò)零中斷異常;
S23、當(dāng)判斷為過(guò)零中斷異常時(shí),則執(zhí)行系統(tǒng)復(fù)位。
市頻電源頻率是50Hz,利用硬件電路把市電信號(hào)引到單片機(jī)外部中斷口上,此中斷即為過(guò)零中斷,信號(hào)周期正常為20ms,程序中就是利用此信號(hào)周期與單片機(jī)的定時(shí)器時(shí)間進(jìn)行比較,來(lái)判斷定時(shí)器中斷或過(guò)零中斷是否正常。若過(guò)零中斷出現(xiàn)異常,體現(xiàn)在洗衣機(jī)運(yùn)行方面可能是持續(xù)正轉(zhuǎn)或者持續(xù)反轉(zhuǎn),不容易被用戶及時(shí)發(fā)現(xiàn),本實(shí)施例的洗衣機(jī)故障檢測(cè)處理方法可以及時(shí)檢測(cè)出過(guò)零中斷異常,并控制執(zhí)行系統(tǒng)復(fù)位,保護(hù)洗衣機(jī)運(yùn)行安全。
本實(shí)施例中還包括定時(shí)中斷檢測(cè)步驟:
當(dāng)檢測(cè)到洗衣機(jī)在運(yùn)行過(guò)程中打開(kāi)上蓋時(shí),并未執(zhí)行報(bào)警和/或停止當(dāng)前運(yùn)行子程序的步驟,則判斷為定時(shí)中斷異常,執(zhí)行系統(tǒng)復(fù)位。
在洗衣機(jī)運(yùn)行過(guò)程中,定時(shí)中斷用于檢測(cè)洗衣機(jī)正常運(yùn)行時(shí)打開(kāi)洗衣機(jī)上蓋整機(jī)出現(xiàn)開(kāi)蓋或者其他不適宜洗衣機(jī)繼續(xù)運(yùn)行的突發(fā)狀況時(shí),能夠及時(shí)控制停止運(yùn)轉(zhuǎn),并報(bào)警,以防止對(duì)用戶造成傷害,若定時(shí)中斷出現(xiàn)問(wèn)題,則會(huì)導(dǎo)致如洗衣機(jī)正常運(yùn)行時(shí)打開(kāi)上蓋不報(bào)警而且不停止運(yùn)轉(zhuǎn),存在安全隱患。本實(shí)施例通過(guò)檢測(cè)定時(shí)中斷進(jìn)一步確保洗衣機(jī)運(yùn)行安全。
若單片機(jī)RAM存在DC故障,導(dǎo)致單片機(jī)寫(xiě)入與讀取的值不同,不能按照設(shè)定程序執(zhí)行,洗衣機(jī)無(wú)法正常工作,因此,在本實(shí)施例中,還包括單片機(jī)RAM的DC故障檢測(cè)步驟:
周期性對(duì)單片機(jī)RAM所有地址采用棋盤(pán)法循環(huán)檢測(cè);
檢測(cè)前先把測(cè)試地址的數(shù)值保存并關(guān)閉中斷,把測(cè)試地址的數(shù)值保存是為了在檢測(cè)完畢后,仍然恢復(fù)程序按照原寫(xiě)入的數(shù)值正常運(yùn)行,通過(guò)不關(guān)閉中斷,是為了防止在檢測(cè)時(shí)產(chǎn)生中斷,在中斷程序中將寫(xiě)進(jìn)RAM里的測(cè)試值作為正常值來(lái)處理,首先給第一個(gè)測(cè)試地址賦值0x55或者0xaa中的其中一個(gè)值,同時(shí)給下一測(cè)試地址賦值0x55或者0xaa中的另外一個(gè)值,再分別將兩測(cè)試地址中數(shù)據(jù)讀取,并與寫(xiě)入的數(shù)據(jù)進(jìn)行比較,若不等,則認(rèn)為RAM有問(wèn)題,進(jìn)行異常處理;若相等,采用同樣的方式將其他測(cè)試地址進(jìn)行檢測(cè),直至將所有測(cè)試地址檢測(cè)完畢。其中,0x55寫(xiě)入的數(shù)值即:01010101,0xaa寫(xiě)入的數(shù)值為:10101010,本實(shí)施例通過(guò)將0x55和0xaa同時(shí)分別賦值給兩個(gè)相鄰的RAM地址,利用數(shù)值的差別將兩者區(qū)分開(kāi),防止兩個(gè)地址被賦同樣的值而出現(xiàn)判斷錯(cuò)誤,實(shí)現(xiàn)了同時(shí)對(duì)兩個(gè)地址進(jìn)行檢測(cè),提高了檢測(cè)效率。當(dāng)把所有的地址檢測(cè)完畢之后,還需要從第一個(gè)地址開(kāi)始,重新寫(xiě)入一遍該地址沒(méi)有寫(xiě)入的另外一個(gè)值,比如,若第一個(gè)地址首先賦值0x55,則說(shuō)明只能有部分位寫(xiě)入了1,因此,第二遍賦值的時(shí)候應(yīng)賦值0xaa,也即第一遍賦值0的位在第二遍賦值為1,實(shí)現(xiàn)了能夠?qū)⑺械奈贿M(jìn)行有效檢測(cè)。
進(jìn)一步在本實(shí)施例中,還包括對(duì)單片機(jī)寄存器故障檢測(cè)步驟:
周期性對(duì)所有寄存器采用棋盤(pán)法循環(huán)檢測(cè);
逐一對(duì)各個(gè)寄存器寫(xiě)入0x55或者0xaa中的其中一個(gè)值后再讀取,并比較讀取的值與寫(xiě)入的值是否一致,然后寫(xiě)入0x55或者0xaa中的另外一個(gè)值后再讀取,并比較讀取的值與寫(xiě)入的值是否一致,只有兩次比較結(jié)果均一致時(shí),得出該寄存器正常的結(jié)論,否則該寄存器具有故障,報(bào)寄存器故障,執(zhí)行系統(tǒng)復(fù)位步驟。本實(shí)施例通過(guò)分別對(duì)各個(gè)寄存器進(jìn)行檢測(cè),并采取分別寫(xiě)入0x55和0xaa數(shù)值的方式,實(shí)現(xiàn)了能夠?qū)⒓拇嫫魉械奈贿M(jìn)行有效檢測(cè)。
還包括對(duì)ROM檢測(cè)的步驟,計(jì)算ROM區(qū)代碼的CRC-16校驗(yàn)和,并將計(jì)算結(jié)構(gòu)與ROM中存儲(chǔ)的固定的CRC-16校驗(yàn)和進(jìn)行較,若不一致,則認(rèn)為ROM有問(wèn)題,進(jìn)行異常處理。CRC是一種差錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定??梢詫?duì)數(shù)據(jù)進(jìn)行多項(xiàng)式計(jì)算,并將得到的結(jié)果附在幀的后面,接收設(shè)備也執(zhí)行類(lèi)似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。本實(shí)施例中,由于ROM區(qū)代碼長(zhǎng)度較長(zhǎng),8位的CRC無(wú)法滿足其長(zhǎng)度需要,32位的CRC又會(huì)造成計(jì)算浪費(fèi),因此本實(shí)施例中對(duì)ROM區(qū)代碼優(yōu)選采用16位的CRC校驗(yàn)和檢測(cè),也即CRC-16, CRC-16校驗(yàn)和檢測(cè)能夠防止寫(xiě)入至ROM區(qū)中的程序出現(xiàn)錯(cuò)誤,洗衣機(jī)只有在保證程序正確的前提下正常、安全的運(yùn)行。
具體在本實(shí)施例中,對(duì)ROM檢測(cè)的步驟中,每次取ROM里的32字節(jié)的數(shù)據(jù)進(jìn)行CRC-16計(jì)算得到一個(gè)校驗(yàn)值,直到ROM里的所有數(shù)據(jù)計(jì)算完,得出所有ROM區(qū)的CRC-16校驗(yàn)值。
本實(shí)施例的洗衣機(jī)故障檢測(cè)處理方法還包括對(duì)特殊功能寄存器處理的步驟:周期性的對(duì)單片機(jī)用到的功能模塊的配置寄存器按照設(shè)定值進(jìn)行重復(fù)賦值。特殊寄存器一般控制單片機(jī)的輸入、輸出口,為了防止程序中定義的輸入、輸出口在運(yùn)行過(guò)程中出現(xiàn)錯(cuò)誤,如輸入口變成輸出口,或者輸出口變成輸入口,均會(huì)導(dǎo)致出現(xiàn)錯(cuò)誤,因此,本方法通過(guò)不停賦值的方式,即便是中間過(guò)程中出現(xiàn)了錯(cuò)誤,通過(guò)本方法的重復(fù)賦值正確值,可以相應(yīng)的及時(shí)改正過(guò)來(lái),不影響程序的安全運(yùn)行。
當(dāng)然,上述說(shuō)明并非是對(duì)本發(fā)明的限制,本發(fā)明也并不僅限于上述舉例,本技術(shù)領(lǐng)域的普通技術(shù)人員在本發(fā)明的實(shí)質(zhì)范圍內(nèi)所做出的變化、改型、添加或替換,也應(yīng)屬于本發(fā)明的保護(hù)范圍。