Welcher CRC-Algorithmus?

OP Persönliche Seite #6399657
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
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
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
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.
Gast
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

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.