|Publication number||US5274827 A|
|Application number||US 07/660,628|
|Publication date||Dec 28, 1993|
|Filing date||Feb 25, 1991|
|Priority date||Feb 25, 1991|
|Publication number||07660628, 660628, US 5274827 A, US 5274827A, US-A-5274827, US5274827 A, US5274827A|
|Inventors||Terry J. Haggerty, Curtis R. Balka, Ronald H. Jaeger|
|Original Assignee||Delco Electronics Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (4), Referenced by (45), Classifications (12), Legal Events (5)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This invention relates to the secure use of non-volatile memories and particularly to the prevention of writing to an EEPROM when the supply voltage is not adequate to support the procedure for the entire write cycle.
Microcomputer based systems often use a non-volatile memory for permanent storage of data. A favorite type of memory for that purpose is an electrically erasable programmable read only memory (EEPROM). The process of programming or writing to an EEPROM is lengthy, on the order of 15 ms, which requires write periods thousands of times greater than writing to random access memory. To prevent corruption of data in the EEPROM it is necessary to maintain a minimum voltage throughout the write cycle. When the regulate voltage which supplies the microcomputer falls below its nominal value, the microprocessor can "get lost" while running code or can go through a reset. Either of these situations can corrupt the EEPROM data if the appropriate internal programming voltages were enabled at the time of the reset or the code getting lost.
The corruption of EEPROM data is of particular concern in applications where the information is critical and the power supply is not always reliable. One such application is in automotive vehicles which have a number of systems requiring long term memories and which may experience battery removal or other power supply failure just at the time when data is to be written to the non-volatile memory. Vehicle security systems, for example, may rely on security codes or status flags to determine whether a user is authorized and it is important that the stored information be valid. Many available microcomputers have hardware means for disabling writes to EEPROM when the voltage drops to some set level, but if this occurs during the write cycle the data may be corrupted.
It is therefore an object of the invention to provide a method of determining when a write cycle to an EEPROM may not be supported by the available supply voltage and preventing a write cycle at that time.
The invention is carried out in a microcomputer based system having an EEPROM wherein a minimum supply voltage is required for writing to the EEPROM, and the supply voltage is derived from battery voltage and is subject to decreasing at low battery voltage by the method of preventing a write cycle in the absence of adequate voltage comprising the steps of: determining the battery voltage threshold which corresponds to the required minimum supply voltage; measuring the battery voltage at the time for beginning the write cycle; determining the rate of battery voltage change; projecting the battery voltage to the end of the write cycle; and canceling the write cycle when the projected battery voltage at the end of the cycle is below the threshold voltage.
The above and other advantages of the invention will become more apparent from the following description taken in conjunction with the accompanying drawings wherein like references refer to like parts and wherein:
FIG. 1 is a schematic diagram of a microcomputer and power supply used in carrying out the invention;
FIG. 2 is a graph of supply voltage for the microcomputer of FIG. 1; and
FIG. 3 is a flow chart of a write protect algorithm executed by the microcomputer of FIG. 1, according to the invention.
Referring to FIG. 1, a microcomputer 10 incorporates an analog-to-digital (A/D) converter 12, a microcomputer core or central processor unit 14 having architecture for handling program instructions, a memory section including an EEPROM 16, a random access memory (RAM) 18, a read only memory (ROM) 20, an input/output port (I/O) 22, and an internal power supply 24 which includes a low voltage programming inhibit which cuts off power to the EEPROM programmer when battery voltage falls to a chosen low value, thereby preventing writes to EEPROM at such low voltage. An external regulated power supply 26 has an output which delivers regulated voltage Vcc to the A/D converter 12 and to the internal power supply 24. A ground line is also connected to the same elements. Battery voltage is supplied from a terminal 28 through a buffer circuit 30 to the power supply 26 and to the A/D converter 12. The converter 12 uses the Vcc voltage as a reference voltage to determine the value of the battery voltage.
Generally, in the case of an automotive system the battery produces 12 volts subject to fluctuations caused by various loads on the battery as well as charging circuitry. Occasionally, rather low battery voltages result, especially in the case of older batteries. The regulated power supply produces an output Vcc of typically 5 volts independently of small battery voltage variations so long as the battery voltage exceeds some value such as 6 volts, depending on the particular type of power supply. However, the battery may droop below 6 volts causing Vcc to droop as well. In the case of a battery disconnect or if a fuse is blown, the battery voltage can drop from its normal range to an unsafe level (below 6 volts) in 20 or 30 MS.
The effect of the battery voltage Vb on the regulated voltage Vcc is shown by the graphs on FIG. 2. In writing to the EEPROM a minimum threshold voltage Vw must be maintained through the write cycle to assure valid data. The write threshold voltage vw is, for example, 3.5 volts. The battery voltage threshold Vth2 corresponding to the write threshold vw is, for example, 4.5 volts. For a given system, the value of Vth2 can be determined empirically. The write cycle must be completed when the battery voltage is at or above the battery threshold Vth2=4.5 volts.
Two tests are made to assure that during a write cycle to EEPROM the battery voltage Vb will not fall into the danger zone D where the battery voltage is less than the threshold Vth2. First, a voltage threshold Vth1 defining the lower limit of normal battery voltage is chosen. Typically this is Vth1=9 volts. If the voltage is below the threshold Vth1 when a write cycle is requested the write cycle is canceled. Second, if the voltage is declining, the slope is measured and the voltage is projected to the end of the write cycle. If the projected voltage is below the threshold Vth2 the write cycle is canceled and rescheduled.
By measuring the battery voltage Vb at regular periods and saving the most recent samples, the data necessary to determine the slope of the battery voltage is acquired. If, as shown in FIG. 2, a write request occurs at time t1, the voltage V1 at time t1 is measured and compared to the previous sample V0 taken at t0, where the period between t1 and t0 is P1. Then if the write period is P2, the voltage Vest at the end of the write cycle at time t2 can be estimated by the equation Vest=V1+[(V1-V0)/P1]P2, as represented by sloped line S passing through the points V0 and V1 and having the slope (V1-V0)/P1. Where the period P1 and P2 are equal the equation reduces to the easily calculated form, Vest=V1+V1-V0.
The advantage of using the battery voltage to predict when the regulated voltage Vcc is below its write threshold is that the battery voltage begins to fall before the Vcc starts to fall so that an earlier and more accurate indication of the impending voltage drop is obtained. Moreover, an attempt to measure the voltage Vcc directly is difficult since the A/D converter 12 uses Vcc as a reference against which to compare other voltages when making the conversion. Thus Vcc will always be measured as full value even if it falls below the nominal 5 volt regulated level, unless a separate power supply immune to the battery voltage drop is used to supply the reference value to the A/D converter. Since the battery voltage Vb is determined by the A/D converter by comparing the external battery voltage to Vcc, the perceived battery voltage is inflated by the A/D converter when Vcc is less than 5 volts as shown by the dashed lines Vinf. By measuring the battery voltage Vb at times t0 and t1 before the Vcc drops, there is no reliance on the inflated voltage Vinf.
As shown in FIG. 2, the level of the normal threshold Vth1 has been chosen so that the inflated value of battery voltage vinf reaches Vth1 when the actual battery voltage Vb falls to the voltage threshold Vth2. The low voltage programming inhibit in the power supply 24 is set to disable the write to EEPROM when the battery voltage falls to threshold Vth2. This assures that during the danger zone D the software will not mistake an inflated voltage Vinf for actual voltage Vb.
The program steps which carry out the method are set forth in the flow chart of FIG. 3. There the description uses the reference numerals nn of the flow chart blocks set in angle brackets <nn> to refer to the functions labeled in the blocks. The illustrated routine is executed periodically and the voltage V0 read on the previous run is saved <40> and the current battery voltage V1 is read <42>. If an EEPROM write request is present <44> the battery voltage V1 is compared to the threshold voltage Vth1. If it is lower than the threshold the EEPROM write cycle is canceled <48> but if it is not lower the battery voltage V1 is compared to the previous voltage V0 to determine if battery voltage is falling <50>. If it is not falling the EEPROM write cycle is begun <52> and if it is falling the battery voltage change rate is calculated on the basis of the voltages V1 and V0 and the period P1, which is determined by the frequency of executing this FIG. 3 routine. Then the battery voltage is projected to the end of the write cycle <56> on the basis of the voltage change rate and the write period. The projected voltage Vest is then compared to the threshold Vth2 <58> and if it is below that threshold the write cycle is canceled <48> but if it is not below that threshold the write cycle is commanded to begin <52>.
It will thus be seen that corruption of data written to EEPROM due to low regulated supply voltage can easily be prevented by simple unregulated battery voltage measurements and calculations to predict when such low supply voltage may occur during a write cycle and postponing a requested write cycle until the voltage conditions are more favorable, and by setting a hardware programming inhibit to render the system unable to begin a write cycle when the voltage is dangerously low.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4439804 *||Mar 22, 1982||Mar 27, 1984||Rca Corporation||Protection circuit for memory programming system|
|US4485456 *||Apr 19, 1982||Nov 27, 1984||Tokyo Shibaura Denki Kabushiki Kaisha||Data processor with R/W memory write inhibit signal|
|US4612632 *||Dec 10, 1984||Sep 16, 1986||Zenith Electronics Corporation||Power transition write protection for PROM|
|US4843592 *||Apr 9, 1987||Jun 27, 1989||Kabushiki Kaisha Toshiba||Microcomputer controlled apparatus provided with a battery voltage detection circuit|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US5384748 *||Oct 4, 1993||Jan 24, 1995||Mitsubishi Denki Kabushiki Kaisha||Memory card with two SRAM arrays with different data holding voltages and power back-up|
|US5528756 *||Jan 30, 1995||Jun 18, 1996||Elsag International N.V.||Method and apparatus for performing supervisory functions in digital systems and obtaining diagnostics thereof|
|US5710931 *||Sep 5, 1995||Jan 20, 1998||Canon Kabushiki Kaisha||Suspension state control for information processing devices such as battery powered computers|
|US5943263 *||Jan 8, 1997||Aug 24, 1999||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6243282||Sep 11, 2000||Jun 5, 2001||Micron Technology Inc.||Apparatus for on-board programming of serial EEPROMs|
|US6256217||Apr 13, 2000||Jul 3, 2001||Micron Technology, Inc.||Apparatus for on-board programming of serial EEPROMS|
|US6256229 *||Mar 1, 2000||Jul 3, 2001||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6266277||Mar 1, 2000||Jul 24, 2001||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6272048||Aug 30, 2000||Aug 7, 2001||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6339547||Aug 30, 2000||Jan 15, 2002||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6392928 *||May 3, 1999||May 21, 2002||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6434046||Jun 19, 2001||Aug 13, 2002||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6438033||Jun 19, 2001||Aug 20, 2002||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6466378||Mar 13, 2001||Oct 15, 2002||Fuji Photo Optical Co., Ltd.||Lens driving apparatus|
|US6469936||Jun 19, 2001||Oct 22, 2002||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6519172||Jul 3, 2001||Feb 11, 2003||Micron Technology, Inc.||Apparatus for on-board programming of serial EEPROMS|
|US6542408||Feb 26, 2002||Apr 1, 2003||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6552933||Feb 26, 2002||Apr 22, 2003||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6552934||Feb 26, 2002||Apr 22, 2003||Micron Technology, Inc.||Apparatus and method for programming voltage protection in a non-volatile memory system|
|US6675301 *||Apr 26, 2000||Jan 6, 2004||Mitsubishi Denki Kabushiki Kaisha||Microcomputer malfunction preventive apparatus and microcomputer malfunction preventive method|
|US6691236 *||Oct 28, 1999||Feb 10, 2004||Hewlett-Packard Development Company, L.P.||System for altering operation of a graphics subsystem during run-time to conserve power upon detecting a low power condition or lower battery charge exists|
|US6804763 *||Oct 17, 2000||Oct 12, 2004||Igt||High performance battery backed ram interface|
|US7111141||Sep 13, 2002||Sep 19, 2006||Igt||Dynamic NV-RAM|
|US7374487||Mar 27, 2007||May 20, 2008||Igt||Non-volatile memory storing critical data in a gaming machine|
|US7390262||Sep 8, 2006||Jun 24, 2008||Igt||Non-volatile memory storing critical data in a gaming machine|
|US7392099||Dec 12, 2003||Jun 24, 2008||Hewlett-Packard Development Company, L.P.||System and method for power management when an operating voltage is between two thresholds|
|US7412559||Aug 4, 2004||Aug 12, 2008||Igt||High performance battery backed ram interface|
|US7808828 *||Jun 26, 2009||Oct 5, 2010||Renesas Electronics Corporation||Non volatile memory|
|US7904687||Jul 16, 2007||Mar 8, 2011||Igt||Non-volatile memory storing critical data in a gaming machine|
|US7951008||Mar 3, 2006||May 31, 2011||Igt||Non-volatile memory management technique implemented in a gaming machine|
|US8397012 *||Aug 30, 2004||Mar 12, 2013||International Business Machines Corporation||Data storage systems|
|US8550922||Mar 3, 2006||Oct 8, 2013||Igt||Game removal with game history|
|US8599597||May 7, 2012||Dec 3, 2013||Qualcomm Incorporated||Circuits configured to remain in a non-program state during a power-down event|
|US8961322||Oct 7, 2013||Feb 24, 2015||Igt||Game removal with game history|
|US20050010738 *||Aug 4, 2004||Jan 13, 2005||Igt||High performance battery backed ram interface|
|US20050127758 *||Dec 12, 2003||Jun 16, 2005||Atkinson Lee W.||System and method for power management when an operating voltage is between two thresholds|
|US20050132150 *||Aug 30, 2004||Jun 16, 2005||International Business Machines Corp.||Data storage systems|
|US20060236144 *||Jul 1, 2005||Oct 19, 2006||Wistron Corp.||Method for saving power of a laptop computer|
|US20070011427 *||Sep 8, 2006||Jan 11, 2007||Igt||Dynamic NV-RAM|
|EP1087404A2 *||Sep 22, 2000||Mar 28, 2001||Microchip Technology Inc.||Method, system and apparatus for determining that a programming voltage level is sufficient for reliably programming an EEPROM|
|EP1146734A1||Mar 9, 2001||Oct 17, 2001||Fuji Photo Optical Co., Ltd.||Lens driving apparatus|
|EP1463013A2 *||Mar 26, 2004||Sep 29, 2004||Shimano Inc.||Bicycle information processing apparatus with memory protection|
|EP1469479A2 *||Jan 8, 1998||Oct 20, 2004||Micron Technology, Inc.||Programming voltage protection in non-volatine memory system|
|WO1998031016A1 *||Jan 8, 1998||Jul 16, 1998||Micron Quantum Devices Inc||Programming voltage protection in non-volatile memory system|
|WO2008061566A1 *||Nov 23, 2006||May 29, 2008||Tte Germany Gmbh||Power failure detection circuit|
|U.S. Classification||365/226, 365/228, 714/5.11|
|International Classification||G11C16/22, G06F1/30, G11C5/14|
|Cooperative Classification||G06F1/30, G11C5/143, G11C16/225|
|European Classification||G11C5/14D, G11C16/22V, G06F1/30|
|Mar 21, 1991||AS||Assignment|
Owner name: DELCO ELECTRONICS CORPORATION, KOKOMO, IN A CORP.
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:HAGGERTY, TERRY J.;BALKA, CURTIS R.;JAEGER, RONALD H.;REEL/FRAME:005646/0438
Effective date: 19910301
|Jun 2, 1997||FPAY||Fee payment|
Year of fee payment: 4
|Jul 24, 2001||REMI||Maintenance fee reminder mailed|
|Dec 28, 2001||LAPS||Lapse for failure to pay maintenance fees|
|Mar 5, 2002||FP||Expired due to failure to pay maintenance fee|
Effective date: 20020128