ImcArbn_MDD

Module Design Document

For

Imc Arbitration

Jan 17, 2017

Prepared For:

Software Engineering

Nexteer Automotive,

Saginaw, MI, USA

Prepared By:

Software Group,

Nexteer Automotive,

Saginaw, MI, USAChange History

Sl. No.DescriptionAuthorVersionDate
1Initial VersionAkilan Rathakrishnan1.017-Jan-2017

Table of Contents

1 ImcArbn High-Level Description 7

2 Design details of software module 8

Graphical representation of ImcArbn 8

2.1.1 Data Flow Diagram 8

2.1.2 Component level DFD 9

2.1.3 Function level DFD 9

3 Variable Data Dictionary 10

3.1 User defined typedef definition/declaration 10

3.2 Variable definition for enumerated types 12

4 Constant Data Dictionary 13

Program (fixed) Constants 13

4.1.1 Embedded Constants 13

4.1.1.2 Global 13

4.1.2 Module specific Lookup Tables Constants 13

5 Software Module Implementation 14

5.1 Sub-Module Functions 14

5.1.1 Init: ImcArbnInit1 14

5.1.1.1 Design Rationale 14

5.1.1.2 Design Rationale 14

5.1.2 PERIODIC FUNCTIONS 14

5.1.3 Per: ImcArbnPer1 14

5.1.3.1 Design Rationale 14

5.1.4 Per: ImcArbnPer2 14

5.1.4.1 Design Rationale 14

5.1.5 Per: ImcArbnPer3 14

5.1.5.1 Design Rationale 14

5.1.6 Per: ImcArbnPer4 14

5.1.6.1 Design Rationale 14

5.1.7 Per: ImcArbnPer5 14

5.1.7.1 Design Rationale 14

5.1.8 Per: ImcArbnPer6 14

5.1.8.1 Design Rationale 14

5.1.9 Interrupt Functions 14

5.2 Server Runnable Functions 15

5.2.1 GetSigImcDataExtdSts_f32 15

5.2.1.1 Design Rationale 15

5.2.2 GetSigImcDataExtdSts_u32 15

5.2.2.1 Design Rationale 15

5.2.3 GetSigImcDataExtdSts_u16 15

5.2.3.1 Design Rationale 15

5.2.4 GetSigImcDataExtdSts_s16 15

5.2.4.1 Design Rationale 15

5.2.5 GetSigImcDataExtdSts_u08 15

5.2.5.1 Design Rationale 15

5.2.6 GetSigImcDataExtdSts_s08 15

5.2.6.1 Design Rationale 15

5.2.7 GetSigImcDataExtdSts_logl 15

5.2.7.1 Design Rationale 15

5.2.8 GetSigImcData_f32 15

5.2.8.1 Design Rationale 15

5.2.9 GetSigImcData_u32 15

5.2.9.1 Design Rationale 15

5.2.10 GetSigImcData_s32 15

5.2.10.1 Design Rationale 15

5.2.11 GetSigImcData_u16 16

5.2.11.1 Design Rationale 16

5.2.12 GetSigImcData_s16 16

5.2.12.1 Design Rationale 16

5.2.13 GetSigImcData_u08 16

5.2.13.1 Design Rationale 16

5.2.14 GetSigImcData_s08 16

5.2.14.1 Design Rationale 16

5.2.15 GetSigImcData_logl 16

5.2.15.1 Design Rationale 16

5.2.16 GetTxRateGroup 16

5.2.16.1 Design Rationale 16

5.2.17 GetTxSigGroup 16

5.2.17.1 Design Rationale 16

5.2.18 SetRxSigGroup 16

5.2.18.1 Design Rationale 16

5.3 Module Internal (Local) Functions 16

5.3.1 Local Function #1 16

5.3.1.1 Description 17

5.3.2 Local Function #2 17

5.3.2.1 Description 17

5.3.3 Local Function #3 17

5.3.3.1 Description 17

5.3.4 Local Function #4 17

5.3.4.1 Description 17

5.3.5 Local Function #5 17

5.3.5.1 Description 18

5.3.6 Local Function #6 18

5.3.6.1 Description 18

5.3.7 Local Function #7 18

5.3.7.1 Description 18

5.3.8 Local Function #8 18

5.3.8.1 Description 18

5.3.9 Local Function #9 19

5.3.9.1 Description 19

5.3.10 Local Function #10 19

