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
:
Bearbeitet durch User
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
Grundsätzlich gilt: 8: Klein, kompakt, einstellig. 16: Zweistellig, größer als 8. 32: Auch zweistellig, ziemlich groß, größer als 16.
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.
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.
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.
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.