CRC für Datenübertragung

Gast #3163299
Lesenswert?

Hallo,

für eine Datenübertragung mit CAN von PC zu Mikrocontroller setzte ich 
eine CRC 32 Prüfung ein. Es soll sichergestellt werden, dass die 
Datenpackete sicher vom Mikrocontroller empfangen werden. Die 
Datenpackete sind 128 Byte groß. Die 128 Bytes werden mit einer Art 
Transportprotokoll an dem Mikrocontroller versendet. Nach jedem 
empfangen eines Sektors, der aus 128 Bytes x 512 = 0x10000 hex besteht, 
wird nochmals eine CRC 32 Prüfung durchgeführt. Nach der CRC 32 
Berechnung im Mikrocontroller wird die CRC Summe an dem PC gesendet. Auf 
der PC Seite wird ebenfalls von den versendeten Daten eine CRC Prüfung 
durchgeführt. Damit ich festgestellt werden kann, ob die Daten korrekt 
an den Mikrocontroller versendet wurden, weird auf der PC Seite aus 
immer die beiden CRC Summen miteinander verglichen. Nun stellt sich mir 
die Frage, ob diese Vorgehensweise korrekt ist oder nicht.
Gast #3163507
Lesenswert?

Sooo überkanditelt ist das nicht... es kommt imho auf die Datenmenge und 
die Anwendung an.

Auf unterster Ebene, also der Hardware, ist der CAN ziemlich sicher, das 
wird da durch in Silizium gegossene Controller gewährleistet, aber eben 
nur über eine Framelänge, also 8 Byte. Alles was darüber hinausgeht, 
kann durchaus nochmal abgesichert werden. Das wird manchmal sogar 
verlangt (z.B. Medizintechnik).
Im Normalfall geht man davon aus, daß fehlerhafte Frames durch den 
CAN-Controller selbst schon zurückgewiesen bzw neu angefordert werden.
Es spricht aber eben nichts dagegen, daß man große Datenblöcke nochmal 
zusätzlich absichert. Kostet halt Zeit und Ressourcen.
Gast #3163559
Lesenswert?

Davis schrieb:
> Wärest du bei der Post, so würdest du ein Paket in einen Sprinter laden
> und den Sprinter in einen LKW, und das mit dem Argument, dass zwei
> Fahrzeuge doppelt so schnell sind, wie ein Fahrzeug.

Nein. Er möchte doppelt sichern, in deinem Vergleich würde er also ein 
Paket nochmals verpacken um mehr Sicherheit zu haben. Und die hat er 
auch.
Gast #3163577
Lesenswert?

Davis schrieb:
> Wärest du bei der Post, so würdest du ein Paket in einen Sprinter laden
>
> und den Sprinter in einen LKW, und das mit dem Argument, dass zwei
>
> Fahrzeuge doppelt so schnell sind, wie ein Fahrzeug.

Macht jeder PC der im Netzwerk hängt:

Ethernet-Frame mit CRC
TCP-Frame mit CRC
IP-Frame mit CRC
Gast #3163842
Lesenswert?

Gregor B. schrieb:
> Macht jeder PC der im Netzwerk hängt:
>
> Ethernet-Frame mit CRC
> TCP-Frame mit CRC
> IP-Frame mit CRC

Aber nicht, um es sicherer zu machen. TCP oder IP haben nichts mit 
Ethernet zu tun und dürfen auch (und wurden früher häufig) über andere 
Strecken als Ethernet übertragen werden. Und diese haben möglicherweise 
kein CRC.

MfG Klaus
Gast #3164598
Lesenswert?

Folgendes habe ich mir überlegt. Nach jeder größeren Datenmenge die über 
CAN übertragen wird, versende ich im Anschluss noch die CRC. Auf der 
Genestelle (Mikrocontroller) werden die Daten + CRC empfangen und dort 
wird eine CRC Prüfung mit dem gleichen CRC Polynom durchgeführt. Die das 
Ergebnis 0, dann ist alles ok.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren