DOMESTIC ELECTRICAL APPLIANCE

Abstract: In a domestic appliance, such as a washing machine, controlled by a solid state processor 1, it is possible for power supply interference to corrupt the programme data stored in the processor or even to lock out the processor. The adverse effects thereof are eliminated by providing a non-­ volatile back-up store 11, for storing the programme identity and state, and timing means 14, 16, 18 which, in the event of power failure or processor lock-out, momentarily discon­ nects the power supply 2 to the processor 1 by a switch 3.

Description: This invention relates to a domestic electrical appliance, such as a washing machine, which includes a solid state processor and a back-up memory, said processor being constructed to process in succession N potential operating steps of the appliance and thereby control the appliance to implement a sequence of operating steps selected from these N steps in accordance with a programme selected by a user, to cause data identifying the selected programme to be stored in said back-up memory prior to the processing of any said potential operating step to thereby provide a back-up record of the programme selected, to cause a specific data value to be stored in said back-up memory as the processing of each operating step is completed to thereby provide a back-up record of the last such step processed, and to read said back-up memory upon the supply of operating power to the processor to enable the processing to be continued from the potential operating step reached in the event of removal of operating power from the processor and subsequent resupply thereof if the processing of the N steps had not been completed at the instant of removal, the appliance including a switch for removing the operating power from the processor. One problem that can arise in an appliance which is controlled by a solid state processor, e.g. a microprocessor, to perform a sequence of routines is that any failure of the power supply to the processor during a programme results in the destruction of the data in the processor and, therefore, the information concerning the progress of the programme is lost. This means that, when the power supply is restored, the programme has to be restarted from the beginning and, therefore, some of the programme steps are repeated unnecessarily. To overcome this problem, it is known from EP-A2-0027432 (which discloses an appliance of the kind defined in the first paragraph), to provide a back-up memory from which the appropriate information can be retrieved on restoration of the power supply to thereby enable the implementation of the operating steps to be resumed from the point reached. DE-A1-2818269 discloses a similar such appliance. Solid state processors such as microprocessors can, however, be affected in severe environments in that the data stored therein can be corrupted by various forms of interference such as voltage spikes, static, and the switching of inductive loads such as motors, solenoids, and electromagnetic relays. The corruption may be such that the processor is still able to run although the data stored in its random access memory (RAM), programme counter, etc., is corrupt. This will result in an incorrect programme being run by the processor, with possibly disastrous results. On the other hand, in very hostile environments such as clothes or dish washing machines which include inductive devices, it is possible for the microprocessor to lock out, that is to say adopt a state which cannot be changed by a signal on any of its control inputs including the "reset" input. The data contained in the processor is thus irretrievably lost, of course, but even more serious is the fact that - depending upon the programme step being performed at the instant of lock-out - the inability of the processor to continue with the programme can result in extensive damage, for example by not closing a water inlet valve or not switching off the heating element if such is provided. An object of the invention is to eliminate the possibility of such damage in the event of processor lock-out. According to the present invention, there is provided a domestic electrical appliance of the kind set forth in the first paragraph which is characterized in that the appliance also includes timing means which is constructed to control said switch to remove operating power from, and subsequently resupply operating power to, the processor in response to a clock signal not being supplied to said timing means for a specific time interval which is at least greater than the period of said clock signal, and in that the processor is constructed to supply said clock signal to the timing means only so long as the processor is functioning correctly. The back-up memory can be a conventional, and very cheap, RAM powered by a small rechargeable battery which is trickle-charged from the mains supply. If the processor locks out, then the clock signal ceases and this results in removal of the processor power supply for a brief period. This clears the lock-out and the contents of the back-up memory enable the programme to continue from where it was stopped by the lock-out. Preferably the back-up memory includes a respective storage location corresponding to each of the N potential operating steps and the processor is constructed to store a given data value in each of these locations prior to the processing of any said potential operating step and, as the processing of each operating step is completed, to change the given data value stored in the corresponding said location to another value. Thus each of the N locations is loaded with known data before the implementing of any operating step can corrupt it. As each step is completed, the data is changed, leaving the original data at each succeeding step. All that is needed when power is restored is to search through these locations to see if the original data remains at any step. If it does, then that step was not processed before the interruption to the processor power supply and the programme can then be restarted at that step. The given data value at each location may be the same for all the N locations but conveniently the data is the address of the corresponding location. Although the data at each location is changed to another value when the corresponding operating step is completed, action is only taken in response to the finding of the original data at any location. Thus it does not matter if the data is corrupted whilst it is being changed. It should be noted that Patent Abstracts of Japan, Vol. 7 No. 35 (p.175) [1180] and JP-A-57187703 discloses electrical equipment, e.g. an automatic washing machine, which includes a microcomputer and a timer circuit. Selection of a programme starts the timer circuit and closure of a "run" switch resets the timer circuit. If the run switch is not closed within a predetermined time after selection of the program the timer circuit actuates a relay to power down the equipment and hence both save power and prevent the sudden start of operation due to disturbance. It should also be noted that an article entitled "Machine Diagnostics Add to PC Productivity Gains" by Art Pietrzyk at pages 157-167 of "Control Engineering", Vol. 30 No. 1 (Jan. 1983) discloses inter alia a so-called watch-dog timer arrangement, i.e. an arrangement which monitors a signal which is related to the progress of data processing in a processor and produces some sort of indication at least if this processing ceases. This indication may be used to initiate a fault diagnosis routine. It should moreover be noted that DE-A-2910058 discloses a digital processor controlling a crane. If a watch-dog timer arrangement which monitors the operation of the processor times out a switch is opened, removing power from the crane drive. An embodiment of the invention will now be described with reference to the accompanying drawings, of which:- Figure 1 is a block schematic circuit diagram of appliance control apparatus including a processor, Figure 2 is a memory map of the non-volatile memory 11 shown in Figure 1, Figure 3 is a flow diagram showing the main programmes procedure, and Figure 4 is a flow diagram showing the start-up programme routine. In Figure 1 a microprocessor 1 is powered from a D.C. supply terminal 2 via a switch, e.g. a transistor, 3. Input commands to the microprocessor are fed via a bus 4 from a control panel 5. The control output of the microprocessor 1 is fed to the apparatus 6 to be controlled via a bus 7. The apparatus may, for example, be a washing machine in which the control panel 5 comprises a number of push-buttons by means of which the user selects a particular one of several main programmnes and also decides upon options within the main programme, such as pre-wash, cold wash, and spin delay. The control panel may also accommodate visual indicators which, for example, may indicate the appropriate options for the selected programme, the progress of the programme, and faulty operation. For these functions, information may be fed from the microprocessor via a bus 8. Examples of the control panel 5 and washing machine 6 can be found in the above-mentioned U.K. patent 1529641. The particular arrangements of the control panel and the apparatus are not relevant to the invention, however, and will not be detailed further. Microprocessor 1 has a write output 9 to a non-volatile memory, such as a random access memory (RAM), 11 and a read input 12 from RAM 11, the latter being provided with a D.C. supply 13. A regularly recurrent "refresh" clock signal output from microprocessor 1 is fed to a first monostable (one-shot multivibrator) 14 via lead 15. The output of monostable 14 is connected to the input of a further monostable 16 via lead 17. The output of monostable 16 controls the on/off state of switch 3 via a control circuit 18 and, hence, controls the power supply to the microprocessor 1. Under normal operating conditions, switch 3 is held in its ON (conducting) state by monostable 16 and control circuit 18. The operation of the circuit shown in Figure 1 will now be explained with reference to Figures 2, 3 and 4. In Figs. 3 and 4 the various boxes have the following significances. Fig. 3. 300 - Start 301 - Programme select. 302 - Programme selected? 303 - Run pressed? 304 - Load RAM locations 1 to 72 and status words. 305 - Step required? 306 - Main programme. 307 - Clear step in RAM. 308 - Increment step counter. 309 - Step 72? 310 - Finish routine. Fig. 4. 400 - Reset. 401 - Test RAM 11 for corruption. 402 - Test clear? 403 - Set N to 1. 404 - Read location "N" in RAM 11. 405 - Data read = 0? 406 - Data read = N? 407 - Increment N. 408 - N greater than 72? 409 - Jump to programme select. 410 - Set main programme step counter to N. 411 - Read and store status words. 412 - Return to main programme. 413 - Write all "0"s to RAM 11. 414 - Read RAM. 415 - All "0"s read? 416 - Fault routine. 417 - Write all "1"s to RAM. 418 - Read RAM. 419 - All "1"s read? 420 - Load RAM test code. It is first assumed that any of the selectable programmes and options may be run by the microprocessor by selection from 72 basic step routines held in a read-only memory (ROM) portion of the processor. Thus the main programme facilities are written into a total of 72 steps. As each step is completed, a step counter is incremented by 1 and, by referring to a look-up table, a check is made to see if the next sequential step is required for that particular programme. If not, the step counter is further incremented and the check is again made. The programme is terminated after step 72. RAM 11 has 72 corresponding locations 1 to 72 (Figure 2). It has two further locations 80, 81 for programme status words and a further 32 locations 96 to 127 which are designated as a RAM test area. The status words identify the particular programme and option details selected by the user on control panel 5. The addresses 96 to 127 are loaded with a test code, for example alternate 0's and 1's. Referring now to Figure 3, the user switches on the machine and selects the programme and options. On start-up, the routine checks that a programme has been selected and then waits for the user to operate the "RUN" button to start the programme running. When this is done, RAM locations 1 to 72 are each loaded with their respective location numbers and locations 80 and 81 are loaded with the programme status words. The processor then checks against a look-up table (e.g. an internal read-only memory) to see if the first step is required in the main programme. If "yes", then this step is carried out in the main programme and the first RAM location (1) is cleared to 0. If "no" then location 1 is cleared without step 1 being included in the main programme. The counter is then incremented and the process repeated one step at a time until all 72 steps have been completed, whereupon the routine is terminated. At the end of the whole routine, all the 72 step locations in RAM 11 should be cleared to zero unless there has been a mains supply interruption or other interference. On initial power-up, the start-up routine shown in Figure 4 is run. RAM 11 is first tested for possible data corruption by checking the test code stored in locations 96-127. Data corruption may have been caused, for example, by a low voltage, a momentary break in the power supply, or by interference from voltage spikes. The check may be effected by a simple correlation method or by a sequence test which checks the code for alternate 0's and 1's. Obviously, other test codes could equally well be used, such as the all-1's code in which the correlator is merely an AND gate. It is preferred, however, to have both 0's and 1's in the code. If the test reveals corruption of the test code, then a further test is carried out which loads up the test code locations with one or more check codes and then reads the check codes to see if they are correctly loaded. For example the all-0's code may be written into the test area locations and the stored code then read from the RAM. If the correct all-0's code is read, then the all-1's code may be stored and, if this is also read satisfactorily, then it is assumed that there is no permanent fault on the RAM and the start-up programme then jumps (lead A) to the programme select stage shown in Figure 3. Thus if a corrupted test code is found in the RAM, the main programme is started from the beginning irrespective of whether or not there has been a mains failure. The reason for this is that if the RAM test code has been corrupted then it is possible that data in the processor has also been corrupted. It is therefore safer to start the new programme from the beginning. Alternatively, of course, a "yes" response to the "all 1's read" stage could return the start-up routine to the "set N to 1" stage. If the all-0's and all-1's codes are not read satisfactorily, it is assumed that the RAM has an inherent fault and a fault routine comes into operation. This routine would generally cause an audible and/or visible alarm to be given and prevent further operation of the apparatus. It should be noted that the RAM is tested and loaded before any of the main programme steps is implemented. The reason for this is that the stored data is then less likely to be corrupted by, for example, the switching on or off of an electromagnetic relay, pump, or motor. If the RAM corruption test is clear, the data stored at each of the 72 locations of RAM 11 is next tested in sequence by means of a local N-counter which is first set to location 1. If the previous programme has run satisfactorily, the data stored at every location 1 to 72 will be zero since each location is cleared to zero in sequence during the running of the main programme. If, however, there has been a mains failure during any step in the running of the previous programme, then the preceding RAM locations would contain zeros and the subsequent locations would contain their respective addresses. This situation is shown in Figure 2, in which steps 1 to 4 are assumed to have been completed satisfactorily in the previous programme. The data in each of the locations 5 to 72 still corresponds to the respective address, however, and this indicates that these steps were subsequent to the mains failure and were not included in the previous programme. The data at location "4" has been corrupted for some reason or other but, since such corruption can only occur while the location is being addressed (i.e. cleared to zero), it is assumed that the corresponding programme step has been satisfactorily completed. Returning now to Figure 4, with the N-counter set to N=1, location 1 is read. The zero at this location (Figure 2) indicates that this step was performed in the previous programme. The counter is therefore incremented to N=2 and, since N is less than 72, location 2 is read. The process is repeated until step N=4 is reached. The data (13) at this location is neither N (i.e. 4) nor zero and is therefore false. This could have been caused for example by a failure or disturbance during the clearing of the location to zero when step 4 had been performed during the previous programme. Since the data read is neither zero nor N, it is ignored and the N-counter is incremented to step N=5. The data at location 5 is still at N=5 and has not been cleared to zero during the previous programme. Therefore step 5 is the first step that had not been performed in the previous run. The main programme step counter in the processor is now set to 5, the status words are then read and stored in the RAM, and the routine is transferred (lead B) to the main programme (Figure 3) which then determines if this step is required. In this manner the earlier programme, during which a mains failure occurred, is now completed automatically without needing the attention of the user. Summarising the operation, the non-volatile memory contains a map of the requested programme information to run and each stage is cleared on completion. During the initial power-up stage, the memory is first read for a previous power supply interruption and, if there has been an interruption, the programme is re-established to continue from where it was discontinued by the interruption. In order to maintain the information stored in RAM 11 when the supply is interrupted, it is provided with its own D.C. power supply 13. The supply 13 may, for example, comprise a high value reservoir capacitor charged from the supply 2 or may comprise a rechargeable battery which is trickle-charged, for example, from supply terminal 2. The current taken by the memory 11 is very small and the battery can have a relatively low storage capacity. In a particular embodiment, microprocessor 1 was Philips Type MAB 8400B and RAM 11 was Philips Type PCD 8571. Whilst in the embodiment the step locations are each pre-loaded with their own addresses and then cleared to zero as each step is implemented, alternative data can of course be used. All that is necessary is that each RAM location is pre-loaded with a first predetermined data and this is changed as each step is processed. If the user wishes to change a programme during operation and switches off the machine to cancel the existing programme, then on switching on the machine and operating the RUN button the programme will automatically start from the step at which the previous programme was terminated. This is entirely satisfactory in the most common case where the user wishes to alter a subsequent step in the programme being run, for example to change the spin-drying time. On the other hand, it is possible that the user may select a programme and, having started the programme, decide that a different programme is required - for example to add a pre-wash step. To provide for this facility, a user-operated escape routine may be included in which the contents of the RAM 11, apart from the test location, are cleared. This may be achieved, for example, by the provision of a programme CANCEL button which, when operated by the user, clears the RAM. In order to avoid the need for providing a CANCEL button in addition to the RUN button, the latter can conveniently be used for both purposes. Thus, for example, the processor or other timer may be used to detect whether the RUN button is operated for a period of less than or greater than 5 seconds, for example. If the button is held operated for more than 5 seconds then the RAM clearing routine is initiated. As explained above with reference to Figure 1, the processor 1 provides a continuous stream of refresh pulses on lead 15 whilst in operation. On initial power-up, the first of these pulses sets the first monostable 14 to the beginning of its timed "release" period. This release period is considerably longer (e.g. 100 mS) than the periodicity of the refresh signals (e.g. 10 mS) and so the monostable cannot release so long as the signals are present. If the processor stops operating for any reason, such as a lock-up condition described above, the refresh pulses cease and so the monostable 14 releases at the end of its timed release period and triggers the operation of the second monostable 16. The second monostable switches off switch 3 for the timed period (e.g. 100 mS) and so cuts off the power supply to the processor 1 for this short period. As explained above, the removal of power from the processor releases it from a locked-up state. The temporary programme data stored in the processor is lost and this would normally necessitate having to start the programme again from the beginning. In the present case, however, the step at which the processor locked up in the previous programme is, in effect, stored in the memory 11 and, as described above, the programme is automatically started again from where it left off without requiring the intervention of the user. It may be possible for a processor to lock itself in a local loop such that, although the main programme is stopped, the refresh pulses continue to be provided. In such an event, of course, power will not be removed from the processor in the manner described above. This problem may readily be overcome by providing the refresh pulses in dependence upon the continuance of the programme cycles. Thus, for example, a pulse may be generated at the beginning of each cycle and complemented on alternate cycles. This would produce a pulse train 1,0,1,0,1,...etc. so long as the cycles continue. At a point most remote from the beginning of each cycle (e.g. halfway through the cycle), a flag is enabled to be set and reset continuously by the pulses of the pulse train. This flag signal then comprises a series of pulses which cease if the processor gets locked in a local loop. These pulses can therefore be used as the refresh pulses to the first monostable 14, whereby the power to the processor is automatically disconnected in the case of local lock-up. It will of course be appreciated that, although the value of 72 has been chosen for N in the foregoing embodiment, this value may be any other number in dependence upon the particular requirements of the appliance programmes concerned.