5.3.10.1 Description 19

5.3.11 Local Function #11 19

5.3.11.1 Description 19

5.3.12 Local Function #12 19

5.3.12.1 Description 20

5.3.13 Local Function #13 20

5.3.13.1 Description 20

5.3.14 Local Function #14 20

5.3.14.1 Description 20

5.3.15 Local Function #15 20

5.3.15.1 Description 20

5.3.16 Local Function #16 20

5.3.16.1 Description 20

5.3.17 Transition Functions 20

5.3.18 Global Function/Macro Definitions 21

6 Known Limitations with Design 22

7 UNIT TEST CONSIDERATION 23

Appendix A Abbreviations and Acronyms 24

Appendix B Glossary 25

Appendix C References 26

ImcArbn High-Level Description

The Inter-Micro Communication (IMC) Arbitration prepares data for transmission to a complimentary ECU through two redundant communication paths. On the receive side, the Arbitration reads data from the primary source and determines the data validity. A validity fault on primary source prompts the IMC Arbitration component to evaluate the same signal from the secondary source. Faulty signals from the primary source will be replaced with signals from the secondary source, as long as they are valid. If both data sources are invalid the IMC Arbitration outputs the signal status based on never received, missing and invalid conditions.

Design details of software module

See FDD.

Graphical representation of ImcArbn

Data Flow Diagram

See FDD.

Component level DFD

See FDD.

Function level DFD

See FDD.

Variable Data Dictionary

User defined typedef definition/declaration

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

Variable definition for enumerated types

Enum NameElement NameValue
See AR350A_ImcArbn_DataDict.m file

Constant Data Dictionary

Program (fixed) Constants

Embedded Constants

Local Constants

Constant NameResolutionUnitsValue
See AR350A_ImcArbn_DataDict.m file

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
See AR350A_ImcArbn_DataDict.m file

Module specific Lookup Tables Constants

<(This is for lookup tables (arrays) with fixed values, same name as other tables)>

Constant NametypeValueSoftware Segment
SIGGROUPCONFIG_RECSigGroupRec1ConfigurableImcArbn_CONST
<SIGGROUPNAME>_RECSigPrmRec1ConfigurableImcArbn_CONST
RATEGROUPOFFS_CNT_U08Uint8ConfigurableImcArbn_CONST
NRSIGGROUPINRATEGROUP_CNT_U08Uint8ConfigurableImcArbn_CONST
MISSSIGGROUPTIOUT_CNT_U08Uint8ConfigurableImcArbn_CONST

Note: <SIGGROUPNAME>_REC – Placeholder <SIGGROUPNAME> will be replaced based on respective Signal Group names from the configuration. Also note, this component will have as many number of <SIGGROUPNAME>_REC constants as number of Signal Groups.

Software Module Implementation

Sub-Module Functions

None

Init: ImcArbnInit1

Design Rationale

Design follows implementation in FDD.

Design Rationale

Refer FDD

PERIODIC FUNCTIONS

Per: ImcArbnPer1

Design Rationale

Refer FDD

Per: ImcArbnPer2

Design Rationale

Refer FDD

Per: ImcArbnPer3

Design Rationale

Refer FDD

Per: ImcArbnPer4

Design Rationale

Refer FDD

Per: ImcArbnPer5

Design Rationale

Refer FDD

Per: ImcArbnPer6

Design Rationale

Refer FDD

Interrupt Functions

None

Server Runnable Functions

GetSigImcDataExtdSts_f32

Design Rationale

Refer FDD

GetSigImcDataExtdSts_u32

Design Rationale

Refer FDD

GetSigImcDataExtdSts_u16

Design Rationale

Refer FDD

GetSigImcDataExtdSts_s16

Design Rationale

Refer FDD

GetSigImcDataExtdSts_u08

Design Rationale

Refer FDD

GetSigImcDataExtdSts_s08

Design Rationale

Refer FDD

GetSigImcDataExtdSts_logl

Design Rationale

Refer FDD

GetSigImcData_f32

Design Rationale

Refer FDD

GetSigImcData_u32

Design Rationale

Refer FDD

GetSigImcData_s32

Design Rationale

Refer FDD

GetSigImcData_u16

Design Rationale

Refer FDD

GetSigImcData_s16

Design Rationale

Refer FDD

GetSigImcData_u08

Design Rationale

Refer FDD

GetSigImcData_s08

