Liechtenstein - Kennzeichen Liechtenstein

Incoterms:DDP
Alle Preise sind inklusive Zoll und Gebühren bei der Auswahl der Versandart.

Bitte bestätigen Sie Ihre Währungsauswahl:

Schweizer Franken
Versand ist kostenfrei bei den meisten Bestellungen über CHF 54 (CHF)

Euro
Versand ist kostenfrei bei den meisten Bestellungen über 50 € (EUR)

US Dollar
Versand ist kostenfrei bei den meisten Bestellungen über $100 (USD)

Bench Talk for Design Engineers

Mouser German Blog

rss

Mouser Electronics, Inc german language blogs


Bit-Sprache: Embedded-System-Protokolle für den Datenaustausch Michael Parks

(Quelle: nick/stock.adobe.com; generiert mit KI)

 

Der Mensch kommuniziert von Anbeginn seines Lebens, und dennoch kann es selbst für erfahrene Kommunikatoren schwierig sein, diese Kommunikation effektiv zu gestalten. Im Laufe der Jahre haben die Menschen zahlreiche Möglichkeiten der Kommunikation entwickelt – mündlich, schriftlich, bildlich, mit Gesten und vieles mehr. Jeder Modus stützt sich auf Syntax und semantische Regeln, um die Bedeutung vom Sender zum Empfänger zu übermitteln. Einige Modi sind effizienter, aber das Ziel bleibt dasselbe: Informationen von Punkt A nach Punkt B zu bringen.

In dieser Hinsicht unterscheiden sich moderne digitale Bauteile nicht von Menschen. Diese Bauteile sind in der Regel sehr „gesprächig“ und kommunizieren auch untereinander auf zahlreiche Arten. Ein Beispiel ist ein Mikrocontroller, der verschiedene Sensoren abfragt oder Pakete sendet, die über ein Funkgerät übertragen werden. Die beiden Bauteile tauschen Daten über genau definierte digitale Kommunikationsprotokolle aus. In der Welt der Embedded-Systeme gibt es eine ganze Reihe von Protokollen, aus denen der Entwickler wählen kann.

Dieser Beitrag befasst sich mit den gängigsten Kommunikationsprotokollen, die in Embedded-Systemen verwendet werden. Wir stellen die Besonderheiten jedes einzelnen Protokolls vor und erläutern den übergreifenden Aufbau von Embedded-Kommunikationsprotokollen im Allgemeinen.

Wie definieren wir digitale Kommunikationsprotokolle?

