Richtiges „Flashen“ für jede Aufgabenstellung

27. Juli 2007, 14:07 Uhr | Andreas Patzer
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Richtiges „Flashen“ für jede Aufgabenstellung

Durch die Referenzierungen auf Flash-Daten und Flash- Jobs lassen sich einerseits zwar die ODX-Dateien ohne Neuerstellung einfach austauschen, andererseits ist damit aber auch die Gefahr verbunden, dass beim Fehlen eines referenzierten Dokuments der Prozess nicht mehr funktioniert. Als Lösung für dieses Problem wurden »Meta«-Container geschaffen, die alle zusammengehörenden Daten in einer einzigen gepackten Datei speichern. Die Container mit der Endung »PDX« (Packaged ODX) erlauben per Definition keine Referenzen auf Dateien außerhalb des Containers.

Dieses Konzept sorgt dafür, dass der Anwender immer die richtigen Flash-Daten mit den dazugehörenden Meta- Informationen über den passenden Flash-Ablauf in das Steuergerät lädt. Darüber hinaus erlaubt es sowohl ein vollautomatisches als auch ein halbautomatisches Flashen. Vollautomatisch bedeutet, dass der Anwender keine Konfigurations- oder Auswahltätigkeiten durchzuführen hat. Beim halbautomatischen Flashen kann der Anwender Einfluss auf den Flashvorgang nehmen.

Mithilfe von Standards wie ODX lassen sich Werkzeugketten einsetzen, die in jeder Entwicklungsphase für einen sicheren und prozesskonformen Flash-Vorgang sorgen. Durch die generischen und datengetriebenen Werkzeuge profitiert der Anwender von einer erhöhten Flexibilität in Richtung beliebiger Anforderungen und Aufgabenstellungen beim Thema Flashen. Ohne die entsprechenden Werkzeugketten lassen sich die Flash- Abläufe nicht realisieren. Der Steuergeräte-Entwickler erhält von Vector eine durchgängige Werkzeugunterstützung für alle Aspekte des Flashens: »CANdelaStudio« für die Spezifikation der Diagnoseanforderungen und Generierung der CDD-, ODX-D- und ODX-C-Dateien, »CANdelaFlash« zur Generierung der ODX-FFlashcontainer und den »FlashBootLoader« für unterschiedlichste Controller. »CANape« und »CANdito« generieren als Autoren- und Entwicklungstool skriptbasierte Flash-Abläufe und sind auch die eigentliche Ablaufumgebung für den Flash- Vorgang. Als reine Ablaufumgebung für Flash-Abläufe, die mit CANape und CANdito generiert wurden, dient »CANditoFlash«. (rh)

Krypto-Module sorgen für Manipulationsschutz beim Flashen

Um den Manipulationsschutz beim Flashen von Steuergeräten zu garantieren, integriert Vector Informatik Krypto-Module der Firma cv cryptovision in seine Bootloader. Diese unterstützen damit die von Automobilherstellern geforderten Sicherheitsmechanismen für Software-Updates.

Die Reprogrammierbarkeit (das Flashen) zur Software-Aktualisierung ist eine zentrale Forderung der OEMs an Steuergeräte im Kraftfahrzeug. Dieser Flash-Vorgang muss gegen Manipulation geschützt werden, um z.B. das Umgehen der Wegfahrsperre, die Änderung des Kilometerzählers oder das Einbringen manipulierter Softwareteile zu verhindern. Krypto-Algorithmen sollen diesen Schutz sicherstellen.

Vector Informatik und cv cryptovision konnten durch diese Kooperation komplexe mathematische Algorithmen effizient implementieren. Die bei Embedded-Softwarekomponenten im Automobil besonders wichtigen Faktoren Laufzeit und Effizienz fanden dabei besondere Berücksichtigung.

