Serial interface for a battery management system

A serial communication method and system is provided for use with a battery management system. The system includes a port capable of sending and receiving pulses over a single conductor, serial interface logic compatible with a serial protocol and capable of generating and detecting signals on the port and communicating the signals with an internal bus in the battery management system wherein each signal in the serial protocol is defined by a specific number of pulses. In the serial protocol, a zero signal corresponds to a sequence of two pulses, a one signal corresponds to a sequence of three pulses, an acknowledge signal corresponds to a sequence of four pulses, and a start signal corresponds to a sequence of five pulses.

ADDITIONAL REFERENCES

Incorporated by reference herein is the Xicor “Smart Battery Fuel Gauge/Safety Device For Cellular Phone Packs” technical reference, U.S. Pat. No. 6,522,104, entitled “Method and Apparatus for Measurement of Charge in a Battery,” assigned to the assignee of the present invention, and U.S. Pat. No. 6,501,249 B1, entitled “Battery Management System,” assigned to the assignee of the present invention. Xicor, Inc. is located at 1511 Buckeye Drive, Milpitas, Calif. 95035.

TECHNICAL FIELD

The present invention relates generally to electronic devices and more particularly to a method and apparatus for monitoring the charging and discharging of a battery.

BACKGROUND OF THE INVENTION

Rechargeable batteries are used in many applications to power a variety of devices. Different devices will discharge rechargeable batteries at different rates depending on the function being performed by the device and corresponding load being applied across the battery terminals. For example, a portable computer may discharge a rechargeable battery quickly when computing complex graphic calculations on a processor and rendering a graphic image on a display. The same portable computer may discharge the rechargeable battery more slowly when it is placed in “stand-by mode” and operation of the computer is temporarily suspended. Even when the portable computer is turned off, the rechargeable battery may also continue to discharge a small amount of current over time due to the internal resistance present in the battery.

Generally, the rechargeable battery is charged with a transformer that converts current from a conventional electrical outlet or automobile lighter into direct current suitable for charging the battery. Once the rechargeable battery reaches a maximum voltage, it is fully charged. To protect both the rechargeable battery and the electronic device that it powers, it is important to carefully monitor and control the charging and discharging processes. Specifically, a battery can overheat and be damaged during the charge cycle if it is charged beyond the specified battery capacity. Overcharging can also harm the electronic device as well as people handling the device if the battery leaks or is damaged. In the discharge cycle, for example, an electronic device may be damaged if a short develops within the battery or the device and the sudden increase in current causes the battery or device to overheat or melt.

The device used to measure the charge/discharge state of a battery is popularly called a “gas gauge.” Like the gas gauge on an automobile, the battery gas gauge measures how much charge is stored in a battery. Conventional gas gauge devices measure the current flow into and out of the rechargeable battery to measure the battery's charge. These conventional gas gauges detect the current flow using a fixed resistor coupled in series between the battery and the load. The voltage drop across the series resistor is directly proportional to the current flow measurements into or out of the rechargeable battery. Unfortunately, this series resistor, though typically very small in size, consumes a significant portion of the available power delivered by the rechargeable battery over time. Moreover, a small series resistor cannot be used to accurately detect the wide range of currents drawn by many of the electronic devices. That is, the voltage drop produced by the very small series resistor may only be accurately detected when the current flow is high. If the current flow is low, most conventional gas gauges may inaccurately measure the very small voltage drop across this very small resistor. For example, the conventional gas gauge may not accurately detect the lower current used when a computer is placed in “stand-by” mode. Although the series resistor size can be increased to increase measurement accuracy, the larger series resistor will also increase the power lost across the series resistor and, at high currents, further reduce the voltage available to drive the load.

Conventional gas gauges also have difficulty determining the battery charge when a battery is used over long periods of time. These gas gauge devices must keep an accurate time base to integrate the current charge and discharge over time and determine the remaining battery charge. Consequently, accurate battery charge measurement depends on how accurately a conventional gas gauge measures elapsed time over several days or, in some cases, several months of battery usage. Keeping an accurate time basis generally requires additional circuitry and added complexity in the design of the gas gauge.

Even if battery charge and other information related to charging a battery were available it is difficult to communicate these facts with other devices. The battery and charger typically cannot communicate with other devices because there are no standards for such communication. Further, even with communication standards provided, they are difficult and expensive to implement for typical applications.