Schauen wir uns zunächst die digitalen Kommunikationsprotokolle an. Vereinfacht gesagt handelt es sich bei einem digitalen Kommunikationsprotokoll um eine Reihe von Regeln, die festlegen, wie digitale Bauteile eine Schnittstelle zum Datenaustausch nutzen können. Protokolle definieren zahlreiche Aspekte im Hinblick darauf, wie sich ein elektrisches Signal verhält, um Einsen und Nullen so zu übertragen, dass Sender und Empfänger zuverlässig kommunizieren können. Zu den wesentlichen Merkmalen eines Protokolls zählen unter anderem folgende:

  • Datenrate: Sie gibt an, wie schnell Informationen übertragen werden können. Sie wird normalerweise in Bits pro Sekunde (bps) oder Megabit pro Sekunde (Mbps) gemessen. Höhere Datenraten ermöglichen eine schnellere Kommunikation, erfordern aber möglicherweise eine bessere Signalqualität und mehr Leistung.
  • Datenkodierung: Die Protokolle definieren, wie Bits in sinnvolle Datenstrukturen gruppiert werden:
    • Bytes (z. B. 8 Bits)
    • Wörter (z. B. 16-Bit, 32-Bit)
    • Frames (z. B. in UART, SPI)
    • Pakete (z. B. in Netzwerkprotokollen wie TCP/IP oder CAN)
  • Leitungscodierungsschemata: Leitungscodierungsverfahren geben an, wie digitale Bits (Einsen und Nullen) als Spannungsänderungen auf einer physischen Leitung dargestellt werden. Folgende Optionen sind möglich:
    • Non-Return-to-Zero (NRZ): Das Signal bleibt während der gesamten Bitdauer hoch oder niedrig. Dies ist effizient und einfach, aber lange Abläufe von identischen Bits können zu Synchronisationsproblemen führen.
    • Return-to-Zero (RZ): Das Signal kehrt nach der Hälfte jeder Bitperiode auf Null zurück. Dieses Verfahren ist einfacher für die Rücksetzung des Taktgebers, verbraucht aber mehr Bandbreite.
  • Übertragungsmodi: Diese Modi definieren die Richtung des Datenflusses zwischen den Geräten. Zu den Datenflussarten zählen:
    • Simplex: Die Daten fließen nur in eine Richtung (z. B. Fernsehübertragung).
    • Halb-Duplex: Daten fließen in beide Richtungen, aber immer nur in eine Richtung auf einmal (z. B. Walkie-Talkies).
    • Voll-Duplex: Daten fließen gleichzeitig in beide Richtungen (z. B. Telefonanrufe, UART mit getrennten TX/RX-Leitungen).
  • Synchrone vs. asynchrone Kommunikation: Hier wird zwischen ununterbrochener Echtzeit-Kommunikation und nicht-simultaner Kommunikation unterschieden.
    • Synchron: Sender und Empfänger teilen sich einen gemeinsamen Taktgeber. Das Timing ist genau vorgegeben, ermöglicht aber eine schnellere und besser vorhersehbare Kommunikation (z. B. SPI, I²C).
    • Asynchron: Sender und Empfänger arbeiten unabhängig voneinander und verwenden Start-/Stopp-Bits, um jedes Byte einzurahmen. Dies erfordert eine vereinbarte Baudrate (z. B. UART).
  • Fehlererkennung und -korrektur: Dieses Merkmal gewährleistet die Datensicherheit, insbesondere bei verrauschten oder unzuverlässigen Verbindungen. Bei digitalen Kommunikationsprotokollen werden die folgenden Arten der Fehlererkennung und -korrektur eingesetzt:
    • Paritätsbits: Ein einzelnes Bit wird hinzugefügt, um anzuzeigen, ob die Anzahl der Einsen ungerade oder gerade ist.
    • Prüfsummen: Summe aller Datenbytes; Empfänger vergleicht mit erwartetem Wert.
    • Cyclic Redundancy Check (CRC): Eine robustere Form der Fehlererkennung, die in Protokollen wie USB, CAN und Ethernet verwendet wird.
  • Serielle vs. Parallele Übertragung: Diese Übertragungsarten definieren die Anzahl der Bits und Kanäle, die an der Übertragung eines Signals zu einer bestimmten Zeit beteiligt sind.
    • Serielle Kommunikation: Sendet ein Bit nach dem anderen über eine Leitung. Serielle Verbindungen sind langsamer als parallele Verbindungen, benötigen aber weniger Kabel, wodurch sie sich ideal für Mikrocontroller eignen (z. B. UART, SPI, I²C).
    • Parallele Kommunikation: Bei dieser Kommunikationsart werden mehrere Bits gleichzeitig über mehrere Drähte gesendet. Sie ist schneller, erfordert aber mehr Pins und wird in RAM- und Display-Bussen verwendet.
  • Endianness: Damit wird die Byte-Reihenfolge von Multi-Byte-Daten festgelegt. Es wird zwischen folgenden Arten unterschieden:
    • Big Endian: Das höchstwertige Byte wird zuerst gesendet.
    • Little Endian: Das niedrigstwertige Byte wird zuerst gesendet.
    • Protokolle wie Modbus und I²S definieren die Endianness eindeutig. Bei anderen (wie UART oder SPI) ist dies nicht der Fall, sodass die Entwickler beide Seiten koordinieren müssen.
  • Anzahl der benötigten Pins: Verschiedene Protokolle erfordern eine unterschiedliche Anzahl von physischen Verbindungen:
    • UART: 2 Pins (TX, RX)
    • I²C: 2 Pins (SDA, SCL)
    • SPI: 4 Pins (MOSI, MISO, SCK, SS) + zusätzliche Chip Select (CS)-Leitungen für jeden Chip
    • I²S: 3-4 Pins (WS, BCLK, SD, optional MCLK)
    • CAN: 2 Pins (CAN_H, CAN_L)
    • Eine geringere Pinzahl ist in Embedded-Systemen mit begrenzten verfügbaren GPIO-Pins wichtig. Außerdem werden – auch wenn dies nicht immer explizit angegeben wird – Stromversorgungs- und Erdungsdrähte zwischen den Bauteilen benötigt.
  • Maximale Anzahl der unterstützten Bauteile: Jedes Protokoll hat unterschiedliche Fähigkeiten in Bezug auf die maximale Anzahl der unterstützten Bauteile, wie im Folgenden dargestellt.
    • UART: Nur zwei Bauteile (1:1)
    • I²C: Mehrere Bauteile (bis zu 128 mit 7-Bit-Adressierung)
    • SPI: Mehrere Bauteile, begrenzt durch die Anzahl der Select-Leitungen
    • CAN: Dutzende bis Hunderte, je nach Netzgröße und -topologie
  • Adressierung: Protokolle verwenden eine Adressierung, um anzugeben, welches Gerät spricht oder zuhört:
    • I²C: Jedes Bauteil hat eine eindeutige 7- oder 10-Bit-Adresse
    • CAN: Nachrichten sind mit Nachrichten-IDs gekennzeichnet, und die Bauteile entscheiden anhand der ID, ob sie handeln
    • UART und SPI: Verwenden Sie keine inhärente Adressierung. Bei SPI wählt der Master manuell über eine CS-Leitung aus, mit welchem Bauteil er sprechen will

