ECU calibration with ASAP2Demo/ASAP2 library
What is ASAP2?
ASAP2 is an ECU Measurement and Calibration Data Exchange Format created by the ASAM (Association for Standardisation 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 and ODX. The ASAP2Demo application using this ASAP2 library is free to use.
ASAP2 Library features:
- Implements the complete ASAM MCD-2M 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 ASAP2 Library 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 4 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 (currently supported are Intel HEX, Motorola S, INCA DCM, CDFX 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 hardware providers:
- 8devices USB2CAN
- Eberspächer Electronics
- IXXAT (including support for local ECUSimulator)
- Kvaser (including support for local ECUSimulator)
- Lawicel CANUSB
- National Instruments (32 Bit only, see 32Bit process)
- MHS Elektronik Tiny-CAN I, Tiny-CAN II XL, Tiny-CAN IV XL, Tiny-CAN M1, ...)
- Vector (including support for local ECUSimulator)
- Implements the complete ASAM MCD-1 XCP V1.1.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 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 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
The ASAP2Library is exclusively available as source code. Request order and license information.
- .NET Framework 4.0 Windows forms application.
- Windows MSI installer.
- MultiDocument and MultiMonitor User Interface to parse/visualize and connect to more than one ECU.
- File Drag&Drop support.
- Fully editable A2L content inclusive syntax highlighting.
- Full text search/replace in A2L source files.
- Find and display violations against the ASAP2 standard.
- Find and display missing object references.
- Change many A2L properties and rewrite/optimize the A2L file
- Export the complete A2L object model into XML.
- a powerful search function to locate A2L objects by name
- Loading and saving of calibration data files (supported is the Intel HEX and the Motorola S file format).
- Export and import calibration data to/from INCA DCM, CDFX files and MATLAB (.m) files.
- Graphical visualization of calibration data.
- Graphical visualization of measured data.
- Adjust ECU calibration data (offline and online).
- Ability to connect to multiple ECUs on XCP over UDP/TCP/CAN or simulated ECUs.
- Ability to connect to multiple ECUs on CCP.
- Ability to connect to multiple ECUs on UDS.
- Runs as 32 or 64 Bit process depending on the Operating System.
- XCP/CCP/CAN/J1939/UDS/SYSLog Logging ability.
- Open, edit and write DBC (CANdb++) files. Measuring of contained signals over CAN is possible.
- Simulate parts of or complete DBC files on the CAN bus.
- Open, visualize and navigate through MDF files.
- Open, edit and write ODX files.
- Synchronize A2L files from ELF files.