i

Ein einfacher Sender und Empfänger

Verbindung der Calliope mini

Wir gehen hier von der Situation aus, bei der zwei Calliope mini miteinander verbunden sind.
Das Ziel ist es, Sender und Empfänger zu implementieren, mit denen Buchstaben zwischen den beiden Calliope mini bitweise übertragen werden können.

Calliope mini verbunden[1]

Codierung und Decodierung

Auf der Bitübertragungsschicht spielt es keine Rolle welche Informationen übertragen werden. Wichtig ist nur, dass die geschickten Bytes richtig beim Empfänger ankommen. Wie dieser die Bytes zu interpretieren hat, ist auf dieser Schicht nicht definiert. Um bei unseren Experimenten dennoch nicht nur 0-1-Folgen anzuzeigen, können wir die übertragenen Daten als Text interpretieren, was im Prinzip aber willkürlich festgelegt ist. In einer Code-Tabelle wird jedem Zeichen (Ziffer, Buchstabe oder Sonderzeichen) ein bestimmtes Bit-Muster (binär) bzw. eine bestimmte Ordnungsnummer (dezimal) zugeordnet. Im Folgenden benutzen wir die ASCII-Tabelle, in der beispielsweise der Buchstabe A durch das Bitmuster 01000001 (dezimal: 65) und der Buchstabe P durch das Bitmuster 01010000 (dezimal: 80) dargestellt wird.

Übertragen von Bytes

Acht Bits fasst man meistens zu Paketen von einem Byte zusammen. Auch wir wollen das hier so machen, sodass die kleinsten Datenpakete, die übertragen werden sollen, aus je einem Byte bestehen. Aus den vorherigen Abschnitten weißt Du, dass man das zu verschickende Paket mit einem Startbit markieren muss. Ergänzt man zusätzlich noch ein Stoppbit, hat das zu sendende Datenpaket folgende Form:

Bitmuster[2]
Der Empfänger tastet die Leitung dann nach folgendem Schema ab:
Bitmuster_Abtasten[3]

Aufgabe 1 - Bitübertragungsprotokoll

Beschreibe das Protokoll zur Übertragung eines Byte. Erkläre die Notwendigkeit des Start- und des Stoppbits. (Tipp zur Notwendigkeit des Stoppbits: Was würde auf Empfängerseite passieren, wenn man das Stoppbit wegließe und das nächste Byte sofort geschickt würde? Bedenke, dass es in echten Systemen immer zu kleinen Verschiebungen kommen kann.)

Der Sender (Transmitter)

Ein Sender muss also nach dem oben definierten Protokoll ein Startbit, acht Datenbits und ein Stoppbit senden. Dies wird für jedes zu sendende Byte wiederholt.

Aufgabe 2 - Sender implementieren

Sende ein “A“. Verändere hierzu vorerst nur deinen Sender von Seite ...1.2 oder diesen Sender:

  • 1. Schritt: Speichere das Bitmuster zu "A" in einer Variablen ab.
  • 2. Schritt: Sende das Startbit.
  • 3. Schritt: Sende bitweise mit jeweils anschließender Pause (= Bitzeit). Wähle die Bitzeit nicht zu klein! (Vorschlag: 50 ms)
  • 4. Schritt: Sende das Stoppbit.
Mit diesem Empfänger-Calliope mini Testprogramm kannst Du deinen Sender testen.

Der Empfänger (Receiver)

Der Empfänger tastet die Leitung in relativ kurzen Intervallen ab (Polling = maximale Abtastung). Um Anfang und Ende eines Bytes zu erkennen, befindet sich der Empfänger jeweils in einem der beiden folgenden Zustände.

Empfänger[4]

Aufgabe 3 - Empfänger implementieren

Erstelle nun ein Empfänger-Programm. Speichere darin das empfangene Bitmuster (bis nach dem Anzeigen, um danach neue Bitmuster zu empfangen) in einer Variablen und lasse diese Zeichenfolge anschließend anzeigen. Lasse die LED während des Empfangsvorgangs rot leuchten, um das Empfangen zu erkennen.

Wenn Du noch Hilfe benötigst, schaue im Fachkonzept – ein Bitübertragungsprotokoll nach.

Quellen

Suche

v
10.2.3.3
dev.inf-schule.de/rechnernetze/bituebertragung_sicherung/bituebertragung_calliope/einfachersenderempfaenger
dev.inf-schule.de/10.2.3.3
dev.inf-schule.de/@/page/Z67GpwxZkhYswvrr

Rückmeldung geben