Arbiter_Limiter_Chrysler_MDD

Module –

High-Level Description

This module arbitrates between the HaLF, DST, and PA features to produce the input and output torque overlay signals. It also provides an output showing which features are enabled.

Figures

Component Diagram


Variable Data Dictionary

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 InputsModule Outputs
HaLFTrqOvCmdRqst_MtrNm_f32OpTrqOvr_MtrNm_f32
DSTTrqOvCmdRqst_HwNm_f32IpTrqOvr_HwNm_f32
PATrqOvCmdRqst_HwNm_f32ActiveFunctionBits_Cnt_u08
HaLFActive_Cnt_lgcDSTSlewComplete_Cnt_lgc
DSTActive_Cnt_lgcHaLFSlewComplete_Cnt_lgc
VehicleSpeed_Kph_f32PPPASlewComplete_Cnt_lgc
DSTState_Cnt_u08PAReturnSclFct_Uls_f32
HalfTOState_Cnt_u08PICmpDisableLearning_Cnt_lgc
PrkAssistState_Cnt_u08

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 NameResolution

Legal Range

(min)

Legal Range

(max)

Software Segment
DSTScalarSlew_Uls_M_f32Single Precision Float`01ARBLMT_START_SEC_VAR_CLEARED_32
HaLFScalarSlew_Uls_M_f32Single Precision Float`01ARBLMT_START_SEC_VAR_CLEARED_32
DSTSlew_HwNm_M_f32Single Precision Float01ARBLMT_START_SEC_VAR_CLEARED_32
HaLFSlew_MtrNm_M_f32Single Precision Float01ARBLMT_START_SEC_VAR_CLEARED_32
PPPASlew_HwNm_M_f32Single Precision Float01ARBLMT_START_SEC_VAR_CLEARED_32
DSTLowSpdPri_Cnt_M_lgcboolean
PrevDSTActive_Cnt_M_lgcbooleanFALSETRUEARBLMT_START_SEC_VAR_CLEARED_BOOLEAN
PrevDSTRampActive_Cnt_M_lgcbooleanFALSETRUEARBLMT_START_SEC_VAR_CLEARED_BOOLEAN
PrevHaLFRampActive_Cnt_M_lgcbooleanFALSETRUEARBLMT_START_SEC_VAR_CLEARED_BOOLEAN
PPPAPriority_Cnt_D_lgcbooleanFALSETRUEARBLMT_START_SEC_VAR_CLEARED_BOOLEAN
SlewActive_Cnt_M_lgcbooleanFALSETRUEARBLMT_START_SEC_VAR_CLEARED_BOOLEAN
PrevDSTSlewState_Cnt_M_lgcbooleanFALSETRUEARBLMT_START_SEC_VAR_CLEARED_BOOLEAN
PrevHaLFSlewState_Cnt_M_lgcbooleanFALSETRUEARBLMT_START_SEC_VAR_CLEARED_BOOLEAN
PrevPPPASlewState_Cnt_M_lgcbooleanFALSETRUEARBLMT_START_SEC_VAR_CLEARED_BOOLEAN

User defined typedef definition/declaration

This section documents any user types uniquely used for the module.

Typedef NameElement NameUser Defined Type

Legal Range

(min)

Legal Range

(max)

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_PPPAPriorityVehSpd_Kph_f32
k_RateLimit_UlspS_f32
k_DSTSlewRate_NmpS_f32
k_HaLFSlewRate_NmpS_f32
k_PPPASlewRate_NmpS_f32
t2_AsstY0_MtrNm_s4p11[][]
t2_HwtX0_HwNm_u8p8[][]
t_PPPAVehSpd_Kph_u9p7[]
k_HalFPICmpThresh_MtrNm_f32

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 NameResolutionUnitsValue
D_4MS_S_F32Single Precision FloatS0.004
D_PPPAFUNCBIT_CNT_U081Counts1
D_DSTFUNCBIT_CNT_U081Counts2
D_HALFFUNCBIT_CNT_U081Counts4
D_PPPALOLMT_MTRNM_F32Single Precision FloatMtrNm-0.1
D_PPPAHILMT_MTRNM_F32Single Precision FloatMtrNm8.8

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_ONE_ULS_F32
D_ZERO_ULS_F32
D_ZERO_CNT_U8

