I²C-Protokoll

I²C-Datenverkehr mit dem Oszilloskop analysieren

Seite: 2/3

Anbieter zum Thema

Es werden sehr oft günstige I²C Sniffer/Analyzer eingesetzt, um I²C-Datenverkehr für Analysen aufzunehmen. Die Mehrzahl der Designs haben jedoch keinen Stecker, um einen I²C-Analyzer an das Board anzuschließen. Daher müssen die Entwickler die elektrischen Signale des I²C-Bus betrachten, um die Fehler oder Nachrichten, die zwischen den Geräten verschickt werden, zu verstehen.

I²C-Bus mit dem Oszilloskop messen

Es wird noch komplizierter, wenn man das zu untersuchende Geräte nicht im laufenden Betrieb in den Debug-Modus setzen kann. Oszilloskope sind in solchen Situationen sehr hilfreich. Sie erlauben es auf dem I²C-Bus zu messen und den Datenverkehr aufzunehmen, ohne das laufende System zu trennen.

Allerdings ist das Aufnehmen des Datenverkehrs nur die halbe Miete. Die Entwickler müssen die Nachrichten die an die verschiedenen Geräte geschickt werden dekodieren und verbringen oft viel Zeit damit, die Bits manuell zu zählen.

Ein Oszilloskop mit einem I²C-Trigger- und Decode-Paket vermeidet das frustrierende manuelle Dekodieren und zeigt sofort eine Momentaufnahme der gerade stattgefundenen I²C-Kommunikation an.

Bild 3: Ein I²C-Datenverkehr mit mehreren Geräten (Bild: LeCroy Oscilloscope)
Bild 3: Ein I²C-Datenverkehr mit mehreren Geräten (Bild: LeCroy Oscilloscope)
Der Screenshot wurde vom I²C-Bus eines Nintendo Wii Controllers aufgenommen, der an ein FreeStyleGames DJ Hero-System angeschlossen war. Da der Wii Controller und DJ Hero über I²C kommunizieren, werden mehrere Datenpakete zu vorgegebenen Zeitpunkten hin- und hergeschickt [1].

Als Entwickler kann man mit einem modernen Digitalspeicher Oszilloskop den I²C-Datenverkehr aufzeichnen und die Dekodierfunktion des Oszilloskops nutzen, um die zwischen einem Master und einem Slave gesendeten Nachrichten zu analysieren. Diese Funktion des Oszilloskops, das I²C-Protokoll zu dekodieren, erlaubt es Entwicklern ihre Designs effizient und effektiv zu testen und Fehler zu suchen.

Die Tabellenansicht bietet einen sehr guten Überblick über eine lange I²C-Bus-Aufzeichnung und man kann sehr schnell zeitliche und datenabhängige Beziehungen erkennen. Die Tabellenansicht in Bild 3 stellt Nachrichten (Data Spalte), die abhängig von der Geräte-Adresse (Address Spalte) an die Geräte geschickt wurden, ähnlich wie bei einem Sniffer/Analyzer, dar.

Für weitere Analysen gibt es die Möglichkeit, die Daten der Tabelle über die Export-Funktion des Oszilloskops in eine Excel-Datei zu speichern. Die I²C-Triggerfunktionen ermöglichen es dem Entwickler außerdem, sich auf das Gerät zu konzentrieren das untersucht werden soll, indem spezielle Adress- und Datentrigger verwendet werden, die nur die Kommunikation zwischen einem bestimmten Slave und Master aufzeichnen.

Erweiterte Werkzeuge für die Fehlersuche auf der Protokollebene

Der Runt wird in der gelben Box und das gefundene Ereignis (Found Feature) in der unteren Kurve dargestellt. Die Tabelle oben links im Bild zeigt, dass zwei Ereignisse gefunden wurden die den Bedingungen entsprechen.
Der Runt wird in der gelben Box und das gefundene Ereignis (Found Feature) in der unteren Kurve dargestellt. Die Tabelle oben links im Bild zeigt, dass zwei Ereignisse gefunden wurden die den Bedingungen entsprechen.
Schließlich verfügen manche Oszilloskope zusätzlich über “Feature Finding“-Algorithmen, die den Entwicklern helfen, die Anomalie umgebenden Bereiche zu interpretieren und herauszufinden, was die Ursache für diese Anomalie beispielsweise auf der SCL-Leitung war [2]. Der Feature Finder ist besonders geeignet, den Clock-Synchronisationsvorgang zu finden, der in Multi-Master-Umgebungen automatisch von den Mastergeräten durchgeführt wird.

(ID:23284390)