Datenkommunikation
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?
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.
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.
Ein Zeichen über UART
Ein Zeichen über UART
Das Zeichen A hat den ASCII-Code 65, binär . 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 , ein Zeichen etwa . Das sind Zeichen je Sekunde. Nur 8 von 10 Bits sind Nutzdaten.
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 Adressen. Ein Mikrocontroller legt ein Telegramm in einem Array ab: einer nummerierten Reihe gleichartiger Werte, deren Index bei 0 beginnt.
| Index | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| Inhalt | Start | Ziel | Quelle | Wert | Prüfsumme | Ende |
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.
Telegramm aufbauen und prüfen
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: . Das Array ist . Als Pseudocode (Platzhalter 0 an Index 4):
| Zeile | Einrückung | Anweisung |
|---|---|---|
| 1 | 0 | |
| 2 | 0 | |
| 3 | 0 | |
| 4 | 1 | |
| 5 | 0 | |
| 6 | 0 | |
| 7 | 1 |
Der Messwert 23 ist binär . Kippt das Bit mit dem Wert 8, kommt an. Der Empfänger rechnet und vergleicht mit der gesendeten 29. Die Summen sind verschieden: Fehler erkannt.
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 ): 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.
Verschlüsseln mit XOR
Verschlüsseln mit XOR
Der Messwert 23 (binär ) wird mit dem Schlüssel 90 (binär ) verschlüsselt. Berechne den Geheimtext und entschlüssele ihn wieder. ( Klartext, Schlüssel, Geheimtext.)
Bitweise: . Zurück: . Ein 8-Bit-Schlüssel hat nur 256 Möglichkeiten und ist durch Ausprobieren sofort gefunden. AES-128 hat mögliche Schlüssel.
Modulation eines Trägersignals
Ein Funkmodul überträgt die Bits nicht direkt, sondern über eine Trägerschwingung mit der Trägerfrequenz . 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.
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 mit . Auf ein Bit entfallen Schwingungen.
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 aus, ihre Leistung nimmt mit der Entfernung stark ab, Wände dämpfen sie. Antennen sind oft eine Viertel Wellenlänge lang. Bei ist , 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.
Das Startbit stellt die Baudrate ein
Das Startbit stellt die Baudrate ein
„Das Startbit sagt dem Empfänger, wie schnell die Bits kommen.“
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.
Die Adresse schützt vor Mithören
Die Adresse schützt vor Mithören
„Das Telegramm trägt die Adresse des Displays, also kann kein anderer es lesen.“
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 .
Übungen
Ein Funktelegramm trägt die Adresse des Displays. Was bewirkt das?
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?
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?
Der Klartext wird mit XOR und dem Schlüssel verschlüsselt. Welche Dezimalzahl ergibt der Geheimtext?
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.
Zwei Mikrocontroller, die sich nie begegnet sind, wollen symmetrisch verschlüsselt funken. Welches Problem tritt auf, und was folgt daraus?