Beliebte digitale Kommunikationsprotokolle für Embedded-Systeme

In den letzten Jahrzehnten wurden zahlreiche Protokolle entwickelt, um die Datenübertragung zwischen den zahlreichen Bauteilen moderner Embedded-Systeme zu erleichtern. Unterschiedliche Anwendungsfälle haben zu einer Vielzahl von Protokollen geführt, die für verschiedene Anforderungen optimiert sind, wie z. B. die schnelle Übertragung großer Datenmengen oder die Minimierung der Komplexität und des Overheads für Systeme, die in Bezug auf Speicher oder Taktrate extrem ressourcenbeschränkt sind. Im Folgenden sind die am häufigsten verwendeten Protokolle in der Embedded-Entwicklung aufgeführt, einschließlich ihrer Eigenschaften, Vor- und Nachteile und typischen Applikationen. Einen schnellen Überblick über die Merkmale dieser Protokolle finden Sie in Tabelle 1.

  • Universal Asynchronous Receiver-Transmitter (UART)
    • Pins: TX (Senden), RX (Empfangen)
    • Modus: Asynchron (keine Taktleitung)
    • Geschwindigkeit: In der Regel 9600 bps bis 115200 bps, kann aber je nach Hardware bis zu mehreren Mbps betragen
    • Anwendungsfälle: Serielle Monitore, GPS-Module, Bluetooth®, Debugging
    • Vorteile: Einfach, breite Unterstützung, geringe Pinanzahl
    • Nachteile: Unterstützt nur 1:1-Kommunikation, keine inhärente Adressierung
    • Aussprache: You-Art
  • Inter-Integrated Circuit (I²C)
    • Pins: SDA (Daten), SCL (Takt)
    • Modus: Synchron
    • Geschwindigkeit: Standard (100 kHz), Fast (400 kHz), Fast+ (1 MHz), High-Speed (3,4 MHz)
    • Anwendungsfälle: Sensoren, EEPROMs, RTCs, Displays (OLED, LCD), Multi-Sensor-Arrays
    • Unterstützt mehrere Bauteile (bis zu 128 mit 7-Bit-Adressierung), nur zwei Drähte erforderlich
    • Nachteile: Langsamer als SPI, komplexere Software, begrenzte Kabellänge aufgrund von Rauschempfindlichkeit
    • Aussprache: Eye-Squared-See
  • Serial Peripheral Interface (SPI)
    • Pins: MOSI, MISO, SCK, CS (einer pro Chip-Bauteil)
    • Modus: Synchron
    • Geschwindigkeit: bis zu mehreren Dutzend Mbit/s (in der Regel 1-50 Mbit/s)
    • Anwendungsfälle: SD-Karten, Displays (TFT, OLED), Hochgeschwindigkeitssensoren, DACs, ADCs
    • Vorteile: Sehr schnell, Vollduplex, einfaches Protokoll
    • Nachteile: Erfordert mehr Pins (insbesondere bei mehreren Chips), keine integrierte Adressierung
    • Aussprache: Spy
  • 1-Wire
    • Pins: Eine Datenleitung (plus Masse)
    • Modus: Synchron (mit zeitgesteuerter Signalisierung)
    • Geschwindigkeit: ~16 kbps (Standard), ~142 kbps (Overdrive-Modus)
    • Anwendungsfälle: Temperatursensoren (z. B. DS18B20), iButtons, einfache digitale ID und Authentifizierungschips
    • Vorteile: Extrem niedrige Pin-Anzahl, Stromversorgung der Bauteile über die Datenleitung (parasitäre Energie)
    • Nachteile: Langsamer als I²C/SPI, zeitkritischer, begrenzte Reichweite und Geräteanzahl
    • Aussprache: One-Wire
  • Controller Area Network (CAN)
    • Pins: CAN_H, CAN_L (differenzielles Paar)
    • Modus: Synchron (Multi-Master-Bus)
    • Geschwindigkeit: Bis zu 1 Mbps (CAN 2.0), 5+ Mbps (CAN FD)
    • Anwendungsfälle: Elektronische Steuergeräte (ECUs) für Kraftfahrzeuge, Robotik, Industrieautomation und unbemannte Luftfahrzeuge (UAVs)
    • Vorteile: Zuverlässig, robust gegenüber Störungen, unterstützt viele Knoten, integrierte Arbitrierung und Priorisierung
    • Nachteile: Erfordert einen Transceiver; komplexere Implementierung
    • Aussprache: Can
  • RS-485
    • Pins: A, B (differenzielles Paar), optionale Leitung zur Steuerung der Richtung
    • Modus: Halbduplex (in der Regel), Multi-Point seriell
    • Geschwindigkeit: Bis zu 10 Mbps über kurze Strecken, über lange Strecken weniger
    • Anwendungsfälle: Industrielle Automatisierung, serielle Kommunikation über große Entfernungen, Modbus
    • Vorteile: Große Reichweite (bis zu 1200 Meter), robust gegen Lärm, Unterstützung mehrerer Geräte
    • Nachteile: Erfordert externen Transceiver und Treiberlogik zur Richtungssteuerung
    • Aussprache: RS-485
  • Inter-IC-Sound (I²S)
    • Pins: Word Select (WS), Bit Clock (BCLK), serielle Daten (SD) und optionaler Mastertakt (Master Clock, MCLK)
    • Modus: Synchron, serielle Audiodaten
    • Geschwindigkeit: Abhängig von der Abtastrate und der Bittiefe (in der Regel 44,1 kHz-192 kHz bei 16-32 Bit)
    • Anwendungsfälle: Audio-Streaming zu/von DACs und ADCs, MEMS-Mikrofone, Audiowiedergabe oder -verarbeitung
    • Vorteile: Optimiert für digitales Audio, unterstützt Stereo- und Mehrkanaldaten
    • Nachteile: Unterstützt nur Audiodaten; nicht universell auf allen MCUs verfügbar
    • Aussprache: Eye-Squared-Ess

 

