16.4. Simple Vehicle State Machine - SimpVsm

Id

SimpVsm

Version

main

Title

Simple Vehicle State Machine

System

Vehicle State

Document Type

Application Software Component Specification Preview

16.4.1. Overview

The Simple Vehicle State Machine (SimpVsm) manages the overall state of the vehicle, transitioning between different states such as Sleep, Idle, Ready, and Maintenance based on various input conditions. It coordinates the power state of vehicle subsystems.

16.4.2. Functions

Title

Description

1

State Management

Manages transitions between the main vehicle states of Sleep, Idle, Ready and Maintenance based on input conditions from vehicle subsystems and driver inputs.

2

Substate Management

Manages transitions between substates within the main Sleep state, such as Fully Sleep and Invisible Awake, to enable progressive wake up and sleep of vehicle systems.

3

Timer Management

Manages various timers that control state transitions, such as the Sleep Timer, Driver Absence Timer, Park Timer and Low Battery Timer.

4

Initialization

Determines the initial vehicle state on power up based on the reason for the last shutdown and input conditions.

16.4.3. Ports

Id

Direction

Data Type

Dimensions

Unit

Description

Keywords

1

BrkPedlPsd

Incoming

boolean

[1]

Brake Pedal Pressed

2

BrkPedlPsdVld

Incoming

boolean

[1]

Brake Pedal Pressed Valid

3

HstHwRdy

Incoming

boolean

[1]

Host Hardware Ready

4

ShiftShiftPosnAcv

Incoming

boolean

[1]

Shift Shift Position Active

5

GearShiftSt

Incoming

Enum: CmnenaGearSt

[1]

Gear Shift State

6

GearShiftStVld

Incoming

boolean

[1]

Gear Shift State Valid

7

ChrgPlugInp

Incoming

boolean

[1]

Charging Plug Input

8

ChrgPlugInpVld

Incoming

boolean

[1]

Charging Plug Input Valid

9

VehSpd

Incoming

single

[1]

kmh

Vehicle Speed

10

VehSpdVld

Incoming

boolean

[1]

Vehicle Speed Valid

11

FullRcvryMod

Incoming

boolean

[1]

Full Recovery Mode

12

FullRcvryModVld

Incoming

boolean

[1]

Full Recovery Mode Valid

13

DoorOpenSt

Incoming

boolean

[1]

Door Open State

14

DrvrDoorTchPnt

Incoming

boolean

[1]

Driver Door Touch Point

15

HmiWakeUp

Incoming

boolean

[1]

Hmi Wake Up

16

HmiWakeUpVld

Incoming

boolean

[1]

Hmi Wake Up Valid

17

DrvrSeatOccpd

Incoming

boolean

[1]

Driver Seat Occupied

18

OtaUpdReq

Incoming

Enum: CmnenaVehSt

[1]

Ota Update Request

19

CenLockWakeReq

Incoming

boolean

[1]

Central Lock Wake Request

20

DoorOpenStVld

Incoming

boolean

[1]

Door Open State Valid

21

DrvrDoorTchPntVld

Incoming

boolean

[1]

Driver Door Touch Point Valid

22

DrvrSeatOccpdVld

Incoming

boolean

[1]

Driver Seat Occupied Valid

23

OtaUpdReqVld

Incoming

boolean

[1]

Ota Update Request Valid

24

CenLockWakeReqVld

Incoming

boolean

[1]

Central Lock Wake Request Valid

25

MntnReq

Incoming

Enum: CmnenaVehSt

[1]

Maintenance Request

26

MntnReqVld

Incoming

boolean

[1]

Maintenance Request Valid

27

FlatBadRcvryMod

Incoming

boolean

[1]

Flat Bad Recovery Mode

28

FlatBadRcvryModVld

Incoming

boolean

[1]

Flat Bad Recovery Mode Valid

29

LvTopUp

Incoming

boolean

[1]

Lv Top Up

30

LvTopUpVld

Incoming

boolean

[1]

Lv Top Up Valid

31

ChReq

Incoming

boolean

[1]

Charge Request

32

ChReqVld

Incoming

boolean

[1]

Charge Request Valid

33

ThermCdnReq

Incoming

boolean

[1]

Thermal Condition Request

34

ThermCdnReqVld

Incoming

boolean

[1]

Thermal Condition Request Valid

35

HvBatStorgReq

Incoming

boolean

[1]

Hv Battery Storage Request

36

HvBatStorgReqVld

Incoming

boolean

[1]

Hv Battery Storage Request Valid

37

VehAlrmReq

Incoming

boolean

