mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Darf man ein Byteweises XOR als CRC bezeichnen?


Autor: Skeith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin gerade dabei eine Kommunikation zwischen zwei µC zu realisieren. 
Als Prüfsumme möchte ich ein simples XOR verwenden und ein Byte hinten 
anhängen. Darf ich das ganze in der Dokumentation als CRC bezeichnen 
oder trifft das nur auf den aufwendigeren Algorithmus mit 
Generatorpolynom zu?

Viele Grüße
Skeith

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist kein CRC

Das was du vorhast ist einfach nur eine Prüfsumme

Eine CRC ist eine spezielle Form einer Prüfsumme.
Aber nicht jede Prüfsumme ist eine CRC

Analogie

   Ein Fiat Panda ist ein Auto
   Ein 7-er BWM ist auch ein Auto

Du versuchst gerade einen Fiat Panda in deiner Doku als 7-er BWM zu 
verkaufen.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das erste C in CRC ist cyclic, und das fehlt bei XOR

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde „CRC“ für irreführend halten.  Es ist kein Cyclic Redundancy 
Check, sondern eine Parität.  Weshalb benötigst Du den Begriff?

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CRC arbeite normalerweise BIT Weise und mit einem Polynom, daher würde 
ich nein sagen.

Warum überhaupt? Damit es toll klingt? CRC in "richtig" ist auch nicht 
so schwierig...

Autor: Skeith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK dann muss ich es doch nur Prüfsummer nennen. Soll für meine 
Diplomarbeit sein, daher muss es Formal schon passen.

@Karl Heinz
Anke für diesen anschaulichen Vergleich, hab es begriffen ;)

Autor: Skeith (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...wobei der 7er ist dann doch eher ein MD5 oder SHA-1 :)

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein bytewises XOR ist ganz, ganz schlecht, denn eine gerade Anzahl Mal 
dasselbe bit falsch ergibt keinen Fehler. Dann besser eine Summe ueber 
alle Bytes ohne den Ueberlauf, dh modulo die highbytes.
Oder, wie schon hingewiesen wurde, ein CRC ist keine Hexerei.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Skeith schrieb:
> ...wobei der 7er ist dann doch eher ein MD5 oder SHA-1 :)

Warum, ist der so langsam? :-)

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey noch Was schrieb:
> Ein bytewises XOR ist ganz, ganz schlecht, denn eine gerade Anzahl Mal
> dasselbe bit falsch ergibt keinen Fehler. Dann besser eine Summe ueber
> alle Bytes ohne den Ueberlauf, dh modulo die highbytes.

Kommt das bei 2*n-fach gekipptem Bit nicht auch auf das Gleiche raus?

Autor: MCUA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber auch ein 'richtiger' CRC ist nicht 100% sicher.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MCUA schrieb:
> aber auch ein 'richtiger' CRC ist nicht 100% sicher.

Nichts ist 100% sicher.
Es ist nun mal nicht möglich x Bits auf y Bits einzudampfen ( y < x ), 
ohne das irgendetwas auf der Strecke bleibt. Und letzten Endes tut man 
das ja genau hier. Wenn es möglich wäre mittels einer Prüfsumme von 
jedem einzelnen Bit in allen Fällen exakt sagen zu können, ob es richtig 
ist, dann bräuchte man nur die Prüfsumme übertragen und der Empfänger 
könnte daraus die erzeugenden Bits korrekt rekonstruieren :-)

Die verschiedenen Prüfsummen-Verfahren unterscheiden sich letzten Endes 
nur darin, welche typischen Übertragungsfehler sie erkennen (bzw. 
korrigieren) können.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Wachtler schrieb:

> Das erste C in CRC ist cyclic, und das fehlt bei XOR

Wenn man man bös aufgelegt ist, dann kann man das als 8 parallele 1-Bit 
CRCs sehen - so betrachtet ist das durchaus zyklisch. ;-)

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So böse bin ich aber nicht.
Du?

(Ich hatte auch schon im Kopf, das Nicht-Shiften als Shiften um 0
Stellen zu verkaufen, um das C zu rechtfertigen, hatte es mir aber
dann doch verkniffen.
Dann kommst du mit sowas...)

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn es möglich wäre mittels einer Prüfsumme von
>jedem einzelnen Bit in allen Fällen exakt sagen zu können, ob es richtig
>ist, dann bräuchte man nur die Prüfsumme übertragen und der Empfänger
>könnte daraus die erzeugenden Bits korrekt rekonstruieren :-)

Das DWIW-Modul neuerer AVR kann sowas ;)
SCNR

Autor: MCUA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die verschiedenen Prüfsummen-Verfahren unterscheiden sich letzten Endes
>nur darin,
..wieviel redundante Bits zu der eigentl. Nutz-Infornation hinzugefügt 
werden (und nach welchem Schema das geschicht). Und je mehr redund. Bits 
desto besser (sofern das Erzeugungs-Schema nicht zu billig ist).
Theoretisch gesehen wäre auch ein Parity-Bit eine CRC, nämlich eine CRC 
mit 1-Bit-Länge.

Autor: Johnny B. (johnnyb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solch eine XOR-Operation als Prüfsumme zu bezeichnen ist aber irgendwie 
auch falsch, denn es ist ja nicht wirklich eine Summe von irgendwas.
Oder sehe ich das falsch?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaein.

Der Begiff hat sich eingebürgert, auch dann wenn die Operation über alle 
Datenbytes Bytes streng genommen keine Addition ist.

   Prüfsumme = Funktion( Datenbytes )

Was genau die Operation ist, spielt dann wieder eniger eine Rolle. Der 
Begriff Summe drückt nur in einer gewissen Weise aus, dass alle Bytes 
beteiligt sind, so wie in

   Summe = Byte1 + Byte2 + Byte3 + Byte4 + ...

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist insofern nicht weit von der Addition weg, als daß
XOR eine Addition ist, bei der alle Überträge weggworfen
werden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.