Design Rationale

Refer FDD

GetSigImcData_logl

Design Rationale

Refer FDD

GetTxRateGroup

Design Rationale

Refer FDD

GetTxSigGroup

Design Rationale

Refer FDD

SetRxSigGroup

Design Rationale

Refer FDD

Module Internal (Local) Functions

Local Function #1

Function NameImcArbnTxTypeMinMax
Arguments PassedRateGroup_Cnt_T_u08Uint802
Return ValuevoidN/AN/AN/A

Description

This function implements “ImcArbnTx” function in the FDD.

Local Function #2

Function NameImcArbnRxTypeMinMax
Arguments PassedFrmFltCntr_Ary2D_u8Ary2D_u8_2_2*0x000000010xFFFFFFFF
RateGroup_Cnt_T_u08uint802
IniTiOutChkCmpl_Cnt_T_loglBoolean01
Return ValueNoneN/AN/AN/A

Description

This function implements “ImcArbnRx” function in the FDD.

Local Function #3

Function NameNoDataHndlgTypeMinMax
Arguments PassedRxSigExtdSts1_Cnt_T_enumImcArbnRxExtdSts106
RxDataSrc_Cnt_T_enumImcArbnRxDataSrc102
RateGroup_Cnt_T_u08uint802
SigGroup_Cnt_T_u08uint80255
PrimSrcNoDataRxd_Cnt_T_loglboolean01
SecdrySrcNoDataRxd_Cnt_T_loglboolean01
Return ValueNoneN/AN/AN/A

Description

This function implements “NoDataHndlg” function in the FDD.

Local Function #4

Function NameOvrdSigStsDurgStrtUpTypeMinMax
Arguments PassedSigGroup_Cnt_T_u08uint80255
IniTiOutChkCmpl_Cnt_T_loglBoolean01
Return ValueNoneN/AN/AN/A

Description

This function implements “OvrdSigStsDurgStrtUp” function in the FDD.

Local Function #5

Function NameEvlSigGroupNeverRxdMissStsTypeMinMax
Arguments PassedRateGroup_Cnt_T_u08uint802
SigGroup_Cnt_T_u08uint80255
Return ValueRxSigExtdSts1_Cnt_T_enumImcArbnRxExtdSts106

Description

This function implements “OvrdSigStsDurgStrtUp” function in the FDD.

Local Function #6

Function NameRxFrmVldChkTypeMinMax
Arguments PassedDataBuf_Cnt_T_u08uint8*0x000000010xFFFFFFFF
FrmFltCntr_Cnt_T_u08Ary1D_u8_2*0x000000010xFFFFFFFF
SigGroupDataSrc_Cnt_T_enumImcArbnRxDataSrc102
RateGroup_Cnt_T_u08uint802
SigGroup_Cnt_T_u08Uint80255
PrimSrcOnlySigGroup_Cnt_T_loglBoolean01
IniTiOutChkCmpl_Cnt_T_loglBoolean01
Return ValueFrmSts_Cnt_T_enumImcArbnRxRollgCntrSts102

Description

This function implements “RxFrmVldChk” function in the FDD.

Local Function #7

Function NameImcChResyncHndlgTypeMinMax
Arguments PassedSigGroupDataSrc_Cnt_T_enumImcArbnRxDataSrc102
SigGroup_Cnt_T_u08Uint80255
PrsntRollgCntr_Cnt_T_u08Uint8031
Return ValueVoidNANANA

Description

This function implements “ImcChResyncHndlg” function in the FDD.

Local Function #8

Function NameVldtRollgCntrTypeMinMax
Arguments PassedSigGroupDataSrc_Cnt_T_enumImcArbnRxDataSrc102
RateGroup_Cnt_T_u08Uint802
SigGroup_Cnt_T_u08Uint80255
PrsntRollgCntr_Cnt_T_u08Uint8031
Return ValueRollgCntrSts_Cnt_T_enumImcArbnRxRollgCntrSts102

Description

This function implements “VldtRollgCntr” function in the FDD.

Local Function #9

Function NameVldtRollgCntrAlgTypeMinMax
Arguments PassedSigGroupDataSrc_Cnt_T_enumImcArbnRxDataSrc102
RateGroup_Cnt_T_u08Uint802
SigGroup_Cnt_T_u08Uint80255
PrsntRollgCntr_Cnt_T_u08Uint8031
Return ValueRollgCntrSts_Cnt_T_enumImcArbnRxRollgCntrSts102

