CRC8



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "wojk" <902_at_nospam_mcd.com.pl>
Subject: CRC8
Date: Mon, 3 Sep 2001 16:17:00 +0100


Witam
Gdzie w sieci można znaleźć źródło w C do obliczania CRC8.
Znalazłem tylko od 16 w górę.
Dzięki za pomoc
K.W.



Poprzedni Następny
Wiadomość
Spis treści
From: "Martin Walter" <usrpwalt_at_nospam_kki.net.pl>
Subject: Re: CRC8
Date: Mon, 3 Sep 2001 19:43:58 +0200


| Gdzie w sieci można znaleźć źródło w C do obliczania CRC8.
| Znalazłem tylko od 16 w górę.

Przy ośmiu bitach nie poszalejesz sobie z liczeniem sumy kontrolnej!
Zależnie do czego potrzebujesz ta procedurę możesz napisać swoją.
Wyznaczać np. parzystość słowa.
Jeśli tylko weryfikujesz za pomocą CRC poprawność transmisji
to nie potrzebujesz więcej. Jeśli chcesz wykorzystać CRC
do odtworzenia brakujących bitów w ciągu to im duszy wielomian
tym skuteczniej to zrobisz ale procedura nie będzie prosta i szybka
do zaimplementowania np. w układzie mikroprocesorowym.
Tu potrzebne było by rozwiązanie sprzętowe.

Martin





Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: CRC8
Date: Mon, 3 Sep 2001 23:29:34 +0200


"Martin Walter" <usrpwalt_at_nospam_kki.net.pl> wrote in message
news:9n0fh6$g51$1_at_nospam_news.tpi.pl...
| Gdzie w sieci można znaleźć źródło w C do obliczania CRC8.
| Znalazłem tylko od 16 w górę.

Przy ośmiu bitach nie poszalejesz sobie z liczeniem sumy kontrolnej!
Zależnie do czego potrzebujesz ta procedurę możesz napisać swoją.
Wyznaczać np. parzystość słowa.
Jeśli tylko weryfikujesz za pomocą CRC poprawność transmisji
to nie potrzebujesz więcej. Jeśli chcesz wykorzystać CRC
do odtworzenia brakujących bitów w ciągu ...
...

czy za pomoca CRC mozna odtwarzac bity ?

Andrzej




Poprzedni Następny
Wiadomość
Spis treści
From: "Martin Walter" <usrpwalt_at_nospam_kki.net.pl>
Subject: Re: CRC8
Date: Mon, 3 Sep 2001 23:52:28 +0200


| czy za pomoca CRC mozna odtwarzac bity ?

A po co wymyślono sumy kontrolne?

Jednak głównie wykorzystuje się je
do określenia poprawności oraz
integralności danych.




Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: CRC8
Date: Tue, 4 Sep 2001 03:22:39 +0200


"Martin Walter" <usrpwalt_at_nospam_kki.net.pl> wrote in message
news:9n0u33$idi$1_at_nospam_news.tpi.pl...
| czy za pomoca CRC mozna odtwarzac bity ?

A po co wymyślono sumy kontrolne?

Jednak głównie wykorzystuje się je do określenia poprawności oraz
integralności danych.
...

nie upieram sie ale nigdy nie slyszalem o mozliwosci
odtwarzania uszkodzonych bitow przy pomocy CRC

wydaje mi sie, ze CRC sluzy tylko i wylacznie do kontroli poprawnosci

do odtwarzania usterek sluza kody korekcyjne np. kod Hamminga
widziales na wlasne oczy taki algorytm CRC, ktory umozliwia
korekcje bitow ?

o ile rozumiem dzialanie CRC to jakos nie moge sobie wyobrazic
, zeby w takiej "zmielonej", w rejestrze przesuwnym z kilkoma sprzezeniami
sygnaturze mozna zawrzec informacje, ktory bit jest uszkodzony

moze ktos mnie oswieci w tym temacie:

czy istnieje jakis algorytm CRC, ktory sluzy do korekcji a nie tylko do
kontroli ?


Andrzej






Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dubiel" <selekt_at_nospam_mikrotech.com.pl>
Subject: Re: CRC8
Date: Tue, 4 Sep 2001 10:12:57 +0200