Module specific Lookup Tables Constants

Constant NameResolutionValueSoftware Segment
None


Functions/Macros used by the Sub-Modules

Library Functions / Macros

The library and functions / Macros that are called by the various sub modules are identified below,

  1. Limit_m

  2. Abs_f32_m

  3. FPM_FloatToFixed_m

  4. FPM_FixedToFloat_m

  5. Sign_f32_m

  6. BilinearXMYM_s16_u16XMs16YM_Cnt

  7. TableSize_m

Data Hiding Functions

  1. None

Global Functions/Macros Defined by this Module

None

Local Functions/Macros Used by this MDD only

Abriter Slew Limit

Function NameArbiterSlewLimitTypeMinMaxUT Tolerance
Arguments PassedTrqOvCmdRqst_HwNm_T_f32Float32-1010N/A
SlewState_Cnt_T_lgcBooleanFALSETRUEN/A
SlewRate_NmpS_T_f32Float3202N/A
TrqOvCmdOut_HwNm_T_f32*Float32-10103.05E-05
SlewComplete_Cnt_T_lgc*BooleanFALSETRUEN/A
CmdActive_Cnt_T_lgc*BooleanFALSETRUEN/A
Slew_Uls_T_f32*Float32-10103.05E-05
PrevSlewState_Cnt_T_lgc*BooleanFALSETRUEN/A
Return ValueNone

Description

Arbiter Priority

Function NameArbiterPriorityTypeMinMaxUT Tolerance
Arguments PassedVehSpd_Kph_T_f32Float320511N/A
DSTCmdActive_Cnt_T_lgcBooleanFALSETRUEN/A
PPPACmdActive_Cnt_T_lgcBooleanFALSETRUEN/A
HaLFCmdActive_Cnt_T_lgcBooleanFALSETRUEN/A
HaLFPriActive_Cnt_T_lgcBooleanFALSETRUEN/A
PPPAPriActive_Cnt_T_lgcBooleanFALSETRUEN/A
DSTPriActive_Cnt_T_lgcbooleanFALSETRUEN/A
Return ValueNone

Description

Arbiter Ramping

Function NameArbiterRampingTypeMinMaxUT Tolerance
Arguments PassedDSTEnable_Cnt_T_lgcBooleanFALSETRUEN/A
DSTSlewComplete_Cnt_T_lgcBooleanFALSETRUEN/A
HaLFEnable_Cnt_T_lgcBooleanFALSETRUEN/A
HaLFSlewComplete_Cnt_T_lgcBooleanFALSETRUEN/A
DSTScalar_Uls_T_f32Float32013.05E-05
HaLFScalar_Uls_T_f32Float32013.05E-05
Return ValueNone

Description

Software Module Implementation

Runtime Environment (RTE) Initial Values

This section lists the initial values of data written by this module but controlled by the RTE. After RTE initialization, the data in this table will contain these values.

DataValue
Rte_InitValue_ActiveFunctionBits_Cnt_u080
Rte_InitValue_DSTActive_Cnt_lgcFALSE
Rte_InitValue_DSTSlewComplete_Cnt_lgcFALSE
Rte_InitValue_DSTState_Cnt_u080
Rte_InitValue_DSTTrqOvCmdRqst_HwNm_f320
Rte_InitValue_HaLFActive_Cnt_lgcFALSE
Rte_InitValue_HaLFSlewComplete_Cnt_lgcFALSE
Rte_InitValue_HaLFTOState_Cnt_u080
Rte_InitValue_HaLFTrqOvCmdRqst_MtrNm_f320
Rte_InitValue_IpTrqOvr_HwNm_f320
Rte_InitValue_OpTrqOvr_MtrNm_f320
Rte_InitValue_PAReturnSclFct_Uls_f321
Rte_InitValue_PATrqOvCmdRqst_HwNm_f320
Rte_InitValue_PrkAssistState_Cnt_u080
Rte_InitValue_PrkAsstSlewComplete_Cnt_lgcFALSE
Rte_InitValue_VehicleSpeed_Kph_f320

Initialization Functions

None


Periodic Functions

Per: _Per1

Design Rationale

None

Program Flow Start