[1]

Vehicle Alarm Request

38

VehAlrmReqVld

Incoming

boolean

[1]

Vehicle Alarm Request Valid

39

HzrdReq

Incoming

boolean

[1]

Hazard Request

40

HzrdReqVld

Incoming

boolean

[1]

Hazard Request Valid

41

HvBatPrecdnReq

Incoming

boolean

[1]

Hv Battery Precondition Request

42

HvBatPrecdnReqVld

Incoming

boolean

[1]

Hv Battery Precondition Request Valid

43

HvRdyVld

Incoming

boolean

[1]

Hv Ready Valid

44

LvRdyVld

Incoming

boolean

[1]

Lv Ready Valid

45

ChrgRdyVld

Incoming

boolean

[1]

Charging Ready Valid

46

DtRdyVld

Incoming

boolean

[1]

Drivetrain Ready Valid

47

BrkgRdyVld

Incoming

boolean

[1]

Braking Ready Valid

48

SteerRdyVld

Incoming

boolean

[1]

Steering Ready Valid

49

ThermRdyVld

Incoming

boolean

[1]

Thermal Ready Valid

50

HvRdy

Incoming

boolean

[1]

Hv Ready

51

LvRdy

Incoming

boolean

[1]

Lv Ready

52

ChrgRdy

Incoming

boolean

[1]

Charging Ready

53

DtRdy

Incoming

boolean

[1]

Drivetrain Ready

54

BrkgRdy

Incoming

boolean

[1]

Braking Ready

55

SteerRdy

Incoming

boolean

[1]

Steering Ready

56

ThermRdy

Incoming

boolean

[1]

Thermal Ready

57

ImobSt

Incoming

Enum: CmnenaLockSt

[1]

Immobilizer State

58

ImobStVld

Incoming

boolean

[1]

Immobilizer State Valid

59

VehLockSt

Incoming

Enum: CmnenaLockSt

[1]

Vehicle Lock State

60

VehLockStVld

Incoming

boolean

[1]

Vehicle Lock State Valid

61

LvFlatBat

Incoming

boolean

[1]

Lv Flat Battery

62

LvFlatBatVld

Incoming

boolean

[1]

Lv Flat Battery Valid

63

LvChrg

Incoming

boolean

[1]

Lv Charging

64

LvChrgVld

Incoming

boolean

[1]

Lv Charging Valid

65

BdShutDwnCorr

Incoming

boolean

[1]

Board Shut Down Correct

66

BdShutDwnCorrVld

Incoming

boolean

[1]

Board Shut Down Correct Valid

67

CrashVld

Incoming

boolean

[1]

Crash Valid

68

Crash

Incoming

boolean

[1]

Crash

69

DrvrAbscTmr

Outgoing

boolean

[1]

Driver Absence Timer

70

ParkTmr

Outgoing

boolean

[1]

Park Timer

71

SlpTmr

Outgoing

boolean

[1]

Sleep Timer

72

LoBatTmr

Outgoing

boolean

[1]

Low Battery Timer

73

St

Outgoing

Enum: CmnenaVehSt

[1]

State

74

Awk2Rdy

Outgoing

boolean

[1]

Awake2 Ready

75

Rdy2Awk

Outgoing

boolean

[1]

Ready2 Awake

76

Rdy2AwkSpdCdn

Outgoing

boolean

[1]

Ready2 Awake Speed Condition

77

Slp2Awk

Outgoing

boolean

[1]

Sleep2 Awake

78

Slp2Mntn

Outgoing

boolean

[1]

Sleep2 Maintenance

79

Mntn2FullSlp

Outgoing

boolean

[1]

Maintenance2 Full Sleep

80

Mntn2InvblAwk

Outgoing

boolean

[1]

Maintenance2 Invisible Awake

81

Awk2Slp

Outgoing

boolean

[1]

Awake2 Sleep

82

Awk2Mntn

Outgoing

boolean

[1]

Awake2 Maintenance

83

Mntn2Awk

Outgoing

boolean

[1]

Maintenance2 Awake

84

FullSlp2InvblAwk

Outgoing

boolean

[1]

Full Sleep2 Invisible Awake

85

InvblAwk2FullSlp

Outgoing

boolean

[1]

Invisible Awake2 Full Sleep

86

Rdy2Slp

Outgoing

boolean

[1]

Ready2 Sleep

87

AllSysRdyVld

Outgoing

boolean

[1]

All System Ready Valid

88

AllSysRdy

Outgoing

boolean

[1]

All System Ready

89

LoBatTmrCdn

Outgoing

boolean

