Kodér

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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. +more 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. +more 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. +more 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. +more 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. +more 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.

tlačítkovýstupytlačítkovýstupytlačítkovýstupy
Q3Q2Q1Q0Q3Q2Q1Q0SQ3Q2Q1Q0S
275px
+morepng'>275pxžádné0000žádnéXXXX0žádnéXXXX
275px0000100000100000
275px1001010001110001
275px2001120010120010
275px3010030011130011
275px4010140100140100
275px5011050101150101
275px6011160110160110
275px7100070111170111
275px8100181000181000
275px9101091001191001
275pxOK1011OK10101OK1010
275px#1100#10111#XXXX
275px1+x00001+xXXXX0#+11011
275px#+21100
275px#+31101
275px#+41110
275px#+51111
275px#+nXXXX
275px1+mXXXX
v rowspan="4"|Vysvětlivky:Xlibovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1
v rowspan="4"|Vysvětlivky:1+xlibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačíteklibovolná kombinace stisknutí více tlačítek
v rowspan="4"|Vysvětlivky:#+nlibovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5
v rowspan="4"|Vysvětlivky:1+#libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5
.

Dynamický kodér

Příklad kodéru pro klávesnici jednoduché kalkulačky. +more 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).

adresařádkyadresasloupcekódS
A1A0Q3Q2Q1Q0I0I1I2I3I4Q3Q2Q1Q0
275px
+morepng'>275pxXXXXXXXX111XXXX
275px00HHH0000111011
275px00HHH0001010000
275px00HHH0001101010
275px01HH0H100110001
275px01HH0H101010010
275px01HH0H101100011
275px10H0HH010110100
275px10H0HH011010101
275px10H0HH011100110
275px110HHH110110111
275px110HHH111011000
275px110HHH111101001
275pxs použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínačes použitím "#" jako přepínače
00HHH000011XXXX0(#) # + OK
275px00HHH0000101011
275px00HHH000011XXXX
275px01HH0H101101100
275px00HHH000011XXXX
275px10H0HH011101101
275px00HHH000011XXXX
275px110HHH111101110
v rowspan="3"|Vysvětlivky:Xlibovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1libovolný stav, log. 0 nebo log. 1
v rowspan="3"|Vysvětlivky:Hstav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedancestav vysoké impedance
v rowspan="3"|Vysvětlivky:impulsimpulsimpulsimpulsimpulsimpulsimpulsimpulsimpulsimpulsimpulsimpulsimpulsimpuls
.

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. +more 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. +more 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ů. +more 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.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top