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