foxBMS - Unit Tests
1.5.0
The foxBMS Unit Tests API Documentation
|
Configuration of the battery system (e.g., number of battery modules, battery cells, temperature sensors) More...
Go to the source code of this file.
Macros | |
#define | BS_POSITIVE_DISCHARGE_CURRENT (true) |
#define | BS_NR_OF_STRINGS (1u) |
Number of parallel strings in the battery pack. More... | |
#define | BS_NR_OF_MODULES_PER_STRING (1u) |
number of modules in a string More... | |
#define | BS_NR_OF_CELL_BLOCKS_PER_MODULE (18u) |
number of cells per module More... | |
#define | BS_NR_OF_PARALLEL_CELLS_PER_MODULE (1u) |
number of battery cells in a parallel cell connection per battery module More... | |
#define | BS_BALANCING_RESISTANCE_ohm (100.0) |
#define | BS_NR_OF_GPIOS_PER_MODULE (10u) |
Defines the number of GPIOs. More... | |
#define | BS_NR_OF_GPAS_PER_MODULE (2u) |
Defines the number of GPA inputs. More... | |
#define | BS_NR_OF_TEMP_SENSORS_PER_MODULE (8u) |
number of temperature sensors per battery module More... | |
#define | BS_NR_OF_CELL_BLOCKS_PER_STRING (BS_NR_OF_MODULES_PER_STRING * BS_NR_OF_CELL_BLOCKS_PER_MODULE) |
#define | BS_NR_OF_TEMP_SENSORS_PER_STRING (BS_NR_OF_MODULES_PER_STRING * BS_NR_OF_TEMP_SENSORS_PER_MODULE) |
#define | BS_NR_OF_TEMP_SENSORS (BS_NR_OF_TEMP_SENSORS_PER_STRING * BS_NR_OF_STRINGS) |
#define | BS_CURRENT_SENSOR_PRESENT (false) |
#define | CURRENT_SENSOR_ISABELLENHUETTE_CYCLIC |
#define | BS_CURRENT_MEASUREMENT_RESPONSE_TIMEOUT_ms (200u) |
#define | BS_COULOMB_COUNTING_MEASUREMENT_RESPONSE_TIMEOUT_ms (2000u) |
#define | BS_ENERGY_COUNTING_MEASUREMENT_RESPONSE_TIMEOUT_ms (2000u) |
#define | BS_MAIN_CONTACTORS_MAXIMUM_BREAK_CURRENT_mA (500000) |
Maximum break current of main contactors. More... | |
#define | BS_MAIN_FUSE_MAXIMUM_TRIGGER_DURATION_ms (30000u) |
Maximum fuse trigger duration. More... | |
#define | BS_MAXIMUM_STRING_CURRENT_mA (10000u) |
Maximum string current limit in mA that is used in the SOA module to check for string overcurrent. More... | |
#define | BS_MAXIMUM_PACK_CURRENT_mA (10000u * BS_NR_OF_STRINGS) |
Maximum pack current limit in mA that is used in the SOA module to check for pack overcurrent. More... | |
#define | BS_IGNORE_INTERLOCK_FEEDBACK (false) |
Define if interlock feedback should be discarded or not. More... | |
#define | BS_CHECK_CAN_TIMING (true) |
Defines whether CAN timing shall be evaluated or not. More... | |
#define | BS_BALANCING_DEFAULT_INACTIVE (true) |
Defines whether balancing shall be available or not. More... | |
#define | BS_NR_OF_VOLTAGES_FROM_CURRENT_SENSOR (3u) |
number of high voltage inputs measured by current sensors (like IVT-MOD) More... | |
#define | BS_NR_OF_CONTACTORS_OUTSIDE_STRINGS (1u) |
#define | BS_NR_OF_CONTACTORS ((2u * BS_NR_OF_STRINGS) + BS_NR_OF_CONTACTORS_OUTSIDE_STRINGS) |
#define | BS_REST_CURRENT_mA (200) |
current threshold for determining rest state of battery. If absolute current is below this limit value the battery is resting. More... | |
#define | BS_RELAXATION_PERIOD_10ms (60000u) |
Wait time in 10ms before battery system is at rest. Balancing for example only starts if battery system is at rest. More... | |
#define | BS_CS_THRESHOLD_NO_CURRENT_mA (200u) |
current sensor threshold for 0 current in mA as the sensor has a jitter. More... | |
#define | BS_MAX_VOLTAGE_DROP_OVER_FUSE_mV (500) |
Maximum voltage drop over fuse. More... | |
#define | BS_CHECK_FUSE_PLACED_IN_NORMAL_PATH (true) |
TODO. More... | |
#define | BS_CHECK_FUSE_PLACED_IN_CHARGE_PATH (false) |
TODO. More... | |
#define | BS_STANDBY_PERIODIC_OPEN_WIRE_CHECK (false) |
#define | BS_STANDBY_OPEN_WIRE_PERIOD_ms (600000) |
#define | BS_NORMAL_PERIODIC_OPEN_WIRE_CHECK (false) |
#define | BS_NORMAL_OPEN_WIRE_PERIOD_ms (600000) |
#define | BS_CHARGE_PERIODIC_OPEN_WIRE_CHECK (false) |
#define | BS_CHARGE_OPEN_WIRE_PERIOD_ms (600000) |
#define | BS_ERROR_OPEN_WIRE_PERIOD_ms (30000) |
Enumerations | |
enum | BS_STRING_PRECHARGE_PRESENT_e { BS_STRING_WITH_PRECHARGE , BS_STRING_WITHOUT_PRECHARGE } |
enum | BS_STRING_ID_e { BS_STRING0 = 0u , BS_STRING1 = 1u , BS_STRING2 = 2u , BS_STRING_MAX = 3u } |
Functions | |
FAS_STATIC_ASSERT ((BS_NR_OF_STRINGS<=(uint8_t) UINT8_MAX), "This code assumes BS_NR_OF_STRINGS fits into uint8_t") | |
Variables | |
BS_STRING_PRECHARGE_PRESENT_e | bs_stringsWithPrecharge [BS_NR_OF_STRINGS] |
Configuration of the battery system (e.g., number of battery modules, battery cells, temperature sensors)
SPDX-License-Identifier: BSD-3-Clause
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
We kindly request you to use one or more of the following phrases to refer to foxBMS in your hardware, software, documentation or advertising materials:
This files contains basic macros of the battery system in order to derive needed inputs in other parts of the software. These macros are all depended on the hardware.
Definition in file battery_system_cfg.h.
#define BS_BALANCING_DEFAULT_INACTIVE (true) |
Defines whether balancing shall be available or not.
Definition at line 251 of file battery_system_cfg.h.
#define BS_BALANCING_RESISTANCE_ohm (100.0) |
Value of the balancing resistors on the slave-board
Definition at line 134 of file battery_system_cfg.h.
#define BS_CHECK_CAN_TIMING (true) |
Defines whether CAN timing shall be evaluated or not.
Definition at line 243 of file battery_system_cfg.h.
#define BS_CHECK_FUSE_PLACED_IN_CHARGE_PATH (false) |
TODO.
Set to true if fuse in CHARGE path should be checked. This can only be done if one dedicated HV measurement is used to monitor voltage directly after the fuse. Then a voltage difference between V_bat and V_fuse indicates a tripped fuse.
V_bat +---—+ V_fuse Precharge/Charge+ contactor --—+—| FUSE |--—+---------—/ --------------— +---—+
Definition at line 323 of file battery_system_cfg.h.
#define BS_CHECK_FUSE_PLACED_IN_NORMAL_PATH (true) |
TODO.
Set to true if fuse in NORMAL path should be checked. This can only be done if one dedicated HV measurement is used to monitor the voltage directly after the fuse. Then a voltage difference between V_bat and V_fuse indicates a tripped fuse.
V_bat +---—+ V_fuse Precharge/Main+ contactor --—+—| FUSE |--—+---------—/ --------------— +---—+
Definition at line 310 of file battery_system_cfg.h.
#define BS_COULOMB_COUNTING_MEASUREMENT_RESPONSE_TIMEOUT_ms (2000u) |
Delay in ms after which it is considered the coulomb counting is not responding anymore.
Definition at line 185 of file battery_system_cfg.h.
#define BS_CS_THRESHOLD_NO_CURRENT_mA (200u) |
current sensor threshold for 0 current in mA as the sensor has a jitter.
Definition at line 284 of file battery_system_cfg.h.
#define BS_CURRENT_MEASUREMENT_RESPONSE_TIMEOUT_ms (200u) |
Delay in ms after which it is considered the current measurement is not responding anymore.
Definition at line 182 of file battery_system_cfg.h.
#define BS_CURRENT_SENSOR_PRESENT (false) |
Definition at line 172 of file battery_system_cfg.h.
#define BS_ENERGY_COUNTING_MEASUREMENT_RESPONSE_TIMEOUT_ms (2000u) |
Delay in ms after which it is considered the energy counting is not responding anymore.
Definition at line 188 of file battery_system_cfg.h.
#define BS_IGNORE_INTERLOCK_FEEDBACK (false) |
Define if interlock feedback should be discarded or not.
True: interlock feedback will be discarded False: interlock feedback will evaluated
Definition at line 235 of file battery_system_cfg.h.
#define BS_MAIN_CONTACTORS_MAXIMUM_BREAK_CURRENT_mA (500000) |
Maximum break current of main contactors.
The contacts of the main contactors can be welded, when attempting to interrupt the current flow while a current higher than the maximum break current of the contactor is flowing.
Thus, the contactors will not be opened if the floating current is above this value. The fuse should trigger to interrupt current flows above this value.
Definition at line 202 of file battery_system_cfg.h.
#define BS_MAIN_FUSE_MAXIMUM_TRIGGER_DURATION_ms (30000u) |
Maximum fuse trigger duration.
If the current is above BS_MAIN_CONTACTORS_MAXIMUM_BREAK_CURRENT_mA, the BMS state machine will wait this time until the fuse triggers so that the current will be interrupted by the fuse and not the contactors. After this time, the BMS will nevertheless try to open the contactors.
Definition at line 212 of file battery_system_cfg.h.
#define BS_MAX_VOLTAGE_DROP_OVER_FUSE_mV (500) |
Maximum voltage drop over fuse.
If the measured voltage difference between battery voltage voltage after fuse is larger than this value. It can be concluded, that the fuse has tripped. The voltage difference can be estimated by the maximum current and the resistance. For a Cooper Bussmann 1000A fuse the voltage drop can be estimated to: I_max = 1000A and P_loss = 206W -> voltage drop at 1000A roughly 206mV -> select 500mV because of measurement inaccuracies
Definition at line 297 of file battery_system_cfg.h.
#define BS_MAXIMUM_PACK_CURRENT_mA (10000u * BS_NR_OF_STRINGS) |
Maximum pack current limit in mA that is used in the SOA module to check for pack overcurrent.
When maximum safety limit (MSL) is violated, error state is requested and contactors will open.
Definition at line 228 of file battery_system_cfg.h.
#define BS_MAXIMUM_STRING_CURRENT_mA (10000u) |
Maximum string current limit in mA that is used in the SOA module to check for string overcurrent.
When maximum safety limit (MSL) is violated, error state is requested and contactors will open.
Definition at line 220 of file battery_system_cfg.h.
#define BS_NR_OF_CELL_BLOCKS_PER_MODULE (18u) |
number of cells per module
number of cells per module, where parallel cells are counted as one cell block. For details see Naming Conventions.
Definition at line 122 of file battery_system_cfg.h.
#define BS_NR_OF_CELL_BLOCKS_PER_STRING (BS_NR_OF_MODULES_PER_STRING * BS_NR_OF_CELL_BLOCKS_PER_MODULE) |
number of battery cells in the system
Definition at line 159 of file battery_system_cfg.h.
#define BS_NR_OF_CONTACTORS ((2u * BS_NR_OF_STRINGS) + BS_NR_OF_CONTACTORS_OUTSIDE_STRINGS) |
Total number of contactors in system:
Definition at line 266 of file battery_system_cfg.h.
#define BS_NR_OF_CONTACTORS_OUTSIDE_STRINGS (1u) |
Number of contactors in addition to string contactors (e.g., PRECHARGE).
Definition at line 261 of file battery_system_cfg.h.
#define BS_NR_OF_GPAS_PER_MODULE (2u) |
Defines the number of GPA inputs.
Definition at line 146 of file battery_system_cfg.h.
#define BS_NR_OF_GPIOS_PER_MODULE (10u) |
Defines the number of GPIOs.
Definition at line 140 of file battery_system_cfg.h.
#define BS_NR_OF_MODULES_PER_STRING (1u) |
number of modules in a string
For details see Naming Conventions.
Definition at line 112 of file battery_system_cfg.h.
#define BS_NR_OF_PARALLEL_CELLS_PER_MODULE (1u) |
number of battery cells in a parallel cell connection per battery module
For details see Naming Conventions.
Definition at line 131 of file battery_system_cfg.h.
#define BS_NR_OF_STRINGS (1u) |
Number of parallel strings in the battery pack.
For details see Naming Conventions. Implementation detail: The number of parallel strings cannot exceed GEN_REPEAT_MAXIMUM_REPETITIONS unless the implementation of the repetition macro is adapted.
Definition at line 99 of file battery_system_cfg.h.
#define BS_NR_OF_TEMP_SENSORS (BS_NR_OF_TEMP_SENSORS_PER_STRING * BS_NR_OF_STRINGS) |
number of temperature sensors in the battery system
Definition at line 163 of file battery_system_cfg.h.
#define BS_NR_OF_TEMP_SENSORS_PER_MODULE (8u) |
number of temperature sensors per battery module
Definition at line 152 of file battery_system_cfg.h.
#define BS_NR_OF_TEMP_SENSORS_PER_STRING (BS_NR_OF_MODULES_PER_STRING * BS_NR_OF_TEMP_SENSORS_PER_MODULE) |
number of temperature sensors in a string
Definition at line 161 of file battery_system_cfg.h.
#define BS_NR_OF_VOLTAGES_FROM_CURRENT_SENSOR (3u) |
number of high voltage inputs measured by current sensors (like IVT-MOD)
Definition at line 258 of file battery_system_cfg.h.
#define BS_POSITIVE_DISCHARGE_CURRENT (true) |
Define if discharge current is seen as positive or negative
Definition at line 88 of file battery_system_cfg.h.
#define BS_RELAXATION_PERIOD_10ms (60000u) |
Wait time in 10ms before battery system is at rest. Balancing for example only starts if battery system is at rest.
Definition at line 278 of file battery_system_cfg.h.
#define BS_REST_CURRENT_mA (200) |
current threshold for determining rest state of battery. If absolute current is below this limit value the battery is resting.
Definition at line 272 of file battery_system_cfg.h.
#define CURRENT_SENSOR_ISABELLENHUETTE_CYCLIC |
defines if the Isabellenhuette current sensor is used in cyclic or triggered mode
Definition at line 178 of file battery_system_cfg.h.
enum BS_STRING_ID_e |
Symbolic identifiers for strings.
Enumerator | |
---|---|
BS_STRING0 | |
BS_STRING1 | |
BS_STRING2 | |
BS_STRING_MAX |
Definition at line 80 of file battery_system_cfg.h.
Symbolic identifiers for strings with precharge
Enumerator | |
---|---|
BS_STRING_WITH_PRECHARGE | |
BS_STRING_WITHOUT_PRECHARGE |
Definition at line 74 of file battery_system_cfg.h.
FAS_STATIC_ASSERT | ( | (BS_NR_OF_STRINGS<=(uint8_t) UINT8_MAX) | , |
"This code assumes BS_NR_OF_STRINGS fits into uint8_t" | |||
) |
|
extern |
Defines whether a string can be used to precharge or not
Definition at line 65 of file battery_system_cfg.c.