SUMMARY OF THE INVENTION

In one aspect of the invention, a method of serial communication for use with a battery management system, including providing a sequence of pulses corresponding to a serial protocol over a serial port, receiving the sequence of pulses from the serial port, interpreting the sequence of pulses received according to the serial protocol wherein each signal in the serial protocol is defined by the number of pulses in the sequence.

Another aspect of the invention includes a serial communication apparatus used to communicate with a battery management system, including a port capable of sending and receiving pulses over a single conductor, serial interface logic compatible with a serial protocol and capable of generating and detecting signals on the port and communicating the signals with an internal bus in the battery management system wherein each signal in the serial protocol is defined by a specific number of pulses.

In one or more of these implementations, a zero signal corresponds to a sequence of two pulses, a one signal corresponds to a sequence of three pulses, an acknowledge signal corresponds to a sequence of four pulses, and a start signal corresponds to a sequence of five pulses.

DETAILED DESCRIPTION

FIG. 1provides a block diagram of a battery management system100. Battery management system100includes a rechargeable battery, hereinafter battery102, a battery management unit (BMU)104, a load106, a charger unit108for charging battery102, and a switch and sensor unit (SSU)110. In one implementation, BMU104and SSU110are integrated together in a single chip using customized analog, non-volatile memory, and logic circuits. Consistent with the present invention, BMU104and SSU110can be implemented by distributing logic functions to different components or using a programmable controller or central processor and bus. In general, integrating the components in battery management system100together makes using the system more efficient and cost-effective in a wider variety of electronic applications.

Battery

Battery102is a rechargeable battery typically used in electronic devices such as computers, cameras, personal digital assistants (PDA), or power tools. Battery102can be designed using a variety of materials including Nickel Cadmium (NiCd), Nickel Hydride (NiH), and Lithium Ion (Li). A positive terminal and negative terminal on battery102is operatively coupled to the corresponding terminals of load106and provides current to operate load106. In one implementation, battery102, BMU104, SSU110, and charger unit108can be designed and assembled as an integrated “smart battery” for use in electronic devices. Alternatively, BMU104and SSU110can be developed separately as discrete components and then programmed through the serial port, discussed in further detail below, to operate with existing batteries.

Battery Management Unit

BMU104monitors safety conditions within battery management system100including over voltage, under voltage, over current, and operating temperature and communicates this information to a host over serial interface111. BMU104is operatively coupled to battery102, SSU110, load106, and charger unit108. Referring toFIG. 2, BMU104includes a battery safety unit (BSU)202, a charge monitor, hereinafter referred to as a gas gauge204, an interface and control unit (ICU)206, a bus214and memory208having data210and battery status212.

BSU202can include an integrated temperature sensor and logic for processing temperature information associated with battery102and other components. In one implementation, a pn-diode attached to BMU104is used to measure temperature fluctuations in the system. The pn-diode can be used as a temperature sensor by measuring the voltage variation that occurs in the pn-diode as the temperature fluctuates. Alternatively, an external temperature sensor such as a thermocouple, thermistor or diode can be used to detect the temperature of battery102inFIG. 1.

In addition to internal logic associated with the integrated temperature sensor and corresponding logic, BSU202may also rely on an arithmetic unit408(seeFIG. 4) in ICU206to perform calculations. Further, BSU202may store temperature, voltage, and current threshold values in local registers or over bus214and into memory208. Preferably, bus214acts as a transport mechanism for transferring data between components within BMU104. For example, BSU202may use bus214to access memory208, communicate with ICU206, and transmit a special “Temp P” signal over serial interface111when the measured temperature exceeds a predetermined value or goes below a predetermined value. This “Temp P” signal allows external devices to receive the device temperature end value.

To measure an over current condition, BSU202monitors the rate at which battery102charges and discharges. Referring now toFIG. 1andFIG. 2, the over charge protection (OCP) input from gas gauge204provides a digital signal each time a unit of charge goes through battery102. A simple timing circuit determines if the rate of charging or discharging exceeds a predetermined threshold and may cause damage to battery102, load106or other components.

BSU202compares voltage, current and temperature conditions with predetermined levels and operates to turn off the current flowing into or out of battery102using SSU110if a threshold is exceeded. In addition, BSU202also can issue a warning to the host by changing status bits in battery status212. In the event a safety condition occurs when the current from load106is reduced and the host is suspended or in a “sleep” condition, BSU202can also transmit a predetermined safety signal to ICU206that a host device external to BMU104can detect. For example, BSU202may instruct ICU206to transmit a signal on serial interface111associated with ICU206indicating the specific safety or alarm condition. In one implementation, the safety or alarm condition can be transmitted to the host by holding a single wire serial interface associated with ICU206low for a period of 1 msec, indicating to the host that a safety condition has occurred and needs attention. The single wire interface is discussed in further detail below.

The predetermined threshold values associated with over voltage, under voltage, over current, and operating temperatures can be programmed in BMU104to accommodate the specific operating characteristics of battery102. These levels can be initially programmed into BMU104during assembly and before shipment to the customer.

Gas Gauge

Gas gauge204uses S1, S2, CS1and CS2inputs to accurately sense the current flow in SSU110. Inputs CS1and CS2provide a sense current proportional to the current passing through battery102. Proportional currents, such as the proportional sense current, are also referred to as ratioed currents. By measuring the charge passing through inputs CS1and CS2, gas gauge204can determine the total ,charge in battery102. The remaining capacity of the battery is then determined by comparing the expected capacity of the battery with the measured charge. Gas gauge204can also keep track of the total charge into battery102and total discharge from battery102. The charge information can be used to determine if the total capacity of a battery is being diminished over time and the battery needs replacing. For example, a battery is not holding a charge well when the difference between the total discharge and total charge of a battery exceeds a predefined threshold. In one implementation, gas gauge204updates a predetermined storage location in memory208to hold the total charge and total discharge charge information.

Referring now toFIG. 1andFIG. 3, an exemplary circuit used in gas gauge204is shown that measures a mirror current passing through input CS1as battery102charges. A similar circuit attached to input CS2can be used to measure the discharge from battery102. To better illustrate how gas gauge204operates, a portion of the circuitry from SSU110is also included inFIG. 3. The portion of SSU110illustrated inFIG. 3, which is generally separate and external to gas gauge204, includes a power transistor602and a sense transistor606. Operation of power transistor602and sense transistor606in SSU110are described in further detail below along with the operation of SSU110.

Gas gauge204includes a current integrator section301and a charge counter section311. Current integrator section301includes a comparator302, a voltage source304, a transistor306, a transistor308, and a capacitor310. Charge counter section311includes a comparator312, a transistor322, an inverter316, and a counter318.

Within current integrator section301, the negative terminal of comparator302is coupled to receive input S1and the positive terminal of comparator302is coupled to receive input CS1. Input S1is coupled to the source of power transistor602. The current used to charge battery102passes through power transistor602. Input CS1is coupled to the source of the sense transistor606and carries a mirror current proportional to the current used to charge battery102. Further, input CS1is also coupled through transistor306to voltage source304labeled VB1.

Output VB2from comparator302is coupled to the gates of transistor306and transistor308. Voltage source304is coupled to the sources of transistor306and308; thus transistor308is a current mirror of transistor306. The drain of transistor308is coupled to the drain of transistor322, the positive terminal of capacitor310, and the negative terminal of comparator312used by charge counter311. The source of transistor322is coupled to ground and the drain of transistor322is coupled to the positive terminal of capacitor310. The negative terminal of capacitor310is coupled to ground and the positive terminal of capacitor310receives mirror current from transistor308.

Within current counter311, comparator312is coupled to receive input VB3at its positive terminal and provide its output to the input of inverter316. An output from inverter316is coupled to an input on counter318and the gate of transistor322such that it increments the counter and switches transistor322.

During the battery charge cycle, current integrator section301detects the charge and charge counter section311measures the total charge. Initially, the current used to charge battery102flows through power transistor602. Comparator302compares the voltage on input S1with the voltage at input CS1. If the voltage differs, comparator302generates a voltage VB2such that transistor306turns on and delivers more current to input CS1. The voltage generated by comparator302at output VB2forces the voltage on input CS1to equal the voltage at input S1. As a consequence, current through input CS1is an accurate ratio of the current through power transistor602(the battery current).

