This is the multi-page printable view of this section. Click here to print.
CtrldDisShtdn
1 - Controller_Disable_MDD
Module -- Controlled Disable Shutdown
High-Level Description
The Controlled Disable Damping Shutdown method is used for torque sensor failures. When the torque sensor fails, an output torque is computed based on motor velocity to reduce the amount of “handwheel kick” perceived by the driver.
Figures
Component Diagram
Module Inputs and Outputs
For details on module input / output variable, refer to the Data Dictionary for the application. Input / output variable names are listed here for reference.
Module Inputs (Global Variable Name) | Module Outputs (Global Variable Name) |
---|---|
SumLimTrqCmd_MtrNm_f32 | CntDisMtrTrqCmdCRF_MtrNm_f32 |
CRFMtrVel_MtrRadpS_f32 | CtrldDmpCmp_Cnt_lgc |
DiagStsF2Active_Cnt_lgc | CntDisMtrTrqCmdMRF_MtrNm_f32 |
AssistAssyPolarity_Cnt_s08 | SysC_CRFMtrTrqCmd |
SysC_MRFMtrTrqCmd |
Module Internal Variables
This section identifies the name, range and resolutions for module specific data created by this module. If there are no range restrictions on the variable, the term “FULL” is placed into the table for legal range.
Variable Name | Resolution | Legal Range (min) | Legal Range (max) | Software Segment |
---|---|---|---|---|
CntrlDampVelTrq_MtrNm_D_f32 | Single Precision Float | -2200 | 2200 | CTRLDDISSHTDN_START_SEC_VAR_CLEARED_32 |
CntrlDampElpsdTime_mS_D_u16 | 1 | FULL | FULL | CTRLDDISSHTDN_START_SEC_VAR_CLEARED_16 |
LastF2Fault_mS_M_u32 | 1 | 0 | 1000 | CTRLDDISSHTDN_START_SEC_VAR_CLEARED_32 |
CntrlDampTrq_MtrNm_D_f32 | Single Precision Float | -5.75 | 5.75 | CTRLDDISSHTDN_START_SEC_VAR_CLEARED_32 |
User defined typedef definition/declaration
This section documents any user types uniquely used for the module.
Variable Name | Typedef Name | Storage Type | Safety Critical Classification |
---|---|---|---|
None |
Constant Data Dictionary
Calibration Constants
This section lists the calibrations used by the module. For details on calibration constants, refer to the Data Dictionary for the application.
Constant Name |
---|
k_F2Damping_MtrNmpRadpS_f32 |
k_CtrlDpVelThr_MtrRadpS_f32 |
k_CntrlDmpRampEnd_Uls_u8p8 |
k_MaxCtrlDmpLimit_MtrNm_f32 |
k_CtrlDmpTmrBkptOne_mS_u16 |
k_CtrlDmpTmrBkptTwo_mS_u16 |
Program(fixed) Constants
Embedded Constants
All embedded constants whose values are provided in Eng units will be evaluated to the equivalent counts by using the FPM_InitFixedPoint_m() macro within the #define statement.
Local
Constant Name | Resolution | Value |
---|---|---|
D_CNTRLDMPTMRSZ_CNT_U16 | 1 | 2 |
D_CTRLDMPRES_MTRNM_F32 | Single Precision Floating Point | 0.007813 |
Global
This section lists the global constants used by the module. For details on global constants, refer to the Data Dictionary for the application.
Constant Name |
---|
D_ZERO_ULS_F32 |
Module specific Lookup Tables Constants
Constant Name | Resolution | Value | Software Segment |
---|---|---|---|
None | |||
Software Module Implementation
Initialization Functions
None
Periodic Functions
Per: CntrlDisableShutdown_Per1
Design Rationale
This function is used to damp out handwheel “kick” in the event of a torque sensor fault (or any F2 fault). The design is such that either when the motor velocity is low OR when a time based multiplier has expired, the system will realize the action is complete and state changes can be made (states and modes).
The design takes into account that F2 type faults could be recoverable, so the “reset” feature is built into the design
Program Flow Start
Rte_Call_CtrldDisShtdn_Per1_CP0_CheckpointReached()
Store Module Inputs to Local copies
Local Variables :
CRFMtrVelSign_T_f32
AbsCRFMtrVel_T_MtrRadpS_f32
CntrlDamp_VelTrq_T_f32
ElapsedTime_mS_T_u16
CntrlDmpMult_Uls_T_f32
CntrlDampComp_Cnt_T_lgc
DiagStsF2Active_Cnt_T_lgc
CntrlDamp_MtrNm_T_f32
AssistAssyPolarity_Cnt_T_s08
MRFMtrTrqCmd_MtrNm_T_f32
SysState_Cnt_T_Enum as Rte_ModeType_StaMd_Mode
SysState_Cnt_T_Enum = Rte_Mode_SystemState_Mode()
t_CtrlDmpTmrX_T_u16 [D_CNTRLDMPTMRSZ_CNT_U16] = { k_CtrlDmpTmrBkptOne_mS_f32, k_CtrlDmpTmrBkptTwo_mS_32}
t_CtrlDmpTmrY_T_u8P8 [D_CNTRLDMPTMRSZ_CNT_U16] = { FPM_InitFixedPoint_m(1.0,u8p8_T), k_CntrlDmpRampEnd_Uls_u8p8}
SumLimTrqCmd_MtrNm_T_f32 = Rte_IRead_CtrldDisShtdn_Per1_SumLimTrqCmd_MtrNm_f32()
CRFMtrVel_MtrRadpS_T_f32 = Rte_Iread_CtrldDisShtdn_Per1_CRFMtrVel_MtrRadpS_f32()
DiagStatus_Cnt_T_b32 = Rte_Iread_CtrldDisShtdn_Per1_DiagStsF2Active_Cnt_lgc()
AssistAssyPolarity_Cnt_T_s08 = Rte_IRead_CtrldDisShtdn_Per1_AssistAssyPolarity_Cnt_s08()
Compute Damping Torque
Controlled Damping Factor
Switch Output Control
Store Local copy of outputs into Module Outputs
Rte_Iwrite_CtrldDisShtdn_Per1_CntDisMtrTrqCmdCRF_MtrNm_f32(CRFMtrTrqCmd_MtrNm_T_f32)
Rte_Iwrite_CtrldDisShtdn_Per1_CtrldDmpStsCmp_Cnt_lgc(CntrlDampComp_Cnt_T_lgc)
Rte_IWrite_CtrldDisShtdn_Per1_CntDisMtrTrqCmdMRF_MtrNm_f32(MRFMtrTrqCmd_MtrNm_T_f32)
Rte_IWrite_CtrldDisShtdn_Per1_SysC_CRFMtrTrqCmd_MtrNm_f32(CRFMtrTrqCmd_MtrNm_T_f32)
Rte_IWrite_CtrldDisShtdn_Per1_SysC_MRFMtrTrqCmd_MtrNm_f32(MRFMtrTrqCmd_MtrNm_T_f32)
Program Flow End
Rte_Call_CtrldDisShtdn_Per1_CP1_CheckpointReached()
Fault Recovery Functions
None
Shutdown Functions
None
Interrupt Functions
None
Serial Communication Functions
None
Local Function/Macro Definitions
None
Execution Requirements
Execution Sequence of the Module
Execution Rates for sub-modules called by the Scheduler
This table serves as reference for the Scheduler design
Function Name | Task List | Calling Frequency | System State(s) in which the function is called |
---|---|---|---|
CntrlDisableShutdown_Per1 | 2ms | WARMINIT, OPERATE, DISABLE |
Execution Requirements for Serial Communication Functions
Function Name | Sub-Module called by (Serial Comm Function Name) |
---|---|
None |
Memory Map Definition Requirements
Sub Modules (Functions)
This table identifies the software segments for functions identified in this module.
Name of Sub Module | Software Segment |
---|---|
CntrlDisableShutdown__Per1 | RTE_START_SEC_AP_CTRLDDISSHTDN_APPL_CODE |
Local Functions
This table identifies the software segments for local functions identified in this module.
Name of Sub Module | Software Segment |
---|---|
None |
Known Issues / Limitations With Design
INLINE functions in GlobalMacro.h are not unit tested
Revision Control Log
Item # | Rev # | Change Description | Date | Author Initials |
---|---|---|---|---|
1 | 1.0 | Initial release | 08Dec11 | M. Story |
2 | 2.0 | Correcting values in t_CtrlDmpTmrY_T_u8P8 | 19Jan12 | M. Story |
3 | 3.0 | Correcting values in t_CtrlDmpTmrY_T_u8P8 using FPM_InitFixedPoint_m | 19Jan12 | M. Story |
4 | 4.0 | Corrected misspelled variable names. | 24Jan12 | M. Story |
5 | 5.0 | Updates made as per FDD SF26 Ver002 | 14May12 | NRAR |
6 | 6.0 | Anom 3252 fix and Mode port added to make Trq zero if not in OPERATE State | 16 May 12 | NRAR |
7 | 7.0 | Updated to SF-26 v003 | 7-Jun-12 | OT |
8 | 8.0 | Added watchdog checkpoints. | 16-Sept-12 | B WL |
9 | 9.0 | Corrected Internal variable software segment type | 19-Sep-12 | SSK |
10 | 10 | Corrected for Watchdog naming error | 24-Sep-12 | Selva |
11 | 11 | Redundant storage of CRFMtrTrqCmd | 04-Oct-12 | NRAR |
12 | 12 | Redundant storage of MRFMtrTrqCmd | 12-Nov-12 | BWL |
2 - Data Dictionary
Overview
Change LogVariable Dictionary
Calibration Dictionary
Global Constants
Template
Help
Sheet 1: Change Log
Controlled Disable Shutdown - Rev 11 | <- Global Program / Module Name | ||||||
Revision | Author | Date | Change Description | Data Dictionary Type: | Component | ||
1.0 | M. Story | 8-Dec-11 | Initial Creation | ||||
2 | M. Story | 4-Jan-12 | Changed CntrlDmp cals to 16bit | ||||
3 | OT | 9-Jan-12 | Updated Template (v3.1) | ||||
4 | JJW | 12-Jan-12 | Removed calibration memory mapping because it is integration specific | ||||
5 | OT | 18-Jan-12 | Updated Template (Graph Settings) | ||||
6 | OT | 19-Jan-12 | Fixed Syntax Errors | ||||
7 | NRAR | 4-Oct-12 | FDD ver 005 | ||||
11 | OT | 24-Jan-13 | Updated to SF-26 v006 | ||||
Sheet 2: Variable Dictionary
Sheet 3: Calibration Dictionary
Sheet 4: Global Constants
Controlled Disable Shutdown - Rev 11 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Variable Information (Global Variables Only) | Achieved in Software Design | Used in Module List | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Layer 2 | Layer 3 | Layer 4 | Layer 5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Constant Name | Description | Uints | Type | Engineering Value | ADC | ADC Diagnostics | Data Memory Verification | DC Link Power Control | DSP Computational Integrity | DSP SPI driver | Event Manager Driver | External Memory Driver | Flash Programming Exec | GPIO | Illegal OpCode Handler | Interrupt Handler | Motor Current Driver | Motor Driver Diagnostics | Motor Position Driver | Phase Feedback Capture | Powerdown Control | Primary Shutdown Control | Program Flow | Program Memory Diagnostic | PWM Duty Cycle | Redundant Memory Check | Redundant Rapid Shutdown | Scheduler | Stack Monitor | State Dependent Task List | System Boot & Startup | System Control | Temperature Sensor Diagnostic | Unused Interrupt Handler | Utilization Monitor | Watchdog Dirver | Smith | Battery Voltage | Battery Voltage Diagnostics | Diagnostic CTC Manager | Diagnostic Manager | Diagnostics Application Services | EOL TorqueTest | Flash Boot Loader | Flight Recorder | Handwheel Position | Handwheel Torque | Motor Control Output Conversion | Motor Position Diagnostics | Motor Position Initialization | Motor Velocity | Motor Velocity Tachometer | Serial Communications I/O | Serial Communications Services | States and Modes | Tuning Select | Vehicle Power Mode | Vehicle Speed | Controller Polarity | Current Estimation | Handwheel Velocity | Inverse Motor Model | Motor Temperature Estimation | Motor Torque Limit | Output Reasonableness Dianostic | Parameter Estimation | Quadrant and rate Detection | Active Pull Compensation | Assist | Damping | Duty Cycle | Kinematic Integrity Diagnostic | Long Term Vehicle Speed Diagnostic | Max Assist Limit | Return | State Output Control | Torque Output |
Sheet 5: Template
2.2a | Data File: | |||||
Header: | extern <TYPE><TAB><NAME>; | |||||
Source: | #pragma DATA_SECTION(<ROOTNAME>, "<SEGMENT>"); <TYPE> <NAME>; | |||||
EOL Constants: | ||||||
Header: | extern <TYPE><TAB><NAME>; | |||||
Source: | #pragma DATA_SECTION(<ROOTNAME>, "<SEGMENT>"); <TYPE> <NAME>; | |||||
Global (Embedded) Constants: | ||||||
Header: | #define <NAME><COL40><VALUE> | |||||
A2L Name | ||||||
Measurement: | rte_<SWC>_<NAME> | |||||
Calibration Constants: | ||||||
Tuning ID: | ||||||
Tuning: | N | Index Range: | ||||
Header: | extern CONST(<AUTOSAR_TYPE>, CAL_CONST) <NAME>; | |||||
Source: | #pragma DATA_SECTION(<ROOTNAME>, ".<SEGMENT>"); CONST(<AUTOSAR_TYPE>, CAL_CONST) <NAME> = <VALUE>; | |||||
eCal: | <NAME> | |||||
Tuning: | Y | Index Range: | ||||
Header: | <NONCRITICAL> #define <ROOTNAME><TAB>k_N_CalNC_Cnt_Str.<ROOTNAME> <NONCRITICAL> <SAFETYCRITICAL> #define <ROOTNAME><TAB>k_S_CalSC_Cnt_Str.<ROOTNAME> <SAFETYCRITICAL> | |||||
Source: | ||||||
eCal: | <NONCRITICAL> k_N_CalNC_Cnt_Str.<ROOTNAME> <NONCRITICAL> <SAFETYCRITICAL> k_S_CalSC_Cnt_Str.<ROOTNAME> <SAFETYCRITICAL> | |||||
Tuning: | P | Index Range: | ||||
Header: | <NONCRITICAL> #define <ROOTNAME><TAB>k_N_CalNC_Cnt_Str.Personality[L3_S_CalPersSelect_Cnt_G_u16].<ROOTNAME> <NONCRITICAL> <SAFETYCRITICAL> #define <ROOTNAME><TAB>k_S_CalSC_Cnt_Str.SC_Personality[L3_S_CalPersSelect_Cnt_G_u16].<ROOTNAME> <SAFETYCRITICAL> | |||||
Source: | ||||||
eCal: | <NONCRITICAL> k_N_CalNC_Cnt_Str.Personality[L3_S_CalPersSelect_Cnt_G_u16].<ROOTNAME> <NONCRITICAL> <SAFETYCRITICAL> k_S_CalSC_Cnt_Str.SC_Personality[L3_S_CalPersSelect_Cnt_G_u16].<ROOTNAME> <SAFETYCRITICAL> | |||||
Sheet 6: Help
Short cut | Macro | Sescription |
Ctrl-q | ClearDataDictFilter | Will clear all autofilters on the Global Data Dictionary |
DFD_Create | Creates a Series of Data Flow Worksheet Pages from the information in the data dictionary. If Data Flow Worksheet pages already exist, they will be deleted first. | |
DFD_Delete | Will clear all Data Flow Diagram pages from the Data Dictionary. This will make the file smaller for archiving. | |
DFD_Print | Formate and prepares to print the Data Flow Worksheet pages. |
3 - CtrldDisShtdn
Overview
Unit Test InformationModule Definitions
Variable Range
CtrldDisShtdn_Per1
CtrldDisShtdn_Per1() B
CtrldDisShtdn_Per1() P
Test Vector Description
Sheet 1: Unit Test Information
1.0a | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Name of Tester: | Rasika Deshpande | ||||
Code File(s) Under Test: | Ap_CtrldDisShtdn.c | ||||
Code File(s) Version: | 15 | ||||
Module Design Document: | Controller_Disable_MDD.docx | ||||
Module Design Document Version: | 13 | ||||
Unit Test Plan Version: | 4 | ||||
Optimization Level: | Level 2 | ||||
Compiler (CodeGen) Version: | TM470_4.9.5 | ||||
Model Type: | Excel Macro | ||||
Model Version: | |||||
Special Test Requirements: | |||||
Test Date: | 4/28/2013 | ||||
Comments: | Note1:Inline functions defined in GlobalMacro.h are not unit tested. Note2: Coverege is not 100% due to usage of "FPM_InitFixedPoint_m" macro | ||||
Index of Tests: | |||||
Test Set up | Test Worksheets | Test Status | Run TS | ||
CtrldDisShtdn_Per1 | CtrldDisShtdn_Per1() P | -- | -- | 7 | |
38 | CtrldDisShtdn_Per1() B | -- | -- | 38 | |

