[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