Welcher CRC-Algorithmus?

OP Persönliche Seite #6399657
Lesenswert?

Hallo,

um einen Speicherbereich eines 32-Bit Controllers auf korrektes Flashen 
zu prüfen, soll eine CRC (berechnet durch das CRC-HW-Modul des 
Controllers) über einige wenige Megabyte berechnet werden.

Hierzu bietet die CRC-Komponente des Controlelrs folgende Optionen an:
- IEEE 802.3 Ethernet CRC32
- Autosar CRC32P4
- CCITT CRC16
- SAE J1850 CRC8

Da ich auf dem Gebiet der CRCs noch sehr unerfahren bin, meine Fragen an 
euch:
- Welches Verfahren zur Berechnung der CRC ist das am besten geeignete 
für die Prüfsumme über den Flash?
- Was sind die Vor-/Nachteile der einzelnen Verfahren?

Vielen Dank,

Thomas
Gast #6399675
Lesenswert?

Grundsätzlich bei gleicher CPU:

8Bit  CRC: kompakt,schnell, Fehlererkennung nicht so sicher
16Bit CRC: größer, schneller, sicherer als 8 Bit CRC
32Bit CRC: groß, langsam, sicherer als 16 Bit CRC

wie sehr Geschwindigkeit und Sicherheit wiegen, hängt von den 
Bedingungen ab. (Speichergröße, CPU Geschwindigkeit)

lg. Heiner
Gast #6399687
Lesenswert?

Wenn die Komponente schon als Hardware im Controller steckt, nimm die 
Ethernet-32-Bit. Speicherbedarf ist dann kein Thema, Geschwindigkeit 
auch kaum. Wird zwar minimal langsamer sein als die 8-Bittige, sollte 
aber egal sein, weil du deinen Flash wahrscheinlich nur einmalig beim 
Start prüfen wirst. Dafür ist sie am sichersten und am weitesten 
verbreitet.
Gast #6399705
Lesenswert?

Nop schrieb:
> CRC-32 muß nicht groß sein, wenn man eine Halbbyte-Lookuptable nimmt.
> Das sind dann nicht 2kB, sondern 64 Byte.
>
> Wenn man sonst nichts hat, nimmt man das Ethernet-Polynom.

Hier ist es ja sogar schon in HW.

Ansonsten kann man Speicher und Laufzeit beliebig fein granulieren, wenn 
mann will. Auch eine Bitweise Berechnung geht i.d.R. in wenigen Takten 
pro Bit. Bei FPGAs gibt es kaum etwas effizienteres als bitweise, als 
Logikschaltung ist der Aufwand fast 0.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren