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

../_images/software-flow.jpg

Software Stack

../_images/software-stack.jpg

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:

  • CAN

  • EEPROM

  • LTC6811 (Voltage and Temperature)

  • LTC2315 (Amperes)

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:

Descriptions of what each task does can be found in the Tasks section.