[1]

Low Battery Timer Condition

90

IniCdnDbg

Outgoing

uint8

[1]

Initial Condition Debug

16.4.4. Parameters

Id

Data Type

Dimensions

Range

Unit

Description

Keywords

1

SmlvsmAwkTmr

single

[1,1]

Min: 10, Max: 1000000

sec

Wait time in Awake before transition to Sleep

Smlvsm Awake Timer

2

SmlvsmAwkToRdyDly

single

[1,1]

Min: 0, Max: 60

sec

Delay for Awake to Ready conditions. Set 0 to disable

Smlvsm Awake To Ready Delay

3

SmlvsmAwkToSlpChk

boolean

[1,6]

Min: 0, Max: 1

Disable check trigger for Awake2Sleep

Smlvsm Awake To Sleep Check

4

SmlvsmAwkToSlpDly

single

[1,1]

Min: 0, Max: 60

sec

Delay for Awake to Sleep conditions. Set 0 to disable

Smlvsm Awake To Sleep Delay

5

SmlvsmBatStorgVldIgn

boolean

[1,1]

Min: 0, Max: 1

Switch off validity check of HV Battery Storage for transition to fully sleep

Smlvsm Battery Storage Valid Ignore

6

SmlvsmBdIninFirst

boolean

[1,1]

Min: 0, Max: 1

IF SimpleVSM_BoardInitFirst is 1, THEN VSM initialization based on board shut down status gets first priority

Smlvsm Board Initialization First

7

SmlvsmBdShutDwnStsOvrd

uint8

[1,1]

Min: 0, Max: 4

Board Shutdown status override: 0 - no override,

Smlvsm Board Shut Down Status Override

8

SmlvsmChkDi

boolean

[1,7]

Min: 0, Max: 1

Disable check for ready to drive: 1st - HV, 2nd - LV, 3rd - Steering, 4th - Braking, 5th - Charging, 6th - Drivetraine, 7th - Thermal

Smlvsm Check Disable

9

SmlvsmDrvrAbsTmr

single

[1,1]

Min: 10, Max: 1000000

sec

Wait time in Ready before transition to awake when the driver presence is not detected

Smlvsm Driver Abs Timer

10

SmlvsmDrvrSeatSnsrIgn

boolean

[1,1]

Min: 0, Max: 1

1 - Ignore driver seat mat sensor check, if it is not presented, 0 - check

Smlvsm Driver Seat Sensor Ignore

11

SmlvsmFullSlpToInvblAwkDly

single

[1,1]

Min: 0, Max: 60

sec

Delay for FullySleep to InvAwake conditions. Set 0 to disable

Smlvsm Full Sleep To Invisible Awake Delay

12

SmlvsmHvBatPrecdnReqVldIgn

boolean

[1,1]

Min: 0, Max: 1

Switch off validity check of HVBPC Request for transition to fully sleep

Smlvsm Hv Battery Precondition Request Valid Ignore

13

SmlvsmHwChkIgn

boolean

[1,1]

Min: 0, Max: 1

Ignore DCU HW Health Status in transition Ready <–> Awake

Smlvsm Hardware Check Ignore

14

SmlvsmHzrdReqVldIgn

boolean

[1,1]

Min: 0, Max: 1

Switch off validity check of Hazard Request for transition to fully sleep

Smlvsm Hazard Request Valid Ignore

15

SmlvsmImobIninTiout

single

[1,1]

Min: 0, Max:

msec

Timeout for receiving message from vehicle immobilizer module

Smlvsm Immobilizer Initialization Timeout

16

SmlvsmImobStIgn

boolean

[1,1]

Min: 0, Max: 1

Switching off checking of Immobilizer state

Smlvsm Immobilizer State Ignore

17

SmlvsmIninBdTiout

single

[1,1]

Min: 0, Max:

msec

Timeout for receiving information about board shut down status

Smlvsm Initialization Board Timeout

18

SmlvsmIninCrashTiout

single

[1,1]

Min: 10, Max:

msec

Timeout for receiving Crash Event

Smlvsm Initialization Crash Timeout

19

SmlvsmIninRdyTiout

single

[1,1]

Min: 10, Max:

msec

Timeout for receiving all messages from the mandatory systems

Smlvsm Initialization Ready Timeout

20

SmlvsmIninTiout

single

[1,1]

Min: 0, Max:

msec

Timeout for NA state holding during initialisation

Smlvsm Initialization Timeout

21

SmlvsmIninVehSpdTi

single

[1,1]

Min: 0, Max:

msec

Timeout for receiving speed msg

