Dossiers
Mediathek
Forum
Whitepaper

Fehlersuche in Digitalsystemen

Busübergreifende Fehlerdiagnose macht Logikabläufe auf mehreren Bussen gleichzeitig sichtbar

 

02.04.2008 | Autor: Dave Ireland*

 

Ein Fehler in einem Bus kann seinen Ursprung - und seine Auswirkungen - in mehreren Bussen im System haben. Integrierte Instrumente sind in der Lage, serielle, parallele und sogar analoge Ereignisse zeitkorreliert auf einen einzigen Logikanalysator auszugeben. Sie erleichtern die Ursachenforschung und decken Wechselwirkungen auf.


In den heute anzutreffenden Digitalsystemen - von der Videospielkonsole im Unterhaltungsbereich bis zu den komplexen Schaltelementen in einem Kommunikationsnetz - wird verstärkt auf serielle Bustechnologie gesetzt. Dementsprechend groß ist die Anzahl applikationsspezifischer serieller Busse. Serial ATA (Advanced Technology Attachment) wickelt die Kommunikation zwischen Chipsätzen und Laufwerken ab. HDMI (High Definition Multimedia Interface) steuert den Datenfluss von digitalen A/V-Quellen zu den Anzeigegeräten. PCI Express (PCIe), das ursprünglich zum Verbinden von Peripheriegeräten im PC-Bereich vorgesehen war, findet heute in einem breiten Spektrum von Applikationen Anwendung, für die es keine speziellen Schnittstellen gibt. Nicht selten bestehen in einem elektronischen System alle diese Busse nebeneinander, unter Umständen noch ergänzt durch mehrere parallele Busse.

Drei Konzepte für das Aufzeigen der Logikabläufe

Diese Entwicklung steigert die Nachfrage nach busübergreifenden Fehlerdiagnoselösungen, die auf einfache, integrierte Weise die Logikabläufe auf mehreren unterschiedlichen Bussen gleichzeitig sichtbar machen. Hierfür gibt es mehrere Konzepte.
  • Der klassische Ansatz kombiniert einen standardspezifischen Protokollanalysator mit einem Logikanalysator (LA). Ersterer kümmert sich um die serielle Erfassung, während der LA parallele Busdaten aufzeichnet, die für das jeweilige Problem relevant sein können.

  • Ein alternativer Ansatz besteht darin, einen LA zusammen mit einem Bus-Supportpaket zu verwenden, das eine externe Schnittstelle zur Umwandlung der seriellen Daten in die vom Logikanalysator verwendeten parallelen Daten beinhaltet.

  • Bild 1: Die busübergreifende Analyse beginnt häufig mit der Darstellung von zwei Kurvenzügen auf dem LA, bei der das analoge Signal in Korrelation zu den erfassten seriellen oder parallelen Busdaten eingezeichnet wird. Die Daten wurden mit einem Oszilloskop erfasst und mit Hilfe der iView-Funktion an den Logikanalysator TLA7000 übergeben. Aus der Darstellung lässt sich ablesen, dass das Analogverhalten des seriellen Signals nicht die Ursache für die Fehler im seriellen Signal sind. Das analoge Signal liegt innerhalb der normalen Toleranzen. Eine dritte Methode wurde von Tektronix entwickelt: Die Logikanalysatoren der Serie TLA7000 können mit integrierten seriellen PCI-Express-Erfassungsmodulen ausgerüstet werden, die sich genau wie die parallelen Versionen direkt an das LA-Mainframe anschließen lassen. Serielle und parallele Erfassungsmodule können innerhalb eines Systems gemischt werden. Mit dieser seriellen Unterstützung ist die Serie in der Lage, parallele und serielle Daten ebenso wie Analogsignale von einem Oszilloskop zu erfassen und auf dem LA-Bildschirm zeitkorreliert darzustellen. Das vereinfacht die Fehlersuche in digitalen Systemen. Durch den Einsatz serieller und paralleler PCI- Express-Module können mit einem einzigen Logikanalysator busübergreifende Analysen durchgeführt werden.

Digitale Lösungen beginnen mit einer Diagnose der analogen Elemente

Die zugrunde liegende Architektur einer seriellen PCI-Express-Verbindung ist bekannt. Ein PCI-Express-Sender mit einem SerDes (Serializer-Deserializer) als Kernstück - häufig als Element innerhalb eines FPGA eingebettet - sendet 8B10B-kodierte Daten an einen Empfänger, der sich an einem anderen Punkt im System befindet. Die Impedanzen, Bitraten und Takteigenschaften bei der Übertragung sind genau festgelegt und werden kontrolliert, um Kompatibilität zwischen den PCI-Express-Komponenten unterschiedlicher Hersteller zu gewährleisten.

Ergänzendes zum Thema

 + Bei der Diagnose nicht auf einen Bus beschränken

Häufig ist es bei der Diagnose eines Systemfehlers nicht damit getan, Glitches zu ihrem Ursprung im gleichen Logikelement zurückzuverfolgen. Ein Fehler ...
Obwohl es sich bei dieser Verbindung um ein digitales System handelt, können Fehler darin sowohl digitalen als auch analogen Ursprungs sein. Häufig besteht der erste Schritt in der Fehlerdiagnose darin, eine Momentaufnahme der analogen Signale zum Fehlerzeitpunkt zu machen. Einige Logikanalysatoren verfügen über Funktionen, mit denen sie analog erfasste Daten (Signale) des angeschlossenen Oszilloskops in die digitale LA-Darstellung einbinden können. Die analogen Kurven werden zeitlich in Beziehung zu ihren digitalen Gegenstücken gesetzt. Dadurch lassen sich analoge Ereignisse wie Glitches und Runt-Impulse gleichzeitig mit den digitalen Ereignissen betrachten. Parallele Daten des Debug-Ports ermöglichen eine andere Sicht auf die Aktivität der seriellen Verbindung.

Integrierter Debug-Port liefert gerätespezifische Echtzeitdaten

Die PCI-Express-Sender-/Empfängerpaare, wie sie üblicherweise in der Unterhaltungselektronik, Telekommunikation verwendet werden, haben neben der seriellen Verbindung einen integrierten Debug-Port. Dieser parallele Ausgang liefert Echtzeitdaten, welche die Vorgänge innerhalb des Gerätes zusammenfassen. Wenn sowohl Sender als auch Empfänger über einen Debug-Port verfügen, können Entwickler den Zustand der Verbindungsleitung überwachen.
Bild 2: State Machine für den Debug-Port des PCI-Express-Empfängers Bild 2 zeigt eine State Machine, die innerhalb eines seriellen PCI-Express-Empfängers realisiert sein könnte. Die vereinfachten Interaktionen symbolisieren eine normale Verbindungsprozedur und die schwarzen Pfeile markieren die zulässigen Statusübergänge.
Bild 3: Der Logikanalysator erfasst parallele Daten von den Debug-Ports und gleichzeitig serielle Daten von der PCI-Express-Verbindung. Mit einem „P“ gekennzeichnete Erfassungsmodule sind parallel; bei der mit einem „S“ gekennzeichneten Einheit handelt es sich um ein spezielles serielles Modul für PCI-Express. Bei Verwendung eines integrierten Logikanalysators werden alle Datenkurven zeitkorreliert dargestellt. Bild 3 zeigt ein Blockdiagramm, das die Prüfanordnung für die serielle PCI-Express-Verbindung und die zugehörigen State Machines auf Sender- und Empfängerseite zeigt. Angenommen, es handelt sich um eine Fehlersuchroutine, die den Ursprung verstümmelter Daten an der seriellen Verbindung ermitteln soll. Die Debug-Ports sind an ein paralleles Erfassungsmodul angeschlossen, die PCI-Express-Verbindung an ein serielles Modul.
Bild 4: Die seriellen Fehler (gelber Teil des Kurvenzugs für die serielle Busform) fallen zeitlich mit einem inkorrekten Statuswechsel in der State Machine des Debug-Ports zusammen. Dies deutet auf ein Timing-Problem innerhalb des SerDes hin, der auf Fehler im FPGA-Syntheseprozess zurückzuführen sein könnte. Die Bildschirmdarstellung der LA-Erfassung zeigt das Bild 4. Der vom Debug-Port des Empfängers erfasste parallele Datenstrom wurde hinzugefügt. Der neue LA-Kurvenzug für die Busform hat die Hexadezimalwerte aus dem Diagramm der State Machine (unteres Signal) übernommen. Bei beiden Busform-Envelopes soll der Punkt betrachtet werden, an dem sie von der roten Cursorlinie gekreuzt werden. An dieser Stelle geht die Verbindung in den Overflow-Status (001). Hier stimmt etwas nicht: Die Routine ist direkt vom Idle- in den Overflow-Status gesprungen, was unmöglich ist, wenn die State Machine ihre Anweisungen ordnungsgemäß abarbeitet. Der graue Pfeil in Bild 2 weist auf diesen Fehler-Schritt hin.

