Serielle Protokolle verstehen

Grundlagen von Oszilloskopen und Tastköpfen

Serielle Protokolle verstehen

Übertragung digitaler Daten: parallele und serielle Übertragung im Vergleich

Digitale Systeme basieren auf dem Konzept von Bits, die zwischen zwei Komponenten oder Geräten übertragen werden müssen. Bits können auf unterschiedlichste Art und Weise übertragen werden. Allerdings lassen sich die unterschiedlichen Verfahren in zwei Hauptkategorien einteilen: parallele und serielle Übertragung.

Parallele Übertragung

Bei der parallelen Übertragung werden mehrere Bits gleichzeitig zwischen Sender und Empfänger bewegt. Üblicherweise existiert für jedes Bit eine eigene Leitung. Parallele Verbindungen eignen sich gut für kurze Distanzen und/oder Punkt-zu-Punkt-Verbindungen. Sie weisen ein einfaches Zeitverhalten auf und lassen sich leicht analysieren. Aber so verbreitet die parallele Datenübertragung einst auch war, wird sie heutzutage weitestgehend durch die serielle Übertragung abgelöst.

Serielle Übertragung

Wie schon der Name andeutet, wird bei der seriellen Übertragung immer ein Bit nach dem anderen gesendet, wobei alle Bits über die gleiche Leitung laufen. Die serielle Übertragung eignet sich gut für Anwendungen über größere Distanzen, Anwendungen mit höherem Durchsatz und Applikationen mit mehreren Knoten. All dies bekommt man nicht geschenkt, da die serielle Übertragung komplexer und schwieriger zu analysieren ist. Obgleich es tatsächlich so ist, dass die Datenbits über eine einzige Leitung oder einen einzigen „Draht“ übertragen werden, nutzen die meisten seriellen Protokolle mehrere Leitungen.

Zusätzlich zum Draht für die Datenbits werden viele Protokolle um ein Taktsignal und eine Art von Steuer- oder Adressfunktion für mehrere Knoten ergänzt.

Parallele Übertragung

Serielle Übertragung

Beispiele für serielle Protokolle

Serielle Protokolle kommen bei einer breiten Palette an Applikationen zum Einsatz. Die drei wichtigsten seriellen Protokolle für den generischen Einsatz sind UART, I²C und SPI.

Die in der Automobilindustrie verwendeten seriellen Protokolle wie CAN, LIN und FlexRay bilden eine Sonderkategorie. Diese Protokolle wurden entwickelt, um die anspruchsvollen Anforderungen von Fahrzeugen zu meistern, beispielsweise die Sicherstellung eines zuverlässigen Betriebs sowohl bei niedrigen als auch hohen Geschwindigkeiten in einer verrauschten Umgebung.

Generische Applikationen

UART (Universal Asynchronous Receiver/Transmitter)

  • Klassisches serielles Protokoll
  • Einfach zu implementieren
  • Seit Jahrzehnten im Einsatz bei seriellen Ports und COM-Ports von PCs

I²C (Inter-IC)

  • Kommunikation zwischen integrierten Schaltungen (und mehr)

SPI (Serial Peripheral Interface)

  • Höhere Geschwindigkeit als bei I²C
  • Nutzt mehr Leitungen und ist im Allgemeinen komplexer

Automotive-Applikationen

CAN (Controller Area Network)

  • Hohe Geschwindigkeit
  • Häufig verwendet in Kombination mit Sensoren

LIN (Local Interconnect Network)

  • Niedrigere Geschwindigkeit
  • Verwendung in Kombination mit Ausrüstungsteilen (z. B. Scheiben, Spiegel)

FlexRay™

  • Höhere Geschwindigkeit mit Redundanz

Eigenschaften von seriellen Protokollen

Obgleich sich die Implementierungsdetails zwischen den Protokollen unterscheiden, weisen sämtliche seriellen Protokolle vier Basiseigenschaften auf, die auch für die Analyse und die Decodierung von seriellen Daten wichtig sind:

  • Pegel: Wie werden Nullen und Einsen mithilfe von Spannungen repräsentiert
  • Zeitverhalten: Wie oft werden Bits gesendet (Bitzeit)
  • Rahmenbildung: Wie werden Bits in Gruppen organisiert und welche Rolle spielt jedes Bit oder jede Gruppe von Bits
  • Protokoll: Welche Nachrichten werden unter welchen Umständen ausgetauscht

Pegel

Vor jeglicher Art von digitaler Decodierung müssen wir in der Lage sein, zwischen Einsen und Nullen zu unterscheiden. Anders ausgedrückt: Wie werden die Bitwerte durch Spannungspegel bestimmt? Ein einfacher Ansatz wäre die Festlegung, dass eine „niedrige“ Spannung einer Null und eine „hohe“ Spannung einer Eins entspricht. Tatsächlich arbeiten einige serielle Protokolle auf diese Art und Weise.
Serielle Protokolle, die in anspruchsvollen Umfeldern wie dem Automotive-Bereich eingesetzt werden, nutzen oft eine Differenzspannung, da differenziell geführte Signale tendenziell eine höhere Störfestigkeit gegen Rauschen aufweisen. Differenziell bedeutet, dass eine 0 oder 1 auf Basis einer Differenz zwischen zwei Spannungen und nicht in Bezug auf Masse definiert ist.

Hinweis: Differenzielle Tastköpfe sind für diese Messungen äußerst hilfreich.

Zeitverhalten

Die Definition der Spannungspegel für „0“ und „1“ ist nicht ausreichend, um zu bestimmen, welche Bits empfangen werden. Darüber hinaus muss man unbedingt wissen, wie schnell die Bits erzeugt werden, anders ausgedrückt, welchen Wert „Bitzeit“ bzw. „Bitrate“ annehmen.
Um serielle Daten zu decodieren, muss der Empfänger oder das Messgerät dieselbe Bitrate wie der Sender aufweisen.

Rahmenbildung

Serielle Protokolle organisieren die Bits typischerweise in sogenannten Rahmen (Frames). Den einzelnen Bits oder Gruppen von Bits im Rahmen ist eine feste Bedeutung zugewiesen. Um Rahmen korrekt zu decodieren, muss man zu einem gewissen Grad mit dieser Struktur vertraut sein.
Beispielsweise ist es bei der Decodierung eines seriellen UART-Protokolls wichtig zu wissen, dass der Ruhezustand der Leitung durch einen hohen Spannungspegel repräsentiert wird. Ein Übergang von High zu Low steht für ein „Start Bit“, das den Beginn des Rahmens kennzeichnet. Zudem ist es erforderlich zu wissen, wie viele Datenbits gelesen werden müssen und dass am Ende des Rahmens ein Stoppbit mit einem hohen Spannungspegel steht, gefolgt von der Rückkehr in den Ruhezustand. Wenn man die Rahmenstruktur kennt, lassen sich die Nutzdaten aus dem seriellen Bitstrom extrahieren sowie weitere Informationen über die Übertragung ableiten.

Bits sind üblicherweise in „Rahmen“ organisiert; jedem Bit oder jeder Gruppe von Bits ist eine feste Bedeutung zugewiesen

Protokoll

Der letzte wichtige Aspekt ist das sogenannte „Protokoll“. Eine generische Definition für ein Protokoll ist eine Menge von Regeln für die Codierung und den Austausch von Informationen. Es können Regeln existieren, wie und wann Daten gesendet werden, sowie in Bezug auf die Typen und Bedeutungen von Nachrichten, die zwischen Endpunkten ausgetauscht werden.
Bei einem einfachen Protokoll würde das Senden von Daten sofort beginnen, sobald diese zur Verfügung stehen – ungeachtet davon, ob der Empfänger für den Datenempfang bereit ist oder nicht. Bei einem ausgeklügelteren Protokoll würde eine Art von Mechanismus existieren, um vor dem Senden der Daten um Erlaubnis zu fragen. Ist das Protokoll noch komplexer aufgebaut, würde der Sender auf eine explizite Bestätigung warten, dass die Daten korrekt empfangen wurden, bevor weitere Daten oder fehlende bzw. fehlerhafte Daten erneut gesendet werden.

Decodierung serieller Protokolle

Bislang wurden serielle Protokolle üblicherweise mit speziellen, dedizierten Protokolltestern decodiert. Heutzutage nutzt man fast immer ein modernes digitales Speicheroszilloskop mit einem oder mehreren Kanälen. Nach der Wahl des relevanten seriellen Protokolls müssen die Pegel, das Zeitverhalten und die Rahmenbildung passend zum analysierten seriellen Signal konfiguriert werden. Mithilfe dieser Informationen liefert das Oszilloskop Ergebnisse in Form von bloßen Spannungspegeln, detektierten Bits sowie Rahmen, deren Inhalt in Binär-, Hexadezimal- oder ASCII-Codierung angezeigt werden kann. Die serielle Decodierung an Oszilloskopen beinhaltet oftmals auch zusätzliche Funktionalität wie die Triggerung auf bestimmte Symbole innerhalb des Rahmens, die Zuweisung von durch Menschen lesbaren Labeln zu benutzerdefinierten Mustern sowie dem Datenexport.

Serielle Protokolle verstehen

Sehen Sie sich unser Video „Serielle Protokolle verstehen“ an, um mehr zu erfahren

In diesem Video wird eine grundlegende, technische Übersicht über serielle Protokolle vermittelt und erläutert, wie Protokollnachrichten mit einem Oszilloskop decodiert und analysiert werden.

Fazit

Serielle Protokolle werden verwendet, um Bits sequentiell bzw. einzeln zwischen Komponenten oder zwischen separaten Geräten zu übertragen.

In nahezu allem Digitalen kommt serielle Kommunikation zum Einsatz

Serielle Protokolle lassen sich einteilen in:

  • generische Standards wie UART, I²C und SPI
  • eher anwendungsspezifische Protokolle wie CAN, LIN und FlexRay (vornehmlich im Automotive-Bereich)

Alle seriellen Protokolle weisen bestimmte Eigenschaften auf, beispielsweise:

  • wie Spannungen auf Bits abgebildet werden,
  • das Zeitverhalten oder die Bitrate,
  • wie Bits in Nachrichteneinheiten oder Rahmen organisiert werden sowie
  • die Rahmentypen, die ausgetauscht werden, sowie Regeln, wann jeder Rahmentyp gesendet wird.

Moderne digitale Oszilloskope sind heutzutage das Mittel der Wahl für die Analyse und die Decodierung serieller Daten.

Sie haben Fragen zu seriellen Protokollen oder zur Decodierung serieller Protokolle? Unsere Experten helfen Ihnen.