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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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 |
|
Signal nach oben verschieben |
Strg+Shift+Hoch |
|
Signal nach unten verschieben |
Strg+Shift+Runter |
|
Signal duplizieren |
Strg+Shift+D |
|
Signal löschen |
Entf |
|
Zustand einfügen |
Strg+Shift+E |
|
Vorzustand einfügen |
||
Zustand nach links verschieben |
Strg+Shift+Links |
|
Zustand nach rechts verschieben |
Strg+Shift+Rechts |
|
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 |
|
Selektion ändern |
Pfeiltaste Runter/Hoch |
|
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
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.