Kodér

Obecná značka kodéru

Kodér je kombinační logický obvod, který na základě kombinační tabulky z kombinace vstupních dat (x) vstupního kódu vytváří na výstupu (y) kód jiný nebo pozměněný. Funkce kodéru je inverzní k funkci dekodéru.

Popis

Kodér má n vstupních signálů x0 … xn-1 jejichž kombinace vytváří na k výstupech y0 … yk-1 jinou kombinaci signálů. Obecně platí, že n > k. Volitelně je možno použít strobovací výstup s pro vzorkování signálu nebo signál e pro uvolnění.

Kodér – integrovaný obvod

Jako příklad je uveden kodér pro převod (identifikaci) stisknutého tlačítka jednoduché klávesnice kódového zámku nebo platebního terminálu. Při stisknutí tlačítka vyhodnotí kodér tuto informaci a přiřadí výstupním signálům kód odpovídající stisknutému tlačítku.

Statický kodér

Statický dekodér má na vstupy I0 až I11 přivedeny signály od jednotlivých tlačítek klávesnice. Každé tlačítko je vybaveno kontakty, které vodič připojený na vstup kodéru spojí s nulovým potenciálem. Pro zajištění potřebné napěťové úrovně je každý vodič ošetřen odporem připojeným na napájecí napětí. Při stisknutí tlačítka se změní úroveň napětí na vstupu kodéru ze stavu log. 1 na log. 0. Kodér vyhodnocuje stav vstupů a je-li stisknuto tlačítko, přiřadí výstupním signálům Q0 až Q3 odpovídající kód.

Použitá klávesnice obsahuje 12 tlačítek, ke generování kódu podle stisknutého tlačítka jsou potřeba 4 signály (n=4, 2n = 24 = 16 > 12). Vzhledem k tomu, že je nutno používat i tlačítko "0" (nula), kterému se standardně taktéž přiřazuje hodnota "0", která je pomocí 4 signálů binárně vyjádřena jako 0000B, je nutno zajistit detekci tohoto stavu na výstupech.

S posunutím kódu

Jednou z možností je generovat výstupní kód s posunutím, například m+1, kde m odpovídá hodnotě stisknutého tlačítka. Hodnota pro tlačítko "0" pak bude binárně na výstupech vyjádřena jako 0001B. V případě, že je využíváno pouze 12 možných stavů ze 16, tato situace nevadí. V případě, že by bylo potřeba využívat stejný počet tlačítek jako je možných kombinací na 4 výstupních signálech, tj. 16, není již toto řešení vhodné, protože by bylo nutno počet možných kombinací redukovat právě o posunutí, tedy o 1, maximálně možný počet tlačítek by byl v tomto případě pouze 15.

Nevýhodou takovéhoto kodéru je to, že každé tlačítko musí být připojeno samostatně jedním vodičem s odporem. Takové řešení je sice principiálně jednoduché, ale je vhodné pouze pro klávesnice s malým počtem tlačítek. Pro klávesnice, které se používají u PC s více než 100 tlačítky již toto řešení není vhodné.

Se strobovacím signálem

Druhou možností je využití strobovacího signálu se zachováním možnosti využití všech kombinací, které je možno na 4 výstupech vyjádřit, i když v konkrétním případě se využívá pouze 12 tlačítek ze 16 možných kombinací na výstupech Q0 až Q3. Výstupní strobovací signál je generován právě tehdy, je-li stisknuto právě jedno tlačítko. V případě stisknutí více tlačítek není signál strobování generován, jakoby nebylo stisknuto tlačítko žádné a tím je ošetřen nežádoucí stav současného stisknutí několika tlačítek. Při použití strobovacího signálu je možno dále rozšířit počet generovaných kódů na 4 výstupních signálech až na 16 i na klávesnici s 12 tlačítky tak, že jednomu tlačítku bude přiřazena funkce přepínače (v příkladu "#"). Pro použití funkce přepínače platí, že tlačítko přepínače musí být stisknuto první a drženo.