The exact proportions of the currents are determined by the relative sizes of the power and sensing transistors602and606, respectively. Specifically, the transistors can be sized such that the mirror current is ratioed differently for different amounts of current. For example, if the current is very small the ratio of the transistor sizes may be reduced such that the sense current is more sensitive to small currents. In one implementation, the transistors are field effect transistors (FETs) or MOSFETs sized so that the mirror current is approximately 1/1000th of the current passing through power transistor602and battery102. Alternatively, the transistors could be sized, such that the mirror current is as large as 1/100 of the current passing through the power transistors.

The voltage VB2from comparator302also turns on transistor308, producing a proportional mirror current that can be used to charge capacitor310. The charging of capacitor310integrates the mirror current from transistor308. Consequently, capacitor310measures charge without using a time base. When the charge on capacitor310matches the voltage on input VB3, a unit of charge has been measured and comparator312generates a pulse on its output.

This pulse causes inverter316to increment counter318indicating an additional unit of charge has been added to battery102by charger unit108. After each unit of charge is measured, the pulse on the output of comparator312turns on transistor322and discharges capacitor310. This prepares capacitor310to receive another unit of charge before the charge measurement process described above repeats. If the dimensions of transistor306and transistor308are equal, the current through transistor308mirrors the current through transistor306and is proportional to the current in power transistor602. In an alternate implementation, transistor308can be sized to receive less current from current source304.

This alternate implementation would also use a proportionally smaller capacitor310and would consume less power in measuring the battery charge.

The value in counter318represents a charge proportional to the charge the battery has received during a charge cycle. Accordingly, one can calculate how much the battery has been charged and whether the battery is at full capacity. Because capacitor310continuously integrates the current, gas gauge204can measure the battery charge without a time measurement or time period for sampling. Further, gas gauge204can accurately measure mirror currents ranging from picoAmp to milliAmp.

In an alternate implementation, separate counters can be used to measure the amount a battery has been charged or discharged. Instead of using a single counter such as counter318, the two counters can keep track of the total charge entering and leaving the battery. To determine the net charge of the battery, the value in one counter is subtracted from the value in the second counter. The two counters can also be used to determine information such as the number of battery cycles for charging.

Interface And Control Unit (ICU)

Referring toFIG. 1andFIG. 4, a block diagram illustrating ICU206is shown. Components within ICU206manage alarms and safety condition threshold values, processes requested from external host devices, arithmetic operations and results, and communications with host devices over serial interface111. In accordance with one implementation of the invention, ICU206includes serial interface logic402, interrupt logic404, alarm logic406, and arithmetic unit408.

Serial Interface Logic

Serial interface logic402includes logic for using a serial protocol over a serial interface111, between a master and a slave device as well as processing commands transmitted over the serial interface. For example, serial interface logic402detects commands, and transmits appropriate signals to operate components within BMU104. The serial protocol embedded in serial interface logic402defines a transmitter as a device that sends data on the serial interface111and a receiver as a device that receives the data. Further, the device controlling the transfer is a master and the device being controlled is the slave. The master device always initiates data transfers and provides the starting commands for both the transmit and receive operations.

In one implementation, BMU104operates as a slave unit to an external master device and the serial interface111on BMU104is set to receive mode on power up. For the master unit to begin communication with the slave, the master issues a start signal followed by a command byte and the address associated with a byte of data to be accessed in memory208. The receiving slave unit responds by sending an acknowledge signal between each command. Similarly, the master also responds to the slave with an acknowledge signal each time the master receives 8 bits of data. BMU104uses serial interface111associated with serial logic402to carry data between an external master device and memory208. Serial interface111operates in a half duplex mode and memory208can include a variety of storage devices such as a 4K E2PROM, a 512 bit E2PROM look up table (LUT), a 256 bit non-volatile random access memory (NovRAM) or a 128 bit one-time-programmable (OTP) unit.

Referring toFIG. 5, a pulse diagram indicates a start, acknowledge (ACK), one, and zero signals used by the serial protocol. The serial protocol provides BMU104a mechanism for communicating information related to the operation of BMU104. BMU104uses this protocol over a single conductor connected between BMU104and a device external to BMU104. The protocol uses a sequence of pulses on the single conductor where the number of pulses corresponds to the signals being transmitted.