Claims: A domestic appliance (6) which includes a solid-state processor (1) and a back-up memory (11), said processor being constructed to process in succession N potential operating steps of the appliance and thereby control the appliance to implement a sequence of operating steps selected from these N steps in accordance with a programme selected by a user, to cause data identifying the selected programme to be stored in said back-up memory prior to the processing of any said potential operating step to thereby provide a back-up record of the programme selected, to cause a specific data value to be stored in said back-up memory as the processing of each operating step is completed to thereby provide a back-up record of the last such step processed, and to read said back-up memory upon the supply of operating power to the processor to enable the processing to be continued from the potential operating step reached in the event of removal of operating power from the processor and subsequent resupply thereof if the processing of the N steps had not been completed at the instant of removal, the appliance including a switch (3) for removing the operating power from the processor, characterized in that the appliance also includes timing means (14,16) which is constructed to control said switch to remove operating power from, and subsequently resupply operating power to the processor in response to a clock signal not being supplied to said timing means for a specific time interval which is at least greater than the period of said clock signal, and in that the processor is constructed to supply said clock signal to the timing means only so long as the processor is functioning correctly. An appliance as claimed in Claim 1, wherein the back-up memory includes a respective storage location corresponding to each of the N potential operating steps and the processor is constructed to store a given data value in each of these locations prior to the processing of any said potential operating step and, as the processing of each operating step is completed, to change the given data value stored in the corresponding said location to another value. An appliance as claimed in Claim 2, wherein each said given data value is the address of the corresponding location. An appliance as claimed in Claim 3, wherein each said another value is zero.

Inventors: EASTHILL, STEPHEN PAUL
Applicants: N.V. PHILIPS' GLOEILAMPENFABRIEKEN, PHILIPS ELECTRONICS UK LIMITED
Application year: 1984
Main classification: G05B19
IPC codes: G05B9, G05B19