本发明属于洗衣机技术领域,具体地说,是涉及一种洗衣机故障检测处理方法。
背景技术:
现在的洗衣机软件程序检测方法,仅对门开关控制信号进行相关处理,利用2个IO口检测门开关信号,每10ms扫描读取一次门开关信号输入口,如果连续100ms读取的输入信号不变,则把2个IO口的信号进行与非计算后赋值给缓冲寄存器,只要有一个IO口检测到门开,则认为是门打开,显示板与电源控制板通讯,利用CRC 8位校验,显示板收到门开或连续3秒与电源控制板通讯不上,则控制电机停转。该方法无法检测到洗衣机的其他故障,如电机一直正转或者一直反转、洗涤不止;或者脱水不止;或者进水不止等类似现象、或者整机在进水、洗涤、脱水等状态,打开上盖均不报警,存在用户使用安全隐患等,导致洗衣机在洗涤过程中若出现上述故障,没有及时的进行故障查出,存在安全隐患。
技术实现要素:
本发明为了解决目前没有专门针对洗衣机运行过程中程序故障进行检测的技术问题,提出了一种洗衣机故障检测处理方法,可以解决上述问题。
为了解决上述技术问题,本发明采用以下技术方案予以实现:
一种洗衣机故障检测处理方法,包括以下步骤:
PC指针检测步骤
(11)、分别对洗衣机的各运行过程进行检测,洗衣机的每个运行过程对应一个子程序,在各子程序运行初始分别为逻辑寄存器赋值,所述运行过程至少包括注水过程、洗涤过程、脱水过程;
(12)、在各子程序运行结束后分别检测逻辑寄存器的当前值是否与赋值相同,若当前值与赋值不同,则判断为PC指针故障,并根据赋值记录当前故障出现于洗衣机的哪个运行过程;
(13)、当判断为PC指针故障时,等待时间t1,并继续检测逻辑寄存器的当前值是否与赋值相同,若相同,则继续执行该子程序,否则执行系统复位。
进一步的,所述步骤(13)中,所述执行系统复位后,读取水位传感器检测的当前水位值,将当前水位值与设定水位值进行比较,若当前水位值大于或等于设定水位值,则跳过注水过程,执行注水过程的下一过程,若当前水位值为零,则执行脱水过程。
进一步的,还包括过零中断检测步骤:
(21)、设定过零中断周期T1,检测加载在电机上信号的实际过零中断周期T;
(22)、比较T是否在[T1-△t1,T1+△t1]区间范围内,若是,则判断为过零中断正常,否则,判断为过零中断异常;
(23)、当判断为过零中断异常时,则执行系统复位。
进一步的,还包括定时中断检测步骤:
当检测到洗衣机在运行过程中打开上盖时,洗衣机并未执行报警和/或停止当前运行子程序的步骤,则判断为定时中断异常,执行系统复位。
进一步的,还包括单片机RAM的DC故障检测步骤:
周期性对单片机RAM所有地址采用棋盘法循环检测;
检测前先把测试地址的数值保存并关闭中断,首先给第一个测试地址赋值0x55或者0xaa中的其中一个值,同时给下一测试地址赋值0x55或者0xaa中的另外一个值,再分别将两测试地址中数据读取,并与写入的数据进行比较,若不等则认为RAM有问题,进行异常处理;若相等,采用同样的方式将其他测试地址进行检测,直至将所有测试地址检测完毕。
进一步的,还包括对单片机寄存器故障检测步骤:
周期性对所有寄存器采用棋盘法循环检测;
逐一对各个寄存器写入0x55或者0xaa中的其中一个值后再读取,并比较读取的值与写入的值是否一致,然后写入0x55或者0xaa中的另外一个值后再读取,并比较读取的值与写入的值是否一致,只有两次比较结果均一致时,得出该寄存器正常的结论,否则该寄存器具有故障,报寄存器故障。
进一步的,还包括对ROM检测的步骤,计算ROM区代码的CRC-16校验和,并将计算结构与ROM中存储的固定的CRC-16校验和进行比较,若不一致,则认为ROM有问题,进行异常处理。
进一步的,对ROM检测的步骤中,每次取ROM里的32字节的数据进行CRC-16计算得到一个校验值,直到ROM里的所有数据计算完,得出所有ROM区的CRC-16校验值。
进一步的,还包括对特殊功能寄存器处理的步骤:周期性的对单片机用到的功能模块的配置寄存器按照设定值进行重复赋值。
与现有技术相比,本发明的优点和积极效果是:本发明的洗衣机故障检测处理方法,能够防止出现洗衣机算法内部运行错误,防止进水不止、空桶状态一直洗涤等错误运行模式发生,保障了洗衣机的安全运行,降低了因洗衣机故障对人身带来伤害的可能性。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所提出的洗衣机故障检测处理方法的一种实施例中PC指针检测步骤流程图;
图2是本发明所提出的洗衣机故障检测处理方法的一种实施例中过零中断检测步骤流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
术语解释:
PC:程序计数器,全文简称PC;
RAM:随机存取存储器Random Access Memory的缩写, 全文简称RAM;
ROM:只读存储器Read Only Memory的缩写, 全文简称ROM;
CRC:循环冗余校验码Cyclic Redundancy Check的缩写,全文简称CRC,CRC-16指16位循环冗余校验码;
DC:模数转换。
实施例一,本实施例提出了一种洗衣机故障检测处理方法,包括以下步骤:
PC指针检测步骤,如图1所示:
S11、分别对洗衣机的各运行过程进行检测,洗衣机的每个运行过程对应一个子程序,在各子程序运行初始分别为逻辑寄存器赋值,所述运行过程至少包括注水过程、洗涤过程、脱水过程;
S12、在各子程序运行结束后分别检测逻辑寄存器的当前值是否与赋值相同,若当前值与赋值不同,则判断为PC指针故障,并根据赋值记录当前故障出现于洗衣机的哪个运行过程;
S13、当判断为PC指针故障时,等待时间t1,并继续检测逻辑寄存器的当前值是否与赋值相同,若相同,则继续执行该子程序,否则执行系统复位。
PC指针的值总是指向当前程序的运行点的地址,洗衣机运行过程中,若程序出现PC指针异常,控制失效,洗衣机会发生某一运行过程持续进行,如洗涤不止;或者脱水不止;或者进水不止等现象。上述故障轻则对电机或者其他硬件造成损坏,重者产生事故,威胁用户人身安全。本洗衣机故障检测处理方法通过PC指针检测,能够及时检测出运行安全问题,并采取相应的处理,防止出现洗衣机算法内部运行错误,导致进水不止、空桶状态一直洗涤等错误运行模式发生,保障了洗衣机的安全运行,降低了因洗衣机故障对人身带来伤害的可能性。
在本实施例中,所述步骤S13中,所述执行系统复位后,为了防止已经执行过的程序重复执行,如注水过程,若已经注满,就无需再一次注水,防止进一步导致新的故障发生,因此,本实施例中通过读取水位传感器检测的当前水位值,将当前水位值与设定水位值进行比较,若当前水位值大于或等于设定水位值,则跳过注水过程,执行注水过程的下一过程,若在洗涤状态下且当前水位值为零,则执行脱水过程。由于经历步骤S11和步骤S12,至少运行了一个完整的子程序,因此,可以判断至少执行完注水过程,若当前水位值为零,就无需再重新注水、洗涤等,直接执行脱水过程,避免了水资源以及电能的浪费,而且节约洗涤时间。
作为一个优选的实施例,本实施例中还包括过零中断检测步骤:
S21、设定过零中断周期T1,检测加载在电机上信号的实际过零中断周期T;
S22、比较T是否在[T1-△t1,T1+△t1]区间范围内,若是,则判断为过零中断正常,否则,判断为过零中断异常;
S23、当判断为过零中断异常时,则执行系统复位。
市频电源频率是50Hz,利用硬件电路把市电信号引到单片机外部中断口上,此中断即为过零中断,信号周期正常为20ms,程序中就是利用此信号周期与单片机的定时器时间进行比较,来判断定时器中断或过零中断是否正常。若过零中断出现异常,体现在洗衣机运行方面可能是持续正转或者持续反转,不容易被用户及时发现,本实施例的洗衣机故障检测处理方法可以及时检测出过零中断异常,并控制执行系统复位,保护洗衣机运行安全。
本实施例中还包括定时中断检测步骤:
当检测到洗衣机在运行过程中打开上盖时,并未执行报警和/或停止当前运行子程序的步骤,则判断为定时中断异常,执行系统复位。
在洗衣机运行过程中,定时中断用于检测洗衣机正常运行时打开洗衣机上盖整机出现开盖或者其他不适宜洗衣机继续运行的突发状况时,能够及时控制停止运转,并报警,以防止对用户造成伤害,若定时中断出现问题,则会导致如洗衣机正常运行时打开上盖不报警而且不停止运转,存在安全隐患。本实施例通过检测定时中断进一步确保洗衣机运行安全。
若单片机RAM存在DC故障,导致单片机写入与读取的值不同,不能按照设定程序执行,洗衣机无法正常工作,因此,在本实施例中,还包括单片机RAM的DC故障检测步骤:
周期性对单片机RAM所有地址采用棋盘法循环检测;
检测前先把测试地址的数值保存并关闭中断,把测试地址的数值保存是为了在检测完毕后,仍然恢复程序按照原写入的数值正常运行,通过不关闭中断,是为了防止在检测时产生中断,在中断程序中将写进RAM里的测试值作为正常值来处理,首先给第一个测试地址赋值0x55或者0xaa中的其中一个值,同时给下一测试地址赋值0x55或者0xaa中的另外一个值,再分别将两测试地址中数据读取,并与写入的数据进行比较,若不等,则认为RAM有问题,进行异常处理;若相等,采用同样的方式将其他测试地址进行检测,直至将所有测试地址检测完毕。其中,0x55写入的数值即:01010101,0xaa写入的数值为:10101010,本实施例通过将0x55和0xaa同时分别赋值给两个相邻的RAM地址,利用数值的差别将两者区分开,防止两个地址被赋同样的值而出现判断错误,实现了同时对两个地址进行检测,提高了检测效率。当把所有的地址检测完毕之后,还需要从第一个地址开始,重新写入一遍该地址没有写入的另外一个值,比如,若第一个地址首先赋值0x55,则说明只能有部分位写入了1,因此,第二遍赋值的时候应赋值0xaa,也即第一遍赋值0的位在第二遍赋值为1,实现了能够将所有的位进行有效检测。
进一步在本实施例中,还包括对单片机寄存器故障检测步骤:
周期性对所有寄存器采用棋盘法循环检测;
逐一对各个寄存器写入0x55或者0xaa中的其中一个值后再读取,并比较读取的值与写入的值是否一致,然后写入0x55或者0xaa中的另外一个值后再读取,并比较读取的值与写入的值是否一致,只有两次比较结果均一致时,得出该寄存器正常的结论,否则该寄存器具有故障,报寄存器故障,执行系统复位步骤。本实施例通过分别对各个寄存器进行检测,并采取分别写入0x55和0xaa数值的方式,实现了能够将寄存器所有的位进行有效检测。
还包括对ROM检测的步骤,计算ROM区代码的CRC-16校验和,并将计算结构与ROM中存储的固定的CRC-16校验和进行较,若不一致,则认为ROM有问题,进行异常处理。CRC是一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。可以对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。本实施例中,由于ROM区代码长度较长,8位的CRC无法满足其长度需要,32位的CRC又会造成计算浪费,因此本实施例中对ROM区代码优选采用16位的CRC校验和检测,也即CRC-16, CRC-16校验和检测能够防止写入至ROM区中的程序出现错误,洗衣机只有在保证程序正确的前提下正常、安全的运行。
具体在本实施例中,对ROM检测的步骤中,每次取ROM里的32字节的数据进行CRC-16计算得到一个校验值,直到ROM里的所有数据计算完,得出所有ROM区的CRC-16校验值。
本实施例的洗衣机故障检测处理方法还包括对特殊功能寄存器处理的步骤:周期性的对单片机用到的功能模块的配置寄存器按照设定值进行重复赋值。特殊寄存器一般控制单片机的输入、输出口,为了防止程序中定义的输入、输出口在运行过程中出现错误,如输入口变成输出口,或者输出口变成输入口,均会导致出现错误,因此,本方法通过不停赋值的方式,即便是中间过程中出现了错误,通过本方法的重复赋值正确值,可以相应的及时改正过来,不影响程序的安全运行。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。