Forum: Mikrocontroller und Digitale Elektronik CRC-8 mit Initial value


von Esra (Gast)


Lesenswert?

Hallo,

kann mir bitte jemand helfen einen CRC-8 mit Startwert zu berechen. 
Folgendes habe ich, ohne Startwert verstanden:

Polynominal(Grad8):   0x107 -> 100000111
Data:       0x05C ->  01011100
Initial value:    0x000
XOR Value:    0x000

  0101110000000000
  000000000
   101110000
   100000111
     111011100
     100000111
      110110110
    100000111
     101100010
     100000111
       110010100
       100000111
        10010011  -> Rest -> 0x93

Vergleiche ich das Ergebnis auf 
http://www.sunshine2k.de/coding/javascript/crc/crc_js.html bekomme ich 
ebenfalls 0x93 heraus.

Jetzt möchte ich den CRC mit Startwert berechnen:

 Mit Startwert

Polynominal(Grad8):   0x107 -> 100000111
Data:       0x05C ->  01011100
Initial value:    0x0FF
XOR Value:    0x000

  111111110101110000000000
  100000111
   111110011
   100000111
    111101000
    100000111
     111011111
     100000111
      110110001
    100000111
     101101101
     100000111
       110101000
       100000111
        101011110
      100000111
        101100100
        100000111
          110001100
        100000111
         100010110
         100000111
            01000100  -> Rest -> 44    Kann nicht sein!


Laut http://www.sunshine2k.de/coding/javascript/crc/crc_js.html ist der 
CRC gleich 0x60.

Was mache ich bei der berechnung mit Startwert falsch?

von Esra (Gast)


Angehängte Dateien:

Lesenswert?

Ok ich habe die selbe Rechnung im Anhang gepackt, weil die Rechnung 
verrutscht ist.

von Esra (Gast)


Angehängte Dateien:

Lesenswert?

Jetzt aber

von Thomas S. (thschl)


Lesenswert?

ich lasse mir die CRC immer durch eine kleine C-Funktion berechnen, 
keine Ahnung wie du auf die bits kommst

von Esra (Gast)


Lesenswert?

Dein Beitrag ist nicht wirklich hilfreich

von Frank (Gast)


Lesenswert?

Bevor du die Polynom Divison startest, musst du einfach die Daten mit 
den Initialwert xor Verknüpfen dann kommtst du auf gleiche Ergebniss.

von Tiger (Gast)


Angehängte Dateien:

Lesenswert?

Hier sind mal ein paar Beispiel Rechnungen. ;)
Gruß
Tiger

von Holger D. (hodoe)


Lesenswert?

Hallo, ich muss dieses Thread noch einmal ausgraben.

Wenn ich die Zahl 0x5C habe und das Polynom 0x07 ist, dann soll da 0x93 
als CRC herauskommen.

Kann mir jemand die händischen Schritte zeigen? Ich komme nie auf 0x93.


Gruß
Holger

von Andras H. (kyrk)


Lesenswert?

http://www.sunshine2k.de/coding/javascript/crc/crc_js.html

Custom
Polynomial 0x7
Data 0x5C

Kommt auf
Result CRC value: 0x93


Da ist eine Lookup table. Ob das so hilf?

von Holger D. (hodoe)


Lesenswert?

Hallo, mein Fehler war, dass ich mit 111 dividiert habe. Nach dem 
durchforsten der Seite

http://www.sunshine2k.de/articles/coding/crc/understanding_crc.html

fand ich dann diesen Hinweis:

A CRC-8 with polynomial 0x07 is actually the value 100000111 = 1*x8 + 
0*x7 + 0*x6 + 0*x5 + 0*x4 + 0*x3 + 1*x2 + 1*x1 + 1*x0.

Damit klappt es dann auch. Also acht Nullen angehängt und dann immer 
XOR. Am Ende kommt dann 10010011 also 0x93 heraus.

Auf einem 8-Bit µC werde ich dann wohl eine Lookup-Tabelle verwenden.

Gruß
Holger

: Bearbeitet durch User
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.