[elektro] PIC16F883 EEPROM adatvesztés
Palasik Sandor
palasik at mail.datanet.hu
Sat Nov 12 20:58:50 CET 2011
> Ez viszont sem jó semmire, ha elromlik mondjuk 1 byte (vagy több),
> teljes egészében. Vannak olyan kódok (pl. Reed-Solomon), amik ilyen
> burst hibákkal is elbírnak. Persze valamit-valamiért, ezek már elég
> komplex algoritmusok...
Ha egy hibacsomagot akarsz javítani, arra jó a CRC is. A CRC-t lehet
visszafelé is számolni, azaz ki tudod számolni, hogy ha most X a CRC és Y
volt a legutolsó bit, ami bejött, akkor mi volt a CRC előtte. A javítás meg
úgy nézne ki, hogy a CRC-t addig járatod visszafelé, amíg csak a regiszter
alsó felében vannak egyes bitek és azok a bitek adják a hibamintát és a
helyüket meg a lépések száma, amivel kijöttek.
Másképp szemlélve: ha végigpróbálgatva minden bájtpozícióban mind a 256
lehetséges értéket más-más CRC-t kapunk, akkor ebből kikövetkeztethető nem
csak az, hogy hiba van, hanem az is, hogy hol.
A javítás kb. ugyanannyi lépés, mint a CRC kiszámítása és kb. ugyanakkora
program is. Az egyszerűségért cserében csak egy csomagot/bájtot tud
javítani. Hogy meg lehessen különböztetni az egyszeres hibát a durvábbaktól,
érdemes valami más hibaellenőrzést is használni és javítás után
újratesztelni.
Palasik Sándor
More information about the Elektro
mailing list