Suche Idee, Protokoll für bidir serielle Kommunikation

Gast #654609
Hi,
Ich suche eine Idee, Protokoll für serielle schnittstellen

Es soll folgende Dinge beherrschen:
es darf nix ausmachen wenn mal ein Byte verloren geht
Fehlerkorrektur bzw. erkennen von Datenfehlern und wiederanfordern von 
dem Block
Unterbrechung im Betrieb erkennen und wieder synchronisieren bei 
Verbindung
usw....

Für so was bietet sich eine Blockweise Übertragung an. Jeder Block eine 
ID CRC usw. Wie erkennt der Empfänger wo der Block anfängt usw.. usw...

Falls irgendjemand Ideen, Links uvm hat o soll er sich bitte hier 
melden.


Mfg
Ulrich
Gast #654876
gleichberechtigt

z-modem klingt schonmal ganz interesannt. Blockweise Übertragung, CRC

Allerdings vermisse ich noch den Punkt. Was ist wenn mal ein Byte 
verloren geht, dann würde eventuell das startbyte vom nächsten Paket als 
crc interpretiert werden? Muss man da eventuell eine Präambel senden? 
4Bytes z.B.?

Dann würde der empfänger ja merken wenn die empfangene Struktur 
nichtmehr stimmt.....

Aber wenn jetzt die übertragung in beide richtungen gestört war, was 
dann? dan kann ja der empfänger nichtmal mehr dem sender mitteilen das 
es probleme gibt?

Auf diesen Punkt geht weder x/y/z-Modem ein?

PS: Natürlich bin ich mir bewusst das es für mich nix fertiges gibt, und 
ich das selber rogrammieren muss, aber ich suche ja nur die Ideen und 
Vorlagen.....
Gast #654888
Eine gute und einfache Methode seriell Daten zu übertragen ist die 
Signalspreizung.

Solange 50% + 1Bit der Daten durchkommen wird das Signal erkannt.
Soviel ich weis wurde das gleiche Prinzip beim Voyager-Projekt 
verwendet.

Das Ganze Funktioniert so:
Jedes Bit wird mit einer ungeraden Anzahl von Bits exclusiv verodert und 
gesendet.

So wird jedes Bit mehrfach versendet.
Wenn man z.B. einen String aus 99 Bits verwendet wird jedes Bit 99 mal 
gesendet.
(Der Vorteil dabei ist dass es gleich ein wenig verschlüsselt wird.)

Solange 50 Bits durchkommen wird das Signal verstanden.

Wenn man das Ganze nocheinmal invertiert sendet und eine Checksumme 
verwendet, wird die Empfangssicherheit erhöht.
#654895
HDLC und LAPB sind geeignete Stichwörter für deine weitere Suche.

Einige Eigenschaften:
CRC-gesicherte Blockübertragung
Block-Startbyte wird in den Daten durch Escapesequenz abgebildet.
Wiederholung beschädigter Blöcke
Gleichzeitige Bestätigung mehrere Blöcke (bei sehr langen 
Übertragungsstrecken ungemein mützlich)
...
Gast #654901
@Dirk:
Vielen Dank, das klingt schonmal ganz gut, mehrere Blöcke würde ich 
nicht für lange übertragungswege nehmen sondern für kleine Pakete 
(gleicher effekt)
Gast #655056
viel zu teuer......... 1€pro Stück wäre für meinen Zweck OK

ich habe mir jetzt alles durchgelesen und suche mir das raus was ich 
benötige und definiere mein eigenes Protokoll:

START;CONTROLL;LENGTH;DATEN;CRC;STOP

Und fertig.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.