Aufgrund spezifischer Sicherheitsanforderungen der OEMs für unterschiedliche Steuergeräte kommen im Bootloader von Vector verschiedene Verfahren zum Einsatz: asymmetrische Schlüssel bei komplexen Steuergeräten sowie symmetrische Schlüssel und Einweg-Hashfunktionen bei niedrigen Sicherheitsanforderungen. Diese Verfahren haben sich in der PC-Welt bereits bewährt.

Kastenbild__tm.jpg
Bild 4. Architektur des Bootloaders mit Krypto-Modulen zum Manipulationsschutz

Autor:

Andreas Patzer kümmert sich bei Vector Informatik als Business Development Manager um die Produktlinie »Measurement and Calibration«

Vector Informatik
Telefon 07 11/80 67 00
www.vector-informatik.de

Auf der Steuergeräteseite ist der im Steuergerät integrierte und stets aktive Flash-Bootloader (FBL) für den Ablauf verantwortlich. Der FBL teilt sich auf in den permanent im Steuergerät vorhandenen Bootloader und den Flash-Driver (Bild 2).

Aus Sicherheitsgründen wird der Flash-Driver nur temporär ins RAM des Steuergerätes geladen, da er unter anderem den Service beinhaltet, zunächst den Flash-Speicher zu löschen, die Daten vom Flash- Tool entgegenzunehmen und den anschließenden Reset durchzuführen. Der Bootloader umfasst CANTreiber, Transportprotokoll und Diagnoseschicht und stellt damit sicher, dass das Steuergerät immer ansprechbar bleibt, auch wenn der Flash-Vorgang nicht ordnungsgemäß abgeschlossen werden konnte.

Eine besondere Herausforderung beim Flashen besteht darin, immer die richtige Anwendung in ein Steuergerät zu laden. Nur so ist die vollständige und fehlerfreie Funktion des Fahrzeugs gewährleistet. Beim seriennahen Flashen sind dazu Metadaten wie Steuergeräte- und Fahrzeugvariante, Software-Seriennummer, Name des Flash-Jobs und vieles mehr erforderlich. Für die konsistente Verwaltung dieser Informationen zusammen mit den Flash- Daten und Flash-Jobs bieten sich Datencontainer-Dateien an, hier als Flash-Container bezeichnet.

Bild_02__tm_28.jpg
Bild 2. Speicheraufbau des Steuergerätes mit »FlashBootLoader«

Als standardisiertes Format steht ODX (Open Diagnostic data eXchange) zur Verfügung, wobei man zwischen ODXD für diagnoserelevante Informationen und ODX-F für Flash-spezifische Daten unterscheidet (Bild 3).

Da bei der Entwicklung meistens keine Meta-Informationen verfügbar sind, ist das Flashen während der Entwicklung und in Serie oft unterschiedlich. So flashen Steuergeräte-Entwickler teilweise auch nicht über das Diagnoseprotokoll, sondern über CCP (CAN Calibration Protocol) oder XCP (Universal Measurement and Calibration Protocol).

Um eine lauffähige, flashbare Binärdatei via Compiler/ Linker generieren zu können, benötigt man den Quellcode der Anwendung, Diagnosecode und Embedded- Code-Elemente, die mit Checksummen-Informationen, Fingerprints und weiteren Daten ergänzt werden. Schnell zu den gewünschten Ergebnissen führt die Verwendung einer käuflichen Komplettlösung, zum Beispiel von der Vector Informatik, mit Quellcode für den Embedded-Anteil im Steuergerät, bestehend aus Betriebssystem, Netzwerk- Management, CAN-Treiber, CCP/XCP-Protokollen usw. Für die Bedatung und Erzeugung der Header-Dateien ist ein Generierungs-Tool verantwortlich.

Bild_03__tm_26.jpg
Bild 3. Basierend auf dem ODX-FContainer erfolgt der Flash-Ablauf mit »CANape«, »CANdito« und »CANditoFlash« vollautomatisch

  1. Richtiges „Flashen“ für jede Aufgabenstellung
  2. Richtiges „Flashen“ für jede Aufgabenstellung
  3. Referenzierungen »im Griff«

Jetzt kostenfreie Newsletter bestellen!