Wat is CRC (cyclic redundancy check)?
Methode voor foutdetectie die de databits als polynoom behandelt, de rest van de deling door een generatorpolynoom toevoegt en de ontvanger de berekening laat herhalen om fouten te detecteren. Ze wordt veel gebruikt in Ethernet, PCI Express, USB en bestandsformaten.
Japanse benaming: CRC(巡回冗長検査)
“CRC (cyclic redundancy check)” komt voor in 8 oefenvragen uit 3 onderwerpen, bijv. Basis van informatietheorie en codering, Logische schakelingen, Interfaces en busstandaarden.
Vakgebied: Interfaces en busstandaarden
Fouten die worden gedetecteerd en toepassingen
Een CRC van w bits detecteert elke burstfout met een lengte van w of minder, en de kans dat andere willekeurige fouten worden gemist, is ongeveer 2⁻ʷ. Ze detecteert fouten echter alleen en kan ze niet corrigeren, zodat systemen herstellen door opnieuw te verzenden. CRC's worden gebruikt in de Ethernet-FCS (CRC-32), PCI Express-pakketten, USB, CAN-bus, opslagopdrachten en bestandsformaten zoals ZIP en PNG, en in hardware kunnen ze worden berekend met een lineair teruggekoppeld schuifregister dat is opgebouwd uit flipflop-trappen en XOR-poorten.
Veelgestelde vragen
Hoe verschilt een CRC van een checksum?
Een checksum gebruikt een eenvoudige bewerking zoals het optellen van bytes en mist makkelijk verwisselde gegevens of fouten die elkaar opheffen, terwijl een CRC is gebaseerd op polynoomdeling, bitposities onderscheidt en burstfouten betrouwbaar opvangt.
Kan een CRC fouten corrigeren?
In het algemeen niet. Een CRC detecteert of er een fout is opgetreden, maar niet welke bit fout is, dus geheugens die correctie nodig hebben, gebruiken een ECC zoals een Hamming-code.