Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleCAN Signals

TX:

  • cc_info:

    • Target Velocity (Cruise Control Speed)

    • Drive State (D/N/R)

    • Cruise Control (Boolean)

    • Hazard Enabled (Boolean)

  • cc_pedal:

    • Throttle output (Mapped from 1 - 0) Float

    • Brake output (Boolean)

  • cc_steering:

    • Input CC (Cruise control toggle/decrease/increase)

    • Input Lights (Left/Right lights)

  • cc_regen:

    • Regen Percent (Calculated with battery data to determine max regen permitted)

RX:

  • battery_status (BMS)

    • Fault

    • Aux Battery Voltage

    • AFE Status

  • battery_info (BMS)

    • Max Cell Voltage

    • Min Cell Voltage

  • battery_vt (BMS)

    • Pack Voltage

    • Pack Current

    • Pack Temperature

    • Battery Percentage

  • pd_status (Power Distribution)

    • Power State

    • PD Fault Bitset

    • BPS Persisted Fault

  • motor_controller_vc (MCI)

    • Right/Left motor voltage

    • Right/left motor current

  • motor_velocity (MCI)

    • Right/left motor velocity

    • One pedal brake lights

  • mc_stauts (MCI)

    • Left/Right errors + limit messages

Centre Console Functionality

Module: cc_buttons

This module gets all button values. Buttons should be read in the fast cycle. They are connected to the pca9555 gpio expander, and must be read over i2c. This read function should send notifications to the requisite tasks.

...

Module: pedal

Module: steering

Drive FSM

The Drive FSM handles the control of drive state of the car. It receives the drive buttons (Neutral (N), Drive (D), Reverse(R)) and runs the preparations and checks needed to change the drive state of the car, and communicates this value with the motor controllers.

...

Expand
titlePower State FSM - Moved to Power Distribution

Power FSM

The power FSM governs the power state of the car. There are 4 main States:

  • POWER_OFF

  • POWER_MAIN

  • POWER_AUX

  • POWER_FAULT

For the main power states however, when we are transitioning there is a sequence of checks we run to make sure that the system is in a correct state to allow a transition. These steps typically involve sending a CAN message to another system, waiting for it to do its checks and balances and then receiving an acknowledgement (ACK) message. If these checks fail, we will transition back to the normal power state.

The sequence model for these states is along the following lines:

  • All steps must be executed successfully before a transition can take place

  • If a step fails, we should handle the error and remain in the current state

The diagram is shown below, hexagons representing the sequence steps. The states themselves have no real functionality in their output functions.

Power Aux Sequence*

  1. Confirm a valid aux status has been received from Power Select Info message

    1. Correct status bits should be set in the message

    2. No fault bits should be set

  2. Transmit TURN_ON_EVERYTHING to Power Distribution and receive BPS heartbeat

    1. Once Power Distribution has turned everything on, we wait for BMS to power up and send heartbeat message, indicating that the power on was successful

*From Power Aux, if a fault condition is detected (ie invalid power select status message) we should return to off

Power main sequence

  1. Confirm Aux Status

    1. Confirm no issues with aux supply at Power Select

    2. Check power select message for valid aux status, and no faults

  2. Power on boards

    1. Tell Power distribution to power on all outputs

  3. Confirm battery status

    1. Wait for BMS to start up and reply with a Heartbeat and status message

    2. This indicates initial state is all good

  4. Close Relays

    1. Transmit message to BMS to close relays and switch to main power

    2. Transmits to BMS to close relays

  5. Confirm DCDC

    1. Check at power select that main power (DCDC) is now in use

  6. Power Main Complete

    1. Sends “ready to drive” to MCI

    2. Start BPS watchdog

Fault

  • This state covers a BPS fault during operation. It occurs if we receive a message from BMS saying that we have a fault condition

    • If a message is received saying that a fault has occurred, then we can attempt to handle the specific fault

    • Car must be power-cycled and then put into drive to clear the persisted fault

    • BPS indicator is on during this time