Rte_Call_ArbLmt_Per1_CP0_CheckpointReached()

Store Module Inputs to Local copies

DSTActive_Cnt_T_lgc = Rte_IRead_ArbLmt_Per1_DSTActive_Cnt_lgc()

HaLFActive_Cnt_T_lgc = Rte_IRead_ArbLmt_Per1_HaLFActive_Cnt_lgc()

DSTState_Cnt_T_u08 = Rte_IRead_ArbLmt_Per1_DSTState_Cnt_u08()

DSTTrqOvCmdRqst_HwNm_T_f32 = Rte_IRead_ArbLmt_Per1_DSTTrqOvCmdRqst_HwNm_f32()

HaLFTrqOvCmdRqst_MtrNm_T_f32 = Rte_IRead_ArbLmt_Per1_HaLFTrqOvCmdRqst_MtrNm_f32()

HaLFTOState_Cnt_T_u08 = Rte_IRead_ArbLmt_Per1_HaLFTOState_Cnt_u08()

PATrqOvCmdRqst_HwNm_T_f32 = Rte_IRead_ArbLmt_Per1_PATrqOvCmdRqst_HwNm_f32()

PrkAssistState_Cnt_T_u08 = Rte_IRead_ArbLmt_Per1_PrkAssistState_Cnt_u08()

VehicleSpeed_Kph_T_f32 = Rte_IRead_ArbLmt_Per1_VehicleSpeed_Kph_f32()

DST Slew

c

HaLF Slew

PPPA Slew

Priority

Ramping

Arbiter

Store Local copy of outputs into Module Outputs

Rte_IWrite_ArbLmt_Per1_ActiveFunctionBits_Cnt_u08(ActiveFunctionBits_Cnt_T_u08)

Rte_IWrite_ArbLmt_Per1_DSTSlewComplete_Cnt_lgc(DSTSlewComplete_Cnt_T_lgc)

Rte_IWrite_ArbLmt_Per1_HaLFSlewComplete_Cnt_lgc(HaLFSlewComplete_Cnt_T_lgc)

Rte_IWrite_ArbLmt_Per1_IpTrqOvr_HwNm_f32(IpTrqOvr_HwNm_T_f32)

Rte_IWrite_ArbLmt_Per1_OpTrqOvr_MtrNm_f32(OpTrqOvr_MtrNm_T_f32)

Rte_IWrite_ArbLmt_Per1_PAReturnSclFct_Uls_f32(PAReturnSclFct_Uls_T_f32)

Rte_IWrite_ArbLmt_Per1_PrkAsstSlewComplete_Cnt_lgc(PPPASlewComplete_Cnt_T_lgc)

Rte_IWrite_ArbLmt_Per1_PICmpDisableLearning_Cnt_lgc(PICmpDisableLearning_Cnt_T_lgc)

Program Flow End

Rte_Call_ArbLmt_Per1_CP1_CheckpointReached()


Fault Recovery Functions

None

Shutdown Functions

None

Interrupt Functions

None

Serial Communication Functions

None


Execution Requirements

Execution Rates for sub-modules called by the Scheduler

This table serves as reference for the Scheduler design

Function NameCalling FrequencySystem State(s) in which the function is called
ArbLmt_Per14 msALL

Execution Requirements for Serial Communication Functions

Function NameSub-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 ModuleSoftware Segment
ArbLmt_Per1RTE_START_SEC_AP_ARBLMT_APPL_CODE

Local Functions

This table identifies the software segments for local functions identified in this module.

Name of Sub ModuleSoftware Segment
ArbiterSlewLimitN/A
ArbiterPriorityN/A
ArbiterRampingN/A


Known Issues / Limitations With Design

  1. INLINE functions defined in GlobalMacro.h are not unit tested.


Revision Control Log

Item #Rev #Change DescriptionDateAuthor Initials
11.0Initial Version29-Oct-12OT
22.0Anomaly 466822-Mar-13M. Story
33.0Update to FDD ver 00315-May-13Jared
44.0UTP corrections30-May-13Jared
55.0Updated to FDD ver 00410-Jul-13SP
66.0Anomaly 646714-MAR-14M. Story
Last modified October 12, 2025: Initial commit (0347a62)