Timing-Diagramm-basierte Traceschrittvorlagen

Dieser Abschnitt beschreibt die Verwendung von Timing-Diagrammen als Spezifikationsmittel für Traceanalysen. Dabei sollen insbesondere die Erstellung von Timing-Diagrammen mit dem Diagrammeditor sowie die Bedeutung der einzelnen Diagrammelemente anhand von Anwendungsbeispielen verdeutlicht werden.

Die zugehörige Referenz Timing-Diagramm-basierte Traceschrittvorlagen ergänzt diese Ausführungen um präzise Erläuterungen zur Auswertung von Diagrammen sowie zu deren grundlegendem Aufbau und gibt genaue Definitionen für alle Diagrammelemente.

Timing-Diagramme - Einführung an Beispielen

Die nachfolgende Darstellung zeigt ein minimales Timing-Diagramm, das nur aus den beiden immer vorhandenen Zuständen Vorzustand und Startzustand besteht. Die Ausdrücke der beiden Zustände sind in diesem Fall signalwertbasiert. Das Timing-Diagramm wird bei einem Zustandsübergang vom Signalwert 0 zu 1 aktiviert. Gibt es keine weiteren auszuwertenden Zustände, Signale oder Sample-Grenzen, wäre das Timing-Diagramm bei jeder Aktivierung auch sofort gültig. Im vorliegenden Beispiel stellt die Angabe der Sample-Grenzen (1, max) eine zusätzliche Forderung auf. Der Bezeichner max ist dabei ein Parameter, der bei der Nutzung des Timing-Diagramms als Traceschritt an gewohnter Stelle gesetzt werden kann. Die Sample-Grenzen lassen den Zustand nur wahr werden, wenn höchstens max mal der Signalwert 1 auftaucht. Andernfalls schlägt das Timing-Diagramm fehl, weil der Zustand ungültig wird. Da beim Vorzustand die Sample-Grenzen (0, …) angegeben sind, wird das Diagramm sowohl zum Traceanfang ausgewertet (also aktiviert, falls der erste Signalwert des Trace 1 ist) und an jeder weiteren Stelle des Trace.

../../../../../_images/TD_Example_01.png

Das folgende Timing-Diagramm ist ebenfalls minimal. Der Vorzustand hat die Sample-Grenzen (0, 0). In diesem Sonderfall wird das Timing-Diagramm ausschließlich zum Traceanfang überprüft. Die Bedingung des Vorzustandes wird nicht verarbeitet, weshalb sie auch ausgeblendet wird. Dieses Diagramm wird erfüllt, wenn der ausgewertete Trace mit dem Zeitstempel 0.0 beginnt und dieser auch nur ein einziges Mal vorkommt. Ein weiteres Mal wird dieses Diagramm nicht ausgewertet.

../../../../../_images/TD_Example_02.png

Das dritte Beispiel zeigt ein Timing-Diagramm, das niemals am Traceanfang aktiviert wird, weil die Sample-Grenze des Vorzustandes mit (5, 17) einen Mindestwert größer als 0 hat. Dieses Diagramm wird aktiviert, wenn mindestens 5 aber höchstens 17 Mal der Signalwert größer als 1000 war und anschließend ein Signalwertwechsel auf 1100 stattfindet. Dieser Wert muss dann mindestens 5 aber höchstens 200 Mal konstant sein, damit die Timing-Diagramm-Instanz erfüllt wird. Tritt bei der Überprüfung das Traceende ein oder ist der Ausdruck des Zustandes nicht mehr erfüllt und wurde der Wert 1100 bereits 5 Mal erkannt, aber unter 200 Mal, so wird das Diagramm trotzdem erfüllt.

../../../../../_images/TD_Example_03.png

Es ist dennoch möglich zu spezifizieren, dass der letzte Zustand des Signals bis zum Signalende (letztes Sample des Signals) gelten soll, dieser Zustand also nicht mehr verlassen werden darf. Diese Eigenschaft kann über das Kontextmenü des letzten Zustandes oder des Signals bzw. über dessen Eigenschaften geändert werden. Die angegebenen Sample-Grenzen werden dabei weiterhin betrachtet. So muss der Signalwert 1100 zwischen 5 und 200 Mal bis zum Signalende erkannt werden, damit das Diagramm erfüllt ist.

../../../../../_images/TD_Example_03_2.png

