Hallo, Ich habe meine Atmels bisher mit dem PC über den UART kommunizieren lassen. Das funktioniert auch wunderbar, nur jetzt ist der Wunsch nach Sicherheit in der Übertragung gekommen. Ich möchte also ein Protokoll implementieren, welches Sicherstellt, dass alles ankommt, und dass alles richtig ankommt. Bevor ich nun anfange, mir selbst etwas zu stricken, möchte ich schauen, ob es nicht so etwas schon gibt. Googlen half mir nicht weiter, die Suchfunktion dieses Forums leider auch nicht. Vielleicht hab ich nach den falschen Begriffen gesucht. Könnt ihr mir weiterhelfen? Ein Protokoll für eine serielle Verbindung, das mir eine sichere Übertragung aller Daten sicherstellt? Vielleicht gibt es ein schönes RFC oder so? vielen Dank Andreas Buhr
Das kannst dir ja selber ausdenken, mach Prüfsummen z.B CRC oder so drüber. RS-232 hat keine Sicherung, das machen immer andere Schichten, z.B. IP oder PPP.
Hallo, Ich weiß, dass RS232 keine Sicherung hat. Das machen andere Schichten. Ich will jetzt so eine Schicht drüberlegen. Und da schaue ich nach bereits vorhandenen Protokollen. trotzdem danke für die Antwort Andreas
IMHO hat RS232 eine Sicherung. Wofür ist wohl das Parity-Bit gut? ;-)
Hallo Andreas sichere Protokolle sind die Internet-Protokolle X- Y- und Z-Modem. Ich habe keine Quellkodes dafür, aber such mal im Internet nach diesen Begriffen. In diesen Protokollen (das Z-Modem isr das aktuellste) ist die Überprfung der daten-pakete inkl Retries schon integriert. (Ist übrigens auch im Hyperterminal von Microweich integriert.) Gruß gerhard Gunzelmann
@Sebastian Klar gibt es ein Parity. Aber normalerweise überträgt man 8N1, was 8-bit, *no*-parity, 1 Stopbit bedeutet. Und es kann nur 1-bit Fehler entdecken. Normalerweise sollte eine Quersumme in 1 Byte pro Datensatz reichen, das NMEA Protokoll macht es z.B. so. X,Y und Z Modem ist aber eher ein Datentransferprotokoll wo noch mehr drinsteckt. Eines von denen (weiss nimmer welches) sendet einfach alle Daten doppelt, der Empfänger muss die dann vergleichen.
Hallo zum Parity-Bit Das Parity-Bit zur Fehlererkennung zu verwenden ist nur in solchen System geeignet, wo die Wahrscheinlichkeit eines fehlers sehr gering ist. In Datenübertragungssystemen die Funk verwenden oder durch lange Leitungen störanfällig sind ist das System nicht geeignet. Da führt kein Weg an CRC-Check vorbei. Gruß Gerhard
Bei ATMEL gab es mal eine AN (AVR350) zum Thema XMODEM-READ inkl. CRC und Pseudocode / C example. Gruß Bernhard
Du solltest dir auch darüber Gedanken machen was passieren soll wenn in einem CRC abgesicherten Protokoll ein fehler auftritt. Mein Hinweis zielt darauf ab das CRC's schön und gut sind aber eben nur die halbe Miete darstellen. Mit CRC's kann man zwar Fehler erkennen, aber noch lange nicht Fehler korregieren oder die fehlerhaften Daten neu anfordern. Das Protokoll sollte also Packet orientiert sein, Sender und Empfänger sollten die Möglichkeit der wiederholten Versendung fehlerhafter Packete enthalten, und bei der Prüfsumme ist es überlegenswert sich komplexere Verfahren anzuschauen. Zb.der Reed Salomon Code kann weit mehr Fehler in einem Datenpacket entdecken und auch exakt korregieren. Gruß Hagen
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.