i

Bitübertragung zwischen zwei Rechnern - Implementierung

TODO: Hilfen zu den Programmieraufgaben.

Bitübertragungsprotokoll

Aufgabe 1: Senden eines Bytes

(a) Schreibe eine Funktion namens sendeByte, die nach dem obenstehenden Protokoll ein Byte versendet. Als Parameter erhält die Funktion die Schnittstelle, die Bitzeit sowie die Bitfolge, die übertragen werden soll. Die Bitfolge wird als Zeichenkette, die aus den Zeichen '0' und '1' besteht, übergeben.
Du kannst dich dabei an folgendem Algorithmus orientieren:

Algorithmus Byte senden:
Eingabe: Schnittstelle, Bitzeit, Bitfolge

    # Startbit senden
    Sende eine 1
    eine Bitzeit warten

    # Bitfolge senden
    Für jedes Bit der Bitfolge:
        Falls das Bit '0' ist:
            sende eine 0
        Falls das Bit '1' ist:
                    sende eine 1
        eine Bitzeit warten

    # Stoppbit senden
    Sende eine 0
    eine Bitzeit warten    

(b) Verbindet zwei Rechner mit Hilfe der Calliope (vgl. folgende Abbildung). Startet auf einem Rechner das Programm transceiver.py. Startet auf dem anderen Rechner die Funktion aus Aufgabe 1a. Prüft, ob die Funktion aus Aufgabe 1a korrekt arbeitet.

2 Calliope, die mit Leitungen verbunden sind

Aufgabe 2: Empfangen eines Bytes

Der folgende Algorithmus wartet, bis ein Startbit erscheint und liest anschließend ein Byte:

Algorithmus Byte empfangen:
Eingabe: Schnittstelle, Bitzeit

    solange auf der Leitung eine 0 liegt:
        ein Zehntel der Bitzeit warten

    1.5*Bitzeit warten

    Variable Bitfolge auf eine leere Zeichenkette setzen
    8 mal ausführen:
        ein Bit lesen
        falls das gelesene Bit eine 0 ist:
            hänge das Zeichen '0' an Bitfolge an
        falls das gelesene Bit eine 1 ist:
            hänge das Zeichen '1' an Bitfolge an
        1 Bitzeit warten

Rückgabe: Bitfolge
Bitübertragungsprotokoll

(a) Gliedere den Algorithmus in Abschnitte und beschreibe die Aufgaben dieser Abschnitte.

(b) Trage in der Abbildung des Protokolls die Zeitpunkte ein, an denen der Algorithmus den Eingangspin abtastet. (TODO: Arbeitsblatt mit der Abbildung zur Verfügung stellen)

(c) Begründe, dass es sinnvoll ist, den Eingangspin an den Zeitpunkten aus b) abzutasten.

(d) Implementiere den Algorithmus in einer Funktion in Python.

(e) Verbindet zwei Rechner mit Hilfe der Calliope miteinander. Startet zunächst auf einem Rechner das Programm aus Aufgabe 2d) und dann auf dem anderen Rechner das Programm aus Aufgabe 1a). Prüft so, ob beide Programme korrekt arbeiten.

Suche

v
100.128.1.4
inf-schule.de/entwuerfe/Kommunikation_Calliope/bituebertragung_seriell/bituebertragung_implementierung
inf-schule.de/100.128.1.4
inf-schule.de/@/page/TPLuxKNA3Jsp9Pqo

Rückmeldung geben