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
Wir nehmen für sowas immer das Protokoll, was der LMX9820 Blutooth-Chip benutzt. Allerdings bei Bedarf mit CRC.
Kermit-, X-MODEM, Y-MODEM oder ZMODEM-Protokoll, wie sie bereits vor Jahrzehnten zur Datenübertragung verwendet wurden.
Sind die beiden (oder mehrere) Knoten gleichberechtigt, oder ist die Kommunikation Master-slave ?
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.....
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.
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) ...
oder auch mal PPP anschauen. Hat die gleichen Wurzeln. ...
@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)
Das 10Mbit Ethernet mit CSMA/CD Protokoll sollte das alles auch können. Das kann dann auch mit fertigem chip realisiert werden, Bsp. den ENC28J60 hier im Shop.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.