Messen + Testen Fehlersuche in vernetzten Systemen

Komplexe Bussysteme mit dem Oszilloskop analysieren.
Komplexe Bussysteme mit dem Oszilloskop analysieren.

Inzwischen beherrschen immer mehr moderne Oszilloskope komplexe Decodier- und Trigger-Funktionen für serielle Bussysteme. Kombiniert man diese neuen Möglichkeiten mit den klassischen Funktionen eines Oszilloskops, so erhält der Entwickler ganz neue Möglichkeiten der Fehleranalyse.

Die Triggerung ist für eine Fehlersuche immer noch das wichtigste Hilfsmittel. Schon einfache Oszilloskope bieten heute ausgefeilte Trigger- und Decodier-Funktionen (Bild 1), die vor einigen Jahren nur in Geräten der Oberklasse verfügbar waren.

Für eine Fehlersuche in Bussystemen ist es wichtig, dass die Trigger-Funktionen als Hardware- und nicht nur als Software-Lösung realisiert sind. Beim Software-Trigger erfolgt die Suche nach dem Trigger-Ereignis nac­h der Erfassung im Speicher des Geräts. Da das Oszilloskop aber nicht lückenlos erfassen kann, ist mit dieser Art des Triggers nicht sichergestellt, dass das Trigger-Ereignis wirklich gefunden wird. Gerade sporadische Fehler sind jedoch häufig die Hauptursache für Systemausfälle.

Beim Triggern ist oft Unschärfe ­gefragt

Aber auch Hardware-Trigger ist nicht gleich Hardware-Trigger. Für eine tiefer gehende Fehlersuche, gerade in vernetzten Systemen, sind die enthaltenen Trigger-Funktionen oftmals nicht ausreichend. Meistens gibt es nur einen Trigger auf eine feste Adresse oder feste Dateninhalte. Erforderlich ist aber oftmals auch ein Trigger auf unscharfe Bedingungen. Dies bedeutet, dass zum Beispiel auf Dateninhalte getriggert werden kann, die einen definierten Wertebereich über- oder unterschreiten.

Eine solche Funktion ermöglicht das Triggern von unerlaubten Zuständen, bei denen der Wertebereich verletzt wird. Eine typische Applikation ist zum Beispiel das Triggern auf das Überschreiten der zulässigen Temperatur, die über einen Sensor erfasst wird. Da hier nicht vorhergesagt werden kann, welcher Wert wirklich gesendet wird, ist die Trigger-Definition „größer als“ notwendig, um sicher auf die Temperaturüberschreitung zu triggern. Für Bussysteme mit mehreren Teilnehmern ist eine unscharfe Triggerung notwendig, um herauszufinden, ob eine fehlerhafte oder ungültige Adresse im Netzwerk gesendet wird.

Eine andere unscharfe Trigger-Funktion ist das Maskieren von einzelnen Bits im Adress- oder Dateninhalt. Einzelne Datenbits können beispielsweise Statusinformationen repräsentieren. Soll nun eine einzelne Statusinformation herausgefiltert werden, ist eine Funktion notwendig, mit der die einzelnen Bits maskiert werden können. Dies geht am einfachsten, wenn die Daten im Binärformat dargestellt werden können und wenn der Trigger für jedes Bit neben 1 und 0 auch auf „Don’t Care“ gesetzt werden kann. Ohne diese Maskierungsfunktion muss auf ein vollständiges Datenwort getriggert werden, in dem dieses Statusbit enthalten ist. Da aber das Datenwort auch viele andere Bits enthält, deren aktuelle Werte für den Trigger unwichtig sind und deren Wert oftmals nicht vorhergesagt werden kann, ist mit einem festen Wert eine Triggerung nur unzureichend möglich.