Re: Korekcja bledow - CDR

Autor: Piotr Klimek (piko18_at_fuck-spam.tenbit.pl)
Data: Sat 22 Feb 2003 - 02:45:00 MET


Dnia (Sat, 22 Feb 2003 00:29:09 +0100) ktos podajacy sie za -=Przemek=-
wyklawiaturowal co nastepuje:

>> np. ze sa dane nadmiarowe generowane; np. dla osmiu bitow danych dwa
>> bity CRC i po nich sie koryguje bledy ;)
>
> dobra ale co to daje i po co sie to stosuje?

Przytocze Ci jeden z najprostszych przykladow zabezpiaczania danych:

         B1 B2 B3 B4 B5 B6 B7 B8
------------------------------------------------------------------
K1 X X X X
------------------------------------------------------------------
K3 X X X X
------------------------------------------------------------------
K3 X X X X
-----------------------------------------------------------------
K4 X
------------------------------------------------------------------

B1,2,3,4,5,6,7,8 to bity niosace informacje, K1,2,3,4 to bity
zabezpieczajace.

Przyjmijmy, ze:

b1=1
b2=0
b3=1
b4=0
b5=1
b6=0
b7=1
b8=0

teraz sprawdzmy wartosci bitow zabezpieczajacych:

Jezeli liczba jedynek jest parzysta to bit parzystosci=0,
w przeciwnym wypadku jego wartosc to 1.

k1= | b1= b3=1 b5=1 b7=1 | = 1111 bit parzystosci = 0
k2= | analogicznie | = 0101 bit parzystosci = 0
k3= | -----//----- | = 0101 bit parzystosci = 0
k4= | -----//----- | = 0 bit parzystosci = 0

Teraz zabezpieczamy bity zabepieczajace (na wypadek gdyby bit
zabezpiecajacy niosl nieprawidlowa wartosc).

Wartosc K jest wstawiana w miejsce wartosci B, ktora zabezpiecza:

   K1 K2 B1 K3 B2 B3 B4 K4 B5 B6 B7 B8
--------------------------------------------------
K1| X| | X | | X | | X | | X | | X | |
--------------------------------------------------
K2| | X | X | | | X | X | | | X | X | |
--------------------------------------------------
K3| | | | X | X | X | X | | | | | |
--------------------------------------------------
K4| | | | | | | | X| X | X | X | X |
--------------------------------------------------

Teraz wyliczamy wszystkeiw artosci analogicznie jak w poprzedniej
tabeli:

K1= |010011| = 1
K2= |011001| = 1
K3= |00100| = 1
K4= |01010| = 0

A jak to dziala w praktyce?
Ta sama tabelka z bledem (u gory wartosc na wejsciu na dole
na wyjsciu):

    0 0 1 0 0 1 0 0 1 0 1 0
   K1 K2 B1 K3 B2 B3 B4 K4 B5 B6 B7 B8
--------------------------------------------------
K1| X| | X | | X | | X | | X | | X | |
--------------------------------------------------
K2| | X | X | | | X | X | | | X | X | |
--------------------------------------------------
K3| | | | X | X | X | X | | | | | |
--------------------------------------------------
K4| | | | | | | | X| X | X | X | X |
--------------------------------------------------
   0 0 1 0 0 1 0 0 1 (1) 1 0

W nawiasie oznaczylem blad (zero zmienilo na skutek bledu wartosc na 1).
Teraz sprawdzamy czy wszystko sie zgadza, dochodzimy (droga eliminacji)
do miejsca gdzie sie nie zgadza i wstawiamy poprawna wartosc :)

Mam nadzieje, ze opisalem to wszystko w dosc jasny sposob, jesli nie, to
na swoje usprawiedliwienie mam pozna pore :)

-- 
############################***PIKO***############################
#########################***GG:2039421***#########################
###############***There is no other pill to take***###############
###########***So swallow that one that makes you ill***###########


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 09:24:25 MET DST