Specials
Home > Hardwareentwicklung > Messdatenerfassung

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 in einem Bus kann seinen Ursprung und seine Auswirkungen in mehreren Bussen im System haben. Deshalb ist die busübergreifende Analyse heute eine unentbehrliche Fehlersuchmethode.
Mit der Einführung integrierter Instrumente, die in der Lage sind, serielle, parallele und analoge Ereignisse zeitkorreliert auf einem einzigen Logikanalysator-Bildschirm darzustellen, verfügen Entwickler über ein Hilfsmittel bei der Fehlersuche. Die busübergreifende Analyse kann gleichzeitig auftretende Wechselwirkungen im gesamten System aufdecken und beschleunigt dadurch nicht nur die Fehlersuche, sondern auch die Identifizierung der zugrunde liegenden Ursachen.
Häufig ist es bei der Diagnose eines Systemfehlers nicht damit getan, Glitches zu ihrem Ursprung im gleichen Logikelement zurückzuverfolgen. Ein Fehler in...
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
Themenverwandte Beiträge
Digitalschaltungen prüfen: Verifikation von komplexen Embedded-Systemen mit einem Mixed-Signal-Oszilloskop
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
Testgerät: Mix-Signal-Oszilloskop sorgt für kürzere Entwicklungszeiten und Time-to-Market
Testgerät: Mix-Signal-Oszilloskop sorgt für kürzere Entwicklungszeiten und Time-to-Market
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
Oszilloskop: Embedded-Designs debuggen
Oszilloskop: Embedded-Designs debuggen
Echtzeit-Oszilloskop, Logikanalysator und Wave Inspektor — drei Merkmale in einem Echtzeit-Oszilloskop. Analoge und digitale Signale werden in richtiger zeitlicher Beziehung dargestellt. Eine neuartige hochauflösende Signalerfassung ermöglicht eine achtmal schnellere Zeitauflösung. weiter
Kommentare zu diesem Artikel
Kommentar verfassen
Kommentar verfassen
Bitte loggen Sie sich ein, wenn Sie einen Kommentar schreiben wollen.
zum Login


Artikel Bewertung

Links und Downloads zu diesem Beitrag
Firma zum Artikel
Firmen in diesem Themenumfeld

PLUG-IN Electronic GmbH

Eichenau, Deutschland

Das Qualitätsmanagement- System der Firma PLUG-IN Electronic GmbH erfüllt die in der DIN EN ISO 9001:2000 festgelegten Forderungen. Profitieren ...

Whitepaper und Webcasts zum Thema
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.


Die neuesten Antworten im LabVIEWforum.de
Menüsteuerung
Autor: Ratte01, 7 Antworten
C#-Programm in LV aufrufen
Autor: IchSelbst, 29 Antworten
Newsletter
Newsletter