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. | Description | Author | Version | Date |
1 | Initial Version | Akilan Rathakrishnan | 1.0 | 17-Jan-2017 |
Table of Contents
1 ImcArbn High-Level Description 7
2 Design details of software module 8
Graphical representation of ImcArbn 8
3.1 User defined typedef definition/declaration 10
3.2 Variable definition for enumerated types 12
4.1.2 Module specific Lookup Tables Constants 13
5 Software Module Implementation 14
5.2 Server Runnable Functions 15
5.2.1 GetSigImcDataExtdSts_f32 15
5.2.2 GetSigImcDataExtdSts_u32 15
5.2.3 GetSigImcDataExtdSts_u16 15
5.2.4 GetSigImcDataExtdSts_s16 15
5.2.5 GetSigImcDataExtdSts_u08 15
5.2.6 GetSigImcDataExtdSts_s08 15
5.2.7 GetSigImcDataExtdSts_logl 15
5.3 Module Internal (Local) Functions 16
5.3.17 Transition Functions 20
5.3.18 Global Function/Macro Definitions 21
6 Known Limitations with Design 22
Appendix A Abbreviations and Acronyms 24
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 Name | Element Name | Value |
See AR350A_ImcArbn_DataDict.m file |
Constant Data Dictionary
Program (fixed) Constants
Embedded Constants
Local Constants
Constant Name | Resolution | Units | Value |
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 Name | type | Value | Software Segment |
SIGGROUPCONFIG_REC | SigGroupRec1 | Configurable | ImcArbn_CONST |
<SIGGROUPNAME>_REC | SigPrmRec1 | Configurable | ImcArbn_CONST |
RATEGROUPOFFS_CNT_U08 | Uint8 | Configurable | ImcArbn_CONST |
NRSIGGROUPINRATEGROUP_CNT_U08 | Uint8 | Configurable | ImcArbn_CONST |
MISSSIGGROUPTIOUT_CNT_U08 | Uint8 | Configurable | ImcArbn_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 Name | ImcArbnTx | Type | Min | Max |
Arguments Passed | RateGroup_Cnt_T_u08 | Uint8 | 0 | 2 |
Return Value | void | N/A | N/A | N/A |
Description
This function implements “ImcArbnTx” function in the FDD.
Local Function #2
Function Name | ImcArbnRx | Type | Min | Max |
Arguments Passed | FrmFltCntr_Ary2D_u8 | Ary2D_u8_2_2* | 0x00000001 | 0xFFFFFFFF |
RateGroup_Cnt_T_u08 | uint8 | 0 | 2 | |
IniTiOutChkCmpl_Cnt_T_logl | Boolean | 0 | 1 | |
Return Value | None | N/A | N/A | N/A |
Description
This function implements “ImcArbnRx” function in the FDD.
Local Function #3
Function Name | NoDataHndlg | Type | Min | Max |
Arguments Passed | RxSigExtdSts1_Cnt_T_enum | ImcArbnRxExtdSts1 | 0 | 6 |
RxDataSrc_Cnt_T_enum | ImcArbnRxDataSrc1 | 0 | 2 | |
RateGroup_Cnt_T_u08 | uint8 | 0 | 2 | |
SigGroup_Cnt_T_u08 | uint8 | 0 | 255 | |
PrimSrcNoDataRxd_Cnt_T_logl | boolean | 0 | 1 | |
SecdrySrcNoDataRxd_Cnt_T_logl | boolean | 0 | 1 | |
Return Value | None | N/A | N/A | N/A |
Description
This function implements “NoDataHndlg” function in the FDD.
Local Function #4
Function Name | OvrdSigStsDurgStrtUp | Type | Min | Max |
Arguments Passed | SigGroup_Cnt_T_u08 | uint8 | 0 | 255 |
IniTiOutChkCmpl_Cnt_T_logl | Boolean | 0 | 1 | |
Return Value | None | N/A | N/A | N/A |
Description
This function implements “OvrdSigStsDurgStrtUp” function in the FDD.
Local Function #5
Function Name | EvlSigGroupNeverRxdMissSts | Type | Min | Max |
Arguments Passed | RateGroup_Cnt_T_u08 | uint8 | 0 | 2 |
SigGroup_Cnt_T_u08 | uint8 | 0 | 255 | |
Return Value | RxSigExtdSts1_Cnt_T_enum | ImcArbnRxExtdSts1 | 0 | 6 |
Description
This function implements “OvrdSigStsDurgStrtUp” function in the FDD.
Local Function #6
Function Name | RxFrmVldChk | Type | Min | Max |
Arguments Passed | DataBuf_Cnt_T_u08 | uint8* | 0x00000001 | 0xFFFFFFFF |
FrmFltCntr_Cnt_T_u08 | Ary1D_u8_2* | 0x00000001 | 0xFFFFFFFF | |
SigGroupDataSrc_Cnt_T_enum | ImcArbnRxDataSrc1 | 0 | 2 | |
RateGroup_Cnt_T_u08 | uint8 | 0 | 2 | |
SigGroup_Cnt_T_u08 | Uint8 | 0 | 255 | |
PrimSrcOnlySigGroup_Cnt_T_logl | Boolean | 0 | 1 | |
IniTiOutChkCmpl_Cnt_T_logl | Boolean | 0 | 1 | |
Return Value | FrmSts_Cnt_T_enum | ImcArbnRxRollgCntrSts1 | 0 | 2 |
Description
This function implements “RxFrmVldChk” function in the FDD.
Local Function #7
Function Name | ImcChResyncHndlg | Type | Min | Max |
Arguments Passed | SigGroupDataSrc_Cnt_T_enum | ImcArbnRxDataSrc1 | 0 | 2 |
SigGroup_Cnt_T_u08 | Uint8 | 0 | 255 | |
PrsntRollgCntr_Cnt_T_u08 | Uint8 | 0 | 31 | |
Return Value | Void | NA | NA | NA |
Description
This function implements “ImcChResyncHndlg” function in the FDD.
Local Function #8
Function Name | VldtRollgCntr | Type | Min | Max |
Arguments Passed | SigGroupDataSrc_Cnt_T_enum | ImcArbnRxDataSrc1 | 0 | 2 |
RateGroup_Cnt_T_u08 | Uint8 | 0 | 2 | |
SigGroup_Cnt_T_u08 | Uint8 | 0 | 255 | |
PrsntRollgCntr_Cnt_T_u08 | Uint8 | 0 | 31 | |
Return Value | RollgCntrSts_Cnt_T_enum | ImcArbnRxRollgCntrSts1 | 0 | 2 |
Description
This function implements “VldtRollgCntr” function in the FDD.
Local Function #9
Function Name | VldtRollgCntrAlg | Type | Min | Max |
Arguments Passed | SigGroupDataSrc_Cnt_T_enum | ImcArbnRxDataSrc1 | 0 | 2 |
RateGroup_Cnt_T_u08 | Uint8 | 0 | 2 | |
SigGroup_Cnt_T_u08 | Uint8 | 0 | 255 | |
PrsntRollgCntr_Cnt_T_u08 | Uint8 | 0 | 31 | |
Return Value | RollgCntrSts_Cnt_T_enum | ImcArbnRxRollgCntrSts1 | 0 | 2 |
Description
This function implements “VldtRollgCntrAlg” function in the FDD.
Local Function #10
Function Name | RollgCntrSeqChk | Type | Min | Max |
Arguments Passed | PrsntRollgCntr_Cnt_T_u08 | Uint8 | 0 | 31 |
AntcptdRollCntr_Cnt_T_u08 | Uint8 | 0 | 31 | |
UpprDriftLim_Cnt_T_u08 | Uint8 | 0 | 255 | |
LwrDriftLim_Cnt_T_u08 | Uint8 | 0 | 255 | |
Return Value | RollgCntrVld_Cnt_T_logl | boolean | 0 | 1 |
Description
This function implements “RollgCntrSeqChk” function in the FDD.
Local Function #11
Function Name | CreatSigGroupData | Type | Min | Max |
Arguments Passed | SigGroup_T_rec | SigGroupRec1 const* | 0x00000001 | 0xFFFFFFFF |
Return Value | RetData_Uls_T_u32 | uint32 | 0 | 4294967295 |
Description
This function implements “CreatSigGroupData” function in the FDD.
Local Function #12
Function Name | DecodSigGroupData | Type | Min | Max |
Arguments Passed | SigGroup_T_rec | SigGroupRec1 const* | 0x00000001 | 0xFFFFFFFF |
SigGroupRxData_Uls_T_u32 | uint32 | 0 | 4294967295 | |
RxSigExtdSts1_Cnt_T_enum | ImcArbnRxExtdSts1 | 0 | 6 | |
RxDataSrc_Cnt_T_enum | ImcArbnRxDataSrc1 | 0 | 2 | |
Return Value | void |
Description
This function implements “DecodSigGroupData” function in the FDD.
Local Function #13
Function Name | GetBitMask | Type | Min | Max |
Arguments Passed | NrOfBits_Cnt_T_u08 | Uint8 | 0 | 31 |
Return Value | BitMask_Cnt_T_u32 | uint32 | 0 | 4294967295 |
Description
This function implements “GetBitMask” function in the FDD.
Local Function #14
Function Name | GetImcSigSts | Type | Min | Max |
Arguments Passed | RxSigExtdSts1_Cnt_T_enum | ImcArbnRxExtdSts1 | 0 | 6 |
Return Value | RetSts_Cnt_T_enum | ImcArbnRxSts1 | 0 | 2 |
Description
This function implements “GetImcSigSts” function in the FDD.
Local Function #15
Function Name | GetImcFltParamByte | Type | Min | Max |
Arguments Passed | void | |||
Return Value | FltBitMask_Cnt_T_u08 | Uint8 | 0 | 15 |
Description
This function implements “GetImcFltParamByte” function in the FDD.
Local Function #16
Function Name | NoDataRxd | Type | Min | Max |
Arguments Passed | StrtByte_Cnt_T_u08 | Uint8 | 0 | 255 |
EndByte_Cnt_T_u08 | Uint8 | 0 | 255 | |
Return Value | RetVal_Cnt_T_logl | boolean | 0 | 1 |
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
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 Acronym | Description |
---|---|
DFD | Design functional diagram |
MDD | Module design Document |
FDD | Functional 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
Term | Definition | Source |
---|---|---|
MDD | Module Design Document | |
DFD | Data Flow Diagram |
References
Ref. # | Title | Version |
---|---|---|
1 | AUTOSAR Specification of Memory Mapping (Link:AUTOSAR_SWS_MemoryMapping.pdf) | v1.3.0 R4.0 Rev 2 |
2 | MDD Guideline | EA4 01.00.00 |
3 | Software Naming Conventions.doc | 1.0 |
4 | Software Design and Coding Standards.doc | 2.1 |
5 | FDD: AR350A_ImcArbn_Design | See Synergy subproject version |