einfache 8 bit Prüfung von Paketen

Gast #5819761
hi,

Bei der Datenübertragung von einem µC und FPGA wollte ich gern schnell 
und simple feststellen ob die Daten noch ok sind.

Ich hatte ähnlich wie bei der UART an die Parität mittels einem 
Byteweisen XOR gedacht. Da die Datenmengen recht groß sind habe ich 
angst, dass zwei Bits gekippt sein könnten und damit wird der Fehler 
nicht erkannt.

Habt ihr eine bessere Idee als XOR8? Eine CRC16 scheint mir wieder zu 
aufwändig.

mfg
Moderator (Firma: Titel) Persönliche Seite
xor8 schrieb:
> Bei der Datenübertragung von einem µC und FPGA
Seriell oder parallel?

> Eine CRC16 scheint mir wieder zu aufwändig.
Wenn die Daten seriell reinkommen, dann ist das nur ein kleines 
Schieberegister mit 16 Flipflops.

> Da die Datenmengen recht groß sind habe ich angst, dass zwei Bits
> gekippt sein könnten
Was hat das mit der Datenmenge zu tun, wenn du die "Checksum" immer auf 
8 Bits anwendest? Dann müssten je gerade mal 2 oder 4 oder 6 oder alle 8 
Bits in diesen 8 Bits gekippt sein. Warum ist deine Übertragungskette so 
schlecht?
Moin,

Das kann dir immer passieren, dass du bei (zu) vielen Fehlern (fuer den 
gewaehlten Algorithmus) ploetzlich auch mal keinen Fehler mehr erkennst.
Spontan fallen mir noch ein: Aufsummieren aller Bytes, Fletchers 
Checksum. CRC ist eigentlich nicht soooo aufwendig.

Gruss
WK
Gast
Dergute W. schrieb:
> CRC ist eigentlich nicht soooo aufwendig.

Vermutlich sogar die einfachste Art überhaupt. Beim Senden hinten 1 Byte 
dran, beim empfangen am Ende auf einen festen wert prüfen, ein 
Schieberegister mit 2 oder 3 XORs, ... Einfacher geht's kaum.
Gast
>> Seriell oder parallel?
Ich übertrage die Daten Parallel.

>> Wie groß ist ein zu prüfender/zu sichernder Datensatz? Eventuell reicht
CRC8.
Ein Frame kann auch mal 256 byte lang sein.
Gast
>>Die frage ist ob du jedes Byte einzeln sichern willst oder einen ganzen
>>Block von übertragen Bytes am ende überprüfen willst.
Ohh nein, mir genügt nur die Aussage ob alles ok ist. Falls nicht, dann 
wird das gesamte Frame nochmal geschickt.
(Firma: www.elpra.de) Persönliche Seite
Lothar M. schrieb:
> Wenn die Daten seriell reinkommen, dann ist das nur ein kleines
> Schieberegister mit 16 Flipflops.

Selbst wenn die Daten parallel reinkommen ist das kein Aufwand. 
Generatoren die die XOR Verknuepfungen aufbauen gibt es genuegend im 
Netz, z.B.:

https://www.easics.com/webtools/crctool

oder

http://outputlogic.com/?page_id=321

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.