SnsrOffLrng_MDD
Module Design Document
For
Sensor Offset Learning
Dec 7, 2016
Prepared By:
Shruthi Raghavan,
Nexteer Automotive,
Saginaw, MI, USA
Change History
| Version | Description | Author | Date | 
| 1 | Initial Version | Selva Sengottaiyan | 07-Feb-2016 | 
| 2 | Updated as per FDD v 1.2.0 | Krishna Anne | 07-Mar-2016 | 
| 3 | Updated graphical representation | Nick Saxton | 17-Aug-2016 | 
| 4 | Updated design limitations for FDD v1.5.0 | Shruthi Raghavan | 7-Dec-2016 | 
Table of Contents1 Introduction 6
2 SnsrOffsLrng & High-Level Description 7
3 Design details of software module 8
3.1 Graphical representation of SnsrOffsLrng 9
4.1 Program (fixed) Constants 11
5 Software Component Implementation 12
5.1.1 Init: SnsrOffsLrngInit1 12
5.1.2 Per: SnsrOffsLrngPer1 12
5.1.2.2 Store Module Inputs to Local copies 12
5.1.2.3 (Processing of function)……… 12
5.1.2.4 Store Local copy of outputs into Module Outputs 12
5.1.1 Per: SnsrOffsLrngPer2 12
5.1.1.2 Store Module Inputs to Local copies 12
5.1.1.3 (Processing of function)……… 12
5.1.1.4 Store Local copy of outputs into Module Outputs 12
5.2.1.2 Store Module Inputs to Local copies 13
5.2.1.3 (Processing of function)……… 13
5.2.1.4 Store Local copy of outputs into Module Outputs 13
5.2.2 SnsrOffsLrng_RstYawAndAg 13
5.2.2.2 Store Module Inputs to Local copies 13
5.2.2.3 (Processing of function)……… 13
5.2.2.4 Store Local copy of outputs into Module Outputs 13
5.2.3 SnsrOffsLrng_SetHwAgOffs 13
5.2.3.2 Store Module Inputs to Local copies 13
5.2.3.3 (Processing of function)……… 13
5.2.3.4 Store Local copy of outputs into Module Outputs 13
5.2.4 SnsrOffsLrng_GetHwAgOffs 14
5.2.4.2 Store Module Inputs to Local copies 14
5.2.4.3 (Processing of function)……… 14
5.2.4.4 Store Local copy of outputs into Module Outputs 14
5.2.5 SnsrOffsLrng_SetHwTqOffs 14
5.2.5.2 Store Module Inputs to Local copies 14
5.2.5.3 (Processing of function)……… 14
5.2.5.4 Store Local copy of outputs into Module Outputs 14
5.2.6 SnsrOffsLrng_GetHwTqOffs 14
5.2.6.2 Store Module Inputs to Local copies 14
5.2.6.3 (Processing of function)……… 14
5.2.6.4 Store Local copy of outputs into Module Outputs 14
5.2.7 SnsrOffsLrng_SetYawRateOffs 15
5.2.7.2 Store Module Inputs to Local copies 15
5.2.7.3 (Processing of function)……… 15
5.2.7.4 Store Local copy of outputs into Module Outputs 15
5.2.8 SnsrOffsLrng_GetYawRateOffs 15
5.2.8.2 Store Module Inputs to Local copies 15
5.2.8.3 (Processing of function)……… 15
5.2.8.4 Store Local copy of outputs into Module Outputs 15
5.3 Module Internal (Local) Functions 15
5.3.1 Module Internal (Local) Functions 15
6 Known Limitations with Design 19
Appendix A Abbreviations and Acronyms 21
Introduction
Refer the Design Subproject.
SnsrOffsLrng & High-Level Description
Refer the Design Subproject.
Design details of software module
Graphical representation of SnsrOffsLrng
Constant Data Dictionary
Program (fixed) Constants
Embedded Constants
Local Constants
| Constant Name | Resolution | Units | Value | 
|---|---|---|---|
| HWTQOFFSHILIM_HWNWTMTR_F32 | Single precision float | HwNwtMtr | 4 | 
| HWTQOFFSLOLIM_HWNWTMTR_F32 | Single precision float | HwNwtMtr | -4 | 
| VEHYAWRATEOFFSHILIM_VEHDEGPERSEC_F32 | Single precision float | VehDegPerSec | 20 | 
| VEHYAWRATEOFFSLOLIM_VEHDEGPERSEC_F32 | Single precision float | VehDegPerSec | -20 | 
| HWAGOFFSHILIM_HWDEG_F32 | Single precision float | HwDeg | -30 | 
| HWAGOFFSLOLIM_HWDEG_F32 | Single precision float | HwDeg | -30 | 
| MTRXSIZE_CNT_U08 | 1 | Cnt | 3 | 
Software Component Implementation
Sub-Module Functions
Init: SnsrOffsLrngInit1
Design Rationale
Refer the Design.
Module Outputs
Refer the Design.
Per: SnsrOffsLrngPer1
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
Per: SnsrOffsLrngPer2
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
Server Runables
SnsrOffsLrng_RstHwTq
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
SnsrOffsLrng_RstYawAndAg
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
SnsrOffsLrng_SetHwAgOffs
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
SnsrOffsLrng_GetHwAgOffs
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
SnsrOffsLrng_SetHwTqOffs
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
SnsrOffsLrng_GetHwTqOffs
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
SnsrOffsLrng_SetYawRateOffs
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
SnsrOffsLrng_GetYawRateOffs
Design Rationale
Refer the Design.
Store Module Inputs to Local copies
Refer the Design.
(Processing of function)………
Refer the Design.
Store Local copy of outputs into Module Outputs
Refer the Design.
Module Internal (Local) Functions
Module Internal (Local) Functions
Calculate LearnHwAg
| Function Name | LearnHwAg | Type | Min | Max | UTP Tol. | 
| Arguments Passed | HwAgLrngLrngCdnVld_Cnt_T_logl | Boolean | FALSE | TRUE | |
| HwAgLrngEna_Cnt_T_logl | Boolean | FALSE | TRUE | ||
| SysTqFild_HwNm_T_f32 | float32 | -8.8 | 8.8 | ||
| HandwheelPosition_HwDeg_T_f32 | float32 | -1440 | 1440 | ||
| Return Value | None | 
Description
No flowchart added. For Unit test FDD should provide the information needed regarding function processing
Calculate SOaCHierarchyManager
| Function Name | SOaCHierarchyManager | Type | Min | Max | UTP Tol. | 
| Arguments Passed | *EnableYOC_Cnt_T_logl | Boolean | FALSE | TRUE | |
| *HwAgLrngEna_Cnt_T_logl | Boolean | FALSE | TRUE | ||
| *HwAgLrngRst_Cnt_T_logl | Boolean | FALSE | TRUE | ||
| Return Value | 
Description
No flowchart added. For Unit test FDD should provide the information needed regarding function processing
Calculate Perform_TqInpDetn
| Function Name | Perform_TqInpDetn | Type | Min | Max | UTP Tol. | 
| Arguments Passed | None | ||||
| Return Value | 
Description
No flowchart added. For Unit test FDD should provide the information needed regarding function processing
Calculate EnableLearning
| Function Name | EnableLearning | Type | Min | Max | UTP Tol. | 
| Arguments Passed | |||||
| Return Value | HwTqLrngEna_Cnt_T_logl | Boolean | FALSE | TRUE | 
Description
No flowchart added. For Unit test FDD should provide the information needed regarding function processing
Calculate CalculateKVector
| Function Name | CalculateKVector | Type | Min | Max | UTP Tol. | 
| Arguments Passed | TqMdlXAry_HwRadpS_T_f32[3] | float32 | -42 | 42 | |
| KVect_Uls_T_f32[3] | float32 | -42 | 42 | ||
| Return Value | 
Description
No flowchart added. For Unit test FDD should provide the information needed regarding function processing
Calculate EnablePreProcessing
| Function Name | EnablePreProcessing | Type | Min | Max | UTP Tol. | 
| Arguments Passed | HwTqPreproc_dB_T_f32 | float32 | -100 | 30 | |
| SampleCntrLim_Cnt_T_u16 | Uint16 | 1 | 65535 | ||
| TqInpPrsntVld_Cnt_T_logl | Boolean | FALSE | TRUE | ||
| TqInpPrsnt_Cnt_T_logl | Boolean | FALSE | TRUE | ||
| Return Value | 
Description
No flowchart added. For Unit test FDD should provide the information needed regarding function processing
Calculate UpdateCovarianceMatrix
| Function Name | UpdateCovarianceMatrix | Type | Min | Max | UTP Tol. | 
| Arguments Passed | TqMdlXAry_HwRadpS_T_f32[3] | float32 | -42 | 42 | |
| KVect_Uls_T_f32[3] | float32 | -42 | 42 | ||
| Return Value | 
Description
No flowchart added. For Unit test FDD should provide the information needed regarding function processing
TblSize_Cnt_T_u16 is size of the single dimension of TqMdlAryKVect_Uls_T_f32.
Calculate UpdateHwTqOffs
| Function Name | UpdateHwTqOffs | Type | Min | Max | UTP Tol. | 
| Arguments Passed | HwTqEstimnVld_Cnt_T_logl | boolean | FALSE | TRUE | |
| HwTqDriftEstimnOnCentr_HwNm_T_f32 | float32 | -10 | 10 | ||
| Return Value | None | 
Description
No flowchart added. For Unit test FDD should provide the information needed regarding function processing
Calculate UpdateSampleCnt
| Function Name | UpdateSampleCnt | Type | Min | Max | UTP Tol. | 
| Arguments Passed | HwAgMeasd_HwDeg_T_f32 | float32 | -1440 | 1440 | |
| Return Value | None | 
Description
No flowchart added. For Unit test FDD should provide the information needed regarding function processing
Known Limitations with Design
The display variable dSnsrOffsLrngSysTqFild and PIM SysTqCdngFil structure have wrong ranges defined in the datadict.m file. The actual range according to developer is [-366, 366]. However, since the given range is larger and includes the correct range and because these variables are not affecting the downstream operations in a way that will fail the PIL, this is not changed in the interest of time (changing this would mean rerunning the robustness test and there wasn’t enough time for that before release).
The name of the NVM structure type SnsrLrndOffsRec2 is changed without any change to the name or datatype of the corresponding elements. The only difference between SnsrLrndOffsRec1 and SnsrLrndOffsRec2 is the ranges of the elements within the structure.
Since this is not the agreed process for EA4, the implementation deviates from FDD and uses the original structure in order to avoid a change to StdDef to only add a redundant datatype. For the next FDD revision we need to make a decision on whether to go back to SnsrLrndOffsRec1 in the FDD or change the StdDef and add SnsrLrndOffsRec2 type in it. Either way, once the new tool is officially rolled out for use, such deviations of type will be caught in the Polyspace as an error (necessitating manual fixes to work around such issues).
UNIT TEST CONSIDERATION
The display variable dSnsrOffsLrngSysTqFild and PIM SysTqCdngFil structure have wrong ranges defined in the datadict.m file. The actual range according to developer is [-366, 366]. However, since the given range is larger and includes the correct range and because these variables are not affecting the downstream operations in a way that will fail the PIL, this is not changed in the interest of time (changing this would mean rerunning the robustness test and there wasn’t enough time for that before release).
Abbreviations and Acronyms
| Abbreviation or Acronym | Description | 
|---|---|
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.01 | 
| 3 | Software Naming Conventions.doc | 1.0 | 
| 4 | Software Design and Coding Standards.doc | 2.1 | 
| 5 | SF051A_SnsrOffsLrng_Design | See the synergy sub-project version included. |