ECU calibration with ASAP2Library and ASAP2Demo
What is ASAP2?
ASAP2 is an ECU Measurement and Calibration Data Exchange Format created by the ASAM (Association for Standardization of Automation and Measuring Systems). The standard is commonly used in automotive environments.
ASAP2 (.a2l) files may be created by MATLAB (Real-Time Workshop) or similar tools.
As I'm often deal with these type of files, I've done a lightweight ASAP2 parser. Over the years I added further standard implementations like XCP, CCP, MDF and ODX.
The ASAP2Demo application is based on the ASAP2Library and is free to use.
- Implements the complete ASAM MCD-2MC v1.7.0 (ASAP2) specification.
- .NET Framework assembly and therefore usable from any available .NET framework language (C#, VB, J#, F#,...).
- Exclusively written in managed code and therefore portable. Available for Windows or Mono (Linux/MacOS).
- Creates an object oriented, hierarchical .NET object model, see the ASAP2Library API and the demo code, exportable into XML, too.
- Any A2L object and it's properties are mapped to a corresponding .NET type.
- A2L syntax checking.
- A2L model checking (e.g. missing object links).
- Approximately 8 MBit/s parsing performance (maybe the fastest available ASAP2 parser).
- Changing almost any A2L object property.
- Rewriting and optimizing the A2L model.
- Reading ECU calibration data files into the created A2L model (supported are Intel HEX, Motorola S, INCA DCM, CDF and MATLAB (.m) file formats).
- A module to convert byte streams from the calibration data file into physical values of corresponding A2L characteristics.
- A module to convert physical data into byte streams in order to save modified data into a calibration data file.
- Supports the following CAN/CAN FD hardware providers:
- 8devices USB2CAN
- Eberspächer Electronics
- ESD, including support for CAN FD
- IXXAT, including support for local ECUSimulator
- Kvaser, including support for CAN FD and a local ECUSimulator
- Lawicel CANUSB
- National Instruments (NI-CAN) (32 Bit only, see 32Bit process)
- National Instruments (XNET), including support for CAN FD
- MHS Elektronik Tiny-CAN I, Tiny-CAN II XL, Tiny-CAN IV XL, Tiny-CAN M1, ...)
- Peak, including support for CAN FD
- Vector, including support for CAN FD and a local ECUSimulator
- Implements the complete ASAM MCD-1 XCP V1.3.0 specification, supporting communication over
- Implements the complete ASAM MCD-1 CCP V2.1 specification supporting communication over CAN on supported CAN Hardware providers.
- An ECU simulator (the ability to simulate an ECU in a console application by using the A2L parser and the XCP/CCP/Diagnose module)
- A module to read, write and edit DBC (CANdb++) files.
- A module to read, write and edit Open Diagnostic eXchange format (ODX, ASAM MCD-2D) files.
Implements the ISO 15765-2 (ISO-TP (Transport Layer); on CAN and CANFD) protocol.
Implements the ISO 14229 (Unified Diagnostic Service, UDS) protocol.
- Implements a module to read MDF formats up to v4.1.1 and write MDF format v3.3 and MDF V4.10 (Measurement data format) files..
- A module to read ELF (Executable and Linkable format) files in order to synchronize A2L object addresses.
- Use it within any .NET application by reference
- Use it from MATLAB applications
- Use it from LabView applications
- Use it from native C++ applications by Wrapping Managed Objects in a native Application