Kódování dat Střední odborná škola Otrokovice www.zlinskedumy.cz Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Miloš Zatloukal Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785, financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze. www.zlinskedumy.cz
Charakteristika DUM 2 Název školy a adresa Střední odborná škola Otrokovice, tř. T. Bati 1266, 76502 Otrokovice Číslo projektu CZ.1.07/1.5.00/34.0445 /4 Autor Ing. Miloš Zatloukal Označení DUM VY_32_INOVACE_SOSOTR-PE-CT/2-EL-4/8 Název DUM Kódování dat Stupeň a typ vzdělávání Středoškolské vzdělávání Kód oboru RVP 26-41-L/52 Obor vzdělávání Provozní elektrotechnika Vyučovací předmět Číslicová technika Druh učebního materiálu Výukový materiál Cílová skupina Žák, 19 – 20 let Anotace Výukový materiál je určený k frontální výuce s doplňujícím výkladem vyučujícího; náplň: seznámení s kódováním informace, druhy kódů Vybavení, pomůcky Dataprojektor Klíčová slova Číslo, číslice, kód, BCD, abeceda, kódování, váhy, řády, sedmisegmentový, Aiken, redundance, komprese, BIN, OCT, HEX, Gray, kódy k z n, ochranný, zabezpečovací, paritní, indikační, opravný, korekční, Hamming, Karnaughova mapa, CS, CRC, ASCII, UNICODE. Datum 8. 7. 2013
Kódování dat Obsah tématu Kód – definice, vlastnosti Důvody kódování signálů Dělení kódů BCD kód Grayův kód Kódy k z n Ochranné kódy Znakové kódy
Kódy Kód obecně patří do oblasti zpracování informace a zahrnuje: – předpisy, podle nichž je nějakému objektu jednoznačně přiřazena vybraná kombinace prvků množiny daného kódu – pravidlo pro jednoznačné přiřazení prvků dvou množin – že prvky první množiny jsou vyjádřeny pomocí prvků z druhé množiny Prvek kódu: – člen množiny se označuje jako znak (písmeno, číslice, symbol, značka) – znak má přiřazen určitý význam (nese tak informaci) Abeceda: – množina všech znaků dané skupiny Kódování: – jde o realizaci kódovacího pravidla – provádí ji obvod zvaný kodér, nazpět dekodér. Vše může být také prováděno softwarově – tedy programem.
Kódy – pokračování Důvody kódování signálu Signál – je fyzickým nositelem informace. Proč se informace pro přenos signálem kóduje? – zmenšení objemu přenášené (či ukládané) informace (datová komprese, komprimace obsahu zprávy) – ochrana obsahu přenášené zprávy před chybami, způsobenými poruchami a rušením (v tomto případě je naopak informace „zvětšována“ přidáním pomocné zabezpečovací informace – označuje se jako “nadbytečná“ – redundantní) – ochrana obsahu zprávy před neautorizovaným čtením – šifrování (viz. např. kódovací stroj Enigma za II. světové války) – přizpůsobení přenášené zprávy fyzikálnímu prostředí, kterým je přenášena (např. modulace signálů v rozhlasovém vysílání) – AM, FM a další).
Kódy – pokračování Dělení kódů Kódů je mnoho a záleží pro jaký účel jsou používány. K základním pak patří používané číselné soustavy – běžně používané pro míry, váhy, vyčíslení hodnot (desítková soustava) – pro měření času, úhlů (šedesátková soustava) – pro vyjádření číslicové informace základní soustava dvojková – binární (BIN) a z ní odvozené používané soustavy osmičková (oktalová – OCT) šestnáctková (hexadecimální – HEX)
Kódy – pokračování dělení kódů – pro vyjádření číslicové informace rozšířené BCD kód (dvojkově desítkový – binárně dekadický) Grayův kódy k z n ochranné kódy paritní samoopravný – Hammingův znakové kódy pětibitový (telegrafní a dálnopisný) sedmibitový (ASCII) osmibitový (ACSII 2, ISO 8) šestnáctibitoý (Unicode) Pozn. Existuje množství dalších kódů – např. čarové kódy (označování výrobků a dílů) nebo QR kódy (pro rychlé zjištění informace pomocí mobilního telefonu a internetu) a mnohé další…
BCD kód - BCD = Binary Coded Decimal (dvojkově vyjádřené desítkové číslo) - jde o zápis desítkových čísel pomocí čtyř bitů - typů BCD je více, nejběžnějším typem je BCD kód s vahami 8-4-2-1 - jde o kód smíšený - kombinuje vlastnosti jak kódu desítkového, tak dvojkového. - z desítkového převzal řády – např. jednotky, desítky, stovky… - z dvojkového pak vyjádření každé desítkové číslice čtveřicí bitů dvojkového čísla - ve srovnání s přímým dvojkovým kódem je méně úsporný (např. pro dvojkové číslo o 10 bitech potřebuje 12 bitů v BCD vyjádření) Použití BCD kódu: – u čítačů, kde se čítají události a zjištěné počty se zobrazují (například u desítkového čítače do 999 má každá dekáda jednu čtyřbitovou BCD číslici) – u A/Č převodu metodou sériového porovnávání po řádech – jako vstupní kód u dekodéru (např. BCD kódu na kód sedmisegmentových zobrazovačů nebo na kód 1 z 10)
BCD kód – pokračování - výhoda BCD kódu s vahami 8-4-2-1 - čísla v tomto kódu BCD jsou shodná s šestnáctkovými čísly – tedy v „povoleném“ rozsahu 0 až 9 (0000 až 1001) Příklad č. 1: Převeďte desítkové číslo 849 do kódu BCD Řešení: 8421 8421 8421 (849)10 = (1000 0100 1001)BCD = (100001001001)BCD 8 4 9 (bez mezer mezi čtveřicemi) Příklad č. 2: Převeďte BCD číslo 10000011 na desítkové číslo. Řešení: 8421 8421 8421 (100000110111)BCD = (1000 0011 0111)BCD = (837)10 8 3 7 Existují i jiné BCD kódy - BCD+3 (Excess 3) – pro jednodušší desítkové operace - s jinými vahami než je 8-4-2-1 - kód s vahami 4-2-2-1 3-3-2-1 2-4-2-1 (Aikenův kód pro obousměrné čítače)
– u inkrementálních (přírustkových) snímačů polohy Grayův kód - je zvláštní tím, že sousední dvě čísla se liší vždy pouze o jediný bit – používá se – u inkrementálních (přírustkových) snímačů polohy (jde u nich o posun pravítka nebo úhlové natočení hřídele či kódového kotouče) – při grafické metodě minimalizace logických funkcí pomocí Karnaughovy mapy Jak se převede desítkové číslo do Grayova kódu? – nejprve se převede na dvojkový kód – z tohoto čísla výpočtem vznikne číslo Grayově kódu (má stejný počet bitů – k převodu z dvojkového do Grayova kódu použijeme logickou funkci XOR (nerovnost) Desítkový Dvojkový Liší se o Grayův 6 0110 0101 7 0111 1 bit 0100 8 1000 4 bity 1100
Grayův kód – pokračování XOR NEROVNOST – EXKLUZIVNÍ SOUČET (Y platí pokud jsou vstupy RŮZNÉ)
Grayův kód – pokračování Postup převodu čísla ve dvojkovém kódu do Grayova kódu – označení jednotlivých bitů – B (bity Bn až B1, největší je Bn) – dvojkové číslo - G (bity Gn až G1, největší je Gn) – číslo ve výstupním Grayově kódu Převod uskutečníme podle vztahů Gn = Bn Gn-1 = Bn Bn-1 Gn-2 = Bn-1 Bn-2 . G2 = B3 B2 G1 = B2 B1 Z rovnic je vidět, že nejvyšší bity jsou shodné, dále vzniknou bity G postupným porovnáním sousedních bitů čísla B – bit G má hodnotu 1 jsou-li příslušné bity čísla B různé. Počet a obsah rovnic závisejí na počtu bitů vstupního čísla
Grayův kód – pokračování Příklad: Převeďte desítkové číslo 29 do Grayova kódu. Řešení: (29)D rozložíme do řady mocnin dvojky – tedy do řady 16, 8, 4, 2, 1 Jednička bude u 16,8,4,1 (11101) Zk.: 16 + 8 + 4 + 1 = 29 (29)10 = (11101)2 – jde o pětibitové dvojkové číslo Dále budeme postupovat podle rovnic: G5 = B5 G4 = B5 B4 G3 = B4 B3 G2 = B3 B2 G1 = B2 B1 Výsledek (11101)B = (10011)G
Grayův kód – pokračování Postup převodu čísla z Grayova kódu do dvojkového kódu Převod se děje podle rovnic: Bn = Gn Bn-1 = Gn Gn-1 Bn-2 = Gn Gn-1 Gn-2 . B2 = Gn Gn-1 Gn-2 … G3 G2 B1 = Gn Gn-1 Gn-2 … G3 G2 G1 Rovnice je možné zjednodušit – viz příklad Příklad: Podle rovnic převeďte (10011)G na dvojkové číslo. B5 = G5 B4 = G5 G4 = B5 G4 B3 = G5 G4 G3 = B4 G3 B2 = G5 G4 G3 G2 = B3 G2 B1 = G5 G4 G3 G2 G1 = B2 G1
Grayův kód – pokračování Postup převodu čísla z Grayova kódu do dvojkového kódu Podle předchozích rovnic Gi = f(Bi), kde Gi jsou bity výstupního čísla v Greyově kódu, B i jsou bity vstupního čísla ve dvojkovém kódu a s pomocí substituce, kdy do nového výstupního bitu Gi počítáme předchozí výstupní bit (vznikajícího dvojkového čísla) Bi+1 Z rovnic je vidět, že nejvyšší bity jsou shodné, další bity čísla B vzniknou postupně porovnáním příslušného bitu čísla G a předchozího bitu výsledku B. Příklad: Převeďte číslo 10011 v Grayově kódu do dvojkové soustavy. Řešení: (10011)G = (11101)B Popis: Nejvyšší bit byl opsán, pak se tato 1 z výsledku porovnává s druhým bitem zleva vstupního čísla (zde nula), vznikne jednička, tato se porovná s následujícím bitem vstupního čísla (zde nula) a tak stále dokola, dokud se nedojde na poslední bit vstupního čísla (ten co je nejvíce vpravo).
Kódy k z n – takové kódy, kde „n“ určuje počet bitů kódového slova „k“ je pevný počet jedniček, které se v kódovém slově vyskytují Použití: – jako kódy „1 z n“ se používají také u dekodérů, kde n = 2, 4, 8, 10, 16 apod. (jde zde pak o zadaný typ výstupu typu – „plovoucí nula nebo plovoucí jednička“. – u kódování řídicích signálů – jde o kódy „1 z n“, kde n = 2 až 10 – také se používaly v telefonních ústřednách – kód „2 z 5“ Poznámka: Obecně jde o kódy detekční, tzn. že umějí rozpoznat (detekovat) jednu chybu (např. po přenosu informace).
Ochranné kódy – zabezpečovací kódy Jak zabezpečit informaci proti chybě při přenosu vlivem např. rušení? – k přenášené žádané informaci (např. v podobě n – bitového čísla) je přidána informace pomocná (kontrolní, zabezpečovací) – přidané informaci (jde o jeden či několik bitů umístěných kamkoliv k bitům zprávy) se také říká redundantní (navíc) Jak se vytvoří pomocná (přidaná) informace? – na základě určitého algoritmu z informačního obsahu zprávy – počítá se dvakrát – jednou před přenosem, – podruhé po ukončení přenosu Kdy je přenos bez chyby? – pokud jsou obě kontrolní informace shodné
Ochranné kódy – zabezpečovací kódy – pokračování Co když nejsou obě kontrolní informace shodné? - pak lze chybu detekovat (jednoduchý kontrolní kód) (oznámit, že nastala, ale neví se přesně v kterém bitu) - určit přesně bit, který je chybný (lokalizace chyby) bez opravy (to umí složitější kontrolní kód) - oprava nalezené chyby a získání bezchybné informace (korekce chyby) – ideální stav. Pokud je chyba zjištěna a zabezpečovací kód ji „neumí“ opravit, pak je nutné přenos informace opakovat do té doby, než bude přenesena bezchybně. Obr. 1: Zabezpečení přenosu informace
Ochranné kódy – zabezpečovací kódy – pokračování Dělení zabezpečovacích kódů detekční (oznamovací) opravné samoopravné (korekční) Příklady zabezpečovacích kódů Paritní kód – kontrola paritou (detekční) Hammingův kód (samoporavný) Kontrolní součet – CS (Check Sum) Kódy CRC (Cyclic Redundancy Code)
Znakové kódy - jde o kódy pro práci s alfanumerickými znaky - jde o vícebitové kódy (počet bitů označme „n“) - vyjadřují písmena, číslice, dále různé pomocné a řídicí znaky - množina znaků, vytvořená pomocí kombinací jednotlivých bitových slov při pevném počtu bitů má 2n členů - znakový kód je popsán tabulkou, která pevně přiřazuje znaku „pořadové“ číslo, (které je zapsáno dvojkově nebo šestnáctkově) a je pro daný znak příslušným kódovým n- bitovým slovem Počet bitů n Počet znaků Označení Pozn. 5 32 MTA2 Telegrafní 7 128 ASCII 8 256 ASCII 2 16 65 536 UNICODE
Pětibitový telegrafní kód - používal se pro přenos dat u dálnopisu, - nesl označení telegrafní kód – MTA2 (CCITT 2) - používal se také pro záznam dat na pětistopé papírové děrné pásce (otvor značil jedničku). - Je pětibitový, má 32 kódových slov - Obsahuje: - 26 písmen velké abecedy (A – Z) - číslice (0 – 9) - pomocné znaky (např. ?, -, :, /, +… je jich 12) - řídicí znaky (Bell – zvonek CR – návrat vozíku LF – nový řádek konec přenosu znak pro přepnutí na čísla –„11011“ (zde se jimi myslí i pomocné znaky) znak pro přepnutí na písmena –„11111“ - celkem tento kód tedy obsahuje 55 znaků, kódovaných pomocí pěti bitů (32 kódových slov)
Sedmibitový kód – ASCII – 1963 (American Standard Code for Information and Interchange) - navržen pro číslicové počítače, zajišťoval kompatibilitu přenášených dat ASCII má tyto vlastnosti: - obsahuje celou anglickou abecedu a desítkové číslovky, dále základní matematické a gramatické grafické symboly - řídící znaky pro formátování textu a obsluhu k počítačům připojovaných přístrojů - kódovací tabulka převádí znaky do dvojkového kódu - jeden znak musí zabírat maximálně 1 bajt (8 bitů) - osahuje kontrolní mechanismus – 8. bit je paritní (kontrola paritou – nalezení jedné chyby) - jiná označení než ASCII: ASCII 1, po mírných úpravách (jiné grafické symboly a řídicí znaky) z něj vznikl kód ISO-7 a KOI-7 Použití: - pro sériový přenos dat - používal se u minipočítačů a pro záznam dat na děrnou pásku - pro zobrazování znaků na monitoru počítače - i dnes ještě se něm vytvářejí zdrojové texty programů (programování v nižších a vyšších jazycích)
Znakové kódy – pokračování Osmibitový kód – ASCII 2 – 1967 - rozšířený ASCII, říká se mu také ASCII 2 - pro mikropočítače a osobních počítačů - vznikl ze sedmibitového kódu ASCII podle pravidla na obrázku - kód existuje i jako ISO-8 (má ale některé grafické a řídicí znaky odlišné od ASCII 2) nebo jako KOI-8 - kód obsahuje 256 znaků - prvních 128 je standardem na všech počítačích (HW a SW - dalších 128 se používá pro znaky lokálních abeced - kódy 0 – 31 jsou řídící kódy, dále následují písmena (velká a malá), číslice a speciální znaky pro datové komunikace - kód byl velmi rozšířen před nástupem OS Windows XP a novějších Obr. 2: Pravidlo pro osmibitový ASCCI kód ze sedmibitového
Znakové kódy – pokračování Šestnáctibitový kód – UNICODE – 1991 - pochází z ASCII - je 16 bitový - je mezinárodní - obsahuje znaky hlavních světových abeced a také používané technické znaky - je podporován v novějších operačních systémech a všech moderních prohlížečích - je stále ve vývoji (jsou přidávány další nové znaky) Některé nevýhody: - větší objem dat (pro 1 znak jsou potřeba 2 bajty) - rozsáhlejší znakové sady - není zpětně kompatibilní – soubory v Unicode nelze jednoduše převádět do starších znakových kódů Jaké jsou typy zápisu znaků v kódováni Unicode? - UCS-2 (Universal coded Character Set) - UTF-7 (Universal Transformation Format) – nahrazuje sedmibitový ASCII - UTF-8 – nahrazuje osmibitový ASCII
Kontrolní otázky OCT je zkratka kódu Šestnáctkového Dvojkového Osmičkového 2. Výraz „1 z 10“ má nejvýraznější spojitost s kódem Hexadecimálním BCD Binárním 3. Kód, u něhož se dvě sousední čísla liší vždy pouze o bit se nazývá Grayův Aikenův Hammingův
Kontrolní otázky – správné odpovědi OCT je zkratka kódu Šestnáctkového Dvojkového Osmičkového 2. Výraz „1 z 10“ má nejvýraznější spojitost s kódem Hexadecimálním BCD Binárním 3. Kód, u něhož se dvě sousední čísla liší vždy pouze o bit se nazývá Grayův Aikenův Hammingův
Seznam obrázků: Obr. 1: vlastní, Zabezpečení přenosu informace Obr. 2: vlastní, Pravidlo pro osmibitový ASCCI kód ze sedmibitového
Seznam použité literatury: [1] Matoušek, D.: Číslicová technika, BEN, Praha, 2001, ISBN 80-7232-206-0 [2] Blatný, J., Krištoufek, K., Pokorný, Z., Kolenička, J.: Číslicové počítače, SNTL, Praha, 1982 [3] Kesl, J.: Elektronika III – Číslicová technika, BEN, Praha, 2003, ISBN 80-7300-075-X
Děkuji za pozornost