Sheet 2: Module Definitions
![]() | |||||||||||
Nexteer EPS Unit Test Tool | |||||||||||
Rev:2.7b | |||||||||||
Module Definitions | |||||||||||
Module Test Functions | Module Set/Read Variables | Module Function Stubs | |||||||||
Return Type | Name | Parameter Prototype | Scope | Type | Name | Default Value | Return Type | Name | Parameter Prototype | ||
void | CtrldDisShtdn_Per1 | (void) | G | float | CRFMtrVel_MtrRadpS_f32 | Uint16 | DtrmnElapsedTime_mS_u16 | (void) | |||
G | float | CntDisMtrTrqCmdMRF_MtrNm_f32 | void | GetSystemTime_mS_u32 | (void) | ||||||
G | Sint8 | AssistAssyPolarity_Cnt_s08 | void | Rte_Call_CtrldDisShtdn_Per1_CP0_CheckpointReached | (void) | ||||||
M | float | CntrlDampVelTrq_MtrNm_D_f32 | void | Rte_Call_CtrldDisShtdn_Per1_CP1_CheckpointReached | (void) | ||||||
G | Boolean | DiagStsF2Active_Cnt_lgc | |||||||||
G | float | CntDisMtrTrqCmdCRF_MtrNm_f32 | |||||||||
G | Boolean | CtrldDmpStsCmp_Cnt_lgc | |||||||||
float | CntrlDampTrq_MtrNm_D_f32 | ||||||||||
M | UINT32 | LastF2Fault_mS_M_u32 | |||||||||
UINT16 | CntrlDampElpsdTime_mS_D_u16 | ||||||||||
float | k_F2Damping_MtrNmpRadpS_f32 | ||||||||||
float | k_CtrlDpVelThr_MtrRadpS_f32 | ||||||||||
u8p8 | k_CntrlDmpRampEnd_Uls_u8p8 | ||||||||||
float | k_MaxCtrlDmpLimit_MtrNm_f32 | ||||||||||
UINT16 | k_CtrlDmpTmrBkptOne_mS_u16 | ||||||||||
UINT16 | k_CtrlDmpTmrBkptTwo_mS_u16 | ||||||||||
Rte_ModeType_StaMd_Mode.Uint8 | Rte_Mode_SystemState_Mode | ||||||||||
G | float | SysC_CRFMtrTrqCmd_MtrNm_f32 | |||||||||
G | float | SysC_MRFMtrTrqCmd_MtrNm_f32 | |||||||||
G | float | SumLimTrqCmd_MtrNm_f32 |
Sheet 3: Variable Range
![]() | |||||||||||
Nexteer EPS Unit Test Tool | |||||||||||
Rev:2.7b | |||||||||||
Variable Range Definitions | |||||||||||
Variable Name | Max Value | Min Value | |||||||||
PostLimitTorque_MtrNm_f32 | |||||||||||
MRFMtrVel_MtrRadpS_f32 | |||||||||||
DiagStatus_Cnt_b32 | |||||||||||
AssistAssyPolarity_Cnt_s08 | |||||||||||
CRFTorqueCmd_MtrNm_f32 | |||||||||||
CntrlDampComp_Cnt_lgc | |||||||||||
MRFMtrTrqCmd_MtrNm_f32 | |||||||||||
CntrlDamp_VelTrq_D_f32 | |||||||||||
DiagStsF2Active_Cnt_lgc | |||||||||||
LastF2Fault_mS_M_u32 | |||||||||||
CRFMtrTrqCmd_MtrNm_f32 | |||||||||||
CtrldDmpStsCmp_Cnt_lgc | |||||||||||
CRFMtrVel_MtrRadpS_f32 | |||||||||||
CntrlDamp_VelTrq_MtrNm_D_f32 | |||||||||||
CntrlDampTrq_MtrNm_D_f32 | |||||||||||
CntrlDampElpsdTime_mS_D_u16 | |||||||||||
k_F2Damping_MtrNmpRadpS_f32 | |||||||||||
k_CtrlDpVelThr_MtrRadpS_f32 | |||||||||||
k_CntrlDmpRampEnd_Uls_u8p8 | |||||||||||
k_MaxCtrlDmpLimit_MtrNm_f32 | |||||||||||
k_CtrlDmpTmrBkptOne_mS_u16 | |||||||||||
k_CtrlDmpTmrBkptTwo_mS_u16 | |||||||||||
Rte_Mode_SystemState_Mode | |||||||||||
CntrlDampVelTrq_MtrNm_D_f32 | |||||||||||
SysC_CRFMtrTrqCmd_MtrNm_f32 | |||||||||||
SysC_MRFMtrTrqCmd_MtrNm_f32 | |||||||||||
CntDisMtrTrqCmdMRF_MtrNm_f32 | |||||||||||
CntDisMtrTrqCmdCRF_MtrNm_f32 | |||||||||||
SumLimTrqCmd_MtrNm_f32 | |||||||||||
CtrldDmpCmp_Cnt_lgc |
Sheet 4: CtrldDisShtdn_Per1
![]() | |||||
Nexteer EPS Unit Test Tool | |||||
Rev:2.7b | |||||
Test Setup | |||||
Number Of Calibrations | |||||
Number Of Calibration Sets | |||||
Calibration Sheet | |||||
Function(s) Under Test | Variables | Function Stubs | |||
Function Name | TestType | Test Vectors | Set | Read | Function Name |
CtrldDisShtdn_Per1 | P | 7 | SumLimTrqCmd_MtrNm_f32 | CntDisMtrTrqCmdCRF_MtrNm_f32 | DtrmnElapsedTime_mS_u16 |
CtrldDisShtdn_Per1 | B | 38 | CRFMtrVel_MtrRadpS_f32 | CntDisMtrTrqCmdMRF_MtrNm_f32 | GetSystemTime_mS_u32 |
DiagStsF2Active_Cnt_lgc | CtrldDmpStsCmp_Cnt_lgc | Rte_Call_CtrldDisShtdn_Per1_CP0_CheckpointReached | |||
AssistAssyPolarity_Cnt_s08 | SysC_CRFMtrTrqCmd_MtrNm_f32 | Rte_Call_CtrldDisShtdn_Per1_CP1_CheckpointReached | |||
k_F2Damping_MtrNmpRadpS_f32 | SysC_MRFMtrTrqCmd_MtrNm_f32 | ||||
k_CtrlDpVelThr_MtrRadpS_f32 | |||||
k_CntrlDmpRampEnd_Uls_u8p8 | |||||
k_MaxCtrlDmpLimit_MtrNm_f32 | |||||
k_CtrlDmpTmrBkptOne_mS_u16 | |||||
k_CtrlDmpTmrBkptTwo_mS_u16 | |||||
Rte_Mode_SystemState_Mode |
Sheet 5: CtrldDisShtdn_Per1() B
CtrldDisShtdn_Per1 | TS | -- | ||||||||||||||||||||||||||||||||
B | I/P | I/P2 | I/P3 | I/P4 | I/P | I/P | I/P | I/P | I/P | I/P | I/P | Func Stub Return Val | O/P | O/P | O/P | O/P | O/P | Func Stub Counter | Func Stub Counter | Func Stub Counter | Func Stub Counter | Expected O/P | Expected O/P | Expected O/P | Expected O/P | Expected O/P | Expected Stub Cnt | Expected Stub Cnt | Expected Stub Cnt | Expected Stub Cnt | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | SumLimTrqCmd_MtrNm_f32 | CRFMtrVel_MtrRadpS_f32 | DiagStsF2Active_Cnt_lgc | AssistAssyPolarity_Cnt_s08 | k_F2Damping_MtrNmpRadpS_f32 | k_CtrlDpVelThr_MtrRadpS_f32 | k_CntrlDmpRampEnd_Uls_u8p8 | k_MaxCtrlDmpLimit_MtrNm_f32 | k_CtrlDmpTmrBkptOne_mS_u16 | k_CtrlDmpTmrBkptTwo_mS_u16 | Rte_Mode_SystemState_Mode | DtrmnElapsedTime_mS_u16 | CntDisMtrTrqCmdCRF_MtrNm_f32 | CntDisMtrTrqCmdMRF_MtrNm_f32 | CtrldDmpStsCmp_Cnt_lgc | SysC_CRFMtrTrqCmd_MtrNm_f32 | SysC_MRFMtrTrqCmd_MtrNm_f32 | DtrmnElapsedTime_mS_u16 | GetSystemTime_mS_u32 | Rte_Call_CtrldDisShtdn_Per1_CP0_CheckpointReached | Rte_Call_CtrldDisShtdn_Per1_CP1_CheckpointReached | CntDisMtrTrqCmdCRF_MtrNm_f32 | CntDisMtrTrqCmdMRF_MtrNm_f32 | CtrldDmpStsCmp_Cnt_lgc | SysC_CRFMtrTrqCmd_MtrNm_f32 | SysC_MRFMtrTrqCmd_MtrNm_f32 | DtrmnElapsedTime_mS_u16 | GetSystemTime_mS_u32 | Rte_Call_CtrldDisShtdn_Per1_CP0_CheckpointReached | Rte_Call_CtrldDisShtdn_Per1_CP1_CheckpointReached | P/F | CPU Cycles | |
1 | SumLimTrqCmd_MtrNm_f32 = min | -8.8 | 21 | 1 | -1 | 0.1 | 5 | 0.1 | 1 | 15 | 10 | 0 | 6789 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
2 | SumLimTrqCmd_MtrNm_f32 = max | 8.8 | -34 | 1 | 1 | 0.2 | 10 | 0.2 | 2 | 25 | 20 | 1 | 5678 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
3 | SumLimTrqCmd_MtrNm_f32 = zero | 0 | 55 | 1 | -1 | 0.3 | 15 | 0.3 | 3 | 35 | 30 | 2 | 4567 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
4 | SumLimTrqCmd_MtrNm_f32 = pos | 5.5 | 100 | 1 | 1 | 0.4 | 20 | 0.4 | 4 | 45 | 40 | 3 | 3456 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
5 | SumLimTrqCmd_MtrNm_f32 = neg | -5.5 | 904 | 1 | -1 | 0.5 | 25 | 0.5 | 5 | 55 | 50 | 4 | 2345 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
6 | SumLimTrqCmd_MtrNm_f32 = min | 1.2 | -1100 | 1 | 1 | 0.6 | 30 | 0.6 | 1.1 | 65 | 60 | 2 | 1234 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
7 | SumLimTrqCmd_MtrNm_f32 = max | 2.3 | 1100 | 0 | -1 | 0.7 | 35 | 0.7 | 1.2 | 75 | 70 | 1 | 10000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | -- | ||
8 | SumLimTrqCmd_MtrNm_f32 = zero | 6.3 | 0 | 1 | 1 | 0.8 | 40 | 0.8 | 1.3 | 85 | 80 | 3 | 9000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
9 | SumLimTrqCmd_MtrNm_f32 = neg | -5.4 | -567 | 0 | -1 | 0.9 | 45 | 0.9 | 1.4 | 95 | 90 | 2 | 8000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -5.4 | 5.4 | 0 | -5.4 | 5.4 | 0 | 1 | 1 | 1 | -- | ||
10 | SumLimTrqCmd_MtrNm_f32 = pos | 1.7 | 666 | 1 | 1 | 1 | 50 | 1 | 1.5 | 105 | 100 | 2 | 7000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
11 | DiagStsF2Active_Cnt_lgc = FALSE | -7.9 | -345 | 0 | -1 | 1.1 | 55 | 0.1 | 1.6 | 115 | 110 | 0 | 6000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | -- | ||
12 | DiagStsF2Active_Cnt_lgc = TRUE | 4.5 | 67 | 1 | 1 | 1.2 | 60 | 0.2 | 1.7 | 125 | 120 | 1 | 5000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
13 | AssistAssyPolarity_Cnt_s08 = min | 6.7 | 111 | 1 | -1 | 1.3 | 65 | 0.3 | 1.8 | 135 | 130 | 2 | 4000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
14 | AssistAssyPolarity_Cnt_s08 = max | -3.3 | -255 | 1 | 1 | 1.4 | 70 | 0.4 | 1.9 | 145 | 140 | 3 | 3000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
15 | AssistAssyPolarity_Cnt_s08 = zero | 6.9 | 786 | 0 | 0 | 1.5 | 75 | 0.5 | 2 | 155 | 150 | 2 | 2000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 6.9 | 0 | 0 | 6.9 | 0 | 0 | 1 | 1 | 1 | -- | ||
16 | k_F2Damping_MtrNmpRadpS_f32=min | -1.2 | 345 | 1 | 1 | 0 | 80 | 0.6 | 2.1 | 165 | 160 | 0 | 1000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
17 | k_F2Damping_MtrNmpRadpS_f32=max | 3.4 | -78 | 0 | -1 | 2 | 85 | 0.7 | 2.2 | 175 | 170 | 2 | 900 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 3.4 | -3.4 | 0 | 3.4 | -3.4 | 0 | 1 | 1 | 1 | -- | ||
18 | k_F2Damping_MtrNmpRadpS_f32=pos | 5.8 | 66 | 1 | 1 | 1 | 90 | 0.8 | 2.3 | 185 | 180 | 4 | 800 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
19 | k_CtrlDpVelThr_MtrRadpS_f32=min | -7.1 | -18 | 0 | -1 | 1.6 | 0 | 0.9 | 2.4 | 195 | 190 | 2 | 700 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -7.1 | 7.1 | 0 | -7.1 | 7.1 | 0 | 1 | 1 | 1 | -- | ||
20 | k_CtrlDpVelThr_MtrRadpS_f32=max | 1.2 | 390 | 1 | 1 | 1.7 | 700 | 1 | 2.5 | 205 | 200 | 0 | 600 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
21 | k_CtrlDpVelThr_MtrRadpS_f32=pos | 2.3 | -56 | 0 | -1 | 1.8 | 666 | 0.1 | 2.6 | 215 | 210 | 2 | 500 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 2.3 | -2.3 | 0 | 2.3 | -2.3 | 0 | 1 | 1 | 1 | -- | ||
22 | k_CntrlDmpRampEnd_Uls_u8p8=min | 6.3 | 434 | 1 | 1 | 1.9 | 100 | 0 | 2.7 | 225 | 220 | 1 | 400 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
23 | k_CntrlDmpRampEnd_Uls_u8p8=max | -5.4 | -40 | 0 | -1 | 2 | 200 | 1 | 2.8 | 235 | 230 | 2 | 300 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -5.4 | 5.4 | 0 | -5.4 | 5.4 | 0 | 1 | 1 | 1 | -- | ||
24 | k_CntrlDmpRampEnd_Uls_u8p8=pos | 1.7 | 50 | 1 | 1 | 0.1 | 300 | 0.5 | 2.9 | 245 | 240 | 3 | 200 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
25 | k_MaxCtrlDmpLimit_MtrNm_f32=min | -7.9 | 70 | 0 | -1 | 0.2 | 400 | 0.1 | 0 | 255 | 250 | 2 | 100 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -7.9 | 7.9 | 0 | -7.9 | 7.9 | 0 | 1 | 1 | 1 | -- | ||
26 | k_MaxCtrlDmpLimit_MtrNm_f32=max | 4.5 | -90 | 1 | 1 | 0.3 | 500 | 0.2 | 5.75 | 265 | 260 | 4 | 189 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
27 | k_MaxCtrlDmpLimit_MtrNm_f32=pos | 6.7 | 101 | 0 | -1 | 0.4 | 600 | 0.3 | 1 | 275 | 270 | 2 | 345 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 6.7 | -6.7 | 0 | 6.7 | -6.7 | 0 | 1 | 1 | 1 | -- | ||
28 | k_CtrlDmpTmrBkptOne_mS_u16=min | -3.3 | -123 | 1 | 1 | 0.5 | 234 | 0.4 | 3.1 | 0 | 280 | 0 | 786 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
29 | k_CtrlDmpTmrBkptOne_mS_u16=max | 6.9 | 55 | 0 | -1 | 0.6 | 6 | 0.5 | 3.2 | 1000 | 290 | 2 | 34 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 6.9 | -6.9 | 0 | 6.9 | -6.9 | 0 | 1 | 1 | 1 | -- | ||
30 | k_CtrlDmpTmrBkptOne_mS_u16=pos | -1.2 | 36 | 1 | 1 | 0.7 | 198 | 0.6 | 3.3 | 450 | 300 | 4 | 121 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
31 | k_CtrlDmpTmrBkptTwo_mS_u16=min | 3.4 | 79 | 0 | -1 | 0.8 | 28 | 0.7 | 3.4 | 285 | 0 | 2 | 208 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | -- | ||
32 | k_CtrlDmpTmrBkptTwo_mS_u16=max | 5.8 | -23 | 1 | 1 | 0.9 | 111 | 0.8 | 3.5 | 295 | 1000 | 1 | 656 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
33 | k_CtrlDmpTmrBkptTwo_mS_u16=pos | -7.1 | 47 | 0 | -1 | 1 | 205 | 0.9 | 3.6 | 305 | 234 | 2 | 666 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -7.1 | 7.1 | 0 | -7.1 | 7.1 | 0 | 1 | 1 | 1 | -- | ||
34 | DtrmnElapsedTime_mS_u16 = min | 2.2 | 88 | 1 | 1 | 1.1 | 66 | 1 | 3.7 | 315 | 43 | 3 | 0 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
35 | DtrmnElapsedTime_mS_u16 = max | -4.8 | -640 | 0 | -1 | 1.2 | 680 | 0 | 3.8 | 325 | 188 | 2 | 65535 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -4.8 | 4.8 | 0 | -4.8 | 4.8 | 0 | 1 | 1 | 1 | -- | ||
36 | DtrmnElapsedTime_mS_u16 = mid | -3.7 | 10 | 1 | 1 | 1.3 | 53 | 0.5 | 3.9 | 335 | 70 | 3 | 1000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
37 | All min | -8.8 | -1100 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | -- | ||
38 | All max | 8.8 | 1100 | 1 | 1 | 2 | 700 | 1 | 5.75 | 1000 | 1000 | 4 | 65535 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
Sheet 6: CtrldDisShtdn_Per1() P
CtrldDisShtdn_Per1 | TS | -- | ||||||||||||||||||||||||||||||||
P | I/P | I/P | I/P | I/P | I/P | I/P | I/P | I/P | I/P | I/P | I/P | Func Stub Return Val | O/P | O/P | O/P | O/P | O/P | Func Stub Counter | Func Stub Counter | Func Stub Counter | Func Stub Counter | Expected O/P | Expected O/P | Expected O/P | Expected O/P | Expected O/P | Expected Stub Cnt | Expected Stub Cnt | Expected Stub Cnt | Expected Stub Cnt | Test Status | Perf. Metrics | Comments | |
Vector Number | Vector Description | SumLimTrqCmd_MtrNm_f32 | CRFMtrVel_MtrRadpS_f32 | DiagStsF2Active_Cnt_lgc | AssistAssyPolarity_Cnt_s08 | k_F2Damping_MtrNmpRadpS_f32 | k_CtrlDpVelThr_MtrRadpS_f32 | k_CntrlDmpRampEnd_Uls_u8p8 | k_MaxCtrlDmpLimit_MtrNm_f32 | k_CtrlDmpTmrBkptOne_mS_u16 | k_CtrlDmpTmrBkptTwo_mS_u16 | Rte_Mode_SystemState_Mode | DtrmnElapsedTime_mS_u16 | CntDisMtrTrqCmdCRF_MtrNm_f32 | CntDisMtrTrqCmdMRF_MtrNm_f32 | CtrldDmpStsCmp_Cnt_lgc | SysC_CRFMtrTrqCmd_MtrNm_f32 | SysC_MRFMtrTrqCmd_MtrNm_f32 | DtrmnElapsedTime_mS_u16 | GetSystemTime_mS_u32 | Rte_Call_CtrldDisShtdn_Per1_CP0_CheckpointReached | Rte_Call_CtrldDisShtdn_Per1_CP1_CheckpointReached | CntDisMtrTrqCmdCRF_MtrNm_f32 | CntDisMtrTrqCmdMRF_MtrNm_f32 | CtrldDmpStsCmp_Cnt_lgc | SysC_CRFMtrTrqCmd_MtrNm_f32 | SysC_MRFMtrTrqCmd_MtrNm_f32 | DtrmnElapsedTime_mS_u16 | GetSystemTime_mS_u32 | Rte_Call_CtrldDisShtdn_Per1_CP0_CheckpointReached | Rte_Call_CtrldDisShtdn_Per1_CP1_CheckpointReached | P/F | CPU Cycles | |
1 | if(TRUE == DiagStsF2Active_Cnt_T_lgc)=>TRUE, if(ElapsedTime_mS_T_u16 > k_CtrlDmpTmrBkptTwo_mS_u16)=>TRUE | -8.8 | 21 | 1 | -1 | 0.1 | 5 | 0.1 | 1 | 15 | 10 | 0 | 6789 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
2 | if( (SysState_Cnt_T_Enum != RTE_MODE_StaMd_Mode_OPERATE)=>FALSE || (CntrlDampComp_Cnt_T_lgc == TRUE)=>TRUE ) | 0 | 55 | 1 | -1 | 0.3 | 15 | 0.3 | 3 | 35 | 30 | 2 | 4567 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
3 | if(TRUE == DiagStsF2Active_Cnt_T_lgc)=>FALSE, if(ElapsedTime_mS_T_u16 > k_CtrlDmpTmrBkptTwo_mS_u16)=>FALSE | 2.3 | 1100 | 0 | -1 | 0.7 | 35 | 0.7 | 1.2 | 75 | 70 | 1 | 10000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | -- | ||
4 | if( (SysState_Cnt_T_Enum != RTE_MODE_StaMd_Mode_OPERATE)=>FALSE || (CntrlDampComp_Cnt_T_lgc == TRUE)=>FALSE ), else if( TRUE == DiagStsF2Active_Cnt_T_lgc )=>FALSE | -5.4 | -567 | 0 | -1 | 0.9 | 45 | 0.9 | 1.4 | 95 | 90 | 2 | 8000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -5.4 | 5.4 | 0 | -5.4 | 5.4 | 0 | 1 | 1 | 1 | -- | ||
5 | if( (ElapsedTime_mS_T_u16 >= k_CtrlDmpTmrBkptTwo_mS_u16)=>FALSE || ( (ElapsedTime_mS_T_u16 > k_CtrlDmpTmrBkptOne_mS_u16)=>TRUE&& (AbsCRFMtrVel_T_MtrRadpS_f32 < k_CtrlDpVelThr_MtrRadpS_f32) )=>TRUE ) | 5.8 | -23 | 1 | 1 | 0.9 | 111 | 0.8 | 3.5 | 295 | 1000 | 1 | 656 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
6 | if( (ElapsedTime_mS_T_u16 >= k_CtrlDmpTmrBkptTwo_mS_u16)=>FALSE || ( (ElapsedTime_mS_T_u16 > k_CtrlDmpTmrBkptOne_mS_u16) =>TRUE && (AbsCRFMtrVel_T_MtrRadpS_f32 < k_CtrlDpVelThr_MtrRadpS_f32) )=>FALSE ) | 5.8 | -23 | 1 | 1 | 0.9 | 20 | 0.8 | 3.5 | 295 | 1000 | 1 | 656 | -- | -- | -- | -- | -- | -- | -- | -- | -- | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | -- | ||
7 | else if( TRUE == DiagStsF2Active_Cnt_T_lgc )=>TRUE | -5.4 | -567 | 0 | -1 | 0.9 | 45 | 0.9 | 1.4 | 95 | 90 | 2 | 10 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -5.4 | 5.4 | 0 | -5.4 | 5.4 | 0 | 1 | 1 | 1 | -- | ||
Sheet 7: Test Vector Description
![]() | ||||
Nexteer EPS Unit Test Tool | ||||
Rev:2.7b | ||||
Test Setup Sheet | Test Function | Test Type | Vector Number | Vector Description |