Lektion 5.4

Datenkommunikation

21 min Lesezeit

Im Garten misst ein Mikrocontroller die Bodenfeuchte. Im Haus soll ein zweiter Mikrocontroller den Wert anzeigen, später kommen weitere Sensoren dazu. Eine Leitung durch den Garten ist aufwendig, also geht es per Funk.

Dann stellen sich Fragen. Woran erkennt der Empfänger, wo eine Nachricht beginnt und endet? Woher weiß ein Teilnehmer, ob sie für ihn bestimmt ist? Wie verhindert man, dass jemand im Empfangsbereich mitliest? Und wie läuft Funk physikalisch ab?

Definition

Sender, Empfänger, Übertragungsmedium

Jede Übertragung hat einen Sender, der Daten in ein Signal umsetzt, ein Übertragungsmedium und einen Empfänger, der das Signal zurück in Daten wandelt. Medien sind Kupferleitung (elektrische Signale), Lichtwellenleiter (Licht), Funk (elektromagnetische Wellen) und Schall. Auf jedem Weg kann das Signal gestört werden, durch Rauschen oder Dämpfung. Digitale Daten sind Bitfolgen. Bei serieller Übertragung gehen die Bits nacheinander über eine Leitung, bei paralleler mehrere gleichzeitig über mehrere Leitungen. Seriell braucht weniger Leitungen und ist bei längeren Strecken üblich.

Definition

Start-Ende-Kennung

Beim Empfänger kommt nur eine Folge von Pegeln an. Er braucht Kennzeichen für Anfang und Ende. Bei der asynchronen seriellen Übertragung (UART, bei Mikrocontrollern meist als fertige Schnittstelle eingebaut) liegt die Leitung im Ruhezustand auf 1. Ein Startbit (0) kündigt ein Zeichen an, dann folgen meist 8 Datenbits (niedrigstes Bit zuerst), zum Schluss ein Stoppbit (1). Beide Seiten müssen dieselbe Baudrate eingestellt haben (Schritte je Sekunde, hier Bit je Sekunde): Das Startbit synchronisiert nur den Beginn jedes Zeichens.

Eine ganze Nachricht, ein Telegramm, wird ebenfalls eingerahmt: durch ein Startzeichen, ein Endzeichen und oft eine Prüfsumme (ein aus den Daten berechneter Wert, an dem der Empfänger Fehler erkennt). Kommt das Endzeichen auch in den Nutzdaten vor, verwendet man eine Längenangabe oder ersetzt das Zeichen durch eine Ersatzfolge.

Beispiel

Ein Zeichen über UART

Das Zeichen A hat den ASCII-Code 65, binär 0100000101000001. Es wird mit Startbit, 8 Datenbits (niedrigstes Bit zuerst) und Stoppbit bei 9600 Baud gesendet. Wie sieht die Bitfolge aus, wie lange dauert ein Zeichen, und wie viele Zeichen je Sekunde sind das?

Das niedrigste Bit steht rechts, also werden die Datenbits von rechts nach links gesendet: 1, 0, 0, 0, 0, 0, 1, 0. Die Folge ist Start 0, Daten 10000010, Stopp 1, zusammen 10 Bits. Ein Bit dauert 1/9600 s≈104 μs1/9600\,\text{s} \approx 104\,\mu\text{s}, ein Zeichen etwa 1,04 ms1{,}04\,\text{ms}. Das sind 9600:10=9609600 : 10 = 960 Zeichen je Sekunde. Nur 8 von 10 Bits sind Nutzdaten.

Definition

Adressierung, Mikrocontroller und Arrays

Teilen sich mehrere Teilnehmer ein Medium, trägt jedes Telegramm die Adresse des Empfängers und oft die des Absenders. Jeder Teilnehmer wertet nur Telegramme mit seiner Adresse aus. Mit einem Byte als Adresse gibt es 28=2562^8 = 256 Adressen. Ein Mikrocontroller legt ein Telegramm in einem Array ab: einer nummerierten Reihe gleichartiger Werte, deren Index bei 0 beginnt.

Index012345
InhaltStartZielQuelleWertPrüfsummeEnde

Die Prüfsumme ist hier die Summe der Bytes mit Index 1 bis 3 modulo 256. Der Empfänger rechnet sie nach und erkennt so die meisten Übertragungsfehler.

Beispiel

Telegramm aufbauen und prüfen

Der Sensor (Adresse 5) sendet an das Display (Adresse 1) den Messwert 23. Start ist 2, Ende ist 3 (die ASCII-Steuerzeichen STX und ETX). Erstelle das Array mit der Prüfsumme. Kippt im Messwert das Bit mit dem Wert 8, wie erkennt der Empfänger den Fehler?

