3. The foxBMS 2 Platform
The foxBMS 2 platform consists of two main elements:
the foxBMS Master Unit and
the foxBMS Slave Unit.
The foxBMS Master Unit consists of 3 boards:
the BMS-Master Board,
the BMS-Interface Board and
the BMS-Extension Board.
An ARM-based microcontroller (Cortex-R5) is used on the BMS-Master Board.
The BMS-Master Board communicates with the outside world via a CAN bus. The current flowing through the battery system is measured via a current sensor connected to a CAN bus. The current sensor is controlled via CAN by the BMS-Master Board and sends the resulting measurement via CAN.
The foxBMS Slave Units (based on BMS-Slave Boards) are used for measuring cell voltages and cell temperatures, as well as for passive balancing in battery modules. The foxBMS Slave Units can be connected in series as a daisy-chain.
In order for the foxBMS Master Unit to communicate with the foxBMS Slave Units, an interface board (BMS-Interface Board) is needed. It implements the physical layer of the communication between the BMS-Master Board and the foxBMS Slave Units.
Control requests to the foxBMS Master Unit are made via CAN messages. They control the externally facing BMS behavior of the system such as opening and closing the contactors. This behavior based on the internal implementation and application dependent. The foxBMS Master Unit monitors the state of the battery system to ensure a safe operation of the system. The measurement data and all relevant information of the system is communicated through a CAN interface to a superior control unit.
The BMS-Master Board also provides an interlock line that is closely monitored. This fast acting interface that can be connected through crucial system components such as the foxBMS Master Unit, emergency stop switch, service disconnect switches, high voltage connectors and similar devices. The interlock line can be opened by any connected device. It is possible to define a system behavior in the case that the interlock line has been opened such as the transition to an application-specific safe-state. In the default implementation, all contactors will be opened and the BMS will switch to an error state.
See Fig. 3.1.
In case that an application requires more inputs, outputs or specific hardware functions, these can be implemented through a BMS-Extension Board. This is a specialized board that connects through a set of connectors to the BMS-Master Board and can implement application-specific hardware for the foxBMS Master Unit.
This description reflects the current state of foxBMS 2. Due to the open nature of the system, many other possibilities can be implemented, like for example:
Use of other types of current sensors (e.g., shunt-based or Hall-effect based)
No foxBMS Slave Unit needs to be used: a direct measurement of the cell voltages and cell temperatures can be performed by the foxBMS Master Unit
A higher number of contactors can be controlled (e.g., up to 9)
etc…