Es folgt das erste komplexere Beispiel, das zwei Signale mit mehreren Zuständen enthält. Werden mehrere Signale in einem Traceschritt verwendet, so werden die Zeitachsen zusammengeführt. Das dargestellte Timing-Diagramm wird aktiviert, sobald das Signal einen Zustandsübergang von einem Wert ungleich 0 zu einem Wert gleich 0 aufweist. Mit dem Eintreten des Zustandsübergangs wird auch das zweite Signal Signal_1 aktiviert und auch dessen Zustände und Zustandsübergänge müssen erfüllt werden, damit das gesamte Timing-Diagramm erfüllt wird. Das nächste eintreffende echte Sample von Signal_1 muss den ersten Zustand erfüllen.

Beim Startzustand wird eine Zuweisung angelegt (erkennbar am Sternchen), die den Zeitstempel des aktuellen Samples und unter dem Variablennamen var abspeichert. Dafür wird das Schlüsselwort TIME im Ausdruck der Zuweisung genutzt. Nach Verlassen des Zustands ist der Wert der Variablen auf den Zeitstempel des letzten der 8 Samples mit dem Messwert 0 gesetzt.

Dieses Timing-Diagramm wird erfüllt, wenn Signal ein Sample mit einem Signalwert ungleich 0 gefolgt von genau 8 Samples mit einem Signalwert von 0 hat. Außerdem gibt es mindestens ein weiteres Sample, dessen Zeit- und Signalwert werden aber im Ausdruck nicht ausgewertet. Im dritten Zustand wird überprüft, ob der Wert der im zweiten Zustand gespeicherten Zuweisung var kleiner als 20 ist. Außerdem muss Signal_1 mindestens drei Samples haben, damit alle Zustände durchlaufen werden können. Es muss zunächst ein Signalwert größer 400, gefolgt von einem größer 600, gefolgt von einem Sample mit einem Signalwert kleiner 1000 existieren. Bei der Auswertung wird ein Zustandsübergang vorgenommen, sobald er möglich ist. Das heißt, auch wenn beliebig viele Signalwerte größer 400 erlaubt sind, erfolgt der Zustandsübergang sobald ein Signalwert auch über 600 ist und der folgende Zustandsübergang sobald ein Sample mit einem Wert kleiner 1000 kommt. Die Signalwertfolge {700, 700, 700} würde Signal_1 erfüllen und mit jedem neuen Sample erfolgt ein Zustandsübergang, da der nachfolgende Zustand erfüllt wird. Die Signalwertfolge {450, 500, 550, 600, 650, 700} würde Signal_1 ebenfalls erfüllen, wobei der erste Zustand erst beim fünften Sample verlassen wird. Sobald die Bedingungen des aktiven Zustands und des nachfolgenden Zustands nicht erfüllt sind, wird auch das komplette Timing-Diagramm verworfen.

../../../../../_images/TD_Example_04.png

Im folgenden Beispiel wird die Verwendung von Zeitbeziehungen gezeigt. Sie werden durch einen Pfeil zwischen einem Ursprungs- und einem Zielzustand gekennzeichnet. Die Zeitbeziehung bezieht sich auf die echte Tracezeit und gibt an, innerhalb wie vieler Zeiteinheiten Zustandsübergänge erfolgen müssen. Sie wertet dabei die Zeitstempel der Samples aus.

Das Diagramm wird bei einem Zustandsübergang von 0 auf 1 aktiviert. Es darf nur ein Sample mit dem Wert 1 vorkommen, gefolgt von genau einem Sample mit einem beliebigen Wert (hier ist auch eine 1 möglich) und innerhalb von [2, 5] Zeiteinheiten muss dann das Sample mit einem Signalwert größer 2 eintreffen.

../../../../../_images/TD_Example_05.png

Zeitbeziehungen können auch zwischen Zuständen verschiedener Signale eingesetzt werden, dies soll durch Erweiterung eines vorangegangenen Beispiels erläutert werden. Eine Zeitbeziehung [0, 0] bedeutet, dass der Zielzustand sofort aktiv werden muss. Die Samples von Signal_1 dürfen in diesem Fall auch erst mit Erfüllen des dritten Zustands von Signal beginnen, damit das Timing-Diagramm erfüllt werden kann. Nun stehen die Signale in zeitlicher Relation zueinander, wohingegen ohne Zeitbeziehungen jedes Signal einzeln erfüllt werden musste, unabhängig davon ob beispielsweise zunächst alle Samples von Signal abgearbeitet werden und erst im Anschluss alle Samples von Signal_1 vorkommen, weil die Zeitachsen versetzt sind.

