kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Entwurf des Übertragungsprotokolls und der Datenübertragungstechnik

(EN google-translate)

(PL google-translate)

Auf der Grundlage der vorangehenden Versuche, kann nun das Konzept für eine Audio basierte Datenübertragung konkretisiert werden.

Elementare Festlegungen:

  • Es werden Datenpakete mit jeweils 8 Bit übertragen, also z.B. ein ASCII-Zeichen.
  • Zwischen jedem Paket gibt es eine gewisse Mindestdauer, wo KEIN TON ertönt.
  • Jedes Bit wird dargestellt durch die Kombination von Ton1 gefolgt von Ton2==0 oder Ton3==1.
  • Es wird immer mit dem Most-significant Bit gestartet.

Beispiel:


Es soll die Zeichenfolge "ABC" übertragen werden.

A hat die ASCII-Kodierung 65 == 01000001
B hat die ASCII-Kodierung 66 == 01000010
C hat die ASCII-Kodierung 67 == 01000011

Die Signale werden im folgenden so bezeichnet:
_ == Stille / KEIN TON
x == Ton 1
y == Ton 2
z == Ton 3
Wiederholen von Zeichen heißt einfach, dass das aktuelle Signal eine Weile andauert:

________xyxzxyxyxyxyxyxz_____xyxzxyxyxyxyxzxy_____xyxzxyxyxyxyxzxz________


Code 0-1: Beispiel für eine zu übertragende Zeichenfolge.

Durch das beschriebene Prinzip bedarf es keinerlei Synchronisierung zwischen Sender und Empfänger.

Die Übertragung muß lediglich langsam genug erfolgen, damit die Signalzustände eindeutig erkannt werden können.

Ab diesem Punkt der Entwicklung, werden die einzelnen Komponenten der Software modularisiert, indem sie in Klassen aufgeteilt werden.

Das Senden und Empfangen soll für den Benutzer des Moduls über sendeZahl(), holeZahl() erfolgen.

Herauszuschreibende Daten und hereinkommende Daten werden gepuffert, bis sie gesendet, bzw. abgeholt wurde.

Entsprechend werden zwei Puffer-Arrays sendepuffer, empfangspuffer bereitgestellt. Ferner soll über die Funktion zahlLiegtVor() geprüft werden können, ob abzuholende Zeichen im Empfangspuffer liegen.

Im weiteren Verlauf sollten komfortablere Methoden wie sendeText(), holeText() ergänzt werden.

Als erste Variante wird eine Klasse gemäß folgendem UML-Klassendiagramm erstellt:

UML-KLassendiagramm Audiotransfer

Bild 0-1: UML-KLassendiagramm Audiotransfer