witam.
jesli masz ciag slow binarnuch i do kazdego dolaczysz sume kotrolna bitow
(w najprostszym przypadku bit parzystosci)
nastepnie obliczysz sume konrolna calego ciagu i dolaczysz
na koncu do ciagu (w najprostszym przypadku XOR kolejnych slow ciagu)
to na tej podstawie mozna odzyskac utracone bity.
przy bicie parzystosci i CRC-XOR mozna odzyskac az JEDEN przklamany bit :)





Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: CRC8
Date: Tue, 4 Sep 2001 13:47:58 +0200


"Marek Dubiel" <selekt_at_nospam_mikrotech.com.pl> wrote in message
news:9n226a$afb$1_at_nospam_news.tpi.pl...
witam.
jesli masz ciag slow binarnuch i do kazdego dolaczysz sume kotrolna bitow
(w najprostszym przypadku bit parzystosci)
nastepnie obliczysz sume konrolna calego ciagu i dolaczysz
na koncu do ciagu (w najprostszym przypadku XOR kolejnych slow ciagu)
to na tej podstawie mozna odzyskac utracone bity.
przy bicie parzystosci i CRC-XOR mozna odzyskac az JEDEN przklamany bit :)


a jaki wpyw ma dlugosc ciagu ?

mozna odzyskac jeden na ile ?
jeden bit w kazdym bajcie ?

w jaki sposob uzyskuje sie informacje, ktory bit jest uszkodzony ?
chyba nie poprawia sie na slepo kolejnych bitow
az zgodzi sie CRC

Andrzej



Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: CRC8
Date: Tue, 04 Sep 2001 20:48:35 GMT


On Tue, 4 Sep 2001 10:12:57 +0200, Marek Dubiel wrote:
jesli masz ciag slow binarnuch i do kazdego dolaczysz sume kotrolna bitow
(w najprostszym przypadku bit parzystosci)
nastepnie obliczysz sume konrolna calego ciagu i dolaczysz
na koncu do ciagu (w najprostszym przypadku XOR kolejnych slow ciagu)
to na tej podstawie mozna odzyskac utracone bity.
przy bicie parzystosci i CRC-XOR mozna odzyskac az JEDEN przklamany bit :)

W tym co proponujesz tez jeden. No chyba ze tak ci sie szczesliwie
zdarzylo ze sie przeklamaly 3 [5,7] bity w jednym bajcie.

J.


Poprzedni Następny
Wiadomość
Spis treści
From: Tadeusz Gozdek <taddy_at_nospam_sys.net.pl>
Subject: Re: CRC8
Date: Tue, 04 Sep 2001 10:14:13 +0200


Witam

Jezeli ktos potrzebuje mam szybka procedurke do CRC8 oparta o gotowe tablice.
Kod w C (Keila) i asm (tez Keila) dla '51.

--
Pozdrawiam
Tadeusz Gozdek (Taddy) Network manager [TG2442-RIPE]
Mobile: +48 609 70 20 77 Gadu-gadu: 2919

Poprzedni Następny
Wiadomość
Spis treści
From: Krzysztof Piecuch <kpiecuch_at_nospam_optic.com.pl>
Subject: Re: CRC8
Date: Tue, 04 Sep 2001 10:56:59 +0200




Tadeusz Gozdek napisał(a):

Witam

Jezeli ktos potrzebuje mam szybka procedurke do CRC8 oparta o gotowe tablice.
Kod w C (Keila) i asm (tez Keila) dla '51.

Mozna prosic :-).
--
**** Krzysztof Piecuch -- SP9RQA ****
kpiecuch_at_nospam_optic.com.pl
sp9rqa_at_nospam_radio.org.pl
**********Linux User #132375*********

Poprzedni Następny
Wiadomość
Spis treści
From: "Jacek Meyerhold" <jacekmey_at_nospam_poczta.onet.pl>
Subject: Re: CRC8
Date: Wed, 5 Sep 2001 17:16:46 +0200



Krzysztof Piecuch napisał(a) w wiadomości:
<3B94975B.2946DD1D_at_nospam_optic.com.pl>...
Tadeusz Gozdek napisał(a):
Jezeli ktos potrzebuje mam szybka procedurke do CRC8 oparta o gotowe
tablice.
Kod w C (Keila) i asm (tez Keila) dla '51.

=>I ja..

Jacek


Poprzedni Następny
Wiadomość
Spis treści
From: "Martin Walter" <usrpwalt_at_nospam_kki.net.pl>
Subject: Re: CRC8
Date: Tue, 4 Sep 2001 14:52:39 +0200


nie upieram sie ale nigdy nie slyszalem o mozliwosci
odtwarzania uszkodzonych bitow przy pomocy CRC

Ale napewno słyszałeś o czymś takim jak płyta CD.
Trzydzieści procent danych to kody korekcyjne CRC
i nie służą one jak wiadomo tylko do informowania o tym,
że coś nie jest w porządku z danymi ale niosą również
informację pozwalającą odtworzyć (w jakimś zakresie)
uszkodzone dane.

Jest trochę literatury po polsku omawiającej temat
sum kontrolnych ich algorytmów i sposobów lokalizacji
i odtwarzania błędnych bitów w strumieniu danych.
im dłuższy wielomian wyliczający CRC tym większa
skuteczność korekcji błędnych danych.
Przykładem wyżej wspomniana płytka CD.

Martin Walter




Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: CRC8
Date: Tue, 04 Sep 2001 20:48:32 GMT


On Tue, 4 Sep 2001 14:52:39 +0200, Martin Walter wrote:
Ale napewno słyszałeś o czymś takim jak płyta CD.
Trzydzieści procent danych to kody korekcyjne CRC

Tyle ze nie tyle Cyclic Redundance Check typowo uzywane,
co wlasnie Reed-Solomon Correction Code.

Jest trochę literatury po polsku omawiającej temat
sum kontrolnych ich algorytmów i sposobów lokalizacji
i odtwarzania błędnych bitów w strumieniu danych.
im dłuższy wielomian wyliczający CRC tym większa
skuteczność korekcji błędnych danych.
Przykładem wyżej wspomniana płytka CD.

No - nie do konca tak. Tam sie skutecznosc zapewnia "rozrzuceniem
blokowym" ..

J.


Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: CRC8
Date: Tue, 04 Sep 2001 20:48:38 GMT


On Tue, 4 Sep 2001 03:22:39 +0200, Andy wrote:
[...]
o ile rozumiem dzialanie CRC to jakos nie moge sobie wyobrazic
, zeby w takiej "zmielonej", w rejestrze przesuwnym z kilkoma sprzezeniami
sygnaturze mozna zawrzec informacje, ktory bit jest uszkodzony

Nie musisz - jesli CRC sie nie zgadza, to zmieniasz po kolei
jeden bit w sygnale, liczyc ponownie CRC i sprawdzasz czy
sie zgadza. Jak masz szczescie to sie okaze ze tylko
jeden bit daje poprawny wynik - to ten, o ile nie
przeklamalo wiekszej ilosci.

Z tym ze zwykle sie tak nie robi - predzej CRC sprawdza czy korekcja
wczesniejszymi kodami dala poprawny wynik


J.


Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: CRC8
Date: Tue, 04 Sep 2001 20:48:11 GMT


On Mon, 3 Sep 2001 23:29:34 +0200, Andy wrote:
[...] Jeśli chcesz wykorzystać CRC
do odtworzenia brakujących bitów w ciągu ...
...
czy za pomoca CRC mozna odtwarzac bity ?

Niby sie do tego nie uzywa, ale w zasadzie czemu nie ?
Jesli dobre CRC po przeklamaniu 1 bitu danych zmienia kilka bitow CRC,
a po przeklamaniu innego zmienia inne bity w CRC - to mozna
sprobowac uzyc do znalezienia przeklamanego bitu.

Tylko ze to bedzie 1 bit w calym pakiecie - raczej nie wyobrazam sobie

tej techniki dla wiekszej ilosci, no i do "odtworzenia brakujacych"
to sie nie nadaje ..

J.


Poprzedni Następny
Wiadomość
Spis treści
From: "tomkawal" <tkawala_at_nospam_creativeteam.com.pl>
Subject: Re: CRC8
Date: Tue, 4 Sep 2001 11:29:14 +0200


w jakiejs nocie do układów Dallas'a

Gdzie w sieci można znaleźć źródło w C do obliczania CRC8.



Poprzedni Następny
Wiadomość
Spis treści
From: "wojk" <902_at_nospam_mcd.com.pl>
Subject: Re: CRC8
Date: Tue, 4 Sep 2001 18:44:34 +0100


dzieki

tomkawal <tkawala_at_nospam_creativeteam.com.pl> wrote in message
news:9n26t2$blo$1_at_nospam_news.tpi.pl...
w jakiejs nocie do układów Dallas'a

Gdzie w sieci można znaleźć źródło w C do obliczania CRC8.





Poprzedni Następny
Wiadomość
Spis treści
From: "Kumex" <kumex_at_nospam_interia.pl>
Subject: Odp: CRC8
Date: Wed, 5 Sep 2001 07:36:33 +0200


Użytkownik wojk <902_at_nospam_mcd.com.pl> w wiadomości do grup dyskusyjnych
napisał:9n03ef$2a9$1_at_nospam_news.tpi.pl...
Witam
Gdzie w sieci można znaleźć źródło w C do obliczania CRC8.
Znalazłem tylko od 16 w górę.

Jeśli chodzi o 8-bitową sumę kontrolną CRC umieszczaną np. na końcu każdego
wiersza pliku Intel-HEX, to obliczam ją w chyba najprostszy możliwy sposób:
- przed rozpoczęciem zeruję 8-bitową zmienną bez znaku do obliczania CRC,
- sukcesywnie odejmuję od niej wartości kolejnych bajtów, ignorując
wszelkie pożyczki, przeniesienia i znaki:
SumaCRC = SumaCRC - kolejny_bajt,
- po odjęciu ostatniego bajtu mam w rej. SumaCRC gotowy wynik.
Moim zdaniem nie ma prostszego sposobu i śmiać mi się chce, gdy widzę jakieś
"algorytmy tablicowe" i inne takie.

Pozdr.,
QmX.




Poprzedni Następny
Wiadomość
Spis treści
From: "Andy" <anok_at_nospam_ceti.pl>
Subject: Re: CRC8
Date: Wed, 5 Sep 2001 15:06:12 +0200


"Kumex" <kumex_at_nospam_interia.pl> wrote in message
news:9n4dlp$64o$1_at_nospam_korweta.task.gda.pl...
...
Jesli chodzi o 8-bitowa sume kontrolna CRC umieszczana np. na koncu
kazdego
wiersza pliku Intel-HEX, to obliczam ja w chyba najprostszy mozliwy
sposób:
- przed rozpoczeciem zeruje 8-bitowa zmienna bez znaku do obliczania CRC,
- sukcesywnie odejmuje od niej wartosci kolejnych bajtów, ignorujac
wszelkie pozyczki, przeniesienia i znaki:
SumaCRC = SumaCRC - kolejny_bajt,
- po odjeciu ostatniego bajtu mam w rej. SumaCRC gotowy wynik.
Moim zdaniem nie ma prostszego sposobu i smiac mi sie chce,
gdy widze jakies
"algorytmy tablicowe" i inne takie.


prostszego pewnie nie ma moze inny porownywalny:

xor = xor ^ kolejny_bajt;

tyle, ze kolega rozpoczynajacy ten watek chcial CRC8
a nie najprostszy algorytm na sume kontrolna

w ogole to chyba lekko zatarla sie roznica w nazewnictwie
ale moze jestem w bledzie

jak dla mnie to nie nalezy podciagac zwyklej sumy (+)
modulo 256 lub xora pod CRC

zalezy co chcemy sprawdzac ale zwykla suma i xor
jest nieodporna np. na zmiane kolejnosci bajtow

mnie zawsze CRC kojarzy sie z rejestrem przesuwnym
do "mielenia" (xor'owania) bitow przychodzacych ze strumienia
z odpowiednimi bitami z tego rejestru

do roznych zastosowan bierze sie sprzezenia z roznych bitow
pojecia nie mam dlaczego z tego czy z innego
ale pewnie zalezy od od rodzaju bledow
i jakis madry czlowiek zrobil jakies badania i tak mu wyszlo

Andrzej





Poprzedni Następny
Wiadomość
Spis treści
From: Tadeusz Gozdek <taddy_at_nospam_sys.net.pl>
Subject: Re: CRC8
Date: Wed, 05 Sep 2001 22:20:15 +0200


Kumex napisał(a):
[.]
Jeśli chodzi o 8-bitową sumę kontrolną CRC umieszczaną np. na końcu każdego
wiersza pliku Intel-HEX, to obliczam ją w chyba najprostszy możliwy sposób:
- przed rozpoczęciem zeruję 8-bitową zmienną bez znaku do obliczania CRC,
- sukcesywnie odejmuję od niej wartości kolejnych bajtów, ignorując
[..]
To nie jest CRC (w koncu CRC liczy sie z wielomianow).

Moim zdaniem nie ma prostszego sposobu i śmiać mi się chce, gdy widzę jakieś
"algorytmy tablicowe" i inne takie.
Taka prosta suma kontrolna nie jest odporna na duzy procent przeklaman.
Czyli jezeli zakradnie sie blad wynik dalej moze byc poprawny.
Sam to sprawdzalem jak wybieralem zabezpieczenie dla transmisji
danych po 485 i moim zadniam CRC jest nie do pobicia. Choc przy 8-bitowym CRC
nie da sie poszalec, niemniej przy pewnych ograniczeniach i 8 bitow doskonale
spelnia swoje zadanie.

--
Pozdrawiam
Tadeusz Gozdek (Taddy) Network manager [TG2442-RIPE]
Mobile: +48 609 70 20 77 Gadu-gadu: 2919

Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: CRC8
Date: Thu, 06 Sep 2001 21:33:54 GMT


On Wed, 05 Sep 2001 22:20:15 +0200, Tadeusz Gozdek wrote:
Kumex napisał(a):
Jeśli chodzi o 8-bitową sumę kontrolną CRC umieszczaną np. na końcu każdego
wiersza pliku Intel-HEX, to obliczam ją w chyba najprostszy możliwy sposób:
- przed rozpoczęciem zeruję 8-bitową zmienną bez znaku do obliczania CRC,
- sukcesywnie odejmuję od niej wartości kolejnych bajtów, ignorując
[..]
To nie jest CRC (w koncu CRC liczy sie z wielomianow).

To nie - ale taki np XOR wszystkich bajtow na dobra sprawe jest CRC
liczonym wielomianem x^8+1 :-)

J.


Poprzedni Następny
Wiadomość
Spis treści
From: Tadeusz Gozdek <taddy_at_nospam_sys.net.pl>
Subject: Re: CRC8
Date: Thu, 06 Sep 2001 23:43:40 +0200


"J.F." napisał(a):

On Wed, 05 Sep 2001 22:20:15 +0200, Tadeusz Gozdek wrote:
Kumex napisał(a):
Jeśli chodzi o 8-bitową sumę kontrolną CRC umieszczaną np. na końcu każdego
wiersza pliku Intel-HEX, to obliczam ją w chyba najprostszy możliwy sposób:
- przed rozpoczęciem zeruję 8-bitową zmienną bez znaku do obliczania CRC,
- sukcesywnie odejmuję od niej wartości kolejnych bajtów, ignorując
[..]
To nie jest CRC (w koncu CRC liczy sie z wielomianow).

To nie - ale taki np XOR wszystkich bajtow na dobra sprawe jest CRC
liczonym wielomianem x^8+1 :-)

Tylko jego wartosc jako kodu zabezpieczajcego jest stosunkowo niska...
Wada podobna jak tego powyzej dlatego w bardziej wymagajacych aplikacjach
jednak stosuje sie CRC8 czy 16.

--
Pozdrawiam
Tadeusz Gozdek (Taddy) Network manager [TG2442-RIPE]
Mobile: +48 609 70 20 77 Gadu-gadu: 2919