../../../../../_images/TD_Example_06.png

In einem Signal eines Timing-Diagramms kann auch auf Signalwerte eines anderen Signals zugegriffen werden, indem der Signalname im Ausdruck des Zustands verwendet wird. Insbesondere können Signale (abgesehen vom ersten Signal, das Vorzustand und Startzustand enthalten muss) auch leergelassen werden, wenn sie nur dazu genutzt werden, um in anderen Signalen darauf zuzugreifen. Dies zeigt das folgende Timing-Diagramm.

Es wird erfüllt, wenn es zu einem Zustandsübergang von einer 0 zu einer 1 im Signal kommt. Anschließend muss der Signalwert von Signal_1 mindestens 100, aber höchstens 150 Mal größer als der Signalwert von Signal sein, der durch das Schlüsselwort VALUE repräsentiert wird.

../../../../../_images/TD_Example_07.png

Folgend soll die Verwendung von Vorzuständen an drei Timing-Diagrammen erläutert werden. Für alle drei Diagramme erfolgt die Aktivierung durch eine Wertänderung von Signal von 0 auf 1. Geprüft werden soll daraufhin die Reaktion von Signal_1, welches auch den Wert 1 annehmen soll.

a)

Durch den Vorzustand ANY werden beliebige Werte (direkt vor Aktivierung und nach der Aktivierung) für Signal_1 akzeptiert, bis der Wert 1 erreicht wird. Der Zeitpunkt, wann genau der zweite Zustand von Signal_1 erreicht wird, wird nicht weiter eingegrenzt (mit Aktivierung oder auch später).

b)

Auch hier werden durch den Vorzustand ANY beliebige Werte für Signal_1 akzeptiert. Durch die Zeitbeziehung wird jedoch festgelegt, dass Signal_1 ab Aktivierung und spätestens nach einer Zeit von 0.5 auf 1 gehen soll.

c)

In diesem Fall wurde der Vorzustand von Signal_1 gelöscht. Der erste echte Signalwert ab Aktivierung des Diagramms muss den Wert 1 haben. Der Zeitpunkt, wann genau der zweite Zustand von Signal_1 erreicht wird, wird nicht weiter eingegrenzt (mit Aktivierung oder auch später).

../../../../../_images/TD_Example_09.png

Timing-Diagramme mit dem Diagrammeditor erstellen

Auf Timing-Diagrammen basierende Traceschrittvorlagen werden in ecu.test mit einem grafischen Diagrammeditor erstellt und bearbeitet. Die Nutzeroberfläche des Editors ist im folgenden Bild dargestellt. Seine Funktionen und Bedienkonzepte werden nachfolgend beschrieben.

../../../../../_images/TD_Example_08.png

Allgemeine Bedienkonzepte

  • Strg+D aktiviert/fokussiert von jeder beliebigen Stelle aus den Diagrammbereich.

  • Strg+P aktiviert/fokussiert von jeder beliebigen Stelle aus die Parametertabelle.

  • Strg+B aktiviert/fokussiert von jeder beliebigen Stelle aus die Zuweisungstabelle.

  • Beim Bestätigen/Speichern des Diagramms wird geprüft, ob alle Bezeichner (Signal-, Zuweisungs- Parameter-Namen) eindeutig sind und ggf. eine entsprechende Warnung ausgegeben.

Bemerkung

Das erste Signal mit dessen Vorzustand und Initialzustand lässt sich nicht beliebig bearbeiten, da für beide Zustände spezielle Regeln gelten. So müssen diese zum Beispiel immer vorhanden sein und der Startzustand darf keine eingehenden Zeitbeziehungen besitzen.

Elemente der Werkzeugleiste

Die Icons und Funktionen der Werkzeugleiste sind, von links nach rechts:

Funktion

Tastenkombination

Bemerkungen

Speichern

Strg+S

Rückgängig

Strg+Z

Wiederholen

Strg+Y

Hineinzoomen

Strg+“+“

Herauszoomen

Strg+“-“

Zoom auf Diagrammbereich

Strg+“#“ oder Strg+“*“

Ausschnitt nach links

Strg+Links

Ausschnitt nach oben

Strg+Hoch

Ausschnitt nach unten

Strg+Runter

Ausschnitt nach rechts

