Ein Sensor sendet 32 bit Daten und weitere 8 bit Statusinformationen über SPI. Bei den Statusinformationen sind zwei Bits für einen "2 bit CRC" reserviert, die über die ersten 32 bit (also die Nutzdaten) berechnet werden. Leider schweigt sich das Datenblatt zu weiteren Details aus. Weiß jemand, ob es einen allgemein bekannten Algorithmus gibt, wie man 2 CRC-Bits aus 32 Bit Daten berechnet? Ich würde die Bits ja einfach ausmaskieren, sobald feststeht, daß die Kommunikation zuverlässig klappt. Allerdings braucht der Sensor auch in der Gegenrichtung (Senden von Steuerungskommandos vom µC zum Sensor) die CRC-Bits. Stimmen die nicht, führt er das Kommando nicht aus. Wäre schade, wenn ich jedes Kommando viermal senden müsste ;)
Wenn's wirklich ein CRC ist, dann gibt es genau 8 Generatorpolynome. Die kannst sogar ohne Plausibilitätscheck (000 z.B.) einfach mal testen.
Bist du dir sicher, dass es nicht
1 | 4 Byte Daten (32bit) |
2 | 1 Byte Status ( 8bit) |
3 | 2 Byte CRC (16bit) |
sind?
Ja, es sind tatsächlich nur zwei Bit, nicht zwei Byte. Wahrscheinlich wird es darauf hinauslaufen, daß ich den CRC der einkommenden Daten ingnoriere, und den korrekten CRC für die wenigen zu sendenden Kommandos vorher ausprobiere.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.