Hallo Michaek,
Zitat Zitat von Crashmichl Beitrag anzeigen
Beim spielen mit anderen Tools, um ein Gefühl dafür zu bekommen (z.B. http://www.smbus.org/faq/crc8Applet.htm) und habe keine Ahnung, wie ich das genau machen soll, da ich dort nicht auf das gleice Ergebnis gekommen bin.
Wie muss ich mir das vorstellen?
Werden die Bytes hintereinander aufsummieren (z.B. 055001200000000000) und dann die Polynomdivision durchführen?
Vielleicht kann mir da mal jemand einen Schupser in die richtige Richtung geben.
Bei eine Prüfsumme werden die Bytes addiert.
Unterschiede gibt es beim Startwert. Die Variable für die Summe wird oft mit 0 oder -1 initialisiert.
Dann wird bei manchen Protokollen der Wert oder das 1er Komplement übertragen.
Ein Grund für den Startwert -1 oder das 1er Komplement liegt darin, dass ein gültiges Datenpaket mit lauter 00 dann auch eine Prüfsumme von 00 hat und möglicherweise nicht von einem Leitungsunterbruch unterschieden werden kann.
Manche Prüfsummen verwenden auch das Resultat, z.B. einer Modulo Division. Oft wird MOD 9 oder MOD 11 verwendet.

Ein Problem bei der Prüfsumme ist, dass Mehrbitfehler nicht immer erkannt werden können. Die Summe von 3+1 und 1+3 ist die Selbe!

Bei einer CRC werden auch noch die Bitpositionen zusätzlich mit einbezogen, sodass 3+1 und 1+3 unterschiedliche CRCs ergeben.
Die einfachste Form wäre, dass man die Summenvariable nach jeder Addition um 1 Bit rotiert.
Die meisten CRC-Polynome sind aber etwas komplizierter. Je nach Wahrscheinlichkeit, welche Bitfehler gehäuft auftreten können, sind unterschiedliche Polynome unterschiedlich gut geeignet. Auch mit einer CTC hat man keine 100% Erkennungsrate für Mehrbitfehler.

http://www.tecchannel.de/netzwerk/ma..._2/index7.html

MfG Peter(TOO)