Como converter uma grandeza analógica como uma tensão obtida na saída de um transdutor numa informação digital que possa ser processada por um circuito lógico como de um computador? A resolução deste tipo de problema é fundamental para o projeto de interfaces para a aquisição de dados por computadores e envolve um dispositivo de extrema importância: o conversor analógico/digital ou conversor A/D. Neste artigo analisamos o princípio de funcionamento deste tipo de circuito e mostramos como usá-lo.

 Os computadores e muitos circuitos que processam dados obtidos de sensores operam exclusivamente com sinais digitais. Assim, se na saída de um sensor tivermos um sinal analógico e precisarmos transferir este sinal para um circuito digital, como de um computador será preciso "convertê-lo".

Para converter um sinal da forma analógica para a forma digital usamos uma configuração denominada conversor analógico/digital ou simplesmente conversor A/D.

Estes conversores são largamente usados em placas de aquisição de dados que interfaceiam computadores com dispositivos de medida. Nos laboratórios, por exemplo, é possível usar um conversor deste tipo num sistema de aquisição de dados para converter as indicações de um sensor de temperatura na forma digital que o computador possa processar e tomar decisões no sentido de ativar circuitos externos ou simplesmente armazenar as temperaturas em horários programados na memória, conforme sugere a figura 1.

 

Usando uma interface de aquisição de dados.
Usando uma interface de aquisição de dados.

 

Para entender como funcionam os conversores analógicos/digitais é preciso, em primeiro lugar, entender as diferenças entre os dois tipos de grandezas.

 

SINAIS ANALÓGICOS E SINAIS DIGITAIS

Se usarmos um sensor como um NTC (Negative Coefficient Temperature Resistor) para medir temperaturas temos um sinal analógico em sua saída.

Neste sensor, conforme mostra o gráfico da figura 2 temos uma correspondência direta entre a temperatura e a resistência apresentada.

 

Característica resistência x temperatura de um NTC.
Característica resistência x temperatura de um NTC.

 

Na faixa de uso do sensor, existe uma correspondência contínua entre a resistência e a temperatura. Assim, para cada valor possível da temperatura existe uma correspondência da resistência. Não importa quão pequena seja a variação da temperatura que ocorra a partir de um certo valor, teremos sempre uma variação correspondente da resistência.

Isso significa que entre os dois extremos de temperatura em que este sensor pode ser usado existem infinitos valores possíveis.

Dizemos então que a faixa de cobertura deste tipo de sensor é contínua e que existe uma analogia entre a temperatura e a resistência.

Trata-se, portanto de um sensor que fornece uma saída analógica.

Podemos converter esta saída de resistência em outras grandezas que também possam variar de maneira contínua como a tensão e a corrente. Podemos perfeitamente fazer com que a tensão varie de modo contínuo entre dois valores entre os quais este sensor deve operar, conforme mostra a figura 3.

 

Convertendo variações de temperatura em tensões.
Convertendo variações de temperatura em tensões.

 

Evidentemente, nem sempre as coisas são assim simples: vamos supor que em lugar de convertermos a temperatura em resistência desejemos fazer sua indicação por uma escala de LEDs conforme mostra a figura 4.

 

Esta conversão só pode ser feita
Esta conversão só pode ser feita "aos saltos" pois não podemos ter um e meio LEDs acesos.

 

Se cada LED indicar um grau e tivermos 10 LEDs para medir as temperaturas de 20 a 30 graus centígrados, é evidente que não podemos ter uma indicação de temperaturas que não sejam valores inteiros.

O sistema não consegue indicar 22,4 ou 22,6 graus centígrados. Ou ele indica 22 ou 23.

Se quisermos ter maior precisão na indicação desta forma precisamos de mais LEDs. Com 20 LEDs podemos ter a indicação de meio em meio grau na escala indicada.

No entanto, o que fica claro é que com este sistema, as indicações só podem ocorrer "aos saltos" e que esses saltos tem valores bem definidos.

Dizemos que neste caso a indicação ocorre de uma forma discreta e os LEDs acesos podem ser associados quantidades bem definidas ou dígitos.

Assim, se vamos usar uma representação digital na forma binária, podemos associar os 10 estados indicativos dos LEDs por uma escala que é mostrada na figura 5.

 

Valores binários associados a uma escala de 10 pontos.
Valores binários associados a uma escala de 10 pontos.

 

Como temos 10 estados possíveis para os LEDs quatro bits são suficientes para representá-los todos. No entanto, se precisarmos de uma definição maior para as indicações, por exemplo, com 20 LEDs e indicação de meio em meio grau precisaremos de pelo menos 5 bits.

Na prática, as indicações que fazem a cobertura de uma escala com poucos pontos não é interessante, pois não significam uma boa precisão. Quanto mais pontos tiver a "escada" de indicações melhor será a precisão na conversão da grandeza, por exemplo a resistência de um sensor.

O circuito que faz este tipo de conversão é um conversor A/D ou um conversor analógico digital.

Um bargraph como os usados em aparelhos de som pode ser considerado um conversor A/D simplificado.

Tanto melhor será o conversor A/D quanto mais bits de saída ele tiver.

Um conversor A/D que tenha uma saída de 4 bits tem 16 "degraus" de indicação ou pode definir uma escala de 16 valores diferentes.

Já, um indicador de 8 bits de saída pode definir uma escala com 256 valores diferentes e um de 12 bits pode definir uma escala de 4096 pontos e um de 16 bits pode definir uma escala de 65 536 pontos, conforme mostra a figura 6.

 

Um conversor A/D de 8 bits.
Um conversor A/D de 8 bits.

 

Veja então que para um conversor A/D que possa definir 256 valores diferentes numa escala de medidas tem uma precisão melhor que 0,4% e com 4096 valores diferentes numa escala de medidas temos uma precisão melhor que 0,024%.

Os conversores A/D existentes no mercado possuem justamente estas características.

 

OS CONVERSORES NA PRÁTICA

Evidentemente, a escala de LEDs não corresponde ao que desejamos na prática para um conversor.

Para 10 LEDs teremos uma saída para cada LED que farão seu acionamento direto. No entanto, não podemos ter 4096 saídas num conversor que trabalhe com uma escala de 16 bits.

Será melhor termos acesso direto aos bits e com isso dotar o circuito de 16 saídas.

Na figura 7 temos um exemplo de como isso pode ser feito.

 

Um conversor A/D de 8 bits com entradas de controle.
Um conversor A/D de 8 bits com entradas de controle.

 

O circuito conta então com uma entrada em que aplicamos o sinal analógico, sendo especificada normalmente uma faixa de tensões para a conversão. Por exemplo, se o circuito converte sinais na faixa de 0 a 1 Volt devemos cuidar para que o sensor usado (ou a fonte de informação analógica) trabalhe nesta faixa.

As saídas consistem então em 16 pinos nos quais os níveis lógicos 0 ou 1 são obtidos conforme a tensão de entrada.

Para a maioria dos tipos de conversores A/D existentes no mercado estas saídas são compatíveis com tecnologia TTL (nível alto com 5V e nível baixo com 0V) podendo ser conectadas diretamente na porta I/O de um computador, conforme mostra a figura 8.

 

Um conversor compatível com o PC.
Um conversor compatível com o PC.

 

Basta apenas programar o computador para "ler" os valores da porta no instante desejado e fazer a conversão para a escala desejada.

Por exemplo, se a faixa de entrada que corresponde à temperaturas de 0 a 30 graus centígrados e que por sua vez levam à tensões na entrada do conversor de 0 à 1 Volt, o conversor vai gerar na sua saída valores digitais entre 0 e 4096 (se for de 12 bits). O computador deve então ser programado para dividir a escala de 0 a 30 graus centígrados em 4096 valores (cada unidade lida corresponderá à 0,00732 graus).

O valor 010010010010 (binário) lido na entrada I/O ou saída do conversor que corresponde 1070 (decimal) corresponde a uma temperatura de 8,5644 graus centígrados.

 

O CIRCUITO INTERNO DO CONVERSOR A/D

Para fazer uma conversão A/D como na escala de LEDs podemos ter circuitos relativamente simples. Uma simples escala de comparadores que tenham tensões de referência diferentes pode ser usada conforme mostra a figura 9.

 

Um conversor A/D simples com 4 saídas tipo
Um conversor A/D simples com 4 saídas tipo "barra móvel".

 

Cada vez que a tensão de entrada atinge o nível de disparo de um dos comparadores do conjunto ele comuta passando a acionar o LED correspondente ou mudando o nível lógico de sua saída.

Este tipo é sequencial e tem um comportamento que não é muito interessante nas aplicações mais críticas: cada vez que um comparador comuta porque seu nível de acionamento é atingido, o anterior que estava comutado não volta ao estado inicial.

Com um circuito mais sofisticado podemos obter esta comutação e assim passar de um sistema de barra móvel para ponto móvel, conforme mostra a figura 10.

 

Conversor A/D do tipo com saída ponto móvel.
Conversor A/D do tipo com saída ponto móvel.

 

Mas, para as aplicações que envolvem a aquisição de dados, este tipo de conversor não atende as necessidades mais críticas: precisamos converter os níveis em indicações em decimal codificado em binário ou mesmo hexadecimal para obter maior definição possível e compatibilizar o circuito com a tecnologia digital mais comum.

Isso pode ser feito com ajuda de circuitos mais complexos, que além dos comparadores envolvem configurações lógicas e também circuitos que facilitem seu uso.

 

a) Sistema de conversão simultânea

O sistema de conversão simultânea (que é o mais simples) tem a configuração mostrada na figura 11.

 

Diagrama de blocos de um conversor A/D de conversor simultâneo.
Diagrama de blocos de um conversor A/D de conversor simultâneo.

 

Neste circuito temos uma escala de 8 valores possíveis de saída o que pode ser coberto por uma saída de 3 bits. Trata-se, portanto de um conversor A/D de 3 bits.

Os comparadores possuem em suas entradas de referência tensões escalonadas que determinam o instante em que eles devem comutar. Assim, para 8 níveis de acionamento, temos 7 tensões escalonadas de 1/8 a 8/8 de Vcc que é a máxima tensão que o circuito pode medir em sua entrada.

Evidentemente, este tipo de circuito está seriamente limitado pela quantidade de comparadores que podemos usar. Para um sistema de 16 bits, por exemplo, seriam necessários 4095 comparadores!

Voltando ao circuito, os níveis lógicos obtidos nas saídas dos comparadores são sequenciais, conforme vimos. Para se obter uma saída codificada em binário precisamos usar uma matriz codificadora.

Esta matriz pode ser elaborada nesta configuração mais simples a partir de inversores, portas AND e portas OR.

Obtemos então na sua saída sinais que correspondem aos 8 níveis de tensão possíveis, a saber:

000

001

010

011

100

101

110

111

 

Neste circuito temos um sistema adicional de RESET e porta de leitura (READ).

A porta de leitura é interessante, pois ela permite transferir os dados digitais ao circuito externo somente no instante que desejarmos. Assim, podemos dar tempo ao circuito para se estabilizar, o que pode ser importante se usarmos sensores rápidos, impedindo que na saída os valores oscilem rapidamente.

Aplicando nesta entrada (READ) um pulso de curta duração lemos o valor digitalizado naquele instante. No circuito indicado, este valor é armazenado em um registrador formado por flip-flops.

Assim, esse valor se fixa na entrada e pode manter acionado, por exemplo, um indicador.

Para a leitura seguinte, o valor armazenado no registrador precisa ser apagado antes de ser feita nova leitura. Isso é conseguido por meio de um pulso de RESET.

 

b) Circuito de Conversão Por Contador

Na figura 12 temos um diagrama de blocos de um conversor que usa esta técnica.

 

Um circuito de conversão por contador.
Um circuito de conversão por contador.

 

Destaca-se neste circuito o comparador único que tem duas entradas. Numa entrada é aplicado o sinal que vai ser medido (uma tensão dentro de uma determinada faixa de valores).

Na outra entrada aplicamos um sinal que é produzido por um gerador especial denominado "gerador de escada".

Este sinal consiste numa tensão que sobe "aos saltos" com tantos degraus quantos sejam necessários à saída digital.

Por exemplo, num conversor de 8 bits, este sinal consiste em 256 "degraus" iguais de tensão.

Este sinal pode ser gerado facilmente por oscilador de clock que aplica seu sinal a um contador ligado a uma rede R/2R, conforme mostra a figura 13.

 

Um gerador
Um gerador "de escada".

 

Observamos que o clock deste circuito é habilitado pelo próprio circuito comparador.

Assim, supondo que exista uma certa tensão na entrada e a conversão é habilitada, o oscilador de clock entra imediatamente em funcionamento. Supondo que o contador esteja zerado, começa então a produção da "escada" de tensão que passa a ser aplicada ao comparador.

No instante exato em que a escada gera um degrau que se iguala à tensão de entrada, o comparador comuta.

O resultado disso é a parada do clock e, portanto da contagem. Neste instante o contador terá registrado o número de degraus contados, ou seja, ele saberá em que valor binário ocorreu a comutação.

Basta então transferir este valor para o circuito externo o que pode ser feito, da mesma forma que no processo anterior por meio de um registrador.

Para nova conversão, o que pode ser feito uma fração de segundo depois, ou quanto tempo for necessário, basta ressetar o contador e reabilitar o clock.

Além dessas duas configurações existem outras, como a de aproximação sucessiva. No entanto, não as analisaremos neste artigo.

 

NA PRÁTICA

Existem muitos circuitos integrados que fazem as operações que indicamos e que possuem as mais diversas características.

Assim, na procura de um conversor A/D para uma determinada aplicação devemos analisar as seguintes especificações:

a) número de saídas ou bits

Conforme já vimos, este número é importante, pois determina a resolução na conversão A/D. Valores entre 4 e 16 bits são comuns no mercado, havendo até casos especiais em que mais saídas podem ser obtidas. Com a disponibilidade de computadores de 32 bits é possível contar com conversores compatíveis.

Conforme já vimos um conversor de 8 bits pode ser suficiente para aplicações comuns com 256 pontos de escala e de 12 bits para 4096. Os 8 bits são especialmente interessantes por se "casarem" com as características das portas paralelas dos computadores comuns (PCs).

 

b) número de entradas

Os exemplos que demos foram de conversores simples em que aplicamos na entrada um único sinal. No entanto, existem conversores A/D na forma de circuitos integrados que possuem diversas entradas. Tipos de 2, 4 e 8 entradas são os mais comuns.

Estes tipos fazem a leitura sequencial das tensões nas suas entradas convertendo os valores encontrados para a forma digital e jogando-os sequencialmente na saída.

Eventualmente se pode selecionar digitalmente por entradas apropriadas quais sensores (ou entradas de dados) serão lidas, jogando-se os valores na saída, conforme mostra a figura 14.

 

Um conversor com entradas selecionadas por comando digital.
Um conversor com entradas selecionadas por comando digital.

 

c) velocidade

Existem aplicações em que a velocidade de conversão é muito importante. Se desejarmos processar um sinal que varia rapidamente de intensidade como, por exemplo, uma forma de onda de alta frequência e desejamos projetá-la na tela de um computador de modo a usá-lo como osciloscópio é necessário ter uma velocidade muito grande de resposta do conversor. Ele deve ser capaz de obter no mínimo 3 amostragens por ciclo do sinal que deve ser visualizado, ou seja, deve ter uma frequência de amostragem no mínimo 3 vezes maior que a maior frequência de sinal de entrada.

Conversores com muitos megahertz de frequência de amostragem são disponíveis para estas aplicações.

 

d) faixa de operação

A faixa de operação não é na realidade muito importante pois ela pode ser adequada por circuitos externos ligados à fonte de sinal. No entanto, é preciso conhecer esta faixa para que os circuitos possam ser projetados.

 

e) compatibilidade lógica

Se vamos usar o conversor com computadores precisamos saber se ele é compatível com esta aplicação. A maioria dos conversores A/D possui características de entrada e saída que permite sua conexão direta aos computadores.

 

CONCLUSÃO

Os conversores são extremamente úteis nas aplicações em que se deseja transferir dados para um circuito digital a partir de fontes analógicas de sinais.

A quantidade de circuitos integrados que reúnem todas as funções de conversores A/D é muito grande sendo impossível focalizá-los todos num único artigo. Desta forma, somente com artigos adicionais é que conseguirmos focalizar projetos que usam tais componentes, o que deve ser feito em função dos tipos mais comuns em nosso mercado.