Steuergeräte-Kalibrierung mit ASAP2Library und ASAP2Demo
ASAP2 ist ein Format für ECU-Mess- und Kalibrierdaten, erstellt ASAM (Association for Standardization of Automation and Measuring Systems). Dieser Standard ist im Automobilbereich weit verbreitet.
Ursprünglich als leichtgewichtiger A2L-Parser entwickelt, wurden im Laufe der Zeit immer mehr Automobilstandards (XCP, CCP, MDF, UDS, DoIP und ODX) hinzugefügt.
Die ASAP2Demo Applikation basiert auf der ASAP2Library und ist kostenlos verfügbar.
ASAP2Library-Schlüsselfunktionen:
- .NET Framework assembly und damit aus allen .NET Framework-fähigen Sprachen nutzbar (C#, VB.NET, F#, J#,...).
- Ausschließlich in managed Code entwickelt und daher portabel. Kompilierbar für Windows (ab .NET Framework ≥ 4.0) und .NET (Windows/Linux/MacOS).
- Modulare Architektur, alle Module können nach Bedarf kombiniert werden.
- Reader Modul
- Implementiert die vollständige ASAM MCD-2MC v1.7.1 (ASAP2) Spezifikation.
- Erzeugt ein objektorientiertes, hierarchisches .NET-Objektmodell, siehe auch die ASAP2Library API und Beispiel code.
- Typsicherheit – alle A2L-Objekte und ihre Eigenschaften werden dem entsprechenden .NET-Typ zugeordnet.
- A2L Syntax-/Modellprüfung (z. B. fehlende Objektverknüpfungen).
- Das Objektmodell erlaubt es, nahezu jede A2L-Objekteigenschaft zu ändern.
- 8 MBit/s-Parsing-Leistung (vermutlich der schnellste verfügbare ASAP2-Parser).
- Writer Modul
- Ermöglicht das manuelle Hinzufügen beliebiger A2L-Objekte zum A2L-Objektmodell.
- Schreiben des .NET-Objektmodells (optimiert und/oder gefiltert) in eine A2L Datei.
- Serialisieren/Deeserialisieren des .NET Objektmodells in eine XML Abbildung.
- Values Modul
- Lesen und Schreiben von ECU Kalibrierdaten in/aus dem erstellten A2L Objektmodell. Dabei werden die Dateiformate Intel HEX, Motorola S, INCA DCM, CANape PAR, CDF und MATLAB (.m) unterstützt.
- Konvertierung von Byte-Streams aus Kalibrierdaten in physikalische Werte.
- Konvertierung von physikalischen Werten in Byte-Streams zur Speicherung der Kalibrierdaten.
- Comm Modul
- Implementiert die ASAM MCD-1 XCP V1.3.0 Spezifikation, unterstützt sind TCP/UDP über Ethernet, über SxI, über USB und über CAN/CAN FD mit den unterstützten CAN Hardware Providern.
- Implementiert die ASAM MCD-1 CCP V2.1 Spezifikation mit den unterstützten CAN Hardware Providern.
- Eine gemeinsame Schnittstelle zum Messen, Kalibrieren und Flashen von XCP- und CCP-Steuergeräten.
- Steuergeräte-Simulator (Simulation eines Steuergeräts in einer Konsolenanwendung mithilfe des A2L-Parsers und XCP[UDP/TCP/CAN/SxI], CCP oder UDS Protokolle).
- Anbindung an viele bekannte CAN/CAN FD Hardware Produkte über ein einheitliches Interface:
8devices USB2CAN, Advantech, Star Cooperation FlexCard, ESD (CAN FD), ETAS (CAN FD), Intrepid control systems (CAN FD), IXXAT (CAN FD), Kvaser (CAN FD), Lawicel CANUSB, National Instruments (NI-CAN), National Instruments (XNET) (CAN FD), MHS Elektronik Tiny-CAN, Peak (CAN FD), Softing, Vector (CAN FD). - Unterstützt den Zugriff auf serielle Ports (COMx) für XCPonSxI.
- DBC Modul
- Lesen, schreiben und editieren von DBC (CANdb++) Dateien.
- Messen und Berechnen von physikalischen Signalen values duch Anbindung an unterstützte CAN Hardware Provider.
- MDF Modul
- Lesen und interpretieren von MDF Dateien bis Version v4.1.1
- Schreiben von MDF Dateien in den Formaten v3.3 and v4.10
- Ein gemeinsames Interface um MDF v3/v4 formatierte Dateien zu Lesen und zu Schreiben.
- Diagnose Modul
- Lesen, schreiben und editieren von Open Diagnostic eXchange format (ODX/PDX, ASAM MCD-2D) Dateien.
- Implementiert das ISO 15765-2 ISO-TP (Transport Layer) über CAN/CAN FD Protokoll.
- Implementiert das ISO 13400-2 (Diagnosekommunikation über IP, DoIP) Protokoll.
- Implementiert das ISO 14229 (Unified Diagnostic Service, UDS) Protokoll.
- Symbols Modul
- Lesen von ELF (Executable and Linkable format) oder MAP Dateien um A2L Objekt-Addressen synchroniseren zu können.
- Unterstützung für in ELF Dateien enthaltene DWARF formatierte Debug Informationen.
- Ermöglicht das Aktualisieren einer A2L Datei mit den aus der ELF oder MAP Datei gewonnenen Addressinformationen, siehe auch ELF Beispiel.
Schnittstellen:
- Problemloser Einsatz in jeder .NET Aapplikation mit einer einfachen Assembly-Referenz.
- Einsatz in nativen C/C++ Anwendungen durch Erstellen von COM-Wrappern.
- Einsatz in Python Anwendungen mit Hilfe von Python.NET (siehe auch das Python Beispiel).
- Einsatz in MATLAB Applikationen.
- Einsatz in LabView Applikationen.