Latenzzeit wird genau widergespiegelt

Alle drei Kurvenzüge in Bild 4 sind durch die eng integrierten seriellen und parallelen Erfassungsmodule, die innerhalb des gleichen Logikanalysator-Mainframes arbeiten, zeitkorreliert dargestellt. Teilweise tritt der Statuswechsel des seriellen Busses hinter den Ausgangsdaten des Debug-Ports auf. Ursache der Verzögerung ist die Latenzzeit, die der serielle Puffer nach der Statusänderung benötigt, um seinen Inhalt zu leeren. In solchen Fällen wird die Latenz als Zeitdifferenz in der busübergreifenden Darstellung genau widergespiegelt.
In Bild 4 ist der Verkehr am seriellen Bus so dicht, dass einzelne Zyklen mit der aktuellen Auflösung nicht dargestellt werden können. Es ist aber klar ersichtlich, dass der gelbe Teil des seriellen Kurvenzugs mit dem 001-Status des Kurvenzugs der State Machine zusammenfällt. Der blaue Teil der Timingwerte der seriellen Kurve entsprechen genau dem E81-Idle-Status am Debug-Port. Die Verbindung ist funktionsfähig und kommuniziert, befolgt aber nicht die vorgesehene Routine.
Da die seriellen Datenfehler mit dem Overflow-Status am Debug-Port zusammenfallen und die seriellen Daten vom SerDes gesteuert werden, ist die Schlussfolgerung zulässig, dass hier ein Timing-Problem vorliegt, dessen Ursprung innerhalb des SerDes zu suchen ist. An dieser Stelle können mehrere Fehlersuchstrategien in Frage kommen, die von architekturspezifischen Überlegungen und anderen Debugging-Ergebnissen beeinflusst werden.

Gewünschte Funktionen werden synthetisiert

