Kodiranje je suprotna operaciju od
dekodiranja i označava postupak dogovornog jednoznačnog
pridruživanja skupa ulaznih binarnih cifri odgovarajućem
binarnom nizu - kodu. Kombinaciona mreža koja obavlja ovu
operaciju naziva se koder (engleski encoder).
Koder je kombinaciona mreža koja na izlazu daje n bitni binarni
kod zavisno od m aktiviranih ulaza, 0<=m<=2n-1.
Kod kodera na ulazima može biti
maksimalno jedan aktivan ulaz
i njegov položaj (id) se izbacuje
na izlaz:
2n
ulaza (ali samo jedan aktivan) n izlaza
Odnos broja ulaza i
izlaza definiše da li je koder potpun ili nepotpun.
|
Pod koderom, uopšteno, može se smatrati i
program (pa čak i algoritam i čovjek) koji obavlja
konverziju podataka iz jednog formata (ili načina
zapisa) u drugi. |
Potpuni i nepotpuni koderi
Koderi mogu biti potpuni, odnosno binarni, kada
imaju 2n ulaza i n izlaza i nepotpuni, kada
je za n izlaza broj ulaza manji od 2n.
Za potpune kodere važi m = 2n; imaju n izlaza
i 2n ulaza
Za nepotpune kodere važi m < 2n imaju n
izlaza i manje od 2n ulaza
U opštem slučaju koder na izlazu daje kodovanu
informacija u vidu binarnog broja sa n cifara i
predstavlja se blok šemom na slici lijevo |
|
U praksi (praktičnim
implementacijama) koriste se prioritetni koderi,
svakom ulazu je dodjeljen prioritet, a izlaz kodera,
interpretiran kao binarni broj, ukazuje na indeks aktivnog ulaza
najvišeg prioriteta. Za sve vrijeme dok je aktivan ulaz visokog
prioriteta, svi ulazi nižeg prioriteta se ignorišu.
Potpuni koder 3/8
(Octal to binary encoder)
Potpuni koder 8/3 ima 8 ulaza i 3 izlaza.U
datom trenutku samo jedan od ulaza kodera može biti aktivan
(imati signal 1). U tom trenutku, u zavisnosti od toga koji je
ulaz aktivan, na izlazu se generiše binarna kombinacija bitova
koja odgovara rednom broju aktivnog ulaza.
U ovoj definiciji kodera u pojedinom trenutku samo jedan od
ulaza smije biti u stanju jedinice.
Neregularna stanja kodera
Treba primjetiti da će na izlazu biti "000"
čak i kad su svi ulazni neaktivni. Ako se želi razrješiti i ova
situacija može se dodati još jedan izlaz koji bi označavao da li
su podaci na izlazu validni (ispravni u smislu jedan ulaz je
aktivan) ili nisu (svi ulazi su nekativni). Moguće rješenje ovog
problema je prioširenje kombinacione tablice kodera tako da
dodamo još jedan izlaz W pa bi ta tablica izgledala:
Izlaz w pokazuje regularno stanje u slučaju kada je 1. Kada je
w=0 indicira se neregularno stanje.
Prioritetni koderi
U slučaju kada je više od jednog ulaza
aktivno, koder će izbaciti pogrešnu vrijednost. U nekim
slučajevima je zgodno imati i koder koji bi imao mogućnost rada
i u slučajevima kada je više ulaza istovremeno aktivno. Takvi
koderi se nazivaju koderi sa prioritetom, jer na izlaz izbacuju
kod ulaza višeg prioriteta.
Definisanje prioriteta rješava slično
predhodnom primjeru sljedeća kombinaciona tablica:
gdje su proizvoljna stanja na ulazu prikazuju
kao X (nije važno da li su 0 ili 1). Kod ovakvih kodera kad
pritisnete više tastera smatra se da je aktivan samo onaj koji
ima najveću težinu - prioritet (bez obzira što su
pritisnuti drugi).
Napomena: U slučaju
prioritetnog kodera obavezna je kontrolni izlaz w koji indicira
neregularnost.
|