Mi a hibadetektálás?
Függetlenül attól, hogy mely kommunikációs közegről beszélünk, a zaj és interferencia jelenléte állandónak tekinthető. Ez különösen igaz a környezeti zajjal terhelt és más jelforrásokból érkező, interferenciával zavart, rádiófrekvenciás rendszerek esetében. Az analóg kommunikációban a zaj állandóan jelen lévő zavarójelekként jelenik meg a rendszerben, eltávolítására nincs lehetőség. A hasznos jel és zaj együttes jelenléte azt eredményezi, hogy a vevő nem képes a valódi jelet venni és a tartalmának megfelelően működni.
A hasznos adat további, ún. redundanciabitekkel való kiegészítése lehetővé teszi, hogy e többletbitek alapján a vevő elemezze az adatokat, és megállapítsa, hogy az adás során lépett-e fel hiba bármely okból kifolyólag.
Hibadetektálás és hibajavítás
Ha a vevő adatelemzés során adott esetben ismeri a megállapítható hibák jelenlétét, viszont nem minden esetben lehet biztos abban, hogy mely biteknél lépett fel a változás. Ezt a folyamatot hibadetektálásnak nevezzük. Ha a vevő képes arra, hogy a hibáknak nemcsak a jelenlétét ismerje, de a pozíciójukat is megállapítsa, a hibák kijavítására is képes lehet. Ezt a folyamatot hibajavításnak nevezzük, és kiváló hatékonysággal teszi lehetővé a gördülékeny kommunikáció folytatását.
A Hamming-távolság
A Hamming-távolság implementációja során a vevőben minden érvényes kódszó eltárolásra kerül, amelyre a helyes adásvétel során számítani lehet. Egyik kódszóból a másik a bitek átbillentésével állítható elő. Ezek száma két kódszó között a kettő közötti Hamming-távolságot fejezi ki.
Ha például az adathosszúságunk 3 bit, a 000 és 111 között minden bitkombinációból előállítható kódszó vizuálisan egy 8 pontból álló rácson ábrázolható. Ettől eltérő adathosszúságok esetén a rácsos módszer ugyanúgy alkalmazható. Minden mozgást egy adott vonal mentén egybitnyi különbség fejez ki, amely 1 értékű Hamming-távolságot jelent. Az adott rendszerben értelmezett, valós kódszókat az alábbi ábrában kék színnel jelöljük.
A minimális Hamming-távolság azoknak a mozgásoknak a legkisebb száma, amellyel egyik kódszótól a másikig el lehet jutni. Amikor Hamming-távolságról beszélünk, általában erre a minimális értékre gondolunk. Ha például az előző ábrán látható, 3. rendszert nézzük, 3 lépés kell ahhoz, hogy egyik kódszóból eljussunk a másikba. De nézzük végig mindegyik rendszer jellegzetességeit ebben a tekintetben!
Az 1. rendszerben minden bitkombináció érvényes kódszót ad ki, ezáltal értelemszerűen hibadetektálásra nincs lehetőség, hiszen az eltérés az egyik kódszóból akár csak egyetlen bitet illetően is egy újabb, érvényes kódszót eredményez.
A 2. rendszerben minden érvényes kódszót illetően az egyik kódszóból a másikba pontosan 1 érvénytelen kódszón át vezet az út, ezáltal a minimális Hamming-távolság értéke 2. Ebben a rendszerben a vevő képes lehet 1 bit mértékű hiba detektálására abban az esetben, ha érvénytelen kódszót kap, viszont mivel ez az érvénytelen kódszó éppen félúton található két másik, érvényes kódszó között, nem képes biztosan megállapítani az eredeti, helyes üzenetet. Hibajavításra ennek értelmében ez a rendszer nem képes.
A 3. rendszerben a Hamming-távolság két érvényes kódszó között 3. A rendszer képes 1 vagy 2 bit mértékű hiba detektálására, 3 bit mértékűre azonban már nem, hiszen az ismét egy érvényes kódszót eredményez. Ám vegyük észre, hogy ez a rendszer már képes 1 bit mértékű hiba kijavítására is az érvénytelen kódhoz legközelebbi érvényes kódszó megvizsgálásával és az eredetileg küldött üzenet megállapításával!
A három rendszer összehasonlításából tehát azt a szándékot állapítottuk meg, hogy a megbízható kommunikáció érdekében a Hamming-távolságot szeretnénk növelni. Erre alapvetően két lehetőség adott: vagy kevesebb érvényes kódszót használunk, vagy növeljük a bitek számát. Ez mindkét esetben azt jelenti, hogy az adott kapacitású átviteli közegben nagyobb mennyiségű adatot kell küldenünk.
A három rendszer összehasonlításának birtokában általánosíthatunk és megvizsgálhatjuk, mi történik nagyobb értékű Hamming-távolság esetén. Az 1. táblázat a kódszavakat rendszerezi. A Hamming-távolság megadja az érvényes kódszók közötti átjárási távolságot. Az érvénytelen kódszókat a zöld színnel jelölt mezők jelölik.
Kommunikációs hibák
Feltételezzük, hogy a kapcsolási utasítások átvitele egyszerű rádiós alkalmazás, nincs hozzá szükség komplex rádiótechnikai tervezésre. Még ebben az egyszerűsített esetben is előfordul azonban, hogy több vevő van jelen, és gondosan meg kell tervezni, hogy mely esetben mely vevő van megszólítva és mely részéről szükséges cselekedni. Magyarázatért lásd az alábbi ábrát!
A példában olyan jelet küldünk, amelyben 1. vevőt kérjük válaszra. Ha az adat megsérül, a nem megfelelő eszköz (3. vevő) lép működésbe, üzembiztonsági problémákat felvetve.
A Hamming-távolság és az NK-2.4Y modul
Cikkünk elején elmagyaráztuk a hibadetektálás és hibajavítás rövid elméletét, amelynek kapcsán bevezettük a Hamming-távolság fogalmát. A Hamming-függvény gyakorlati implementációjára több megoldás áll rendelkezésre. Az NK-2.4Y modulon átvitt, hasznos adatokra alkalmazott Hamming-függvény eredete a CRC (ciklikus redundancia-ellenőrzés) módszerre vezethető vissza, és nem használ az előzőekben ismertetett, speciális kódszókat. Az NK-2.4Y CRC-t hibadetektálásra alkalmazza a rendszer, amelynek következtében 6 értékű Hamming-távolságot képes biztosítani.
Másodsorban, mivel rádiókommunikációs rendszerről beszélünk, a rádiófrekvenciás adó-vevő (RFIC) áramkör a saját CRC-képességeit is alkalmazza a végleges adatokon, közvetlenül az adás előtt. Ennek egyetlen célja nem más, mint hogy a hasznos adat még nagyobb bizonyossággal elérje a céleszközt. Nem garantálja azonban az NK-2.4Y hasznos adatainak összefüggőségét, emiatt van szükség egy további, 6 értékű Hamming-távolságot biztosító CRC végrehajtására kizárólag az NK-2.4Y hasznos adatain, amellyel a helyes adatátvitel garantálható. (Megjegyzés: az IEC 870-5-1 „Telecontrol equipment and systems Part 5 Transmission protocol Section One – Transmission frame formats” ajánlásban az FT3 formátumosztályú, adatintegritás szempontjából kiemelten igényes kommunikációra 6 értékű Hamming-távolság implementálását javasolják.)
A működés jól magyarázható a postai levélfeladással vont párhuzammal. A borítékra írt címet hagyományos formátumban tüntetjük fel, így a vevőhöz eljut és tudja értelmezni. A boríték tartalma érdektelen. Ha a cím nem olvasható, kézbesítésre nem kerül sor. Ennek a korrekciója az RFIC által végzett CRC rendeltetése. Ha a boríték eljut a címzetthez, a tartalma megvizsgálásra kerül. Ez felel meg az NK-2.4Y CRC- és Hamming-függvénye által kezelt területnek, amelynek tárgya az NK-2.4Y által átvitt hasznos adat.
Az NK-2.4Y hasznos átvitt adatai
Az alábbiakban az NK-2.4Y hasznos átvitt adatai láthatók az általa CRC-vel kiegészített mezővel egyetemben (a Hamming-távolság értéke 6):
Ha ezt a csomagot az RFIC feldolgozza, kiegészíti a megfelelő fejléccel és a rádiós átvitelt biztosító, végső CRC-vel:
Vétel az NK-2.4Y modullal
Ha a céleszköz RFIC-je veszi az adatokat, először a CRC-t (a „borítékszintű” címet) ellenőrzi:
Ha ezt rendben találja, ellenőrzi az NK-2.4Y hasznos adataira kiszámított CRC-t (a „borítéktartalmat”):
Ha minden ellenőrzés pozitív végeredménnyel zárul, a modul végrehajtja a kérést:
Konklúzió
Az előző diagramon láthattuk a CRC fontosságát, és talán el tudjuk képzelni, milyen következményekkel jár az, ha akár csak a hasznos adatokat illetően nem áll rendelkezésre CRC vagy bármely, hasonló rendeltetésű ellenőrzés.
A hasznos adatokon a CRC implementálása és megfelelő Hamming-távolság létrehozása elősegíti a biztonságos és megbízható kommunikáció létrehozását a végpontok között. Bármely hiba detektálása esetén a vevők figyelmen kívül hagyják a kapott adatokat, és egyik sem fog műveletet végezni. Ez tökéletesen kiküszöböli a téves műveletvégzés lehetőségét a rendszerben. Mivel az NK-2.4Y modul esetében az adásvétel folyamatos, hibajavításra nincs szükség és ezért nem is kerül implementálásra, elegendő egyszerűen megvárni a következő adást.