Description

This function implements “VldtRollgCntrAlg” function in the FDD.

Local Function #10

Function NameRollgCntrSeqChkTypeMinMax
Arguments PassedPrsntRollgCntr_Cnt_T_u08Uint8031
AntcptdRollCntr_Cnt_T_u08Uint8031
UpprDriftLim_Cnt_T_u08Uint80255
LwrDriftLim_Cnt_T_u08Uint80255
Return ValueRollgCntrVld_Cnt_T_loglboolean01

Description

This function implements “RollgCntrSeqChk” function in the FDD.

Local Function #11

Function NameCreatSigGroupDataTypeMinMax
Arguments PassedSigGroup_T_recSigGroupRec1 const*0x000000010xFFFFFFFF
Return ValueRetData_Uls_T_u32uint3204294967295

Description

This function implements “CreatSigGroupData” function in the FDD.

Local Function #12

Function NameDecodSigGroupDataTypeMinMax
Arguments PassedSigGroup_T_recSigGroupRec1 const*0x000000010xFFFFFFFF
SigGroupRxData_Uls_T_u32uint3204294967295
RxSigExtdSts1_Cnt_T_enumImcArbnRxExtdSts106
RxDataSrc_Cnt_T_enumImcArbnRxDataSrc102
Return Valuevoid

Description

This function implements “DecodSigGroupData” function in the FDD.

Local Function #13

Function NameGetBitMaskTypeMinMax
Arguments PassedNrOfBits_Cnt_T_u08Uint8031
Return ValueBitMask_Cnt_T_u32uint3204294967295

Description

This function implements “GetBitMask” function in the FDD.

Local Function #14

Function NameGetImcSigStsTypeMinMax
Arguments PassedRxSigExtdSts1_Cnt_T_enumImcArbnRxExtdSts106
Return ValueRetSts_Cnt_T_enumImcArbnRxSts102

Description

This function implements “GetImcSigSts” function in the FDD.

Local Function #15

Function NameGetImcFltParamByteTypeMinMax
Arguments Passedvoid
Return ValueFltBitMask_Cnt_T_u08Uint8015

Description

This function implements “GetImcFltParamByte” function in the FDD.

Local Function #16

Function NameNoDataRxdTypeMinMax
Arguments PassedStrtByte_Cnt_T_u08Uint80255
EndByte_Cnt_T_u08Uint80255
Return ValueRetVal_Cnt_T_loglboolean01

Description

This function implements “NoDataRxd” function in the FDD.

Transition Functions

None.

Global Function/Macro Definitions

Refer FDD

Known Limitations with Design

None

UNIT TEST CONSIDERATION

  1. Number of Signals / Signal Groups / Rate Groups that can be supported by Imc Tx/Rx is configurable. Even though underlying data type of configuration information might have wider range, only values that are generated out of configuration will be supported by the component. If complete range need to be supported, then make configuration, and generate the cfg files accordingly. Also, none of the configuration values shall be hand-modified to cover legal range of underlying parameter.

Abbreviations and Acronyms

Abbreviation or AcronymDescription
DFDDesign functional diagram
MDDModule design Document
FDDFunctional Design Document

Glossary

Note: Terms and definitions from the source “Nexteer Automotive” take precedence over all other definitions of the same term. Terms and definitions from the source “Nexteer Automotive” are formulated from multiple sources, including the following:

  • ISO 9000

  • ISO/IEC 12207

  • ISO/IEC 15504

  • Automotive SPICE® Process Reference Model (PRM)

  • Automotive SPICE® Process Assessment Model (PAM)

  • ISO/IEC 15288

  • ISO 26262

  • IEEE Standards

  • SWEBOK

  • PMBOK

  • Existing Nexteer Automotive documentation

TermDefinitionSource
MDDModule Design Document
DFDData Flow Diagram

References

Ref. #TitleVersion
1AUTOSAR Specification of Memory Mapping (Link:AUTOSAR_SWS_MemoryMapping.pdf)v1.3.0 R4.0 Rev 2
2MDD GuidelineEA4 01.00.00
3Software Naming Conventions.doc1.0
4Software Design and Coding Standards.doc2.1
5FDD: AR350A_ImcArbn_DesignSee Synergy subproject version
Last modified October 12, 2025: Initial commit (1fadfc4)