Hallo. Ich habe vor einiger Zeit ein Protokoll auf RS232 Basis entwickelt. Das ganze war relativ simpel. es wurden immer 3 bytes gesendet. das erste und 2. byte war der befehl und das dritte der parameter. Das ganze leif allerdings nicht so gut...denn wenn einmal eine seite (µC/PC) die synchronisation nicht mehr stimmte, war schluss und alles lief falsch. also habe ich sobalt ein befehl (byte1/2) rein kam,der nicht bekannt war eine pause von einige ms gemacht und dann wieder von vorne angefangen. das lief relativ gut...aber wenn ich viel zu übertragen habe, läuft es immernoch unzuverlässig und wird immer langsamer mit der Zeit. Wie wird sowas normalerweise denn gemacht und wie kann man das ganze zuverlässig aufbauen ?? Gruß, Frank
Hallo Frank, ich nutze immer ger folgendes Verfahren (Protokoll), um Daten relativ zuverlässig und einfach zu übertragen: z.B. 1 Byte oder mehrere Bytes ===> Vorspann "*" (zur Syncronisation) 1 Byte ===> Befehl 1 Byte ===> Befehl 1 Byte ===> Parameter 1 Byte oder mehrere Bytes ===> Nachspann "#" ----------------------------------------- ggf. oder/und soar die Prüfsumme senden oder/und den Empfang vom Daten-Empfänger quitieren lassen, notfalls nochmal senden anfordern Bernhard
Hallo, komisch, dass du soviele Fehler hast. Ich übertrage größere Datenmengen zwischen Controller und PC (ca. 12 KByte pro Sekunde). Ich benutze ein selbstgestricktes Handshake-Verfahren: Der PC sendet ein Byte, dann sendet der uC 500 Bytes, usw. Zur Sicherheit habe ich zwar eine Prüfsumme drin, aber die ist noch nie abgewichen. Der UART im Controller läuft mit 128kBaud, ich verwende PC-seitig einen USB-Adapter (Marke Superbillig). Vielleicht kommen Deine Fehler (wie bei mir lange Zeit) von der PC-Seite bzw. von Fa. Microsoft: Mir ist es nie gelungen, den Windows-Puffer ohne sporadische Verluste auszulesen, bis ich gemerkt habe, dass ich immer nur ein Byte holen darf. Offiziell geht das ja auch in größeren Schlücken, aber irgendwann geht ein Byte hopps. Vielleicht hats geholfen, viel Glück weiterhin Frank Simon
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.