Rte Automatic Data Conversion – Description and Integration
Here you will find some use cases where the MICROSAR Rte is performing an automatic data conversion.
What is Data Conversion in the Context of Rte?
Data conversion is the ability of the Rte to automatically convert and re-scale data received via external communication when it is to be used at SWCs.
What is Data Conversion NOT?
- Data conversion is no data transformation. AUTOSAR also specifies data transformation which defines mechanisms to linearize and transform data. These are mostly defined for Safety- and Diagnostic- communication and for communication with large data arrays, but not intended to be used for general signal-based communication.
- Data conversion is no automatic re-scaling into physical representations defined in the compu method of AUTOSAR data types. The compu methods of the SWC’s port interfaces are not taken into account.
What is External Communication?
Only data that is received from an external communication bus or data that is transmitted onto an external data bus will be converted, this is an AUTOSAR requirement. So, all data elements passed from one SWC to another will not be converted automatically, this must be performed by application code. In turn, internal communication is the communication between SWCs regardless if core or application boundaries are crossed.
When is Data Conversion Necessary?
The main goal of the AUTOSAR SWC design is to keep the implementation of an SWC equal nevertheless its port interfaces are not fitting perfectly to the environment of it. Therefore, a construct to make the port interfaces of the SWC compatible can help to integrate the same SWC into different vehicle projects. Since bus communication modelling is not standardized it could happen that on one vehicle project a certain data element, e.g. speed represents the unit “mph”, on another vehicle project “kmph” and on a third “m/s”.
Data conversion is specified only for external communication data!
Internally the SWCs shall communicate without data conversion. Breaking this rule would cause unnecessary CPU load. Therefore, only the paths to and from external communication need to be converted in some cases.
Which Use Cases are Specified by AUTOSAR and Which are Supported by MICROSAR?
This table just gives a coverage matrix. Please refer to the specification of the Rte for the description of the use cases. This requirement matrix is valid for MICROSAR Release 21, the requirements come from the Rte SWS for AUTOSAR Standard Release 4.3.1.
|Req. No.||Description||Supported||Further Information|
|SWS_Rte_03829||support the conversion of an identical or linear
scaled data representation to another identical or linear scaled data representation
|partly||only compu methods linear and identical are supported|
|SWS_Rte_08801||support the conversion integer-to-float and float-to-integer||ok|
|SWS_Rte_03830||support the conversion of a texttable data representation (enumeration or bitfield) to another texttable data representation||no||support for only internal communication, no support for external communication|
|SWS_Rte_03855||support the conversion of a mixed linear scaled and texttable data representation to another mixed linear scaled and text table data representation||no|
|SWS_Rte_03856||support the conversion between a texttable data
representation (enumeration) and a mixed linear scaled and texttable data representation
|no||In this case only the enumeration part of the data representation shall be converted, the linear scaled part shall be handled as out of range data.|
|SWS_Rte_03857||support the conversion between an identical or linear scaled data representation and a mixed linear scaled and texttable data representation||no|
|SWS_Rte_03860||support the conversion of composite data representations||ok||Record type data conversion data element by data element is supported regarding the rest of the requirement matrix. Port Interface Degradation is not supported. This means that if a group signal is mapped to a single data element (via port interface mapping sets) this data element is not data converted.|
|SWS_Rte_03831||The Rte generator shall reject any input that requires a conversion which is not supported.||different||Data conversion is not performed, a warning is created.|
|SWS_Rte_07928||The data conversion shall be supported for data types that refer to compu methods of category LINEAR, IDENTICAL, SCALE_LINEAR_AND_TEXTTABLE, TEXTTABLE , BITFIELD_TEXTTABLE and compu methods of category RAT_FUNC.||partly||IDENTICAL and LINEAR are supported|
|SWS_Rte_03832||For the conversion between two data representations with linear scaling described either by an ApplicationDataType or a combination of BaseType and CompuMethod (used for the specification of the network representation at the ComSpec respectively the SystemSignal) the Rte generator shall derive the data conversion code automatically from the referred CompuMethods of the two representations.||partly||The compu method of the mapped ISignal is used to convert the data element onto the pure native data element type. If compu methods or units on the port interface are configured, the compu method and unit is ignored. Only float<->int conversion is performed if necessary, based on the ISignal’s properties.|
|SWS_Rte_03833||For the conversion between two texttable data representations described either by an ApplicationDataType or an ImplementationDataType the Rte generator shall generate the data conversion code according to the TextTableMapping. This also applies to the texttable part of a mixed linear scaled and texttable data representation.||no||support for only texttable <-> texttable conversion and only for internal communication|
Which Settings are Activating Data Conversion?
There is no configuration switch that could activate or deactivate it. Data Conversion is activated automatically if it comes to the supported use cases below.
- Automatic Data Conversion between external Integer Types and internal Float Port Types
It is currently limited to data elements on S/R communication with integer network signal(s) mapped to floating point data types on SWC ports, compu methods of type LINEAR or IDENTICAL and data type policy LEGACY or OVERRIDE. Also groupsignals of signal groups are data converted when they are mapped to float record elements on SWC side.
Port Interface Degradation (only one Record Element of the delegation port is mapped to the SWC (and port interface mapping is defined for this connection for this use case)) prevents from data conversion.
- Texttable and bitfield texttable conversion at internal data elements
Deviating from AUTOSAR this use case is converting internally connected communication elements and not external communication. It is converting not fitting texttable data representations to each other’s data representation if there is a Port Interface mapping configured for this communication path. Therefore, the Texttable Mapping Properties within the Port interface Mapping dialogue have to be added in-between the connection of two port prototypes.
Is it Allowed to Mix Automatic Data Conversion-Connections and Non-Dataconversion Connections at One Port?
No, this is not allowed, Rte40170 will be thrown upon these configurations. The intention of automatic data conversion is to re-scale a data element between communication bus representation and ECU-internal handling of this data element. The need to re-scale one data element for different usages ECU-internally has to be avoided by software design. Adaption modules or user defined transformers could be a tool to realize this use case.
Data Conversion is Not Performed on My Project – Which Circumstances Could Prohibit This With My MICROSAR Rte?
|Data elements from internal communication are mapped||Rte Specification|
|External signal is mapped to several data elements where not all data elements would trigger the data conversion||Rte Specification|
|Compu Method of data type of the ISignal is not of type IDENTICAL, LINEAR, SCALE LINEAR, TEXTTABLE, SCALE_LINEAR-AND_TEXTTABLE, BITFIELD_AND_TEXTTABLE or "Rat_Func with reprocal linear data scaling"||Rte Specification|
|Data element mapped to the external signal is not of type “float” or is not mapped to a data type which references “float” (e.g. Application data type that is mapped to float for the SWC)||MICROSAR Limitation|
|Compu Method of data type of the ISignal is not of Type LINEAR or IDENTICAL||MICROSAR Limitation|
The Data Conversion Use Case I Need is Not Supported – Which Possible Workarounds Can I Think of?
The most effective strategy is to create a SWC that adapts the data elements into the desired unit. Custom data transformers could also be modelled, but this functionality is not supported until now.
What is Needed on SystemDescription Side to Enable Data Conversion?
The ISignal e.g. contains a compu method of type linear, so the bus representation can be converted into a physical unit which could be best represented by a float data type that is used at SWC side. Integer data types on SWC side would cause another inexactness in conversion, so it would be best to use float data types.