Funkční tabulka kodéru
schema zapojení kódování s posunutím  kódování se stobováním  kódování se stobováním 
a rozšířením
tlačítkovýstupytlačítkovýstupytlačítkovýstupy
Q3Q2Q1Q0Q3Q2Q1Q0 S Q3Q2Q1Q0 S 
žádné0000žádnéXXXX0žádnéXXXX0
00001000001000001
10010100011100011
20011200101200101
30100300111300111
40101401001401001
50110501011501011
60111601101601101
71000701111701111
81001810001810001
91010910011910011
OK1011OK10101OK10101
#1100#10111#XXXX0
1+x00001+xXXXX0#+110111
#+211001
#+311011
#+411101
#+511111
#+nXXXX0
1+mXXXX0
Vysvětlivky:Xlibovolný stav, log. 0 nebo log. 1
1+xlibovolná kombinace stisknutí více tlačítek
#+nlibovolná kombinace stisknutí více tlačítek mimo #+1 … #+5
1+#libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5

Dynamický kodér

Příklad kodéru pro klávesnici jednoduché kalkulačky. Při maticovém zapojení je potřeba pouze 8 vstupních signálů kodéru, při použití statického kodéru by bylo nutno použít 23 vstupních signálů. Počet výstupních signálů kodéru je stejný, 5 + 1.

Řízený dekodér je použit ve spojení s maticovou klávesnicí, tedy takovou klávesnicí, kde jsou tlačítka zapojena mezi řádkové a sloupcové vodiče v tzv. matici. Každé tlačítko, při stisku, propojí odpovídající vodiče, nad kterými je umístěno. V porovnání s předchozím příkladem je toto zapojení úspornější v počtu potřebných vodičů a odporů. Zapojení pro svoji funkci potřebuje demultiplexor respektive dekodér s otevřeným kolektorem, který řídí stavové signály řádků a spíná je na společný potenciál, tedy na definovanou hodnotu log. 0. Řídící signály jsou zapojeny nejen na řádkový dekodér, ale i na vstupy kodéru, aby mohl pracovat s informací o tom, který řádek je aktuálně zvolen a podle změny stavu signálu ve sloupci mohl generovat správný kód. Na vstupních signálech A0 a A1 se cyklicky mění stav 0-3D (dekadická soustava), tj. 00-11B (binární soustava) v poměrně vysoké frekvenci, aby nedocházelo k čekání na vyhodnocení stavu. Dekodér během cyklu, kdy jsou aktivovány jednotlivé řádky Q0-Q3, sleduje stav na řádkových I0-I1 a sloupcových I2-I4 vstupů. Na konci cyklu vyhodnotí stav signálů a podle výsledku přiřadí výstupním signálům kódovou informaci, kterou potvrdí impulsem na výstupu S. Vyhodnocování až na konci cyklu je nutné z toho důvodu, aby bylo možno detekovat stav stisknutí více tlačítek, který je zpravidla nežádoucí. Stejně jako v předchozím případě je využíváno pouze 12 tlačítek ze 16 možných. Opět je možno jednomu z tlačítek přiřadit funkci přepínače a využít všech 16 kombinací na výstupu. V příkladu je jako přepínače použito tlačítko "#" a tlačítka v pravém sloupci (detekuje se pouze 15 stavů). Logika kodéru dále vyhodnocuje zakázané stavy současného stisknutí více tlačítek v řádku i ve sloupci a v takovém případě není generován impuls na výstupu S, pro použití tlačítka "#" jako přepínače platí, že musí být stisknuto jako první a následně k němu stisknuto jedno ze zvolených tlačítek "OK", "3", "6", "9" (obdobně jako se používá například klávesa SHIFT na PC klávesnici).

Funkční tabulka kodéru
schema zapojení řádkový dekodér  výstupní kodér stisknuté
tlačítko
adresařádkyadresasloupcekód S 
A1A0Q3Q2Q1Q0I0I1 I2  I3  I4 Q3Q2Q1Q0
XXXXXXXX111XXXX0žádné
00HHH0000111011#
10100000
1101010OK
01HH0H1001100011
10100102
11000113
10H0HH0101101004
10101015
11001106
110HHH1101101117
10110008
11010019
s použitím "#" jako přepínače
00HHH000011XXXX0(#)
# + OK
00HHH0000101011
00HHH000011XXXX0(#)
# + 3
01HH0H101101100
00HHH000011XXXX0(#)
# + 6
10H0HH011101101
00HHH000011XXXX0(#)
# + 9
110HHH111101110
Vysvětlivky:Xlibovolný stav, log. 0 nebo log. 1
Hstav vysoké impedance
impuls

V dnešní praxi je pro obsluhu klávesnice místo kodéru používán řadič klávesnice, který sdružuje všechny potřebné funkce a ošetření stavů včetně opakování znaků.

Kodér – enkodér polohy

Absolutní rotační enkodér s dělicím kotoučem

Enkodér je elektronická součástka, která převádí polohu pohyblivé části na kombinaci elektrických binárních signálů číselně vyjadřující absolutní polohu. Podle konstrukce se dělí na rotační absolutní enkodér, který poskytuje přímou informaci o úhlu natočení, a na lineární absolutní enkodér, který poskytuje přímou informaci o vzdálenosti.

Funkce

Odměřování polohy je realizováno tak, že je odměřovaná vzdálenost rozdělena na N úseků, které určují přesnost odměřování. Vlastní dělení je realizováno na disku nebo na pravítku tak, že je úsek vzdálenosti rozdělen na opticky propustné a nepropustné díly, jejichž postavení vzhledem k pevné (nepohyblivé) části je snímáno (čteno) pomocí optických prvků jako je fototranzistor, fotodioda. Vlastní rozdělení obvodu nebo vzdálenosti pouze na N dílků je pro určení absolutní polohy nedostačující, proto je takových to dělení obvodu nebo vzdálenosti realizováno několik s různou hustotou dělení v takzvaných stopách. Tyto stopy odpovídají binárnímu kódování čísla, které odpovídá poloze. Z hlediska přesnosti je u rotačních enkodérů stopa s nejjemnějším N dělením umístěna na vnějším obvodu.

Kódování

Použití dvojkové soustavy pro kódování není vhodné, protože v jednom okamžiku změny hodnoty dochází od stopy s váhou bitu 21 až 2m-1 ke změně stavu na několika bitech současně (m je počet výstupních bitů a 2m je počet možných stavů). Chyba synchronizace změny na jednotlivých bitech tak může způsobit chybu v rozsahu několik řádů. Z tohoto důvodu se používají enkodéry, jejichž výstup je kódován v některém z následujících bezpečnostních kódů eliminující hazardní stavy, kdy chyba nepřesáhne hodnotu ±1 dílku odměřování. Johnsonův kód je sice absolutně bezpečný, má však vyšší požadavky na počet přenášených bitů (signálů). V tomto případě je používán Grayův kód, který má stejné nároky na počet bitů jako dvojková soustava ale eliminuje hazardní stavy. I přes použití bezpečných kódů eliminující chyby na změnách jednotlivých váhových bitů se provádí ještě takzvané posunutí, kdy se k aktuální hodnotě připočte konstanta, například +3. Toto opatření umožňuje detekci prostého utržení nebo zkratu kabelu protože hodnota "0" se nikdy při správné činnosti nepřenáší.

Kodér – program

Programový kodér převádí oblast dat vyjádřenou jedním kódem na jiný kód. Podle funkce se může jednat o kódování za účelem utajení obsahu – šifrování nebo za účelem komprese dat, případně obojího.

Odkazy

Související články

Externí odkazy

Kodéry [online]. AmaPro [cit. 2012-02-11]. Dostupné v archivu pořízeném dne 2013-04-20. ((česky)) 

Literatura

  • ING. SYROVÁTKO, Milan; ING. ČERNOCH, Boleslav. Zapojení s integrovanými obvody. Praha: SNTL, 1975. 04-543-75. Kapitola Konvertory kódů, s. 306–320. ((česky)) 
  • Konstrukční katalog: Číslicové integrované obvody. [s.l.]: TESLA ELTOS, 1990. ((česky)(slovensky)) 
  • Katalog: Elektronických součástek, konstrukčních dílů, bloků a přístrojů. [s.l.]: TESLA ELTOS, 1986. ((česky)) 

Média použitá na této stránce

Lock Keyboard Coder 2.png
Autor: W.Rebel, Licence: CC BY-SA 3.0
Princip ovládání diskrétní tlačítkové sady
Calc Keyboard Coder.png
Autor: W.Rebel, Licence: CC BY-SA 3.0
Princip ovládání maticové tlačítkové sady
Absou.png
photographie d'un codeur absolu
Decoder.svg
Autor: W.Rebel, Licence: CC BY-SA 3.0
Decoder
Lock Keyboard Coder.png
Autor: W.Rebel, Licence: CC BY-SA 3.0
Princip ovládání maticové tlačítkové sady