Start signal504inFIG. 5indicates the start of information transmission over the single conductor connected to BMU104. For example, the start command generally precedes a command. In one implementation, the start command consists of five pulses each having a low duration of 30 microseconds. Each pulse is separated by a high duration lasting 30 microseconds. The last high duration lasts at least 90 microseconds indicating transmission for the start signal is complete. In operation, BMU104monitors serial interface111for this start signal and will not respond to any command or data until this condition is detected. Start signal504can also be used to terminate the input of a control byte or the input data to be written. This will reset the device and leave it ready to begin a new read or write command. It is worth noting that start signal504cannot be generated while BMU104is outputting data.

Ack signal506is a signal used to indicate successful transfer of information using the communication protocol. For example, a device transmitting information to BMU104releases the single conductor connected to BMU104after transmitting a series of eight data bits and during the ninth bit period, BMU104sends an ack (short for “acknowledge”) signal506. This acknowledge condition notifies the transmitting device that the receiving device has received the eight bits of data. In one implementation, ack signal506is a sequence of four pulses each having a low duration of 30 microseconds. Each pulse is separated by a time interval having a high duration of 30 microseconds. Like start signal504, ack signal506is complete when a high duration time interval lasting at least 90 microseconds is transmitted. BMU104responds with ack signal506after receiving start signal504and after transmitting each byte to the master.

One signal508indicates transmission of a data value of one. In one implementation, three pulses are transmitted for one signal508as indicated inFIG. 5. Each pulse has a low duration of 30 microseconds separated by a high duration of 30 microseconds.

Zero signal510indicates transmission of a data value of zero. Two pulses are transmitted for zero signal510as indicated inFIG. 5. Like other signals described above each pulse used in one signal508and zero signal510has a low duration of 30 microseconds and is separated by a time interval with a high duration 30 microseconds. The last high duration time interval lasts at least 90 milliseconds and indicates that the signal has completed transmission.

When serial interface111remains idle for a time interval longer than 1 millisecond, serial interface logic402resets serial interface111. With the exception of interrupting a write to memory, serial interface logic;402resets serial interface111regardless of transmission state being sent or the signal level being transmitted (i.e., high or low). For example, a reset may occur if an idle period greater than 1 millisecond occurs in the middle of a data communication session with a host. Specifically, ICU206when not being driven by either a master or slave device sets serial interface111to a high value. Accordingly, the master device must reissue a start signal to resume communication once a reset occurs.

The master device can issue a variety of commands once a start signal is successfully received by serial interface logic402. In one implementation, eight bit commands are transmitted over serial interface111using a sequence of pulses as described above. Each command byte contains bits C0through C7and operates to perform the following list of operations or functions:

C0 bit -Read or write command to the selected memoryC1 bit -Upper half or lower half selection of a memory block arrayC2 bit -Future useC3 bit -Select NovramC4 bit -Lock or Unlock page write from high voltageC5 bit -Arithmetic operations (extrapolation)C6 bit -Interrupt OperationsC7 bit -Program and control auxiliary locations

Interrupt Logic

Referring toFIGS. 1,2and4, interrupt logic404processes external command requests occurring while BMU104is performing one or more internal functions. For example, interrupt logic404determines how to process an external command given to BMU104while the gas gauge is updating the battery charge level or arithmetic unit408is performing a calculation. Interrupt logic404supports concurrent interrupts and may also generate an interrupt compatible with a personal computer (i.e., IRQn). This IRQ interrupt signal can also be transmitted separately over a second communication line (not shown).

In one implementation, interrupt logic404allows BMU104to complete the internal operations without interruption and sets a status bit in a status register stored in memory208indicating that a conflict with an internal operation has occurred. Interrupt logic404does not send an acknowledge signal to the master device making the request. Instead, it is up to the master device to read the status register, determine if a conflict has occurred, and reissue the command. In practice, the master device may need to reissue the external command several times before the internal operations within BMU104are completed and the external command can be performed. If the master device does not read the status register, the status bit remains set until a subsequent read status register command issues.

Alarm Logic