Strg+Rechts

Neues Signal

Strg+Shift+S

  • Einfügeposition je nach Selektion unter selektiertem Signal, unter Signal des selektierten Zustands oder am Ende des Diagramms

  • Das eingefügte Signal wird selektiert

Signal nach oben verschieben

Strg+Shift+Hoch

  • Das erste Signal kann nicht verschoben werden

Signal nach unten verschieben

Strg+Shift+Runter

  • Das erste Signal kann nicht verschoben werden

Signal duplizieren

Strg+Shift+D

  • Einfügeposition direkt unter selektiertem Signal

  • Das eingefügte Signal wird selektiert

Signal löschen

Entf

Zustand einfügen

Strg+Shift+E

  • Einfügeposition je nach Selektion ans Ende des selektierten Signals oder vor selektiertem Zustand

  • Der eingefügte Zustand wird selektiert

Vorzustand einfügen

Zustand nach links verschieben

Strg+Shift+Links

  • Fehlermeldung bei Zyklenbildung

  • Vorzustand und Startzustand können nicht verschoben werden

Zustand nach rechts verschieben

Strg+Shift+Rechts

  • Fehlermeldung bei Zyklenbildung

  • Vorzustand und Startzustand können nicht verschoben werden

Zustand löschen

Entf

Zeitbeziehung löschen

Entf

Animation aktivieren/deaktivieren

Diagrammbereich

Der Diagrammbereich des Editors stellt das aktuell zu bearbeitende Timing-Diagramm dar und bietet die nachfolgend beschriebenen Interaktionsmöglichkeiten.

Die Generelle Bedienung wird in der folgenden Tabelle vorgestellt.

Funktion

Mausaktion/Tastenkombination

Bemerkungen

Diagramm verschieben

Drag’n’Drop im Freibereich

Auf gesamten Diagrammbereich zoomen

Doppelklick im Freibereich

Hineinzoomen

Mausrad hoch

Herauszoomen

Mausrad runter

Diagramm horizontal verschieben

Shift+Mausrad

Selektion ändern

Pfeiltaste Rechts/Links

  • Signal <-> Zustand 1 <-> Zustand 2 <-> … <-> Zustand n <-> Signal bzw.

  • von Zeitbeziehung zu deren Ziel/Ursprung

Selektion ändern

Pfeiltaste Runter/Hoch

  • Diagramm <-> Signal 1 <-> Signal 2 <-> … <-> Signal n <-> Diagramm bzw.

  • vertikal von Zustand zu Zustand bzw.

  • zwischen ausgehenden Zeitbeziehungen eines Zustands in „bestimmter“ Reihenfolge

von Zustand zu „erster“ ausgehenden/ eingehenden Zeitbeziehung (wenn vorhanden)

Shift + Pfeiltaste Rechts/Links

Wechsel zu Bearbeitung relevanter Elementeigenschaft

Enter/F2

zurück mit Strg+D

Im Normalmodus (Taste Strg nicht gedrückt) funktionieren folgende Tastenkombinationen und Mausaktionen.

Funktion

Mausaktion/Tastenkombination

Bemerkungen

Hervorheben von interagierbaren Elementen

Mouseover

nicht selektierbare Unterelemente werden mit hervorgehoben (bei Zuständen)

Selektion eines Elements

Klick im Freibereich

Klick in Freibereich wählt Timing-Diagramm aus; Klick auf nicht selektierbare Unterelemente wählt Oberelement aus (bei Zuständen)

Signal vertikal verschieben

Drag’n’Drop auf Signal

orangener Kasten zeigt neue Position an; erstes Signal kann nicht verschoben werden

Zustand horizontal verschieben

Drag’n’Drop auf Zustand

orangener Kasten zeigt neue Position an; Vorzustand und Startzustand können nicht verschoben werden.

Anpassung der Darstellungsbreite des Zustands

Drag’n’Drop auf rechter Zustands-Kante

orangene senkrechte Linie zeigt Zielposition an; Statuszeile zeigt Zielbreite an; Strg für ganzzahlige Breite; Strg+SHIFT für Vielfache von 10

Rücksetzen der Darstellungsbreite des Zustands

Doppelklick auf rechter Zustands-Kante

Wechsel zu Bearbeitung relevanter Elementeigenschaft

Doppelklick auf Signal/Zustand/Zeitbeziehung

analog Enter/F2

Zeitbeziehung einfügen

