|A2ML||Defines the formal description of parameters that describe the communication between the MC- system and the ECU. The A2ML block only describes the syntax of communication parameters. Their meaning (i.e. semantics) depends on the used communication protocol and drivers, which is not part of ASAM MCD-2 MC. The parameters typically contain the configuration of the protocol stack and are needed to create messages for measurement & calibration objects such as MEASUREMENT and CHARACTERISTIC. The actual parameter values are given in the IF_DATA blocks. The values in the IF_DATA blocks must match the syntax description of the A2ML block. The description is expressed in the ASAM MCD-2 MC meta language (AML).|
|AXIS_PTS||Axes contain the sample point values for curves and maps. The keyword describes the properties of an axis, such as its address in memory, references to the input variable (MEASUREMENT), record layout and computation method, the maximum number of sample points and further properties.|
|BLOB||Definition of a binary large object for calibration (not measureable). Is just an array of bytes, with no further structural or semantic interpretation. Has no COMPU_METHOD or RECORD_LAYOUT.|
CHARACTERISTIC describes the properties of a tunable parameter. This parameter can be a scalar, string, array or look-up-table with associated axes. The following types of tunable parameters are available:
- VALUE: scalar
- ASCII: string
- VAL_BLK: array (no axes)
- CURVE: 1D-table
- MAP: 2D-table
- CUBOID: 3D-table
- CUBE_4: 4D-table
- CUBE_5: 5D-table
The address, record layout, computation method, upper and lower calibration limits and further properties are defined.
Describes the methods and properties for converting values from an ECU-internal format, which is optimized for implementation, to a physical format, which is easily understood by human beings. Computation methods are typically referenced by CHARACTERISTICs and MEASUREMENTs. The majority of automotive ECU software still uses scaled integers for this data. COMPU_METHODs convert this data from their fixed-point representation into a floating-point representation for display in an MC-system. This representation typically has an SI unit for signals, or may displays discrete data such as error codes as text strings. Supported conversion methods are:
- IDENTICAL: no conversion
- LINEAR: linear, 2-coefficient function with slope and offset
- RAT_FUNC: 6-coefficient rational function with 2nd-degree numerator and denominator polynomials
- TAB_INTP: table with interpolation
- TAB_NOINTP: table without interpolation
- TAB_VERB: verbal table (i.e. enumeration)
- FORM: formula which consists of a specific set of operators and functions
Please note that the conversion direction is from the internal format to the physical format, except for RAT_FUNC, which describes the conversion from the physical format to the internal format.
Other properties describe the display format (in C-printf notation) and the unit. If needed, the COMPU_METHOD specifies the formula coefficients, references to tables, formulas and units.
|COMPU_TAB||Conversion tables are used by COMPU_METHODs, if the conversion cannot be expressed by a formula. They are described by input-output value pairs, i.e. same as a 1D lookup table. Conversion tables with or without interpolation are supported.|
|COMPU_VTAB||Verbal conversion tables are used to convert internal ECU values into human-readable strings. A number or bit-pattern is assigned to a string. Verbal conversion tables are described by pairs of input-values and output-strings. This method is equivalent to enumerated types in the C programming language.|
|COMPU_VTAB_RANGE||Same as COMPU_VTAB, but allows to specify a value range for each string.|
|FRAME||Allows to group MEASUREMENTs to selection lists, which can be chosen in an MC-system for selective recording and display of ECU-internal variables. FRAMEs are typically used to bundle variables, which shall be measured and viewed together. The FRAME keyword can also be used to describe the packaging of ECU-internal variables in a CAN frame.|
|FUNCTION||Allows to group MEASUREMENTs, CHARACTERISTICs and AXIS_PTSs into selection lists, which can be chosen in an MC-system for selective tuning of parameters and recording of variables. FUNCTIONs are typically used to bundle variables and parameters, which belong to one software function. This supports function-oriented measurement and calibration. Owned and external parameters and variables can be expressed. Function hierarchies that include sub-functions can be expressed.|
|GROUP||Allows to group MEASUREMENTs, CHARACTERISTICs and AXIS_PTSs into selection lists, which can be chosen in an MC-system for selective tuning of parameters and recording of variables. GROUPs are typically used to bundle variables and parameters that have a common meaning or are used for a specific view. GROUPs can be used in conjunction with USER_RIGHTS to control user access. This supports function-oriented measurement and calibration. Group hierarchies can be expressed that include a root and sub-groups.|
|IF_DATA||List of parametric values that are used to configure the device driver for communication between the MC-system and ECU. As a primary keyword on MODULE level, the IF_DATA section contains the parametric values for the configuration of the protocol stack. IF_DATA sections may also be used as secondary keywords (see table below) to parameterize the communication of objects such as MEASUREMENT and CHARACTERISTIC. The list of values needs to match with the syntax definitions in the A2ML section of the a2l-file.|
To instantiate a MEASUREMENT, CHARACTERISTIC, AXIS, BLOB or structure object.
|MEASUREMENT||MEASUREMENT describes the properties of a recordable, ECU-internal variable. This variable can be a scalar or an array. Bit masks and bit operations can be applied to the measurement. The address, byte order, computation method, upper and lower limits and further properties are described. Standard allows also to write to measurement objects, e.g. to stimulate the ECU during runtime. MEASUREMENT may also describe a virtual variable, which is calculated from ECU-internal variables, other virtual variables and constants.|
|MOD_COMMON||Defines default parameters that are common for other keywords of the module, so they do not have to be repeated for each of them. They include the definition of byte alignment, byte order, size and storage of data in the ECU memory. The parameters of MOD_COMMON are optional parameters of other keywords. If they are not defined in a keyword, then the corresponding parameter value of MOD_COMMON is used. Otherwise, when a parameter is defined in a keyword, then it overrules the parameter value defined in MOD_COMMON.|
|MOD_PAR||Specifies general parameters of a module (i.e. ECU). This includes data such as the name of the CPU, customer, version and other ECU-specific data. Furthermore, this keyword contains the description of the organization of the ECU's memory via the keyword MEMORY_SEGMENT as well as a list of system constants which can be used in conversion methods.|
|RECORD_LAYOUT||Describes how structures of tunable parameters (CHARACTERISTIC) and axes (AXIS_PTS) are stored in memory. It describes byte alignments, order and position of calibration objects in memory, their rescaling, memory offset and further properties.|
Definition of call to an external function (32-bit or 64-bit DLL) for converting calibration object values between their implementation format and physical format. Bi-directional conversion is possible. Includes list of input and output objects. Input and output objects cannot contain measurement objects. Defines timeout. Defines trigger conditions:
TRANSFORMERs are typically use for IP protection, or if COMPU_METHODS are not useable due to complex conversion algorithms.
Type definition of a axis object. Can be used for defining multiple axis objects of the same type. Can be used to define axis objects, which are part of a structure.
Type definition of a BLOB. Can be used for defining multiple BLOBs of the same type. Can be used to define BLOBs, which are part of a structure.
|Type definition of a calibration object. Can be used for defining multiple calibration objects of the same type. Can be used to define calibration objects, which are part of a structure.|
Type definition of a measurement object. Can be used for defining multiple measurement objects of the same type. Can be used to define measurement objects, which are part of a structure.
Definition of structured data types similar to the "typedef" command in C. Contains objects of type TYPEDEF_, including other structures. Cannot mix TYPEDEF_MEASUREMENT objects with any other object types.
|UNIT||Defines units that can be referenced by MEASUREMENT, CHARACTERISTIC, AXIS_PTS and COMPU_METHOD. Units shall be stated according to the International System of Units (SI). UNIT supports SI based units described by exponents of the seven base units as well as derived units described by a reference unit and a linear conversion method.|
|USER_RIGHTS||Lists GROUPs and access rights for named users. Access rights might be read-only or read & write. |
|VARIANT_CODING||Description of tunable parameters, which have more than one value stored in ECU memory at different addresses. The description of variant-coded parameters and non-variant coded parameters does not differ in the CHARACTERISTIC keyword. If a parameter shall be variant coded, then VARIANT_CODING has a reference to this parameter and specifies additional properties that describe how to select the active variant (i.e. read the selected value from memory). The active variant might be selected by another tunable parameter (VAR_SELECTION_CHARACTERISTIC) or an ECU-internal variable (VAR_MEASUREMENT).|