BACKGROUND OF THE INVENTION  
       [0001]     This invention relates to control systems for appliances. More specifically, this invention relates to an automated switch scanning matrix for obtaining user input on appliances.  
         [0002]     In today&#39;s world, household appliances are becoming quite sophisticated. The days where appliances were controlled by nothing more than electromechanical devices seems to have been replaced with high technology computer controlled devices. Modern appliances have computers which control the appliance and have the ability to input data from any number of sources and modify the operation of the device depending on situations which occur during the operation of the appliance. Thus, the possibilities for operation of an appliance today seem to be limited only by the numbers of data inputs in which the controller can read balanced with the amount that a consumer wants to spend on the appliance.  
         [0003]     One of the benefits of today&#39;s appliances is that they are controlled by integrated circuits which can put a large amount of circuitry in a very small area and can compute many calculations very quickly to modify the operation of the appliance on the fly. One problem, however, is that integrated circuits only have a limited number of inputs and outputs available for use. To create more inputs and outputs would require redesigning the integrated circuit.  
         [0004]     Since consumers today are demanding more and more features on their household appliances, and this requires that the appliance have more and more control devices for inputs and display devices for outputs on the appliance. More input devices require more space on the integrated circuit to determine what those inputs are. Thus, it is desirable to have a household appliance in which multiple input devices, such as switches, can be read by an integrated circuit to determine what the inputs are with only the limited number of input registers available on the integrated circuit.  
         [0005]     The primary object of the present invention is to utilize a limited number of input/output lines on an integrated circuit to determine the settings on a plurality of switches of varying types and to automate the scanning of the switches in hardware to eliminate the need for software to constantly read the switches to see if they have changed position.  
         [0006]     Another object of the present invention is to allow the processor to determine when a scan of the input device is needed and to perform other tasks while the scan is being conducted.  
         [0007]     A further object of the present invention is to allow a microcontroller more time for other operations by reducing the switch scanning time for the input switches.  
         [0008]     A further object of the present invention is a method to reduce the scanning time for input devices for the microcontroller thereby allowing the microcontroller more time for performing other operations.  
         [0009]     A further object of the present invention is a provision of the automated switch scanning matrix for obtaining user input which is economical to manufacture, durable in use, and efficient in operation.  
         [0010]     These and other objectives will become apparent from the following description of the invention.  
       SUMMARY OF THE INVENTION  
       [0011]     The foregoing objects may be achieved by a switch matrix for obtaining user input on household appliances comprising an integrated circuit with a source output register and a sense input register wherein the source output register is operatively connected to one or more user operative switches and the switches are further operatively connected to the integrated circuit sense input register.  
         [0012]     A further feature of the present invention involves a switch matrix for obtaining user input on household appliances wherein the switch matrix comprises a rotary encoder.  
         [0013]     A further feature of the present invention involves a switch matrix for obtaining user input on household appliances wherein the switch matrix has a diode operatively connected between a switch and the sense input register.  
         [0014]     A further feature of the present invention involves a switch matrix for obtaining user input on household appliances wherein a voltage is pulsed from the source register outputs and the voltage is detected at the sense register inputs, to determine if one or more of the switches has closed contacts.  
         [0015]     A further feature of the present invention is given where the voltage pulsed from the source register is approximately 12 volts.  
         [0016]     A further feature of the present invention involves a switch matrix for obtaining user input on household appliances comprising a pull down circuit on at least one of the sense register inputs.  
         [0017]     A further feature of the present invention involves a switch matrix for obtaining user input on household appliances further comprising a de-bounce circuit on at least one of the sense register inputs.  
         [0018]     A further feature of the present invention involves a switch matrix for obtaining user input on household appliances wherein the integrated circuit is an application specific integrated circuit (ASIC).  
         [0019]     A further feature of the present invention involves a switch matrix for obtaining user input on household appliances wherein at least one switch further comprises a common terminal and at least one throw terminal. The switches common terminal is operatively connected to the integrated circuits source register and at least one of the switches throw terminals is operatively connected to the integrated circuits sense register.  
         [0020]     A further feature of the present invention involves a switch matrix for obtaining user input on household appliances wherein the apparatus is used on a washing appliance.  
         [0021]     The foregoing objects may also be achieved by an automated switch scanning matrix for obtaining user input on household appliances comprising an integrated circuit operatively connected to a switching matrix, the switching matrix further comprising one or more switches, the integrated circuit configured to scan switch positions of the switches, store information of switch positions, and determine if any of the switch positions have changed.  
         [0022]     A further feature of the present invention involves an automated switch scanning matrix for obtaining user input on household appliances wherein the integrated circuit sets an interrupt bit if any of the switch positions have changed.  
         [0023]     A further feature of the present invention involves an automated switch scanning matrix for obtaining user input on household appliances wherein the interrupt may be enabled or not enabled.  
         [0024]     A further feature of the present invention involves an automated switch scanning matrix for obtaining user input on household appliances wherein an interrupt causes the microcontroller to read the switch input data.  
         [0025]     A further feature of the present invention is an automated switch scanning matrix for obtaining user input on household appliances wherein switches which are not part of the switching matrix are connected to the integrated circuits sense register inputs.  
         [0026]     The foregoing objects may also be achieved by a method of obtaining user input on household appliances comprising the steps of operatively connecting a household appliance to an integrated circuit, operatively connecting a switching matrix to the integrated circuit&#39;s source input and output registers, pulsing signals from the integrated circuit&#39;s source output registers to the switch matrix, detecting signals coming from the switching matrix to the integrated circuits sense input registers, determining what inputs are being received at the integrated circuits sense input registers for each pulse of the integrated circuits source output register outputs, determining if any of the switch positions have changed, and if the switch positions have changed, ordering the microcontroller to read switch position input data.  
         [0027]     A further feature of the present invention involves a method of obtaining user input on household appliances comprising the step of detecting if switches which are not part of the switch matrix, but are connected to the integrated circuits sense input register, have changed position. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0028]      FIG. 1  shows one type of washing appliance with a rotary knob and operator useable push button switches.  
         [0029]      FIG. 2  shows one embodiment of the switch matrix for the current invention.  
         [0030]      FIG. 3  shows one embodiment of an auto scan example of the current invention.  
         [0031]      FIG. 4  shows a typical 64 pin integrated circuit chip.  
         [0032]      FIG. 5  shows a flow chart for the operation of the preferred embodiment of the current invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0033]     The current invention relates to an automated switch scanning matrix for obtaining user input on appliances.  FIG. 1  shows a standard clothes washing machine appliance  10  in which the current invention can be used upon or incorporated into. The current invention can be used upon any type of appliance however it is preferred, that the current invention be used upon a washing or drying appliance. A washing appliance can include a clothes washing appliance  10 , a dishwashing appliance (not shown), or any other kind of washing appliance.  
         [0034]     The appliances contemplated by the current invention are controlled by any number and type of user inputs such as a rotary knob  12  and/or push button switches  14  as seen in  FIG. 1 . However, many other types of control devices can be used on appliances. Other such control type devices are rotary encoders, rotary switches, rocker switches, and other types of switches or circuit closure devices.  
         [0035]      FIG. 2  shows the external switch matrix assembly  20  of one embodiment in the current invention. The current invention utilizes a limited number of input/output lines such as the source register outputs  24  and the sense register inputs  26  of an application specific integrated circuit (ASIC)  22  to determine the settings on any number of switches, such as a rotary encoder  34 , rotary switch  36 , on-off-on switch  38 , single pole-single throw switches  40 , momentary contact switches  42 , and other types of switches, to automate the scanning of the switches in hardware to eliminate the need for software to constantly read the switches to see if they have changed position.  
         [0036]     The embodiment of the current invention shown in  FIG. 2  is a logic hardware block  21  that can be enabled independently for the purpose of scanning switches. This block has a certain pulse that will be transmitted on its source register outputs  24  for the purpose of seeing if the pulse returns on one of its sensed register inputs  26 . This can be done by tying the source register outputs  24  to a switch&#39;s common terminal which is done by the switch common source lines  16  and then tying the switch&#39;s throw terminals to the sense register inputs  26  by the switch throw sense lines  18 .  
         [0037]     When a pulse is emitted on a source register output  24 , the logic hardware block or switch matrix assembly  20  will validate and record which of the sense register inputs  26  the pulse returned on. Each time a pulse is sent down each of the source register outputs  24  and sensed at the sense register input  26 , it is called a scan. Each time a scan is completed there is a register block  56 , shown in  FIG. 3 , that records the input values of the switches with the use of a shift select register  64  for making sure the data gets to the proper row and column. This allows the ASIC processor  23  to determine when a scan of the switches is needed and perform other tasks in the meantime. The reason for this switch matrix assembly  20  is because switch scanning is typically one of the most task intensive items that an embedded microcontroller  23 , such as within an ASIC  22 , has to perform. This way the microcontroller  23  is free to perform other actions while switch scanning takes place.  
         [0038]      FIG. 4  shows one embodiment of a standard 64-pin ASIC  22 . Also shown in  FIG. 4  are the source register outputs  24 , the sense register inputs  26 , the logic hardware block  21 , the microcontroller  23 , and an interrupt  70  connection between the logic hardware block  21  and the microcontroller  23 . In the preferred embodiment of the current invention, there are eight source register outputs  24 , and seven sense register inputs  26 . However, any number of outputs  24  and inputs  26  can be used with the current invention.  
         [0039]     Each switch or set of switches in the external switch matrix assembly  20  is scanned by setting a bit or automatically pulsing a signal out the source register output  24  to apply source power, which is preferred to be approximately 12 volts, to the common pins of one or more of the switches. This signal travels down the switch common source line  16 . The position selected by a switch or rotary switch will provide power to one or more of the lines called the switch throw sense lines  18 . The rotary dial encoder  34  returns a value of 0-31 (5-bit number) and a center momentary push button  35  adds another bit of input. Since the common terminal for the encoder may connect multiple pins simultaneously to the sense register inputs  26 , diodes  32  are installed on the switch throw sense lines  18  between the encoder  34  and the sense register inputs  26  to prevent feedback connections from providing false voltage indications on the sense register input  26  pins when other switches are scanned. As long as a switch common only connects to a single sense register input  26  at any given switch position, no diodes  32  are needed.  
         [0040]     Another example where diodes  32  are needed is also shown in  FIG. 2  where multiple switches on a single source line  44  can be installed. On the other hand, no diodes  32  are necessary when a single source line  24  connects to multiple switches through the use of a single source line  16  via a terminal point  46  if only one of the switches can be connected for passing power between the source register  24  and the sense register  26  at a time when the source register  24  is pulsing a signal.  
         [0041]     The source register outputs  24  are preferred to provide a 12 volt signal that passes through a switch to be scanned, and returns on one of the sense register inputs  26 . Put simply, the ASIC  22  knows what source line it pulses and can determine the position of each switch by pulsing the source register output  24  for a specific output (preferred 0-7) and determining which sense register input  28  receives the pulse which was sent from the specific output  24 .  
         [0042]     Pull down circuits  28  are provided on the sense input registers  26  so that values not powered will be forced to a zero value. In addition, de-bounce circuitry  30  is included in the ASIC  22  for each of the input sense lines  26 .  
         [0043]     The switch throw sense lines  18  will have a pulse voltage present when the source lines  24  are pulsing and the switch associated with the source line  24  has a closed contact. The switch throw sense lines  18  with a voltage present will return a digital “1” (one) in the sense register inputs  26 . The switch throw sense lines  18  at ground potential will return a digital“0” (zero) in the sense input register  26 . Lines not connected shall also return a “0” (zero) in the input sense register  26 .  
         [0044]     On each input sense register line  26 , a series switch will enable the individual line to be turned on and off. Once an output source line  24  is turned on, the input sense register lines  26  will be enabled one at a time to sense if the external switch is closed.  
         [0045]     The signal that travels from the source register outputs  24  down the switch common source lines  16 , through the switches then down the switch throw sense lines  18  and into the input registers may take the form as discussed above as a positive voltage, digital 1, or conversely may be in the form of pulling the line to ground, digital 0.  
         [0046]     The sense input registers  26  are de-bounced with de-bounce circuits  30  within the hardware of the ASIC  22  to ensure that the values being latched into data registers is valid. One way that this can be done is comparing the time of activation on the source input registers  26  to the time the source output registers  24  is active. If the length of time for the signal received at the input source registers  26  is different than the length of time for the output source register  24  signal, then we know that the entire signal was not received at the input registers  26  and therefore would not be saved as a valid input. Another method for determining that the value latched into the input registers is valid is to provide a sequence of cascading latches to validate the return status. If the input at the sensed register inputs  26  changes state during the periods the latches are cascading, the sequence is reset and the data is not saved. Unless the value cascades through all the latches, the old value for the input register  26  is retained as the current state value. As seen in  FIG. 3 , the switch values are saved in the switch sense save register array  56  in their proper register corresponding to the activated source line  24  via the shifting select register  64  after they are received by the sense input registers  26 .  
         [0047]     Also on  FIG. 3 , once the switches are read, the newly read values are compared using a comparator circuit  60  with the previous reads of the switch which are stored in the switch sense saved register array  56  and data bits are set in an interrupt status register  66  via the shift register  62  if the values differ. Data from the comparator circuit  60  is put into an interrupt status register  66  by a shift register  62 , which puts the output from the comparator circuit  60  into the bit corresponding to source bit being scanned (bit for row). The status register  66  information is then AND&#39;d with the data from the individual IRQ enable register  68 . The results are OR&#39;d by the gates of block  51 . This data is then AND&#39;d using the AND gate  48 . An interrupt  70  is generated by the hardware, if an interrupt enable register  58  is enabled or a digital 1 and the data coming from the individual IRQ enable registers  68  is a digital 1 once a complete scan of the switches is completed. This interrupt  70  tells the processor  23  to now read the input register  26  to determine the switch positions. The result is that the processor  23  only has to read the inputs when a switch has changed positions.  
         [0048]     Embodiments of the current invention may also include switches such as switch  40  shown in  FIG. 3  which are powered by an external power supply  54  rather than by the source register outputs  24 . In other words, all the switches on the current invention do not have to be powered by the source register outputs  24 . If a switch is used which is powered by an external power supply  54 , the system works much in the same way. The value of the switch is read into the switch current value register  72  and compared with the switch last value register  74  by the use of an exclusive OR gate  52 . Then, if the value has changed from the previous scan, the value is placed into the lid switch interrupt status register  76  and AND&#39;d with the lid switch IRQ enable register  78  and if this output gives a value of 1, that information will be OR&#39;d in block  51  with the result AND&#39;d by an AND gate  48  with an interrupt enable register bit  58 . If both the data bit resulting from block  51  and the interrupt enable register  58  are both a value of 1, then an output of 1 will be used on the interrupt  70  to tell the processor to read the interrupt status registers  66 ,  76 . A bit value of 1 in an interrupt status register  66 ,  76  tells the processor that the corresponding switch save register SWS 0 , SWS 1 , SWS 2 , SWS 3 , SWS 4 , SWS 5 , SWS 6 , SWS 7  and lid/door switch save register contains a changed value.  
         [0049]     The automatic scanning of switches can be disabled to allow the software to individually assert a particular switch source line and read the return value when an immediate switch read is required rather than the last read value. This also allows for switches to be read at a specific time if the input values are cycling. A normal mode of operation would be to let the hardware read the switches and generate an interrupt for those switches which have changed.  
         [0050]      FIG. 2  is a preferred embodiment of the current invention of the switch scan mechanics which only has a seven bit switch sense bus. The size of the return bus and the number of switch source lines are scalable depending on the device used to implement the automatic scanning of the switches.  FIG. 3  further allows for an eight switch source  16  line and a seven bit sense line  18 . The separate switch input is compared against a previous value each time the switches are scanned and can generate an interrupt if the switch changes state.  
         [0051]     The method and function of the current invention which are shown in  FIGS. 2 and 3  is also shown in  FIG. 5 . In  FIG. 5 , output signals on an integrated circuit source register are output through the source registers  100 . The signals that are sent through the output source registers then go through a switching matrix if the switch in the switching matrix is closed  102 . Any signals that return to the input sense registers are set in the registers on the integrated circuit  104 . Then, this method compares the sense register inputs with the previous inputs of the switches  106 . If the inputs are not different, this method returns back to outputting signals on the output source registers as in  100 . If the inputs are different, then an interrupt is created on the processor and the processor reads the switch save register  108 .  
         [0052]     The invention has been shown and described above with the preferred embodiments, and it is understood that many modifications, substitutions, and additions may be made which are within the intended spirit and scope of the invention. From the foregoing, it can be seen that the present invention accomplishes at least all of its stated objectives.
This invention is an automated switch scanning matrix for obtaining user input. The invention comprises an integrated circuit with an output register and an input register, the output register is operatively connected to one or more user switches or encoders and the switches or encoders are further operatively connected to the integrated circuit input register. A voltage is pulsed from the output register of the integrated circuit which then flows through closed contacts of the switches or encoders in the switching matrix and is then detected at the input registers of the integrated circuit. The switch position inputs are saved in a switch save register. The integrated circuit sets an interrupt bit if any of the switch positions in the matrix have changed. This, in turn, causes the microcontroller to read the switch save registers thereby saving time for the microcontroller by not having to continually read the switch inputs.