Velocity Reviews > VHDL > CRC polynomal calculation

# CRC polynomal calculation

Runar Gjelsvik
Guest
Posts: n/a

 04-28-2004
Hi,

I was looking at this site posted somewhere earlier:

http://www.easics.be/webtools/crctool

The thing I'm wondering is how do you calculate what polynom to use? I'm
planning on serially send a data frame of about 72 bits. I was thinking of
using manchester encoding and CRC.

I'm new at this CRC stuff, so I've got problems with understanding the
polynom. Hope anyone can understand my problem and help me.

Regards

Runar

Kai Harrekilde-Petersen
Guest
Posts: n/a

 04-28-2004
"Runar Gjelsvik" <(E-Mail Removed)> writes:

> I was looking at this site posted somewhere earlier:
>
> http://www.easics.be/webtools/crctool
>
> The thing I'm wondering is how do you calculate what polynom to use? I'm
> planning on serially send a data frame of about 72 bits. I was thinking of
> using manchester encoding and CRC.

The polynomials are selected from a pool of mathematically test
polynomials. In your case, I'd pick one of the wellknown ones,
e.g. the CRC32 used in Ethernet (and a lot of other places).

The longer CRC that you use, the better coverage (error detection) you
get. In general, the probability for an undetected single-bit error is
(2^N)-1:1 for an N bit CRC. This requires that the length of the frame
you send is less than 2^(N-1)*N bit, IIRC.

Regards,

Kai

Allan Herriman
Guest
Posts: n/a

 04-29-2004
On Wed, 28 Apr 2004 18:29:29 GMT, Kai Harrekilde-Petersen
<(E-Mail Removed)> wrote:

>"Runar Gjelsvik" <(E-Mail Removed)> writes:
>
>> I was looking at this site posted somewhere earlier:
>>
>> http://www.easics.be/webtools/crctool
>>
>> The thing I'm wondering is how do you calculate what polynom to use? I'm
>> planning on serially send a data frame of about 72 bits. I was thinking of
>> using manchester encoding and CRC.

>
>The polynomials are selected from a pool of mathematically test
>polynomials. In your case, I'd pick one of the wellknown ones,
>e.g. the CRC32 used in Ethernet (and a lot of other places).
>
>The longer CRC that you use, the better coverage (error detection) you
>get.

>In general, the probability for an undetected single-bit error is
>(2^N)-1:1 for an N bit CRC. This requires that the length of the frame
>you send is less than 2^(N-1)*N bit, IIRC.

Any CRC will detect a single bit error in a frame of any length.

Even parity (equiv to 1 bit CRC) will detect a single bit error in
arbitrarily long frames.

I listed some CRC error detection properties here:

Regards,
Allan.