Protokoll

Benötigte Pins

Geschwindigkeit

Unterstützte Geräte

Anwendungsfälle

UART

2

Bis zu 115200 bps

1:1

Debugging, GPS, Bluetooth

I²C

2

~400 kHz (Standard)

Mehrere

Sensoren, OLEDs, EEPROM

SPI

4+

~10 Mbps+

Mehrere (mit SS-Pins)

SD-Karten, TFT-Displays

1-Wire

1

~16,3 kbps

Mehrere

Temperatursensoren

CAN

2

~1 Mbps

Mehrere

Automotive, Industrie

RS-485

2

~10 Mbps

Mehrere

Fernübertragung im Industriebereich

I²S

4

44,1 kHz - 192 kHz

Mehrere

Digitale Mikrofone, DACs und Audioverarbeitung

Tabelle 1: Ein kurzer Überblick über die verschiedenen digitalen Kommunikationsprotokolle.

Fazit

Digitale Kommunikationsprotokolle sind die unsichtbare, aber unverzichtbare Sprache, die die Funktion von Embedded-Systemen ermöglicht. Von einfachen seriellen Verbindungen wie UART bis hin zu robusten industriellen Netzwerken wie CAN hat jedes Protokoll spezifische Vorteile, Nachteile und ideale Anwendungsfälle. Für den Aufbau effizienter, zuverlässiger Systeme ist es wichtig zu verstehen, wie und warum diese Protokolle funktionieren – von ihren physikalischen Signal- und Datenstrukturen bis hin zu Konzepten wie Endianness (Byte-Reihenfolge), Debugging und Übertragungsmodi. Angesichts der Tatsache, dass Embedded-Bauteile immer leistungsfähiger und stärker miteinander vernetzt werden, erhalten Entwickler durch die Beherrschung dieser Kommunikationsgrundlagen die Tools, mit denen sie intelligentere, schnellere und leistungsfähigere Hardware entwerfen können, die wirklich mit der Welt um sie herum „kommunizieren“ kann.



« Zurück


Michael Parks's Blog

Alle Autoren

Alle anzeigen Alle anzeigen
Blog nach Datum anzeigen