CRC-16 und CRC-32-Prüfungen

Brauche ich Hilfe versuchen, um zu überprüfen, CRC-16-Werte (brauchen auch Hilfe mit dem CRC-32-Werte). Ich habe versucht, zu sitzen und zu verstehen, wie CRC funktioniert, aber ich bin keine Ahnung.

Mein erstes problem ist, beim Versuch, verwenden Sie einen online-Rechner für die Berechnung die Meldung "BD001325E032091B94C412AC" in CRC16 = 12AC. Die Dokumentation besagt, dass die letzten beiden Oktette die CRC16-Wert, also ich bin der Eingabe von "BD001325E032091B94C4" in die Website http://www.lammertbies.nl/comm/info/crc-calculation.html und erhalten 5A90 als Ergebnis statt 12AC.

Weiß jemand, warum diese Werte sind anders und wo finde ich Codes für wie berechnet CRC16 und CRC32-Werte (ich Plane, später lernen, wie dies zu tun, aber mal gar nicht erlauben, jetzt)?

Einige mehr-Nachrichten sind wie folgt:

16000040FFFFFFFF00015FCB  
3C00003144010405E57022C7  
BA00001144010101B970F0ED  
3900010101390401B3049FF1  
09900C800000000000008CF3  
8590000000000000000035F7  
00900259025902590259EBC9  
0200002B00080191014BF5A2  
BB0000BEE0014401B970E51E  
3D000322D0320A2510A263A0  
2C0001440000D60000D65E54

--Edit--

Habe ich noch mehr Informationen. Die Dokumentation wurde ich Referenzierung ist TIA-102.BAAA-EIN (aus dem TIA-standard). Das folgende ist, was in der Dokumentation dargelegt wird (versuchen, um Urheberrechtsverletzungen zu vermeiden, so viel wie möglich):

Den Letzten Block in einem Paket umfasst mehrere Bytes von Benutzerdaten und /oder
pad-Bytes, gefolgt von einem 4-Byte-CRC-parity-check. Dies bezeichnet man als die
packet-CRC.

Der Paket-CRC ist ein 4-Byte cyclic redundancy check codiert über alle Daten
Bytes enthalten in den Intermediate-Blöcke und Bytes von Benutzer-Informationen
der Letzte Block. Die konkrete Berechnung ist wie folgt.

Lassen k die Gesamtzahl der Nutzer information und pad-bits, über die das Paket
CRC berechnet werden soll. Betrachten Sie die k-Meldung bits als Koeffizienten eines
Polynom M(x) vom Grad k–1, die Zuordnung des MSB des null-TEN Nachricht
Oktett mit x^k–1 und das LSB des letzten Oktett Nachricht mit x^0. Definieren Sie die
generator-Polynom, GM(x), und die inversion Polynom, IM(x).

GM(x) = x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 +
x^4 + x^2 + x + 1

IM(x) = x^31 + x^30 + x^29 + ... + x^2 + x +1

Das Paket-CRC-Polynom FM(x), dann berechnet sich aus der folgenden Formel.

FM(x) = ( x^32 M(x) mod GM(x) ) + IM(x)              modulo 2, also im GF(2)

Den Koeffizienten von FM(x) sind in dem CRC-Feld mit dem MSB des null-TEN
Oktett des SFB entsprechend x^31 und das LSB des Dritten Oktetts der CRC
entsprechend x^0.

In dem obigen Zitat, habe ich ^ zu zeigen Befugnisse wie die Formatierung hat nicht die gleichen bleiben, wenn zitiert wird. Ich bin mir nicht sicher, was geht, was aber bedeutet das?

  • Wo hast du den 12AC-Wert aus?
  • Die letzten zwei bytes des BD001325E032091B94C412AC. Wenn Sie einen Blick auf den block der Beispiele scheint es, dass die letzten beiden bytes sind immer eine Prüfsumme.
  • Es könnte auch anders sein, CRC-16 Werte, das hängt ganz von dem Polynom verwendet.
  • Gabriel: "Die Dokumentation" = was Dokumentation?
  • Sie haben Recht, meine Identifizierung nicht die Dokumentation. Ich bearbeitet meine Frage, um mehr details zeigen.
Schreibe einen Kommentar