Alarm logic406is operable to process safety and alarm conditions that occur in BSU202. In one implementation, alarm logic406includes 8 user programmable alarms and 2 safety conditions for detecting over voltage and under voltage conditions. The user can program the alarms to monitor a variety of conditions. For example, alarms can be programmed to monitor battery voltage and over current conditions as charging or discharging occurs or alternatively may be programmed to monitor specific temperature levels of the battery or circuitry within battery management system100. An over voltage safety condition is programmed to detect a maximum voltage level in battery102while the under voltage safety condition can be programmed to detect an under voltage condition. When a safety condition level or alarm level is reached, ICU206stores status information in the status register. Typically, the status register is at a fixed location in data210or battery status212.

To program alarms or safety conditions in BMU104, a “Write Enable” command must be issued over serial interface111. Moreover, once the alarms and other thresholds in BMU104have been programmed, a “Disable Write” command must be issued over serial interface111in a similar manner to prevent any future accidental write.

In one implementation, BSU202, gas gauge204, and ICU206are integrated together as a single unit such as BMU104. By placing BMU104in test mode, input OCP, input PTC, input CS1, input CS2, input Vcc, and serial interface111can be used to select and program alarms and other threshold values. When BMU104is not in test mode, BSU202operates normally and these inputs and outputs operate as described above. In one implementation, raising serial interface111on ICU206to a high voltage such as12V for a period of 10 millisecond sets BSU202in test mode. The over voltage safety level can be reset by setting the input PTC high and holding input OCP, input CS1and input CS2pins low. The voltage protection level can be set by setting the voltage on the Vcc pin to the desired over voltage protection level.

Similarly, to set the over voltage safety levels to a new value, the input PTC and input CS2are held high while the input OCP and input CS1pins are held low. Raising the serial port on ICU206to a high voltage such as 12V for 10-millisecond programs the over voltage protection level to the voltage level set on Vcc. Similar operations can be used to set the under voltage and over current safety levels in BMS100. Temperature safety levels are set in BMS100by writing a maximum and minimum temperature safety level in a predetermined memory location within data210of memory208. Specifically, the digital value of the desired temperature safety levels can be transmitted through serial interface111, described above.

Arithmetic Unit

Arithmetic unit408inFIG. 2performs calculations within BMU104. For example, arithmetic unit408performs calculations such as adding a predetermined battery capacity to the gas gauge during charge time or subtracting the same capacity from gas gauge during discharge time. Further, arithmetic unit408can be used to extrapolate data between two discrete values. If battery capacity data in BMU104only exists for two temperature values such as 25° C. and 100° C. and the measured temperature is 70° C., arithmetic unit408can extrapolate the battery capacity data for 70° C., based on the available capacity values associated with the two known temperature values. This allows BMU104to provide a more accurate prediction of the remaining battery capacity given a wider range of temperatures.

Memory

Referring toFIG. 2, memory208stores threshold information and other data for use by BMU104and includes data210and battery status212. In one implementation, data210includes a status register and a look-up-table. The status register stores safety conditions such as over voltage, over current, under voltage, minimum temperature, maximum temperature, special conditions such as battery capacity full and conflict information (i.e., interrupt flag),8alarm conditions, and at least one status flag reserved for customization. The look-up-table (LUT) includes information such as a list of discrete operating temperatures in 5–15 degree increments from 100° C. down to −20° C. and specific parameters related to operation of battery102(FIG. 1), such as rated charge count per 1 milliamp-hr, rated capacity, count period value, temp correction count period, battery self discharge value, temperature (temp) correction self discharge, temp point capacity reduction, temp rate capacity reduction, hi current point capacity (cap) reduction, hi current rate cap reduction, cycle A and cycle B count multiplier, total charge/discharge multipliers, alarms setup, maximum temp safety level, minimum temp safety level, and watch dog time and over current (OC) control. The charge/discharge multipliers help determine the ability to recharge a battery.

Battery status212can include a separate status register, a “gas” gauge for the battery, cycle A and cycle B registers, total charge registers, total discharge registers, and user defined registers.

Sensor And Switch Unit (SSU)

Referring toFIG. 1, SSU110detects the current passing through battery102to protect the battery and circuitry as well as measure the charge in battery102. If BMU104detects a current condition outside predetermined limits, BMU104sends a signal to SSU110over power transistor control (PTC) input to shut off the current to battery102.

