Gast
#3103474
Hallo zusammen, nachdem ich mich seit 2 Tagen mit dem Prüfsummenverfahren beschäftige und einfach auf keinen grünen Zweig komme, habe ich ein gewisses Frustrationslevel erreicht und benötige eure Hilfe. Mein konkretes Problem ist, dass ich von meinem Mikrocontroller mit einem Sensor-IC kommuniziere. Dies geschieht über 3-wire SPI, wobei der µC als Master fungiert. Dieser sendet ein Commando-Word und empfängt vom IC ein Data- und Safety-Word (MSB immer zuerst). Im Safety-Word enthalten ist ein CRC-Byte, welches nach CRC8 J1850 spezifiziert ist. Ich habe eine aufgezeichnete Datenübertragung als Bild angehangen. Ich schaffe es einfach nicht, die Prüfsumme (in dem Beispiel die 1C(hex) ganz am Ende der Übertragung) in Zusammenhang mit den vorherigen Daten zu bringen. Der Hersteller gibt im Datenblatt folgendes zur CRC an: • This CRC is according to the J1850 Bus Specification. • Every new transfer restarts the CRC generation. • Every Byte of a transfer will be taken into account to generate the CRC (also the sent command(s)). • Generator polynomial: X8+X4+X3+X2+1, but for the CRC generation the fast-CRC generation circuit is used • The remainder of the fast CRC circuit is initial set to "11111111" • The remainder is inverted before transmission. Auf http://www.zorc.breitbandkatze.de/crc.html habe mit CRC 8.Grades und 0x1D als CRC Polynom, sowie dem Initial Value 0xFF verschiedene Einstellungen ausprobiert und bin nie auf den Prüfsummenwert gekommen. Auch diverse Rechnungen mit Taschenrechner haben nicht zum Erfolg geführt. Wo liegt mein Fehler, bzw. wie passt die Prüfsumme zu den übertragenen Bytes? Ich hoffe ihr könnt mein Verständnisproblem lösen.
