Forum: Mikrocontroller und Digitale Elektronik Protokoll auf rs232 basis


von Frank W. (Gast)


Lesenswert?

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

von Bernhard S. (bernhard)


Lesenswert?

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

von Frank Simon (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.