SSU110also facilitates measuring the charge in battery102. Specifically, SSU110generates mirror currents on inputs CS1and CS2directly proportional to the current flow charging or discharging battery102. These mirror currents are used by gas gauge204in BMU104to measure the charge into and out of battery102and indicate the charge level in the battery.

FIG. 6illustrates a bi-directional sense FET600included in SSU110to facilitate generating the mirror currents through inputs CS1and CS2. Bi-directional sense FET600includes a power transistor (FET)602, a power FET604, a sense transistor (FET)606, a sense FET608, a diode610, a diode612, a diode614, and a diode616. The source of power FET602is coupled to the input of diode610and the source power FET604is coupled to the input of diode612. The output of diode610and diode612are coupled to the drains of power FET602and power FET604as welt as the drain of sense FET606and the drain of sense FET608. The source of sense FET606is coupled to the input of diode614and to input CS1. The source of sense FET608is coupled to the input of diode616and to input CS2. Outputs from diode614and diode616are coupled together.

Referring now toFIGS. 1,2and6, bi-directional sense FET600uses sense FET606and sense FET608to measure the charge current flowing through power FET602or the discharge current flowing in the opposite direction through power FET604. When BMU104is operating normally, BSU202provides a voltage to the gate of each FET602,604,606and608such that the FETs are biased on and the charge or discharge current flows through SSU110. Alternatively, if an alarm or safety condition occurs, BSU202(FIG. 2) shuts off each FET to prevent further charging or discharging of battery102.

When battery102discharges current, the current flows from the source (S2) to the drain (D) of power FET604through the drain (D) and source (S1) of power FET602and to the negative terminal of battery102. Gas gauge204supplies current to input CS2such that the voltage at input CS2equals the voltage at input S2. When this voltage condition occurs, the current through input CS2is an accurate ratio of the current flowing through SSU110to battery102. The mirror current through input CS2is used to measure the charge from the battery during a discharge cycle.

When battery102is being charged, the current flows from the source (S1) to the drain (D) of power FET602through the drain (D) and source (S2) of power FET604and to the negative terminal of the charger unit122. As discussed above, gas gauge204supplies current to input CS1such that the voltage at input CS1equals the voltage at input S1. Under this condition, the current through input CS1is an accurate ratio of the current flowing through SSU110to battery102. The mirror current passing through input CS1is used to measure the charge to the battery during a charge cycle.

Battery Management Operation

Referring again toFIG. 1, BMU104, operates during charge and discharge cycles. During the charge cycle, charger unit108provides current flow through the positive terminal of battery102, through the battery and SSU110, returning to the negative terminal of charger unit108. SSU110develops a mirror current through input CS1, which tracks the charging of battery102. If the charge current measured by BMU104remains within a prescribed operating range, BMU104continues to bias transistors in SSU110such that battery102receives current from charger unit108. Typically, charger unit108converts alternating current from an electrical socket into appropriate direct current suitable for charging battery102. In one implementation, charger unit108can also be integrated into BMU104as an additional component for use when power for charger unit108is available. If charger unit108is on and load106, such as a computer system, is in use, then charger unit108will support load106and partially charge battery102.

In discharge mode, battery102provides a current to load106. Charger unit108is typically not present when battery102discharges. During discharge, current flows from the positive terminal of battery102, through the corresponding positive terminal of load106, through load106, and from the negative terminal of load106into SSU110. SSU110develops mirror current through input CS2that tracks the discharging of battery102.

If battery102becomes overcharged, BMU104will detect an over voltage condition in battery102. Specifically, BMU104compares the voltage value provided over the Vcc input with a predetermined threshold voltage value associated with the battery. If the voltage value on the Vcc input exceeds this threshold value, BMU104signals to SSU110over the PTC output to cutoff current flow to battery102. This will also cause SSU110to switch off the mirror current flow through input CS1.

Other embodiments are also within the scope of the following claims. For example, the order of steps of the invention may be changed by those skilled in the art and still achieve desirable results and various thresholds and parameters can be modified. Further, a bi-directional FET is used to measure current but a resistor could be used to measure current as well as an FET that is not bi-directional or other devices and circuits equivalent to a sense FET device. Although n-channel devices in the SSU connected to the negative battery terminal (low-side) have been described, alternative implementations can use p-channel devices in the SSU. Either n-channel or p-channel devices can be connected to either the positive or negative battery terminal depending on the configuration.