O codificador e decodificador são circuitos digitais simples e com aplicações interessantes. Vamos estudá-los para entender o que são e como funcionam.

Na aula anterior, vimos como representar qualquer porta-lógica com as portas NAND e NOR.


Informações básicas

Até então, nós estudamos sobre as portas lógicas e como utilizá-las. E, conforme foi dito em aulas anteriores, elas são a base dos sistemas digitais.

Sendo assim, o que será visto nesta aula nada mais é do que as portas lógicas sendo utilizadas para criar circuitos de média complexidade. Isto é, os codificadores e decodificadores são circuitos construídos a partir de portas lógicas para executar determinadas funções que veremos adiante.


Codificador

Conceito

O codificador é um circuito que possui diferentes entradas e um valor de saída para cada uma delas. Ou seja, o valor da saída depende de qual entrada for acionada. E, como o próprio nome do circuito diz, a saída é uma codificação da entrada.

A saída é um valor binário que pode ser de 1 ou mais bits. Já as entradas são independentes, sendo cada uma de 1 bit (indica se está ou não acionada). E só uma entrada pode ser acionada por vez.

Exemplo de codificador

Um exemplo comum é o codificador de decimal para binário. Vamos considerar que ele seja de 4 entradas e que cada entrada representa um número decimal, conforme mostra a imagem seguinte:

Codificador 4 entradas 2 saídas

O objetivo deste codificador, conforme o nome diz, é indicar qual é a correspondência do número selecionado em binário. Por exemplo, se a entrada 3 fosse selecionada, as saídas S1 e S0 indicariam 11. Isto porque 11 é a correspondência em binário do número decimal 3.

Este codificador é útil caso você esteja desenvolvendo um circuito em que seja necessário selecionar um número para controlar o seu sistema. Pois é mais fácil você selecionar este número em decimal, mas a eletrônica digital entende apenas binário, então você utiliza este codificador para resolver o problema.

Construindo um codificador

Conforme foi comentado no início do post, um codificador nada mais é do que um arranjo de portas lógicas. E, sua estrutura interna vai variar de codificador para codificador.

Mas, por curiosidade, irei mostrar como construir um possível circuito do codificador de decimal para binário mostrado no tópico anterior. Não há muito mistério, pois é só aplicar as técnicas ensinadas nas aulas anteriores (circuito combinacional e Mapa de Karnaugh).

A grande novidade está na tabela-verdade, pois agora apenas uma entrada é acionada por vez. Portanto, só vão interessar as linhas da tabela-verdade em que só uma das entradas estiverem em 1. As demais linhas são consideradas don’t care. Com isto, a expressão final das saídas será uma “soma” de algumas entradas. Logo, para o exemplo anterior:

Tabela verdade do codificador de decimal para binário de 2 bits

Construí a tabela começando da entrada 0, mas poderia ter feito o contrário e começado com a entrada 3. O resultado final seria o mesmo. Enfim, com base nesta tabela verdade, o seguinte circuito foi construído no Logisim:

Codificador Decimal Binário 2 bits

Na imagem acima, a entrada 2 está sendo acionada, resultando na saída: 10 (S1 em alta e S0 em baixa). O circuito apresentado funciona corretamente, mas tem um defeito: não há diferença entre nenhuma entrada estar selecionada e a entrada 0 (zero) estar selecionada. Isto porque 0 em binário deveria ser 00 mesmo.

Para resolver este problema, pode ser adicionada uma entrada auxiliar indicando que alguma das outras entradas está selecionada.

Decodificadores

Conceito

Os decodificadores são parecidos com os codificadores, porém com a lógica de funcionamento invertida:

É um circuito que possui diferentes saídas e um valor de entrada para cada uma delas. Ou seja, uma saída específica é acionada dependendo do valor da entrada. E, como o próprio nome do circuito diz, a saída é uma decodificação da entrada.

A entrada é um valor binário que pode ser de 1 ou mais bits. Já as saídas são independentes, sendo cada uma de 1 bit (indica se está ou não acionada). E só uma saída pode ser acionada por vez.

Exemplo de decodificador

Seguindo o mesmo raciocínio de antes, podemos exemplificar com o decodificador de número binário para decimal (contrário do anterior). Vamos considerar que ele tenha 4 saídas e que cada saída representa um número decimal, conforme mostra a imagem seguinte:

Decodificador 2 entradas 4 saídas

O objetivo deste decodificador, conforme o nome diz, é indicar qual número decimal corresponde ao número binário na entrada. Por exemplo, se a entrada fosse 10, a saída 2 seria acionada. Isto porque 10 é a correspondência em binário do número decimal 2.

Este decodificador é útil caso você esteja desenvolvendo um circuito em seja necessário indicar um valor do sistema. Pois é mais fácil você visualizar este valor em decimal, mas a eletrônica digital entende apenas binário, então você utiliza este decodificador para resolver o problema.

Construindo um decodificador

Irei mostrar como construir um possível circuito do decodificador de binário para decimal mostrado no tópico anterior. Novamente, a ideia é aplicar as técnicas ensinadas nas aulas anteriores.

Mas neste caso, as saídas na tabela-verdade ficarão em alta em apenas uma das linhas, pois agora apenas uma saída é acionada por vez. Portanto, será necessário só uma linha para construir a expressão final da saída e a expressão final das saídas será apenas uma AND entre as entradas (barradas ou não). Logo, para o exemplo anterior:

Tabela verdade do decodificador de binário para decimal de 2 bits

E, com base nesta tabela verdade, o seguinte circuito foi construído no Logisim:

Decodificador binário decimal

Na imagem acima, a entrada E0 está em nível alto e E1 está em nível baixo (resultando em: 01). Com isto, a saída 1 é acionada.


Demais aplicações dos codificadores e decodificadores

Existem outras aplicações além das duas que foram mostradas. Por exemplo um decodificador que converte um número binário para um número decimal em um display de 7 segmentos (display da imagem abaixo).

Fonte: Wikipedia

Este decodificador converte um número binário para o acionamento dos segmentos do display de acordo com o número especificado (0-9). E é possível encontrar este tipo de decodificador já montado em um CI, como é o caso dos CIs 7446, 7447, 7448 ou 7449.

Esta é a aplicação mais útil, mas há também: decodificadores de BCD para decimal, de código gray para decimal etc..


Considerações finais

Está aula foi bem básica e serviu para introduzir conceitos de circuitos que serão vistos na próxima aula. Entretanto, os circuitos vistos aqui não deixam de ter sua utilidade.

De todo modo, na próxima aula, iremos estudar sobre os multiplexadores e os demultiplexadores que são bastante utilizados nas telecomunicações.