Software Design Overview
The software is responsible for
Periodically measuring the battery pack
If the pack is unsafe, the shutdown sequence will run
Balancing battery cells to keep the pack safe
Periodically sending data to Telemetry
Software Flow
Software Stack
Board Support Package (BSP)
The BSP interfaces with peripherals and implements interrupt handlers.
Drivers
Drivers interface with external hardware. The software for the BPS has drivers for:
Real Time Operating System (RTOS)
The RTOS uses a scheduler to run multiple threads. Running these threads creates “pseudo-concurrency”.
The RTOS ensures that safety critical tasks will not be blocked by non-safety critical tasks.
We use custom RTOS wrappers to allow easy porting. Currently, we are wrapping for Micrium uC/OS-III RTOS.
Applications (Apps)
The BPS Apps consist of threads/tasks and functions that interpret measurements. The following tasks make up the BPS’ engine and are shown from highest to lowest priority:
Fault State
Descriptions of what each task does can be found in the Tasks section.