CRC polynomal calculation

R

Runar Gjelsvik

Guest
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.

Thanks in advance

Regards

Runar
 
"Runar Gjelsvik" <runar.gjelsvik@cern.ch> 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
 
On Wed, 28 Apr 2004 18:29:29 GMT, Kai Harrekilde-Petersen
<khp@harrekilde.dk> wrote:

"Runar Gjelsvik" <runar.gjelsvik@cern.ch> 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.
Good advice so far.

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:
http://groups.google.com/groups?threadm=3vlj20t7o93f7d9snuuh43ja98eu2n5god%404ax.com

Regards,
Allan.
 

Welcome to EDABoard.com

Sponsor

Back
Top