Drag’n’Drop auf runde Markierung eines Zustandes

orangener Pfeil zeigt Verbindung an; Verbindung nur zu anderem Zustand möglich; Fehlermeldung bei Zyklenbildung

  • Kontextmenü (Rechtsklick)

    • Freibereich/Timing-Diagramm

      • Neues Signal einfügen (an Mausposition, wird selektiert)

    • Signal

      • Verschieben

      • Duplizieren (direkt unter dem gewählten Signal, wird selektiert)

      • Löschen

      • Zustand einfügen (am Ende des gewählten Signals, wird selektiert)

      • Letzter Zustand des Signals soll bis Signalende gelten

    • Zustand

      • Verschieben

      • Löschen

      • Zustand einfügen (vor gewähltem Zustand, wird selektiert)

      • Vorzustand einfügen (falls das Signal noch keinen besitzt)

      • Dieser Zustand soll bis Signalende gelten (falls letzter Zustand eines Signals selektiert)

    • Zeitbeziehung

      • Löschen

Im Navigationsmodus (Taste Strg gedrückt) findet kein Hervorheben/Selektieren statt.

Funktion

Mausaktion/Tastenkombination

Diagramm verschieben

Drag’n’Drop überall

Auf gesamten Diagrammbereich zoomen

Doppelklick überall

Bereich Elementeigenschaften

Der Bereich Elementeigenschaften zeigt die Eigenschaften des selektierten Elementes an. Zusätzlich werden

  • für Signale die Eigenschaften aller Zustände und

  • für Zeitbeziehungen die Eigenschaften von Ursprungs-/Zielzustand angezeigt.

Der Bereich bietet folgende Informationen und Funktionen:

  • Ein Rechtsklick auf Zeile öffnet ein Kontextmenü mit den Menüoptionen Alles einklappen/ausklappen.

  • Die Eingabe von nicht vorhandenen Parametern bei Zustands-Sample-Grenzen oder Zeitbeziehungs-Zeitgrenzen fügt diese nach Abfrage hinzu.

  • Auswahlmodus (keine Bearbeitung aktiv):

    • Hoch/Runter/Rechts/Links: Eigenschaft auswählen

    • Enter/F2: Bearbeitung starten (Wechsel in Bearbeitungsmodus)

  • Bearbeitungsmodus:

    • Enter: Bearbeitung bestätigen (Bearbeitungsmodus bleibt aktiv)

    • Escape: Bearbeitung abbrechen (Wechsel in Auswahlmodus)

Bereich Parameter

Der Bereich Parameter listet alle Parameter des Timing-Diagramms auf und bietet folgende Informationen und Funktionen:

  • Schaltfläche „+“ oder Taste „Einfügen“ fügt Parameter hinzu.

  • Schaltfläche „x“ oder Taste „Entfernen“ löscht selektierte (blau hinterlegte) Parameter.

  • Name und Typ eines Parameters können editiert werden. Dabei ist Folgendes zu beachten:

    • Der Name muss eindeutig sein.

Bereich Zuweisungen

Der Bereich Zuweisungen listet alle Zuweisungen des Timing-Diagramms sowie aller Zustände und Zeitbeziehungen geordnet nach den entsprechenden Elementen auf:

  • Timing-Diagramm,

  • Zustände (in Reihenfolge der Signale bzw. der Zustände im Signal),

  • Zeitbeziehungen (in Reihenfolge des Hinzufügens).

Der Bereich bietet folgende Informationen und Funktionen:

  • Schaltfläche „+“ oder Taste „Einfügen“ fügt Zuweisung zum aktuell gewählten Element (Timing-Diagramm, Zustand, Zeitbeziehung) hinzu.

  • Schaltfläche „x“ oder Taste „Entfernen“ löscht selektierte (blau hinterlegte) Zuweisungen.

  • Selektion einer Zuweisung selektiert das entsprechende Element im Editor.

  • Selektion eines Elements im Diagrammbereich selektiert alle zugehörigen Zuweisungen.

  • Name, Ausdruck und Ausgabe-Option einer Zuweisung können editiert werden.

    • Der Name muss innerhalb des entsprechenden Elements eindeutig sein.

    • Der Ausdruck kann beliebig sein.

    • Die Checkbox in der Spalte „Ausgabe“ legt fest, ob die Werte der Zuweisung bei der Auswertung als Ausgabe-Signal nach außen weitergegeben werden.