Smlvsm Initialization Vehicle Speed Time

22

SmlvsmInpLockDftVlddSt

uint8

[1,1]

Min: 0, Max: 3

Input Lock Default Validated State (in case unavailable): 0 - unlocked, 1 - locked, 2 - Err, 3 - NA

Smlvsm Input Lock Default Validated State

23

SmlvsmInvblAwkToFullSlpDly

single

[1,1]

Min: 0, Max: 60

sec

Delay for InvAwake to FullySleep conditions. Set 0 to disable

Smlvsm Invisible Awake To Full Sleep Delay

24

SmlvsmIsInpVldd

boolean

[1,1]

Min: 0, Max: 1

Is Input Validated: Immo and Lock states

Smlvsm Is Input Validated

25

SmlvsmLoBatTmr

single

[1,1]

Min: 10, Max: 1000000

sec

Time allowed in Awake while the LV battery is in a Low state and is not charging

Smlvsm Low Battery Timer

26

SmlvsmLvTopUpVldIgn

boolean

[1,1]

Min: 0, Max: 1

Switch off validity check of LV Top Up for transition to fully sleep

Smlvsm Lv Top Up Valid Ignore

27

SmlvsmOldWrmUpTmr

boolean

[1,1]

Min: 0, Max: 1

Set true to use lecagy mode of WarmUpTimer

Smlvsm Old Warm Up Timer

28

SmlvsmParkTmr

single

[1,1]

Min: 1, Max: 1000000

sec

Time when vehicle shall go to Awake from Ready

Smlvsm Park Timer

29

SmlvsmRdyToAwkDly

single

[1,1]

Min: 0, Max: 60

sec

Delay for Ready to Awake conditions. Set 0 to disable

Smlvsm Ready To Awake Delay

30

SmlvsmRdyToSlpDi

boolean

[1,1]

Min: 0, Max: 1

Disable ready to sleep transition

Smlvsm Ready To Sleep Disable

31

SmlvsmRdyToSlpDly

single

[1,1]

Min: 0, Max: 60

sec

Delay for Ready to Sleep conditions. Set 0 to disable

Smlvsm Ready To Sleep Delay

32

SmlvsmSlpToAwkChk

boolean

[1,8]

Min: 0, Max: 1

Disable check trigger for Sleep2Awake

Smlvsm Sleep To Awake Check

33

SmlvsmSlpToAwkDly

single

[1,1]

Min: 0, Max: 60

sec

Delay for Sleep to Awake conditions. Set 0 to disable

Smlvsm Sleep To Awake Delay

34

SmlvsmThermCdnVldIgn

boolean

[1,1]

Min: 0, Max: 1

Switch off validity check of ThermalPrecond for transition to fully sleep

Smlvsm Thermal Condition Valid Ignore

35

SmlvsmUpdMntnChkToSlpDi

boolean

[1,1]

Min: 0, Max: 1

1 - disable OTA and maintenance requests check for Awake2Sleep transition

Smlvsm Update Maintenance Check To Sleep Disable

36

SmlvsmUseDoorStForSlpTmr

boolean

[1,1]

Min: 0, Max: 1

if false VSM doesn’t check the Door State to go to sleep

Smlvsm Use Door State For Sleep Timer

37

SmlvsmVehAlrmVldIgn

boolean

[1,1]

Min: 0, Max: 1

Switch off validity check of Vehicle Alarm Request for transition to fully sleep

Smlvsm Vehicle Alarm Valid Ignore

38

SmlvsmVehSpdThd

uint8

[1,1]

Min: 0, Max: 255

km/h

Vehicle speed threshold used for detecting of movement

Smlvsm Vehicle Speed Threshold

39

SmlvsmWrmUpFlg

boolean

[1,1]

Min: 0, Max: 1

WarmUpFlag value triggering the WarmUpTimer

Smlvsm Warm Up Flag

40

SmlvsmWrmUpFlgFromRdy

boolean

[1,1]

Min: 0, Max: 1

WarmUpFlag value definition after transition from Ready state

Smlvsm Warm Up Flag From Ready

41

SmlvsmWrmUpTmr

single

[1,1]

Min: 1, Max:

sec

Time during that vehicle shall stay in Invisible Awake submode before transition to Fully Sleep

Smlvsm Warm Up Timer

42

SmlvsmInpImobDftVlddSt

uint8

[1,1]

Min: 0, Max: 3

Input Immo Default Validated State (in case unavailable): 0 - unlocked, 1 - locked, 2 - Err, 3 - NA

Smlvsm Input Immobilizer Default Validated State