Article View: be.comp.programming
Article #16204Re: CRC probleem? hoe zit het met de Belgische programmeurs?
From: Joris Spriet
Date: Wed, 31 May 2000 00:00
Date: Wed, 31 May 2000 00:00
55 lines
2390 bytes
2390 bytes
Heynderickx Steven wrote in message <8h0kiu$h6r$1@nereid.worldonline.nl>... >Hi Everyone, > >I am trying to understand a technical memo I have recieved, I need to figure >out how to make a CRC for a string of bits. The technical info in the memo >says the following: > [..] >1+X^(-1)+X^(-5)+X^(-7) >its initial state is B"1111111". [..] >Does anybody understand this? Toch een beetje. Ik refereer naar =>http://www.phanderson.com/PIC/16C84/crc.html waar de berekening van een 8-bit crc check-sum uitgelegd wordt =>http://gaia.cs.umass.edu/kurose/ethernet/ec.htm voor wat theorie =>http://huizen2.dds.nl/~noway66/programming/crc.htm een tutorial Het boek "C programmer's Guide To Serial Communications" ISBN 0-672-22584-0 geeft een mooie uitleg, en toont hoe je verschillende CRC's kunt implementeren. Het basis principe is uiteindelijk altijd de rest berekening van een Euclidische deling, (je weet wel: zoals op school op een blad papier) maar in plaats van de aftrekking, gebruik je een XOR. Om het proces te versnellen, wordt veelal een lookup table aangemaakt met daarin al alle mogelijke restwaarden opgeslagen voor 0 tot en met 255 (dit is het waarden bereik van een byte). Dan moet je enkel nog een XOR uitvoeren. Dat gaat uiteraard sneller dan telkens een deling/modulo berekening uit te voeren. De gebruikte 'veelterm' is hier zoals aangegeven 1+X^(-1)+X^(-5)+X^(-7) en het schuifregister wordt voor elk 'datagram' van 10 databytes+ 1 crcbyte ge�nitialiseerd op 0xFF. Het mooie aan het systeem is, wanneer je de 10 bytes data door het schuifregister 'gejaagd' hebt, je exact de waarde van de 11e byte (de 8-bit crc) uitkomt. Als je hiermee een XOR uitvoert is het resultaat dan nul ! Is het resultaat NIET nul, dan is er een fout geslopen in de ontvangen data. Hope this helps Joris Spriet j.spriet@unicall.be
Technical Details
Message-ID:
<8h34mo$7j$1@trex.antw.online.be>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<8h0kiu$h6r$1@nereid.worldonline.nl>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,2167cb167627d6bf X-Google-Attributes: gidfcea4,public From: "Joris Spriet" <j.spriet@unicall.be> Subject: Re: CRC probleem? hoe zit het met de Belgische programmeurs? Date: 2000/05/31 Message-ID: <8h34mo$7j$1@trex.antw.online.be> X-Deja-AN: 629457293 References: <8h0kiu$h6r$1@nereid.worldonline.nl> Organization: Customer of Online Internet X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Newsgroups: be.comp.programming