A battery management system (BMS) is any electronic system that manages a rechargeable battery (cell or battery pack), such as by protecting the battery from operating outside its safe operating area, monitoring its state, calculating secondary data, reporting that data, controlling its environment, authenticating it and / or balancing it.
A battery pack built together with a battery management system with an external communication data bus is a smart battery pack. A smart battery pack must be charged by a smart battery charger.
A BMS may protect its battery by preventing it from operating outside its safe operating area, such as:
The BMS may prevent operation outside the battery's safe operating area by:
In order to maximize the battery's capacity, and to prevent localized under-charging or over-charging, the BMS may actively ensure that all the cells that compose the battery are kept at the same voltage or State of Charge, through balancing. The BMS can balance the cells by:
A BMS may also feature a precharge system allowing a safe way to connect the battery to different loads and eliminating the excessive inrush currents to load capacitors.
The connection to loads is normally controlled through electromagnetic relays called contactors. The precharge circuit can be either power resistors connected in series with the loads until the capacitors are charged. Alternatively, a switched mode power supply connected in parallel to loads can be used to charge the voltage of the load circuit up to a level close enough to battery voltage in order to allow closing the contactors between battery and load circuit. A BMS may have a circuit that can check whether a relay is already closed before precharging (due to welding for example) to prevent inrush currents to occur.
The central controller of a BMS communicates internally with its hardware operating at a cell level, or externally with high level hardware such as laptops or an HMI.
High level external communication are simple and use several methods
Low voltage centralized BMSes mostly do not have any internal communications.
Distributed or modular BMSes must use some low level internal cell-controller (Modular architecture) or controller-controller (Distributed architecture) communication. These types of communications are difficult, especially for high voltage systems. The problem is voltage shift between cells. The first cell ground signal may be hundreds of volts higher than the other cell ground signal. Apart from software protocols, there are two known ways of hardware communication for voltage shifting systems, optical-isolator and wireless communication. Another restriction for internal communications is the maximum number of cells. For modular architecture most hardware is limited to maximum 255 nodes. For high voltage systems the seeking time of all cells is another restriction, limiting minimum bus speeds and losing some hardware options. Cost of modular systems is important, because it may be comparable to the cell price.Combination of hardware and software restrictions results in a few options for internal communication:
To bypass power limitations of existing USB cables due to heat from electrical current, communication protocols implemented in mobile phone chargers for negotiating an elevated voltage have been developed, the most widely used of which are Qualcomm Quick Charge and MediaTek Pump Express. "VOOC" by Oppo (also branded as "Dash Charge" with "OnePlus") increases the current instead of voltage with the aim to reduce heat produced in the device from internally converting an elevated voltage down to the battery's terminal charging voltage, which however makes it incompatible with existing USB cables and relies on special high-current USB cables with accordingly thicker copper wires. More recently, the USB Power Delivery standard aims for an universal negotiation protocol across devices of up to 240 watts.
Additionally, a BMS may calculate values based on the below items, such as:
A BMS may monitor the state of the battery as represented by various items, such as: