domingo, 21 de outubro de 2007

Electrónica Digital

ELECTRÓNICA DIGITAL

Conceitos lógicos

Até agora temos tratado principalmente de circuitos em que as tensões de entrada e de saída variam num certo intervalo contínuo: circuitos RC, díodos, amp-ops, etc. Isto acontece quando os sinais com que trabalhamos são contínuos. No entanto existem situações em que o sinal de entrada é naturalmente discreto. Nesses casos o uso de Electrónica Digital (circuitos que tratam dados compostos de 1´s e 0´s) é natural e mais conveniente. Além do mais é por vezes desejável converter dados contínuos (analógicos) para a forma digital, e vice versa, de forma a tratar os dados num computador ou a guardar grandes quantidades de dados como números.
Outra aplicação interessante do poder das técnicas digitais é a transmissão de sinais analógicos sem degradação provocada pelo ruído.

Estados lógicos
Electrónica Digital significa circuitos nos quais existem apenas (geralmente) dois estados em qualquer ponto do circuito. Em geral trabalham-se com voltagens chamando aos níveis HIGH (alto) e LOW (baixo). Os dois estados representam “bits” (binary digits) de informação.

HIGH e LOW
Os níveis HIGH e LOW representam, de uma forma predefinida, os estados Verdadeiro e Falso da lógica Booleana. Para representar o estado Verdadeiro e Falso também são usados os algarismos 1 e 0, respectivamente.


Intervalo de voltagem
Em circuitos digitais os níveis de voltagem correspondentes a HIGH e LOW pertencem a um certo intervalo. Um exemplo é a tecnologia CMOS onde o nível LOW está a menos de 1,5 V do nível da terra (entre -0,3V e +1,5V) e o nível HIGH a 1,5V dos +5V (entre 3,5 e 5,5V), a qual é a tensão de alimentação. Isto permite ter em conta os defeitos de fabrico, as variações com a temperatura e com a tensão de entrada, a presença de ruído, etc.

Gates e tabelas de verdade
Existem dois tipos de lógica: combinatorial, que é resolvida por combinação dos impulsos de entrada, e sequencial, em que o resultado requer também o conhecimento dos impulsos anteriores. Para o primeiro caso utilizam-se gates lógicas (que vão ser agora estudadas) e no segundo são também necessários dispositivos com memória, como os flip-flops que irão ser tratados mais tarde.
Gate OR - A saída é HIGH se alguma das entradas for HIGH. O símbolo Booleano que se usa é “+” (símbolo de adição).



Gate AND - A saída é HIGH apenas se ambas as entradas forem HIGH. O símbolo Booleano que se usa é “.” (símbolo de multiplicação).



Gate NOT - Inverte o valor lógico da entrada. Para a representar usa-se ou uma barra sobre o símbolo ou um apóstrofe a seguir.
Gates NAND e NOR - São as gates AND e OR, respectivamente, seguidas de inversão.
Gate OR exclusivo - A saída só é HIGH se uma das entradas for HIGH e a outra for LOW. Representa-se pelo símbolo ?.

Lógica combinatorial
Neste tipo de lógica o estado à saída depende, de uma forma predeterminada, apenas dos impulsos presentes na entrada. Circuitos combinatoriais podem ser construídos recorrendo apenas a gates lógicas.

Identidades lógicas
A maior parte das identidades seguintes são óbvias. As duas últimas constituem o teorema de DeMorgan e são as mais importantes para o desenho de circuitos:
ABC=(AB)C=A(BC)
AB=BA
AA=A
A1=A
A0=0
A(B+C)=AB+AC
A+AB=A
A+BC=(A+B)(A+C)
A+B+C=(A+B)+C=A+(B+C)
A+B=B+A
A+A=A
A+1=1
A+0=A
1´=0
0´=1
A+A´=1
AA´=0
(A´)´=A
A+A´B=A+b
(A+B)´=A´B´
(AB)´=A´+B´
O símbolo ´ depois da letra representa a negação (também pode ser representada por uma barra por cima da letra).
Exemplo: a gate OR-exclusiva - Este exemplo ilustra o uso de identidades para realizar um OR-exclusivo a partir de gates normais. A partir da tabela de verdade podemos escrever, já que na saída apenas temos 1 quando (A,B)=(0,1) ou (1,0),
A?B=A´B+AB´
o qual pode ser implementado facilmente. Mas esta realização não é única, já que
A?B=AA´+AB´+BA´+BB´=
=A(A´+B´)+B(A´+B´)=A(AB)´+B(AB)´=(A+B)(AB)´
Minimização e mapas de Karnaugh
Como a realização de funções lógicas não é única, é por vezes desejável encontrar a mais simples, ou talvez a mais conveniente de construir. Um dos métodos mais simples de optimização, para problemas com 4 ou menos entradas, é através da utilização de mapas de Karnaugh. Ele permite encontrar a expressão lógica a partir da tabela de verdade. Este método vai ser ilustrado com um exemplo: imagine a seguinte tabela de verdade para a função que fornece a maioria de três entradas (a saída só é 1 se pelo menos duas das entradas o forem):
1º passo: Construir a tabela de verdade


Têm de ser representadas todas as combinações possíveis, com a saída correspondente.
2º passo: Construir um mapa de Karnaugh. É semelhante a uma tabela de verdade mas as variáveis são representadas ao longo de dois eixos. Além disso são dispostas de forma a que apenas é alterado um bit de entrada quando se move de uma célula para uma adjacente.



3º passo: Identificar no mapa os grupos de 1´s (ou, em alternativa, os grupos de 0´s). Os 3 grupos encontrados dão origem às expressões lógicas AB, AC e BC. Finalmente pode ser escrita a função requerida, neste caso
Q=AB+AC+BC
Em retrospectiva o resultado parece-nos óbvio. Se tivéssemos usado os grupos de 0´s teriamos obtido
Q´=A´B´+A´C´+B´C´
que teria sido útil se já existissem no circuito os complementos de A, B e C.


Lógica sequêncial
Dispositivos com memória: flip-flops


Toda a lógica digital até agora apresentada foi realizada com circuitos combinatoriais para os quais a saída é completamente determinada pelo estado das entradas. Não existe memória, não existe história, nestes circuitos. Tudo se torna mais interessante, e poderoso, quando são introduzidos dispositivos com memória. A unidade básica de memória é o flip-flop, o qual, na sua forma mais simples, está representado na figura.
Assumindo que A e B estão HIGH, qual o estado de X e Y ? Se X é HIGH, então ambas as entradas de G2 são HIGH, o que faz com que Y seja LOW, e o problema está resolvido. Certo ?
X=HIGH
Y=LOW
Errado ! O circuito é simétrico e então uma soluçãoo igualmente boa seria
X=LOW
Y=HIGH
Os estados X,Y ambos LOW e X,Y ambos HIGH não são possíveis (pois A=B=HIGH). Então o flip-flop tem dois estados estáveis (é por vezes chamado biestável). O seu estado depende da sua história. Tem memória ! Para escrever na memória, é apenas necessário levar uma das entradas momentaneamente a LOW. Por exemplo, levando A momentaneamente a LOW garante que o flip-flop passa para o estado
X=HIGH
Y=LOW
qualquer que seja o estado anterior.

Flip-flop síncrono
Flip-flops construídos com duas gates, como o representado na figura da secção anterior, são genericamente conhecidos como flip-flops SR (Set-Reset). Podem ser forçados a mudar para um estado ou para o outro quando se quizer apenas com o fornecimento do sinal de entrada correcto. Noutro tipo de flip-flop, mais utilizado, em vez de um par de entradas, possui uma ou duas entradas de dados e um sinal de relógio. As saídas podem ou não mudar de estado, dependendo dos níveis presentes nas entradas de dados quando chega o impulso de relógio.
O flip-flop síncrono mais simples está representado na figura seguinte. É apenas o nosso flip-flop original, com um par de gates (controladas pelo relógio) que permitem os impulsos de SET e de RESET. A tabela de verdade é a seguinte:







onde Q(n+1) é a saída depois do impulso do relógio e Q(n) é a saída antes do impulso do relógio. A diferença básica entre este e o flip-flop anterior é que R e S devem agora ser considerados entradas de dados. O que está presente em R e S quando chega o impulso de relógio determina o que acontece a Q.



Flip-flops Master-slave e edge-triggered



Estes são, sem dúvida, os flip-flops mais populares. Os dados presentes nas linhas de entrada no momento antes da transição do relógio, ou edge, determina o estado à saída depois da transição. Estes flip-flops estão disponíveis em circuitos integrados baratos e são sempre usados nessa forma. Não se vai entrar em pormenores da sua realização e operação, fica apenas a ideia de que são formados juntando flip-flops síncronos.



Flip-flop JK
Funciona da mesma forma que os flip-flops mais simples mas tem duas entradas de dados. A tabela de verdade é a seguinte:


Então, se J e K são complementares, Q tem o valor da entrada J na próxima subida do impulso de relógio. Se J e K são ambos LOW, a saída não varia. Se J e K são ambos HIGH, a saída vai inverter o seu estado após cada impulso do relógio.


Outras componentes digitais
Da enorme variedade de componentes utilizadas na construção de circuitos digitais, algumas delas vão ser descritas nas secções seguintes. O critério da sua escolha foi, simultaneamente, a popularidade da sua utilização e a simplicidade da sua descrição.


Multiplexadores e desmultiplexadores
Multiplexadores são componentes electrónicas que possuem várias entradas e uma única saída (ou também a sua complementar), com uma entrada de endereços binários os quais são usados para seleccionar qual das entradas vai aparecer à saída.
Estes dispositivos estão disponíveis em circuitos integrados numa grande variedade de funcionalidades, nomeadamente quanto ao número de entradas. Estas podem ser 2, 4, 8, ou 16. O endereço binário depende do número de entradas. Por exemplo, um multiplexador de 8 entradas necessita um endereço de 3 bits para seleccionar a desejada entrada de dados. Possuem ainda uma entrada que permite a inibição do integrado (a saída fica a 0 independentemente das entradas ou do endereço).
O desmultiplexador executa a função inversa: dirige uma entrada para uma das saídas possíveis dependente do endereço escolhido


Mostradores
Um mostrador é um dispositivo opto-electrónico que pode mostrar um número (mostrador numérico), um algarismo hexadecimal (nomeadamente 0-9, A-F), ou qualquer letra ou número (mostrador alfanumérico). A tecnologia actualmente dominante nos mostradores utiliza LEDs e LCDs (liquid-crystal displays, mostradores de cristais líquidos). Os LCDs são a tecnologia mais recente, a qual possui vantagens significativas que lhe possibilitam diferentes tipos de aplicação: a) equipamento operado a pilhas (devido ao pequeno consumo de potência), b) equipamento para ser usado ao ar livre ou em ambientes com grande nível luminoso, c) mostradors que necessitam de formas e símbolos especiais, d) mostradores com muitos dígitos ou caracteres. Os LEDs são, em comparação, mais simples de utilizar, principalmente se forem apenas necessários poucos dígitos ou caracteres. Existem também em quatro cores, e veem-se bem com pouca luz onde o seu bom contraste os tornam de mais fácil leitura do que os LCDs.


Mostradores de LEDs
Existem vários tipos disponíveis. O original, com 7 segmentos, é o mais simples e pode mostrar os algarismos de 0 a 9 e a extensão hexadecimal (A-F), apesar de o fazer de uma forma grosseira. Os mostradores com 16 segmentos e 5x7 pontos de matriz permitem representar todos os algarismos e letras do alfabeto com razoável qualidade e ainda alguns símbolos especiais.


Conversão analógico-digital
Para além da utilização das componentes digitais já discutidas, é muitas vezes necessário converter um sinal analógico para um número digital preciso, proporcional à sua amplitude, e vice versa. O campo de aplicações destas funções é enorme e sempre em crescimento. Qualquer instrumento de medida necessita de conversão A/D para poderem ser utilizadas as possibilidades do processamento digital, seguida de conversão D/A para interacção com o meio exterior.


Erros de conversão
Existem inúmeros tipos de erros de conversão que afectam a performance de um conversor. Os mais comuns são os erros de offset, de escala, não linearidade e não monotonicidade.
Erros comuns de conversão: A- erro de offset de 0.5 LSB. B- Erro de escala de 1 LSB. C- ±0,5 LSB de não linearidade; 1 LSB de não linearidadediferencial. D- Não monotonicidade


Conversores digital/analógico (DACs)
O objectivo é converter uma quantidade especificada como um número binário para uma diferença de potencial ou corrente proporcional à entrada digital. Os métodos mais populares são seguidamente descritos.


Resistências calibradas num circuito somador - Ao ligar um conjunto de resistências a um amplificador operacional somador, a diferença de potencial é proporcional à soma pesada das tensões de entrada. Este circuito gera uma tensão de saída de 0 a -10 V, em que o máximo ocorre para uma entrada de 64. Esta técnica de conversão é utilizada apenas para conversores rápidos de baixa precisão.


Escada R-2R - A técnica de resistências calibradas torna-se muito difícil quando temos mais de alguns bits. Uma solução elegante é fornecida pela escada R-2R. São necessários apenas dois valores de resistências, a partir das quais a rede R-2R gera a escala de correntes binárias.


Conversores analógico/digital (ADCs)
Existem meia dúzia de técnicas de conversão disponíveis. Nesta secção vão ser descritas apenas algumas delas.


Codificador paralelo - Neste método a tensão de entrada é simultaneamente enviado para cada entrada de n comparadores, cuja outra entrada está ligada a n voltagens de referência igualmente espaçadas. Um codificador de prioridades gera uma saída digital correspondente ao comparador mais elevado activado pela voltagem de entrada. A codificação paralela, também conhecida como ADC flash, é o método de conversão analógico/digital mais rápido.


Aproximações sucessivas - Nesta técnica muito popular são tentados vários códigos de saída os quais são fornecidos a um conversor D/A e o resultado é comparado com a entrada analógica através de um comparador. Geralmente todos os bits são colocados a 0. Depois, começando pelo bit mais significativo, cada bit é colocado provisoriamente em 1. Se a saída D/A não exceder a voltagem do sinal de entrada o bit é deixado a 1, senão é levado novamente a 0.


Logic Probe

Há necessidade de verificar de uma forma rápida o estado de uma porta lógica o circuito seguinte detecta se a porta tem um estado lógico 0 ou 1, ou se a saída é composta por pulsos.

Sem comentários: