Kódováni dat Před zpracováním dat například v počítači je třeba znaky převést do tvaru, kterému počítač rozumí, tj. přiřadit jim určité kombinace bitů. Tomuto převodu se říká kódování.
Kód je předpis pro jednoznačné přiřazení určité kombinace bitů příslušnému znaku. Kombinace bitů zobrazující znak se říká kódové slovo. Počet bitů v kódovaném slově je zdola omezen počtem různých znaků, kterých se v praxi používá více než 100. Z toho vyplývá že kódovaná slova vyjadřující alfanumerické znaky musejí mít nejméně 7 bitů, protože 27= 128 bitů.
Kódy používané pro strojové operace
Kódová slova pro různé kódy se řadí do kódových tabulek. Ke kódování se používá generátor kódu, který může obsahovat logické nebo paměťové obvody. Původní znak se získá z kódového slova dekódováním.
Přímý dvojkový kód Je to kód, který jednoznačně přiřazuje dané číslici kombinaci pouze dvou různých znaků. Na rozdíl od desítkové soustavy používá dvojková soustava pouze dvě číslice, 0 a1. Hodnota každé číslice je závislá na jejím umístění ve dvojkovém čísle, na tzv. váze. Pojem váha je to samé jako určitá mocnina základu Z. celé číslo se ve dvojkové soustavě zobrazuje absolutní hodnotou a znaménkem, jednotkovým doplňkem a dvojkovým doplňkem. Znaménko plus se zobrazuje nulou a znaménko minus jedničkou. Př.: Zobrazte číslo +4510 pomocí sedmi bitů. Řešení : +4510 = 01011012= 25 + 23+ 22+ 20= 4510
Př.: Zobrazte číslo -4510 ve dvojkovém doplňku pomocí sedmi bitů. Řešení : +4510 = 01011012 Vyjádříme dvojkový doplněk čísla +4510 invertováním jednotlivých bitů kladného vyjádření čísla a přičteme jedničku. Výsledek : -4510= 10100112.
Kódy pro zkrácení zápisu binárních čísel
Oktalový kód Oktalový kód se používá pro zobrazení koeficientů na jednotlivých řádových místech číslic 0 až 7. Při převodu čísla z dvojkové do osmičkové soustavy se dvojkové číslo rozdělí na trojici bitů, počínaje nejnižšími řády. Každá trojice bitů se vytváří jednou osmičkovou číslicí nezávisle na ostatních číslicích. Příklad: 001 101 111 1102= 15768 Hexadecimální ( šestnáctkový) kód Tato soustava užívá 16 symbolů- číslice od 1 až 9 a písmena A, B, C, D, E a F, která nahrazují číslice 10 až 15. Dvojkové číslo se převede do šestnáctkové soustavy tak , že se rozdělí na čtveřice bitů , počínaje nejnižšími řády. Každá čtveřice bitů se vytváří jedním šestnáctkovým symbolem, nezávisle na ostatních symbolech. Příklad: 1010 0101 0111 11102= A57E16
BCD kód (8421 kód) Desítková číslice se zobrazí jako čtyřmístné dvojkové číslo v kódu BCD (binary code decimal) nazývaný též kód 8421. Tento kód patří do skupiny váhových kódů.
Zařízení pracující v tzv. dvojkově desítkové soustavě - např. kalkulačky, digitální měřící přístroje, návěští pro obsluhu apod.
Kód BCD plus 3 Číslo se rozdělí na část před desetinnou čárkou (celá část čísla) a za desetinnou čárkou (zlomková část).
Celou část dělíme dvěma tak dlouho, až je podíl nulový a zbytky vynásobené dvěma zapíšeme v obráceném pořadí.
Aritmetické operace s kódem BCD Kód BCD používá dvojkovou číselnou soustavu, můžeme tedy při matematických operacích s nimi použit stejný postup.
Grayův kód (zrcadlový) U dosud uvažovaných kódů dochází při sledování přirozené řady čísel ke změně ve více řádech. Např. v binárním kódu 8421 při přechodu 0000, 000I, 00I0, 00II atd. Když se mění stav z 1 na 2 je nebezpečí vzniku kombinace 000I-00II-00I0-00II v důsledku překrytí impulsů. Tato skutečnost je v některých aplikacích nežádoucí. Grayův kód sestavujeme z binárních číslic s použitím zrcadlení: (srozumitelnější model na inter. adrese web.sos-sou-bohumin.cz)
000 001 011 010 110 111 101 100
zrcadlový obraz
Vícemístné kódy Přímý dvojkový kód není zabezpečený proti poškození. Pokud je jeden bit poškozený chybou, je nově vzniklá hodnota stejně pravděpodobná jako původní a chyba nebude detekována. Proto se používají vícemístné kódy. Vlastností dále vyjmenovaných kódů je možnost zjistit chybu, pokud vznikla v jediném bitu. Chybu ve více bitech u těchto kódů již detekovat nelze. Kód 1 z 10, číslice 0 až 9 jsou zobrazeny deseti bity, z nichž pouze jeden je jedničkový.
Kódy 2 z 5, kód 74210, číslice 0 až 9 jsou zobrazeny pěti bity, z nichž jsou vždy dva jedničkové. Kódy 2 z 5, kód 84210, číslice 0 až 9 jsou zobrazeny pěti bity, z nichž jsou vždy dva jedničkové. Mezi detekční patří také kterýkoliv ze čtyřmístných kódů pokud je doplněn o pátý paritní bit. Hodnota číslice paritního bitu se určí tak, aby počet jedniček čísla byl sudý - sudá parita kód S8421, nebo lichý - lichá parita – kód L8421.
Ochrana při přenosu kódů Zakódované binární slovo velmi často přenášíme na určitou vzdálenost přesnou cestou. Přesto, že je číslicový přenos velmi bezpečný proti rušení, může se stát, že se jednotlivé bity přenášené posloupnosti čísel při přenosu zkreslí. Je tedy nutné umět se bránit důsledkům takových chyb a přenosu. Postupujeme při tom tak, ze přenesenou informaci zkontrolujeme, zda neobsahuje chyby , a v dalším zpracováním budeme pokračovat až poté, kdy zjistíme, že tomu tak není. Ke kontrole přijatých zakódovaných slov používáme různé metody.
Kontrola paritou Princip metody spočívá v tom , že k přenesené informaci přidáme další bit, označovaný jako bit parní. Hodnotu tohoto bitu určíme tak, že v nově vzniklém slově bude vždy dohromady buď sudý počet jedniček (sudá parita) nebo lichý počet jedniček( lichá parita).
1001
1000
Přenosová cesta
Vyslané slovo
Přijaté slovo
Kontrola paritou nám tedy dovolí odhalit chybu. Po přijetí zprávy kontrolujeme, zda má přijaté slovo sudý nebo lichý počet jedniček. Když tomu tak není , víme, že při přenosu došlu k chybě, a můžeme například požadovat opakování přenosu. Je zřejmé , že kontrola paritou má v praxi význam tehdy, dochází-li s velkou pravděpodobností k chybě nejvýše v jedno,m bitu.
Samoopravný kód Vzhledem ke zvýšené pravděpodobnosti poruch u polovodičových operačních pamětí se obvykle používají obvody pro detekci a opravu chyb. Místo zabezpečení dat jedním paritním bitem se používá rozšířený samoopravný Hammingův kód, který obsahuje informační a více kontrolních paritních bitů. Kód umožňuje v kódovém slově lokalizovat 1 chybu a detekovat dvojnásobnou chybu. Lokalizovaná chyba je opravena invertováním chybného bitu. Počet kontrolních bitů u Hammingova kódu Počet infornačních bitů 4 8 16 32 64
Počet kontolních bitů 3 5 6 7 9
Rozšířený Hammingův kód se tvoří tak, že se k informačním bitům b1-b4 v kódu BCD připojí paritní bity p1-p3. Kontrolní bity se počítají podle rovnic : p1= b4 ⊕ b3 ⊕ b1 p2= b4 ⊕ b2 ⊕ b1 p3= b3 ⊕ b2 ⊕ b1
0 1 2 3 4 5 6 7 8 9
1 p1 0 1 0 1 1 0 1 0 1 0
2 p2 0 1 1 0 0 1 1 0 1 0
3 b4 0 0 0 0 0 0 0 0 1 1
4 p3 0 1 1 0 1 0 0 1 0 1
5 b3 0 0 0 0 1 1 1 1 0 0
6 b2 0 0 1 1 0 0 1 1 0 0
7 b1 0 1 0 1 0 1 0 1 0 1
Příklad: Číslice 6 má kódové slovo 1100110. Předpokládejme . že v něm vznikla chyba na pátém místě a kódové slovo se změní na 1100010. Detekujte tuto chybu. Řešení: K informačním bitům 0110 jsou přiřazeny paritní bity podle tabulky rozšířeného Hammingova kódu. Chyba se detekuje výpočtem parity podle rovnic: p´3= p3 ⊕ b3 ⊕ b2 ⊕ b1 = 1 p´2= p2 ⊕ b4 ⊕ b2 ⊕ b1 = 0 p´1= p1 ⊕ b4 ⊕ b3 ⊕ b1 = 1 Výsledek výpočtu 101 je příznak chyby zvaný syndrom, který lokalizuje chybu na místě 1012 = 5. Zdroje: internet : web.sos-sou-bohumin.cz Knížka: Číslicová technika, Matoušek D., 2002