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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.