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