Forum: Mikrocontroller und Digitale Elektronik Fehlererkennung und -korrektur bei RS485


von Hans M. (fuxdancer)


Lesenswert?

Hallo!

Ich möchte bei der Kommunikation zwischen meinem PIC18F4550 und meinem
PC über RS485 eine Fehlererkennung und Fehlerkorrektur der gesendeten
Daten realisieren. Die Daten, die ich zum PIC sende, sind Strings, die
er weiterverarbeitet und so aussehen ":01UI 705  29" usw.
Die Daten werden nicht andauernd gesendet, nur wenn ich in einem
LabVIEW-VI via VISA durch Klick eines Buttons Daten an den PIC sende.
Könnt ihr mir vielleicht sagen, welche Code für meinen Anwendungszweck
gut wäre? Hab schon was gehört von Hamming-Code, RS-Code, ..., nur kann
ich leider nicht sagen, welcher davon wirklich für praktische
Anwendungen gut zu gebrauchen ist?

Ich hoffe auf eure Hilfe Spezialisten! Sollte meine Frage euch dumm
vorkommen, dann sagt mir das in normaler Sprache (NICHT Troll, Vollidiot
etc verwenden ...) und habt Respekt wie zu jedem anderen Menschen auch,
bitte!

cheers

von Purzel H. (hacky)


Lesenswert?

Der Standardweg, Fehler zu erkennen ist ein CRC. Ein CRC Fehler fuehrt 
dann zu einer erneuten Uebermittlung. Falls man es sich nicht leisten 
kann eine neue Uebertragung anzufordern, sei es weil die 
Datenuebertragungsrate zu hoch ist, resp. die Zeit zu lang, dann 
verwendet man einen Hamming code. Der erlaubt einen Einzelbitfehler zu 
Flicken und zweibitfehler zu erkennen. Allenfalls sind auch Codes 
denkbar, die mehr als einen Einzelbitfehler flicken koennen. Falls ein 
Hammingcode den Fehler nicht flicken kann, so war die Muehe umsonst. 
Dann wird der Block nochmals uebertragen. Daher sollte man die 
Haeufigkeit von Einzelbitfehlern kennen.

Labview ist Laborzeug, hat in einem industriellen Geraet nichts zu 
suchen. Die Fehlererkennung bei Labview ist die Redundanz, dass alles 
als Text uebertragen wird. Falls ein Packet verworfen wird, gibt's 
keinen Messwert, was soll's dann  clickt man eben nochmals.

von Gast XIV (Gast)


Lesenswert?

Das was du möchtest ist ein gegen Fehler gesichertes Protokoll. Hat 
erstmal mit dem Medium (hier RS485) nichts zu tun und gibt es in allen 
möglichen "Formen und Farben".

Meiner Meinung nach am einfachsten einzubauen sind die Protokolle 
Motorola (bin) und Intel (hex) Format.

Für die gibt es auch sicher überall fertigen Code.

von Hans M. (fuxdancer)


Lesenswert?

Gast XIV schrieb:
> Das was du möchtest ist ein gegen Fehler gesichertes Protokoll. Hat
> erstmal mit dem Medium (hier RS485) nichts zu tun und gibt es in allen
> möglichen "Formen und Farben".
>
> Meiner Meinung nach am einfachsten einzubauen sind die Protokolle
> Motorola (bin) und Intel (hex) Format.
>
> Für die gibt es auch sicher überall fertigen Code.


Könntest du mir vielleicht einen Link geben, wo ich so ein Protokoll 
finden könnte oder etwas darüber in Erfahrung bringen könnte?
Aber eigentlich soll ich in meinem Projekt Codierungsvarianten wie 
Hamming oder ähnliches verwenden. Wie viele Fehler bei mir auftreten 
werden, das weiß ich noch überhaupt nicht.

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.