Algorytm wyliczania kodu CRC do kontroli przesyłania danych ? jak to zrobić?

suma kontrolna





Poprzedni Następny
Wiadomość
Spis treści
From: Janusz Charchut <Janusz.Charchut_at_nospam_p37.f26.n484.z2.fidonet.org>
Subject: suma kontrolna
Date: Sun, 08 Apr 01 12:15:00 +0200


Czesc All!

Mam taki problem. Musze napisac program z przesylaniem danych. Chodzi o
kontrole, czy cos po drodze nie uleglo zmianie. Zna ktos algorytm wyliczania
kodu CRC.



Pozdrawiam Janusz


*Inet: Janusz.Charchut_at_nospam_p37.f26.n484.z2.fidonet.org
*Fido: 2:484/26.37


Poprzedni Następny
Wiadomość
Spis treści
From: "Arek Karas" <karas_at_nospam_thb.pl>
Subject: Re: suma kontrolna
Date: Sun, 8 Apr 2001 17:47:02 +0200


Mozesz np. robic XOR wszystkich bajtow i na koncu wysylac to co wyliczysz.
Lub w dowolny inny sposob.

AK

"Janusz Charchut" <Janusz.Charchut_at_nospam_p37.f26.n484.z2.fidonet.org> wrote in
message news:2902740976_at_nospam_p37.f26.n484.z2.ftn...
Czesc All!

Mam taki problem. Musze napisac program z przesylaniem danych. Chodzi o
kontrole, czy cos po drodze nie uleglo zmianie. Zna ktos algorytm
wyliczania
kodu CRC.



Pozdrawiam Janusz


*Inet: Janusz.Charchut_at_nospam_p37.f26.n484.z2.fidonet.org
*Fido: 2:484/26.37




Poprzedni Następny
Wiadomość
Spis treści
From: "A.Grodecki" <agrotronik_at_nospam_medianet.pl>
Subject: Re: suma kontrolna
Date: Sun, 8 Apr 2001 23:17:39 +0200



Arek Karas wrote in message <9aq13r$cjb$1_at_nospam_ns.hbury.com>...
Mozesz np. robic XOR wszystkich bajtow i na koncu wysylac to co wyliczysz.
Lub w dowolny inny sposob.

AK

Byle nie AND lub OR ha, ha!

A.G.



Poprzedni Następny
Wiadomość
Spis treści
From: Marcin Wolcendorf <wolcendo_at_nospam_free.polbox.pl>
Subject: Re: suma kontrolna
Date: Sun, 08 Apr 2001 17:28:22 +0200




Janusz Charchut wrote:

Mam taki problem. Musze napisac program z przesylaniem danych. Chodzi o
kontrole, czy cos po drodze nie uleglo zmianie. Zna ktos algorytm wyliczania
kodu CRC.

Tak. Dzielisz wielomian (wszystko nad cialem Z2) informacyjny przez
wielomian generujacy i reszte z dzielenia przesylasz jako CRC. Pozniej robisz to
jeszcze raz z informacja z dolaczona reszta- powinno Ci wyjsc 0. Jesli nie- no
to jest zle. Jak raz podzielisz recznie, to pozniej juz bedziesz wiedzial, jak
to sie robi (wsk.- dzielenie wielomianow nad Z2 polega na XOR-owaniu).
A jesli chcesz gotowe (w niedziele nie chce mi sie pisac ;-) )- to poszukaj-
na sieci jest tego troche.


Pozdrawiam,

Marcin.



--
'Chrzęskrzyboczek pacionkociewiczarokrzysztofoniczny'





Poprzedni Następny
Wiadomość
Spis treści
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: suma kontrolna
Date: Sun, 8 Apr 2001 23:51:48 +0200



"Marcin Wolcendorf" <wolcendo_at_nospam_free.polbox.pl> wrote in message
news:3AD08396.A6C82F72_at_nospam_free.polbox.pl...


Janusz Charchut wrote:

robisz EXOR bajtow i na koncu exor 0xAA i masz crc 8 bitowe

Juliusz




Poprzedni Następny
Wiadomość
Spis treści
From: Janusz Charchut <Janusz.Charchut_at_nospam_p37.f26.n484.z2.fidonet.org>
Subject: suma kontrolna
Date: Fri, 13 Apr 01 20:15:03 +0200




Dziekuje wszystkim, ktorzy udzielili mi odpowiedzi na moje pytanie.


Pozdrawiam Janusz

*Inet: Janusz.Charchut_at_nospam_p37.f26.n484.z2.fidonet.org
*Fido: 2:484/26.37


Poprzedni Następny
Wiadomość
Spis treści
From: "peters" <peters_at_nospam_poczta.onet.pl>
Subject: Re: suma kontrolna
Date: Mon, 9 Apr 2001 09:46:57 +0200


Mam taki problem. Musze napisac program z przesylaniem danych. Chodzi o
kontrole, czy cos po drodze nie uleglo zmianie. Zna ktos algorytm
wyliczania
kodu CRC.

unsigned int crc;

void licz_crc(unsigned char dana)
{
unsigned char i;
crc^=dana;
for (i=0;i<8;i++)
{
if (crc&0x0001)
{
crc>>=1;
crc&=0x7fff;
crc^=0xa001;
}
else
{
crc>>=1;
crc&=0x7fff;
}
}
}

......
crc=0;
licz_crc(dana_1);
licz_crc(dana_2);
....
licz_crc(dana_n);


--
pozdrawiam, peters
peters_at_nospam_poczta.onet.pl
http://peters.republika.pl (strona Petersa dla elektroników)