Prüfsumme: (1+5+23) mod 256=29(1 + 5 + 23) \bmod 256 = 29. Das Array ist [2,1,5,23,29,3][2, 1, 5, 23, 29, 3]. Als Pseudocode (Platzhalter 0 an Index 4):

ZeileEinrückungAnweisung
10t = [2, 1, 5, 23, 0, 3]\texttt{t = [2, 1, 5, 23, 0, 3]}
20summe = 0\texttt{summe = 0}
30fu¨r i von 1 bis 3\texttt{für i von 1 bis 3}
41summe = summe + t[i]\texttt{summe = summe + t[i]}
50t[4] = summe modulo 256\texttt{t[4] = summe modulo 256}
60fu¨r i von 0 bis 5\texttt{für i von 0 bis 5}
71seriell_senden(t[i])\texttt{seriell\_senden(t[i])}

Der Messwert 23 ist binär 0001011100010111. Kippt das Bit mit dem Wert 8, kommt 00011111=3100011111 = 31 an. Der Empfänger rechnet 1+5+31=371 + 5 + 31 = 37 und vergleicht mit der gesendeten 29. Die Summen sind verschieden: Fehler erkannt.

Definition

Symmetrische Verschlüsselung

Funk kann jeder im Empfangsbereich mithören, auch Telegramme mit fremder Adresse. Die Adresse schützt also nichts. Die Vertraulichkeit sichert die Verschlüsselung: Der Sender macht aus dem Klartext mit einem Schlüssel einen Geheimtext, der Empfänger macht ihn mit dem Schlüssel wieder lesbar. Bei der symmetrischen Verschlüsselung ist es derselbe Schlüssel in beiden Richtungen. Das Verfahren darf bekannt sein, geheim bleibt der Schlüssel. Schwäche: Der Schlüssel muss vorab sicher zu beiden Seiten gelangen. Im Einsatz sind geprüfte Verfahren wie AES (Schlüssel ab 128 Bit).

Zur Veranschaulichung dient XOR (Zeichen ⊕\oplus): Jedes Bit des Klartexts wird mit dem Bit des Schlüssels verknüpft, das Ergebnis ist 1, wenn beide Bits verschieden sind. Wendet man XOR mit demselben Schlüssel noch einmal an, kommt der Klartext zurück.

G=K⊕SK=G⊕SG = K \oplus S \qquad K = G \oplus S
Beispiel

Verschlüsseln mit XOR

Der Messwert 23 (binär 0001011100010111) wird mit dem Schlüssel 90 (binär 0101101001011010) verschlüsselt. Berechne den Geheimtext und entschlüssele ihn wieder. (KK Klartext, SS Schlüssel, GG Geheimtext.)

Bitweise: 00010111⊕01011010=01001101=7700010111 \oplus 01011010 = 01001101 = 77. Zurück: 01001101⊕01011010=00010111=2301001101 \oplus 01011010 = 00010111 = 23. Ein 8-Bit-Schlüssel hat nur 256 Möglichkeiten und ist durch Ausprobieren sofort gefunden. AES-128 hat 21282^{128} mögliche Schlüssel.

Definition

Modulation eines Trägersignals

Ein Funkmodul überträgt die Bits nicht direkt, sondern über eine Trägerschwingung mit der Trägerfrequenz fTf_\text{T}. Sie ist hoch, damit die Antenne klein bleibt und mehrere Sender verschiedene Frequenzen nutzen können. Die Modulation verändert eine Eigenschaft des Trägers im Takt der Daten:

  • ASK (Amplitudenumtastung): Die Amplitude wechselt zwischen zwei Werten, im einfachsten Fall Träger ein oder aus.
  • FSK (Frequenzumtastung): Bit 0 und Bit 1 haben zwei verschiedene Frequenzen.
  • PSK (Phasenumtastung): Das Bit ändert die Phase der Schwingung.

Der Empfänger demoduliert: Er gewinnt die Bits aus dem Träger zurück.

Definition

Trägerfrequenz und Datenrate

Zu einem Bit gehören mindestens einige ganze Schwingungen des Trägers, sonst lässt sich die Modulation nicht erkennen. Die Datenrate (Bit je Sekunde) liegt deshalb meist weit unter der Trägerfrequenz. Ein Signal belegt außerdem einen Frequenzbereich, die Bandbreite, die mit der Datenrate wächst. Je mehr Bandbreite das Medium bietet und je weniger Rauschen stört, desto höhere Datenraten sind möglich. Beispiel: Ein einfaches Funkmodul arbeitet bei etwa fT=433 MHzf_\text{T} = 433\,\text{MHz} mit 4800 Bit/s4800\,\text{Bit/s}. Auf ein Bit entfallen 433 000 000:4800≈90 000433\,000\,000 : 4800 \approx 90\,000 Schwingungen.