Im Regelfall sind die hier beschriebenen seriellen Verbindungselemente in einen FPGA integriert. Diese Bausteine verwandeln sich ausschließlich durch Konfiguration grundlegender logischer Funktionen in die vom Programmierer definierte Schaltung. Dieser Vorgang wird als Synthese bezeichnet, da die gewünschten Funktionen mithilfe interner Schalter synthetisiert werden. Mit diesem Wissen wird ein Entwickler bei der Fehlersuche zuerst die Ergebnisse der FPGA-Synthese überprüfen, um sicherzugehen, dass alle Übergänge der State Machine korrekt implementiert sind.
Bild 5: Die gleichzeitige Erfassung serieller und paralleler Busdaten beschleunigt die Suche nach einem Speicherschreibfehler. Wie in Bild 3 sind die „P“-Module parallel, während das „S“ ein serielles PCI-Express-Modul kennzeichnet. Falls das nicht die Fehlerursache ist, werden andere Signale an den Debug-Anschluss geleitet, um das Verhalten des Bauelements abzubilden. Nach Auswertung der Current-State-Daten, könnte der FPGA so programmiert werden, dass die Next-State-Daten an den Debug-Port ausgegeben werden. Das könnte Probleme aufzeigen, die im Current State nicht zu sehen sind, und natürlich gibt es noch viele weitere Zustände, die näher untersucht werden könnten.
*Dave Ireland ist Marketingleiter Design & Manufacturing für die EMEA-Region bei Tektronix in Beaverton.
Redakteur: Hendrik Härter
Social Networks:
Themenverwandte Beiträge
Testgerät: Mix-Signal-Oszilloskop sorgt für kürzere Entwicklungszeiten und Time-to-Market
14.08.2007 - Gleichzeitig analoge und digitale Signale messen, erfassen, dokumentieren oder Fehler innerhalb einer gemischten Schaltung suchen – darauf ist das leichte, tragbare Mix-Signal-Oszilloskop von Tektronix zugeschnitten, das neue Maßstäbe in Leistung und Bedienerfreundlichkeit setzt. weiter
Einstiegs-Oszilloskop: Analoge und digitale Signale überprüfen
Einstiegs-Oszilloskop: Analoge und digitale Signale überprüfen
18.11.2008 - Eine Oszilloskop-Serie für das Preissegment zwischen 1500 und 5000 US-$ hat Tektronix herausgebracht. Die MSO2000 und DPO2000 finden Fehler (debug) in Designs mit gemischten Signalen. Weiterhin wurden Such- und Navigationstools von Wave Inspector, die Busse bei der seriellen Datenübertragung automatisch dekodieren, integriert. Ein variabler FilterVu-Tiefpassfilter eliminiert unerwünschtes Rauschen in den Signalen. weiter
Digitalschaltungen prüfen: Verifikation von komplexen Embedded-Systemen mit einem Mixed-Signal-Oszilloskop
Digitalschaltungen prüfen: Verifikation von komplexen Embedded-Systemen mit einem Mixed-Signal-Oszilloskop
25.01.2010 - In fast allen Entwicklungsabschnitten von eingebetteten Systemen helfen Mixed-Signal-Oszilloskope bei Fehlersuche, Debugging oder Validierung. Dabei haben sich die MSOs zu einem vielseitigen Instrument entwickelt, mit dem sich die verschiedenen Funktionsblöcke der Embedded-Systeme überprüfen lassen. weiter
Kommentare zu diesem Artikel
Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)
Spamschutz 

Bitte geben Sie das Resultat dieser Rechenaufgabe (Addition) ein:


Artikel Bewertung

VIDEO ZUM THEMA

Mixedsignal-Oszilloskope

Messen an Bussen in Embedded-Applikationen

Wie messe ich an Bussen in Embedded-Applikationen richtig? Welche Wechselwirkungen können auftreten und sind zu beachten? Einen kurzen Einblick gibt Bernd Wessling, FAE bei Tektronix. weiter

Alle Videos >>
Firma zum Artikel
Firmen in diesem Themenumfeld


Whitepaper und Webcasts zum Thema
Webcast
Messen an Bussen in Embedded-Applikationen
Wie messe ich an Bussen in Embedded-Applikationen richtig? Welche Wechselwirkungen können auftreten und sind zu beachten? Einen kurzen Einblick gibt Bernd Wessling, FAE bei Tektronix.
Whitepaper
Leitfaden zum Einsatz von Taktgebern und Oszillatoren
Welche Timing-Lösung kommt für welche Anwendung in Frage? Hier finden Sie praktische Hilfe bei der Auswahl der passenden Taktgeber und Oszillatoren.
Whitepaper
Mobile Geräte auf der Grundlage der Freescale i.MX-Plattform
Eine Gemeinschaftslösung für die Bewältigung der zunehmenden Komplexität von Geräten, die sich auf die Produktivität und den Zugang zu Debug-Ports auswirkt und zusätzliche Kosten verursacht.
Whitepaper
RS-232 Schnittstellentester
Der RS-232 Schnittstellentester vereinigt die Merkmale unterschiedlicher Tester in einem Gerät.