Transparentes Zeitverhalten Tiefe Einblicke

Bild 1: Alle Systemzustände und Abhängigkeiten auf einen Blick
Bild 1: Alle Systemzustände und Abhängigkeiten auf einen Blick

Die Zuverlässigkeit und Verfügbarkeit von echtzeitkritischen Funktionen im Automobil hängen zu einem wesentlichen Teil vom zeitlichen Verhalten der involvierten Software innerhalb eines Steuergerätes und der Kommunikation im Netzwerk ab, etwa dem CAN- oder dem FlexRay-Bus. Rein funktionale Modelle und Simulationen sind in diesen Fällen für die Dimensionierung des Systems und deren Verifikation nicht ausreichend. Die Automobilindustrie wendet sich daher verstärkt modellbasierten Entwicklungen zu, in denen die Ressourcenanforderungen und Timing-Aspekte explizite Teile der Spezifikation sind.

Die Anzahl der durch eine E/E-Plattform (Elektrik und Elektronik) zur Verfügung gestellten Funktionen im Automobil befindet sich in stetigem Wachstum. Gleichzeitig ist jedoch angestrebt, die Anzahl der physikalischen Komponenten zu reduzieren. Dieser Prozess steigert unweigerlich den Grad an Interferenz zwischen verschiedenen Funktionen: Die Steuergeräte übernehmen jeweils eine Vielzahl von Einzel-Tasks, während Softwarekomponenten (AUTOSAR) Teilaspekte verteilter Funktionen zur Verfügung stellen.

Während sich die einzelnen Funktionen isoliert noch relativ gut sowohl in Bezug auf deren Funktion als auch auf deren Zeitverhalten untersuchen lassen, wird der zeitliche Ablauf von Tasks auf einem Steuergerät immer schwerer vorhersehbar. Dadurch wird es immer schwieriger, die Komponenten in frühen Entwicklungsphasen angemessen zu dimensionieren, und der Druck steigt, das korrekte Verhalten in späteren Verifikationsphasen ausreichend abzusichern. Möglichst früh durchgeführte Messungen helfen bei der Bewertung.

Dabei können verschiedene Ausgangssituationen wie zum Beispiel Modelle (MiL), Prototypen (HiL) und die echte Zielplattform betrachtet werden. Bei diesen Messungen fallen jedes Mal Trace- oder Log-Daten an, die einen Einblick in das zeitliche Verhalten erlauben. Der Echtzeit-Experte steht nun vor der Herausforderung, diese Daten zu sichten, zu interpretieren und natürlich auf ihr Zeitverhalten hin zu untersuchen.

Diesen Vorgang manuell auf den dateibasierten, zumeist textuellen Trace-Beschreibungen durchzuführen, wird ab einer gewissen Systemkomplexität zu unübersichtlich und damit auch fehleranfällig. Wünschenswert ist daher ein spezialisiertes Werkzeug, das die Transparenz über das zeitliche Verhalten auch bei steigender Komplexität liefern kann.

Unter der Lupe

Für diesen Anwendungsfall eignet sich der »TraceAnalyzer« von Symtavision. Mit dem Tool lassen sich die aufgezeichneten Trace-Daten in Form von Gantt-Diagrammen klar visualisieren. Diese Diagramme geben einen ersten Überblick über die zeitlichen Relationen zwischen Task-Laufzeiten, externen Interrupts und Ereignisverkettungen sowie den daraus resultierenden Antwortzeiten.

Dadurch kann der Entwickler die zeitlichen Verläufe optisch kontrollieren und somit Fehlverhalten anhand von unerwarteten Ablaufmustern aufspüren. Nachdem ein Trace eingelesen wurde, lassen sich bestehende Design-Constraints (zum Teil automatisch) überprüfen. Der TraceAnalyzer durchleuchtet insbesondere die Einhaltung von Task-Deadlines, Ausführungszeitbudgets, Ereignisdichten und vielem mehr.

Vorgehensweise

Um diese Transparenz zu ermöglichen, kann das Werkzeug in bestehende Tracing-Lösungen eingehängt werden. Mit dem Tool lassen sich Traces oder Log-Dateien aus Messdaten von Steuergeräten oder CAN-Netzwerken, die bei Simulationen oder Tests anfallen, visualisieren und analysieren. Ein Scripting-basiertes Preprocessing-Modul ermöglicht eine schnelle Anpassung an spezifische Lösungen.

Die Ergebnisse stehen in Form von Tabellen und Grafiken zur Verfügung und lassen sich dynamisch in eigene Reports einbinden. Schließlich können Entwickler durch die Aufarbeitung der Traces auch in die modellbasierte Analyse einsteigen. Die extrahierten Parameter wie Task-Ausführungszeiten, Aktivierungszeiten und Datenkommunikation lassen sich auf ein vollständiges Timing-Modell abbilden.

Dieses automatisch generierte Modell bildet dann die Basis für die formale Analyse mit »SymTA/S«, wodurch sich weitere Vorteile ergeben: Sofern formale Modelle bereits in frühen Entwicklungsphasen verwendet wurden, kann der Entwickler sie nun mit dem tatsächlichen Verhalten abgleichen oder aktualisieren.