Die Bedeutung von Zeitstempeln¶
Signale lassen sich in und an Geräten auf verschiedene Arten abgreifen. Während der Entwicklung eines Gerätes ist es oft möglich, über spezielle Schnittstellen (Diagnose-Port, direkter Speicherzugriff) auf interne Werte des Gerätes zuzugreifen. Signale können auch über eigene dezidierte Leitungen transportiert werden. Darüber hinaus ist ein großer Teil der Signale moderner Steuergeräte auch durch zyklisches Bereitstellen auf verschiedenen Bussystemen verfügbar.
Alle Möglichkeiten des Signalabgriffes haben gemein, dass dieser nur zeitdiskret und nur wertdiskret erfolgen kann. Gerade beim Schreiben von Spezifikationen in einem frühen Stadium der Entwicklung geht man oft noch von idealisierten Signalverläufen aus.
Signalverlauf zeit- und wertekontinuierlich¶
In der Realität ist es durch die Vielzahl der Zugriffsmöglichkeiten aber nicht möglich, zu jedem Zeitpunkt einen exakten Signalwert messen zu können. Beim Messen auf Bussystemen ist man vielmehr daran gebunden, auf das nächste Auftreten einer Nachricht zu warten, in der ein neuer „Messwert“ eines Signals codiert ist. Aber auch beim direkten Speicherzugriff auf Steuergeräte besteht teilweise technisch bedingt die Einschränkung, Signale nur in bestimmten Intervallen auslesen zu können. Die Gesamtheit der Signalverläufe in und um ein Gerät herum lässt sich dadurch besser in Form einer Tabelle darstellen, deren Zeilen einzelne Zeitpunkte sind und deren Spalten die Messwerte einzelner Signale zu diesen Zeitpunkten enthalten. Aufgrund der genannten technischen Beschränkungen werden viele Zellen dieser Tabelle keine Messwerte enthalten.
Real gemessene Signalverläufe mit zeitdiskreter Abtastung¶
Die wichtigste Problematik, die sich durch das Vorhandensein von Leerstellen ergibt, ist der Begriff der Gleichzeitigkeit für das Schreiben von Spezifikationen und das automatisierte Auswerten von gemessenen Signalverläufen. Oft wird er in Spezifikationen nur implizit verwendet, z. B. in Aussagen wie „Das Steuergerät muss das Signal „SystemAwake“ auf „HIGH“ setzen, sobald am Eingang „WakeUp“ ein High-Pegel anliegt“. Für die Auswertung eines gemessenen Signalverlaufs muss hier noch eindeutig geklärt werden, in welchem zeitlichen Verhältnis die zwei korrelierten Signalwerte stehen.
Im Allgemeinen wird ein Ausdruck zu jedem Zeitpunkt ausgewertet, zu dem mindestens eines der verwendeten Signale einen Wert besitzt. Dadurch ergeben sich einige Besonderheiten, auf die in Fallstricke bei der Verwendung der Traceanalyse näher eingegangen wird.
Monotonie der Zeitachse
Eine Voraussetzung zur Durchführung von Analysen sind chronologisch geordnete Zeit-Wert-Paare. Deshalb findet vor den eigentlichen Analysen eine interne Monotonieprüfung der Zeitachse statt, die im Folgenden genauer erläutert wird.
Die Zeitachse von Signalen muss in der Regel streng monoton steigend sein. Zusätzlich sind aufeinanderfolgende doppelte Zeitstempel erlaubt, insofern sich die Werte des Signals zu diesen Zeitstempeln nicht unterscheiden. Für die weitere Verarbeitung werden die doppelten Zeit-Wert-Paare in so einem Fall entfernt. Doppelte Zeitstempel mit unterschiedlichen Werten sind dagegen nur erlaubt, wenn dadurch ein Sprung modelliert wird. Dabei muss der erste Wert dem gehaltenen Wert des vorherigen Zeit-Wert-Paares entsprechen. Ist diese Bedingung erfüllt, wird der erste Wert entfernt. Andernfalls kommt es zu einem Fehler beim Einlesen des Signals. Ebenfalls nicht erlaubt sind (streng) monoton fallende Abschnitte der Zeitachse (also „Sprünge in die Vergangenheit“).
Beim Buslogging kann es in seltenen Fällen vorkommen, dass mehrere Nachrichten quasi gleichzeitig eintreffen, wodurch es zu einem Zeitpunkt mehrere unterschiedliche Rohdaten geben kann. Deshalb sind abweichend zu den soeben beschriebenen Einschränkungen bei speziellen Signalen, die in der Aufnahme als „Bus Events“ gekennzeichnet sind, doppelte Zeitstempel mit unterschiedlichen Werten erlaubt.