Definition

Physikalische Prinzipien der Übertragung

Leitung: Spannungs- oder Stromänderungen laufen als Signal durch das Kabel. Dämpfung und Störungen von außen begrenzen die Länge.
Funk: Eine Sendeantenne strahlt elektromagnetische Wellen ab. Sie breiten sich mit Lichtgeschwindigkeit c≈3⋅108 m/sc \approx 3 \cdot 10^8\,\text{m/s} aus, ihre Leistung nimmt mit der Entfernung stark ab, Wände dämpfen sie. Antennen sind oft eine Viertel Wellenlänge lang. Bei 433 MHz433\,\text{MHz} ist λ=c/f≈0,69 m\lambda = c/f \approx 0{,}69\,\text{m}, die Viertelwellenantenne also etwa 17 cm lang.
Lichtwellenleiter: Totalreflexion hält das Licht im Kern der Glasfaser. Die Dämpfung ist gering, und elektromagnetische Störungen wirken kaum.

λ=cf\lambda = \frac{c}{f}
Häufige Fehler

Das Startbit stellt die Baudrate ein

„Das Startbit sagt dem Empfänger, wie schnell die Bits kommen.“

Richtig ist

Das Startbit zeigt nur, wann ein Zeichen beginnt. Die Baudrate müssen Sender und Empfänger vorher gleich einstellen. Sonst werden die Bits zur falschen Zeit abgetastet.

Häufige Fehler

Die Adresse schützt vor Mithören

„Das Telegramm trägt die Adresse des Displays, also kann kein anderer es lesen.“

Richtig ist

Auf Funk empfängt jeder im Bereich das Telegramm. Die Adresse sorgt nur dafür, dass Teilnehmer fremde Telegramme normalerweise nicht auswerten. Gegen Mithören hilft nur Verschlüsselung.

Zusammenfassung

  • Sender, Übertragungsmedium und Empfänger bilden die Übertragungsstrecke. Seriell gehen die Bits nacheinander über eine Leitung.

  • Start- und Stoppbit rahmen ein Zeichen, Start- und Endzeichen ein Telegramm. Die Baudrate müssen beide Seiten gleich einstellen.

  • Die Adresse bestimmt den Empfänger. Ein Mikrocontroller legt das Telegramm in einem Array ab, die Prüfsumme erkennt Übertragungsfehler.

  • Symmetrische Verschlüsselung nutzt denselben Schlüssel zum Ver- und Entschlüsseln. Das Verfahren darf bekannt sein, der Schlüssel muss geheim bleiben.

  • Leistungskurs: Die Modulation (ASK, FSK, PSK) prägt die Daten einem Träger auf. Die Datenrate liegt weit unter der Trägerfrequenz und hängt von der Bandbreite ab.

  • Leistungskurs: Leitung, Funk und Lichtwellenleiter übertragen nach verschiedenen physikalischen Prinzipien. Für Funk gilt λ=c/f\lambda = c/f.

Übungen

Aufgabe 1Multiple Choice

Ein Funktelegramm trägt die Adresse des Displays. Was bewirkt das?

Aufgabe 2Numerisch

Eine UART sendet mit 9600 Baud. Jedes Zeichen braucht 10 Bits (Start, 8 Daten, Stopp). Wie lange dauert die Übertragung von 48 Zeichen, in Millisekunden?

Aufgabe 3Numerisch

Ein Telegramm enthält Ziel 100, Quelle 120 und Wert 200. Die Prüfsumme ist die Summe der drei Bytes modulo 256. Wie groß ist sie?

Aufgabe 4Numerisch

Der Klartext 0011010100110101 wird mit XOR und dem Schlüssel 0000111100001111 verschlüsselt. Welche Dezimalzahl ergibt der Geheimtext?

Aufgabe 5Numerisch

Leistungskurs: Ein Funkmodul hat die Trägerfrequenz 2,4 GHz und die Datenrate 1 Mbit/s. Wie viele Schwingungen des Trägers entfallen auf ein Bit? Schreibe die Zahl ohne Punkt.

Aufgabe 6Freitext

Zwei Mikrocontroller, die sich nie begegnet sind, wollen symmetrisch verschlüsselt funken. Welches Problem tritt auf, und was folgt daraus?