i

Bitübertragung zwischen zwei Rechnern

Verbindung der seriellen Schnittstellen

Für die folgenden Experimente werden die seriellen Schnittstellen von zwei Rechnern mit einem sogenannten Nullmodemkabel miteinander verbunden.

Verbindung mit einem Nullmodemkabel

Das Nullmodemkabel verbindet jeweils die RTS-Ausgangsleitung der einen Schnittstelle mit der CTS-Eingangsleitung der anderen Schnittstelle. Zusätzlich werden die GND-Leitungen der beiden Schnittstellen miteinander verbunden.

Nullmodemkabel

Auf diese Weise ist es möglich, Daten von einem Rechner zu einem anderen Rechner zu übertragen.

Bitübertragung - interaktiv

Im Folgenden gehen wir davon aus, dass die seriellen Schnittstellen der beiden Rechner den Portbezeichner 'com1' haben. Bei anderen Portbezeichnern musst du den folgenden Dialog entsprechend abändern. Folgendes Programm zeigt dir die Bezeichner der seriellen Schnittstellen deines Computers an: list_serial_ports.py

Auf beiden Rechnern wird Python gestartet und ein Objekt der Klasse Serial erzeugt. Das Senden und Empfangen von Bits sollte dann koordiniert durch diese Objekte erfolgen.

Rechner A:

>>> from serial import Serial
>>> sA = Serial('com1')

Rechner B:

>>> from serial import Serial
>>> sB = Serial('com1')

Rechner A:

>>> sA.setRTS(0)

Rechner B:

>>> sB.getCTS()
False

...

Rechner A:

>>> sA.close()

Rechner B:

>>> sB.close()

Aufgabe 1

(a) Analysiere zunächst den gezeigten Dialog. Wer sendet hier welche Daten an wen?

(b) Rechner A soll zunächst die Pegelfolge '101' an Rechner B schicken. Rechner B soll anschließend diese Pegelfolge zurück an Rechner A schicken. Wie kann das auf die gezeigte Weise erfolgen?

Aufgabe 2

Die Datenübertragung kann auch mit geeigneten Hilfsprogrammen erfolgen.

GUI-RTS GUI-CTS

(a) Lade den Quelltext zu dem Sendeprogramm rts_com1.py und zu dem Empfangsprogramm cts_com1.py herunter. Kontrolliere, ob die Portnummern richtig vorgegeben sind. Starte auf dem einen Rechner das Sendeprogramm und auf dem anderen Rechner das Empfangsprogramm. Teste das Sender-Empfänger-System.

(b) Mit dem Sender-Empfänger-System sollen Pegelmuster wie z.B. '1001' oder '1101' übertragen werden. Die Pegel sollen wie folgt erzeugt bzw. angezeigt werden: 1: Taste ist gedrückt / Lampe ist an; 0: Taste ist nicht gedrückt / Lampe ist aus. Warum müssen Sender und Empfänger zuerst eine Zeit vereinbaren, die für die Darstellung eines einzelnen Pegel benutzt werden soll?

(c) Welches Problem tritt auf, wenn der Sender das Pegelmuster '0000' übertragen will?

Ein Transceiver-Programm

Zum Experimentieren können wir auch ein sogenanntes Transceiver-Programm - das ist ein Programm, das sowohl senden als auch empfangen kann, verwenden.

GUI-Transceiver

Der Transceiver sendet und empfängt automatisiert Pegelmuster - das sind Low-High-Spannungsmuster. Zum Senden werden solche Pegelmuster hier mit Hilfe der Symbole '0' und '1' dargestellt. Beim Empfangen werden die Pegel dann wie bei einem Oszilloskop mit Hilfe eines Laufstrahls angezeigt.

Aufgabe 3

(a) Lade das Transceiver-Programm transceiver.py herunter. Kontrolliere, ob der Portbezeichner richtig vorgegeben ist. Starte das Transceiver-Programm auf beiden (mit einem Nullmodemkabel verbundenen) Rechnern. Teste das Duplex-Kommunikationssystem, indem du Pegelmuster von einem zum anderen Rechner schickst.

(b) Wie kann man aus der grafischen Darstellung beim Empfänger das gesendete Pegelmuster rekonstruieren?

(c) Warum sollte an beiden Rechnern die gleiche Pegelzeit eingestellt sein?

(d) Der Sender möchte eine Nachricht (z.B. 'Hallo') an einen Empfänger schicken. Wie könnte man das mit dem Transceiver-Programm durchführen?

(e) Welches Problem tritt beim Empfänger auf, wenn der Sender die Pegelmuster '00001111' und '00111100' verschicken möchte? Wie könnte man dieses Problem lösen?

Suche

v
10.2.1.2
dev.inf-schule.de/rechnernetze/bituebertragung_sicherung/bituebertragung_seriell/bituebertragung
dev.inf-schule.de/10.2.1.2
dev.inf-schule.de/@/page/yQz7SkR97B8LleQS

Rückmeldung geben