Prévia do material em texto
ELETRÔNICA DIGITAL AULA 5 Prof. Amilton Carlos Rattmann 2 CONVERSA INICIAL Nesta aula, exploraremos o projeto de máquinas de estados finitos (FSM) e muitas de suas aplicações como contadores síncronos progressivos e regressivos em vários módulos. Compreenderemos o funcionamento e projetos de registradores de deslocamentos e outros tipos de contadores como Gray, Johnson e anel. Veremos ainda os conversores analógico-digitais (Analog to Digital Converter – ADC) e conversores digital-analógicos (Digital to Analog Converter - DAC). TEMA 1 – MÁQUINA DE ESTADOS FINITOS – FSM As máquinas de estados finitos são sistemas que operam dentro de uma programação específica, previsível e podem ser representados por diagramas de estado que descrevem precisamente seu funcionamento. Os diagramas de estado são compostos de estados e transições, sendo que estas podem ser motivadas pela ocorrência de determinados eventos. Em sistemas digitais, os diagramas de estados são utilizados para descrever e projetar circuitos lógicos sequenciais, que empregam portas lógicas nos circuitos combinacionais e flip- flops (FF) no registro de estados, implementando máquinas de estados finitos. 1.1 Modelos Mealy e Moore As máquinas sequenciais podem definir a progressão de estados apenas em função do estado anterior (estado prévio), ou em função do estado anterior e de sinais externos. São classificados, portanto, em dois grupos denominados máquinas Mealy e máquinas Moore. Nas máquinas Mealy, os sinais de saída, que são produzidos pela troca de estados, são gerados em função do valor dos sinais de entrada e dos estados. Nas máquinas Moore, os sinais de saída são definidos apenas pelas transições de estado. Um contador que troca de estados de forma programada e contínua é um exemplo de máquina Moore ou, ainda, um sinalizador de porta de garagem que alterna entre dois estados acionando as lâmpadas vermelho e amarelo. Um contador progressivo-regressivo também troca de estados de forma programada e contínua, mas a existência de uma entrada que define o sentido de contagem configura uma máquina Mealy. Outro exemplo de máquina Mealy é um sistema de controle de elevador, cujo acionamento dos motores de elevação e portas é 3 controlado pelos sinais externos provenientes dos botões do painel do elevador, dos andares e dos sensores de posicionamento e segurança. Na Figura 1, são apresentados os diagramas das máquinas Mealy e Moore. Figura 1 – Máquinas de Mealy e Moore 1.2 Projeto de circuitos sequenciais Os circuitos sequenciais são síncronos, caracterizados por todas as ações que acontecem baseadas na referência do sinal de clock. Por esse motivo, antes de o próximo pulso de clock ocorrer, todos os sinais devem estar preparados e estáveis para conduzir o sistema ao próximo estado. A convenção habitual utilizada para máquinas de estado define que o estado presente nas memórias é o estado atual e que o próximo estado, independentemente de qual seja, é o estado futuro. O projeto de uma FSM é essencialmente definir os valores do circuito lógico para conduzir o sistema do estado atual para o estado futuro. Como o estado atual é definido pelos valores presentes nos FF, o procedimento de projeto de uma FSM visa definir quais valores ou sinais precisam estar presentes nas entradas dos FF, para que estes assumam os valores correspondentes ao estado futuro, já no próximo pulso de clock. Essa ação é mostrada no diagrama da Figura 2. Para avançarmos no projeto de máquinas síncronas, iremos conduzir um estudo sobre o comportamento dos FF JK e D com relação à transição de estados, nas transições possíveis de um bit. Na Figura 3, é apresentado o FF JK e sua respectiva tabela-verdade. Ainda são apresentadas as transições possíveis para um bit. Caso o FF contenha nível lógico baixo (0), as transições 4 apenas poderão ocorrer para o mesmo nível ou para o nível lógico alto (1). Caso o FF contenha nível lógico alto, a transição apenas poderá ocorrer para o mesmo nível ou para o nível lógico baixo, ou seja, há quatro possíveis transições. Figura 2 – Preparação para a transição de estado Na tabela à direita da Figura 3, há uma tabela resumo das condições para que um FF JK realize as transições. Considerando que o estado atual do FF JK é de nível lógico baixo, e que o estado futuro seja de nível lógico baixo, precisamos aplicar uma condição de reset (J=0 e K=1) ou de manutenção (J=0 e K=0), que são as duas condições tabeladas para a transição de 0 → 0. Considerando, de forma mais simplificada, que o estado atual do FF JK é 0 e o estado futuro é 1, será necessário um set (J=1 e K=0) ou uma troca (J=1 e K=1), condições também tabeladas na Figura 3 e com a mesma análise para as duas últimas condições. 5 Figura 3 – Troca de estado no FF JK Note que na tabela de condições de entrada da Figura 3, é possível concluir que para a transição de 0 → 0, apenas J=0 é relevante, pois não importa o valor de K. Também é possível concluir que, para a transição de 0 → 1, apenas J=1 é relevante; e que para a transição 1 → 0, apenas K=1 e, por fim, para 1 → 1, apenas K=0 importa. As entradas que variam podem receber um “X” nas análises lógicas posteriores indicando valor irrelevante e que pode assumir tanto valor 0 quanto valor 1. Isso facilitará o processo de síntese dos circuitos combinacionais. Para o FF D, o estudo das transições é mais fácil, pois o FF possui apenas uma entrada e uma tabela-verdade mais simples, com apenas duas condições. Desta forma, para um estado futuro de nível lógico alto, basta que a entrada do FF D tenha um sinal com nível lógico alto. Já para um estado futuro de nível lógico baixo, basta submeter à entrada do FF D um nível lógico baixo, conforme pode ser observado na Figura 4. 6 Figura 4 – Troca de estado no FF D Assim, vimos todas as condições de entrada dos FF JK e D para que os estados sejam promovidos conforme a necessidade ou a descrição do projeto. Nos próximos temas, veremos como utilizar estes recursos para projetar contadores síncronos. TEMA 2 – CONTADORES SÍNCRONOS E EM ANEL Neste tema, utilizando o estudo das transições realizado no tema 1, projetaremos um contador síncrono e contador em anel torcido, utilizando diagramas de estados prever e descrever o funcionamento dessas máquinas de estados finitos. Esse procedimento poderá ser aplicado no projeto de todos os tipos de máquinas síncronas. 2.1 Contador síncrono módulo 8 No contador síncrono, todos os FF estão ligados ao mesmo sinal de clock, característica que os distingue dos contadores assíncronos nos quais o sinal de clock passa de FF para FF. No contador módulo 8, estamos implicitamente definindo que a máquina possui 8 estados, levando-nos a alocar três FF (2N = 8, N = 3), inicialmente. Foi utilizado o termo inicialmente porque, em alguns projetos, empregar mais FF pode simplificar o circuito ou explorar alguma característica desejável. Na Figura 5, é apresentado um diagrama básico de interconexão para um contador síncrono com FF JK. Note que as entradas e saídas dos FF estão conectadas ao bloco lógico combinacional. A lógica projetada para esse bloco definirá o funcionamento da máquina de estados finitos. 7 Figura 5 – Diagrama básico de um contador síncrono com FF JK Como vimos, os sinais de entrada e saída dos FF são elementos para o projeto do bloco lógico. Vamos avançar observando as informações presentes na Figura 6, na qual apresenta o diagrama de estados do contador módulo 8, avançando dos estados A até H e reiniciando no A, e assim continuamente. O nome do estado poderia ser o valor decimal, por exemplo, ou um outro padrão alfanumérico que ajudasse na documentação. Na parte inferior foi representadaa sequência binária de saída, de “000” a “111”, com três bits, um para cada FF JK. O símbolo do FF JK é apresentado na Figura 6, juntamente com sua tabela- verdade e sua tabela de transição de estados, estudada no tema 1. A tabela de funções define as condições necessárias para realizar a transição para próximo estado em cada linha. Nessa tabela, considera-se o ponto de vista do bloco lógico apresentado na Figura 5. Na primeira coluna (Estado), são colocados os estados definidos no diagrama de estados. Na coluna Entradas, são colocados os valores de saída dos FF, que representam o valor estado atual (Moore), relacionados aos nomes da primeira coluna. Observe que as entradas estão na ordem desejada, com Q3 sendo o MSB do contador. A última coluna representa os sinais de saída do bloco lógico que são os sinais de entrada dos FF. Para definir os valores de saída, devemos observar as transições de estado entre as linhas da tabela, começando pela linha do estado A para o estado B, na qual: • Q3 – o estado atual é “0” e seu estado futuro é “0”, logo, consultando a tabela de transição de estados do FF JK, determinamos que “J3=0” e “K3=X”; • Q2 – o estado atual de é “0” e seu estado futuro é “0”, logo, consultando a tabela de transição, determinamos que “J2=0” e “K2=X”; e 8 • Q1 – o estado atual de é “0” e seu estado futuro é “1”, determinamos que “J1=1” e “K1=X”. Figura 6 – Processo de desenvolvimento de FSM Para preenchimento da próxima linha da tabela, consultamos a transição do estado B para o estado C e assim sucessivamente. Como no diagrama o estado H retorna para o estado A, consultamos a transição do estado H com relação ao estado A. Uma vez finalizado o preenchimento das condições de saída da tabela de funções, o próximo passo é determinar as funções lógicas para cada variável de saída (J3, K3, J2, K2, J1, K1), por meio de um dos métodos de síntese estudados. Nesse exemplo, os valores X, nas colunas de saída, facilitam a análise, permitindo equalizar as colunas de sinais para o mesmo FF e produzir a mesma função para J e K, como apresentado da Erro! Fonte de referência não encontrada. e desenvolvido a seguir: 1. Para o FF JK 1, todos os valores “X” das colunas J1 e K1 podem ser substituídos por “1”, definindo os mesmos valores para as colunas J e K. A função lógica resultante é uma constante: J1 = K1 = 1. 2. Para o FF JK 2, fazendo os valores de X se igualarem a J ou K, conforme a linha, nos permite também equalizar as duas colunas de J e K, que se 9 tornam iguais aos valores da coluna de entrada Q0, produzindo uma única função lógica: J2 = K2 = Q1. 3. Para o FF JK 3, fazendo os valores de X se igualarem a J ou K, conforme a linha, nos permite também equalizar as duas colunas de J e K, obtendo- se uma única função lógica: J3 = K3 = Q1.Q2. Agora, com essas funções lógicas simples, é possível implementar o contador síncrono progressivo módulo 8, conforme apresentado na Figura 7. Figura 7 – Diagrama do contador síncrono progressivo módulo 8 com FF JK 2.2 Contador em anel torcido O contador de anel torcido é uma máquina síncrona que obedece a uma sequência específica na evolução de estados e nos valores de saída, mas não é um contador binário 2N. Entretanto, é uma máquina interessante para este estudo. Nessa máquina, a saída inicia em “0000”, considerando-se quatro bits, e avança ativando os bits de saída da direita para a esquerda, até “1111”. A partir deste estado, inicia a desativação dos bits de saída, também da direita para a esquerda, até “0000”, de onde reinicia o ciclo. O diagrama de estados é apresentado na Figura 8 (a) e descreve a sequência de valores de saída, pela evolução dos estados de “A” até “H”, reiniciando em “A”. Note que estão sendo utilizados quatro FF que levariam a 16 estados possíveis (24 = 16). Se estamos utilizando oito estados nesse diagrama, onde estão os demais? Os demais existem e devem ser considerados. Relembre que estados são valores armazenados nos FF, o que implica a existência de todos os valores de quatro 10 bits possíveis e seus respectivos estados. Mesmo estando fora do diagrama principal, esses estados podem ser atingidos pela ocorrência de interferências ao longo do funcionamento ou na inicialização do contador, o que afetará o funcionamento normal da máquina de estados finitos. Figura 8 – Processo de desenvolvimento do contador de anel torcido Os estados que não fazem parte da FSM devem ser relacionados no diagrama de estados, estabelecendo uma transição previsível e documentada. A Figura 8 mostra que os estados não utilizados foram nominados de “I1” a “I7” e realizam transição para o estado inicial “A”, garantindo o funcionamento da FSM. Na tabela de funções da Figura 8 (b), estão relacionados todos os estados, os valores de entrada para a o bloco lógico de controle e os valores de saída que são aplicados às entradas dos FF D. Os estados “In” fazem transição para o estado “A”. Os diagramas de Karnaugh, as funções lógicas resultantes e os circuitos NAND sintetizados para o bloco lógico de controle são apresentados na Figura 9. Note que existem termos repedidos entre funções que podem ser reaproveitados, economizando recursos. Utilizando porta NAND de duas entradas, surgem outros termos comuns que poderiam ser explorados. A decisão de até que ponto descer no reaproveitamento de recursos é tomada entre a economia e a legibilidade desejadas do projeto. 11 Figura 9 – Mapas de Karnaugh para os sinais D3, D2, D1 e D0, os circuitos NAND sintetizados e uma sinalização de reaproveitamentos de portas lógicas Convém mencionar que, neste projeto, os estados não utilizados, “IN”, foram direcionados para o estado inicial, mas poderiam ter sido organizados para avançar de um estado “IN” para outro, desde que passando por todos, até atingir o estado inicial “A”. A utilização de valor “X” (don’t care) nos bits dos estados “IN”, na tabela de funções, poderia levar a uma maior simplificação nos circuitos. Entretanto, seria necessário realizar um levantamento e verificação de como as transições ficariam definidas para os estados “IN” após o processo de simplificação e síntese e se todos os estados foram contemplados em transições de inicialização. O circuito final do contador em anel torcido é apresentado na Figura 10, separando o bloco lógico das memórias. Note que as variáveis negadas das expressões booleana de DN empregaram as saídas negadas dos FF, economizando portas inversoras. Note também que os termos repetidos foram eliminados, utilizando os termos duplicados que permaneceram no circuito. 12 Figura 10 – Circuito do contador síncrono em anel torcido Como pode ser observado, a decisão de utilizar quatro FF D para essa FSM se baseou na quantidade de bits necessários na saída do circuito, cujo efeito colateral foi sobrarem estados, que tiveram que ser tratados. Outra solução possível para esse contador seria utilizar três FF D (23 = 8) para representar os oito estados principais e suas transições e desenvolver um decodificador de três linhas de entrada para quatro linhas de saída, apresentando as saídas esperadas para cada estado. Para essa solução, seriam projetados dois blocos lógicos, sendo um para o controle da FSM e outros para o decodificador. Tente avaliar se esta solução traria maior economia de recursos com relação a esse desenvolvimento. TEMA 3 – CONTADORES UP-DOWN E REGISTRADORES DE DESLOCAMENTO As máquinas de estados finitos apresentadas neste tema serão semelhantes aos contadores vistos no tema anterior, com a exceção de que 13 utilizarão sinais externos de controle, que caracterizam essas máquinas como do tipo Mealy. 3.1 Contador síncrono Up-Down módulo 4 O desenvolvimento de um contador síncrono progressivo-regressivoé mais bem compreendido se for iniciado pelo diagrama de estados. Nesse projeto, vamos estudar um contador módulo 4, com um sinal de sentido de contagem (r) para alternar entre contagem progressiva e regressiva. Empregam-se dois FF, pois são necessários 4 estados para definir a operação dessa máquina. Operando tanto no sentido progressivo quanto regressivo, o contador precisa apenas de quatro estados. O que muda é a sequência das transições que depende do valor do sinal “r”. No diagrama de estados da Figura 11 (a), os estados evoluem de “A” para “D”, se o evento for “r = 0”, contagem progressiva. Caso o evento seja “r=1”, então a transição de estados para de “D” para “C”, de “C” para “B” e assim continuamente, estabelecendo uma contagem regressiva. Figura 11 – Diagrama de estado do contador UP-DOWN síncrono modulo 4 (a); tabela de estados e função (b) Na tabela de transição de estados, o sinal “r” é representado com a variável “r” de entrada, junto com as variáveis Q1 e Q2, definindo as trocas de estado. As variáveis de saída D1 e D2 recebem valores na tabela conforme o próximo estado do diagrama de estados. 14 Resolvendo os mapas de Karnaugh, apresentados na Figura 12 (a), para as variáveis D1 e D2, determinamos o bloco lógico de controle. Note que a função inicial de D1 era equivalente a uma porta XOR de três entradas que, relembrando, pode ser obtida por meio do desenvolvimento da álgebra booleana na expressão. O circuito final do contador síncrono progressivo-regressivo módulo 4 pode ser observado na Figura 12 (b), no qual há um destaque gráfico na separação do bloco lógico de controle das memórias. Figura 12 – Mapas de Karnaugh para D1 e D0 e suas funções booleanas (a); circuito final do contador síncrono progressivo-regressivo módulo 4 (b) 3.2 Contador síncrono progressivo-regressivo binário/Gray módulo 4 Agora estudaremos como representar e projetar um contador que dependa de dois sinais externos para controle da FSM. O contador síncrono progressivo-regressivo binário/Gray módulo 4 fará a contagem progressiva e regressiva no modo binário (0-1-2-3), como apresentado anteriormente, porém fará também a contagem progressiva regressiva em código Gray (0-1-3-2). Como visto, o sinal externo de controle “r” (regressivo), quando desativado (“0”), fará o contador ser regressivo e quando ativado (“1”), progressivo, desde que o sinal externo de controle “g” (Gray) esteja desativado. Caso “g” esteja ativado, fará o contador contar em código Gray progressivamente ou regressivamente, dependendo de “r”. Cada sinal externo de controle tem sua função independente, mas influenciarão conjuntamente o comportamento da FSM. Algumas soluções para FSM transformam os sinais externos em uma única variável combinando seus valores para uma tomada de decisão. São soluções equivalentes. Apresentaremos os sinais de forma independente nesse método de solução. Na 15 Figura 13 (a), é apresentado o diagrama do contador supracitado, composto pelos mesmos quatro estados do contador visto anteriormente, mas apresentando mais transições. Observe que cada transição de um estado para outro considera sempre os valores dos dois sinais externos “r” e “g” como eventos para definir a próxima transição. Por exemplo, a transição do estado A para o estado B acontece quando a contagem é progressiva (r = 0) tanto em binário (g = 0) quanto em Gray (g = 1), ou seja, quando “r = 0; g = 0/1”. Figura 13 – Diagrama de estados do contador progressivo-regressivo binário/Gray (a); tabela de transições de estado e funções (b) Outro aspecto importante na avaliação do diagrama de estados é que, para cada estado, precisam existir tantas transições descritas quanto as condições envolvendo as variáveis de controle. Por exemplo, para cada estado do diagrama precisa existir quatro transições descritas, para “g=0” e “r=0”, para “g=1” e “r=0”, para “g=0” e “r=1” e para “g=1” e “r=1”, como pode ser conferido do diagrama da Figura 13 (a). Na Figura 13 (b) são apresentados os estados, os valores das variáveis de controle e as respectivas transições. Os estados são apresentados quatro vezes na tabela para representar as quatro combinações dos dois sinais de controle externo. Na Figura 14 são apresentados os mapas de Karnaugh para os sinais de saída D1 e D0, obtidas da tabela de transições e funções da Figura 13 (b). As funções booleanas triviais de saída, obtidas diretamente dos mapas de 16 Karnaugh, foram trabalhadas, algebricamente, para se chegar a uma função equivalente, mais compacta e elucidativa, com funções lógicas XOR. Figura 14 – Mapa de Karnaugh para o sinal D1 (a) e sinal D0 (b), do contador progressivo-regressivo binário/Gray O desenvolvimento da expressão de D1 é apresentada a seguir: 𝐷1 = �̅��̅�𝑄1 ̅̅ ̅𝑄0 + �̅��̅�𝑄1𝑄0 ̅̅ ̅ + �̅�𝑟𝑄1 ̅̅ ̅𝑄0 ̅̅ ̅ + �̅�𝑟𝑄1𝑄0 + 𝑔𝑟𝑄0 ̅̅ ̅ + 𝑔�̅�𝑄0 𝐷1 = �̅�(�̅�𝑄1 ̅̅ ̅𝑄0 + �̅�𝑄1𝑄0 ̅̅ ̅ + 𝑟𝑄1 ̅̅ ̅𝑄0 ̅̅ ̅ + 𝑟𝑄1𝑄0) + 𝑔(𝑟𝑄0 ̅̅ ̅ + �̅�𝑄0) 𝐷1 = �̅�(�̅�(𝑄1 ̅̅ ̅𝑄0 + 𝑄1𝑄0 ̅̅ ̅) + 𝑟(𝑄1 ̅̅ ̅𝑄0 ̅̅ ̅ + 𝑄1𝑄0)) + 𝑔(𝑟⨁𝑄0) 𝐷1 = �̅�(�̅�(𝑄1⨁𝑄0) + 𝑟(𝑄1⨁̅̅ ̅̅ ̅̅ 𝑄0 ̅̅ ̅)) + 𝑔(𝑟⨁𝑄0) 𝑫𝟏 = �̅�(𝒓⨁𝑸𝟏⨁𝑸𝟎) + 𝒈(𝒓⨁𝑸𝟎) A expressão booleana para D0 é apresentada a seguir: 𝐷0 = �̅�𝑄0 ̅̅ ̅ + 𝑔𝑟𝑄1 + 𝑔�̅�𝑄1 ̅̅ ̅ 𝑫𝟎 = �̅�𝑸𝟎 ̅̅ ̅̅ + 𝒈(𝒓⨁𝑸𝟏 ̅̅ ̅̅ ̅̅ ̅̅ ) Observe que as funções booleanas finais aqui desenvolvidas são semelhantes às funções da Figura 12, com exceção do termo �̅�. Esses termos definem o funcionamento para a contagem no modo binário (𝑟⨁𝑄1⨁𝑄0 e 𝑄0) e para a contagem no modo Gray (𝑟⨁𝑄0 e 𝑟⨁𝑄1 ̅̅ ̅̅ ̅̅ ̅̅ ) e são chaveados pelo valor de “g", ora para o valor lógico alto, habilitando duas expressões, ora para o valor lógico baixo, habilitando as outras duas expressões. O chaveamento é proveniente de uma função MUX, que será apresentada logo adiante. 17 Na Figura 15 (a) é apresentado o circuito completo do contador síncrono progressivo-regressivo binário/Gray módulo 4, conforme expressões booleanas desenvolvidas da Figura 14. Observe que as portas NAND presentes no circuito estão envolvidas por um quadro indicando função MUX. Esses circuitos lógicos realizam um chaveamento de duas linhas para uma, comutando uma ou outra via um sinal de seleção, apresentado um símbolo próprio na Figura 15 (b). Nesse circuito, o chaveamento dos circuitos de seleção é controlado pelo sinal “g”, conforme já descrito na comparação entre as expressões lógicas desse circuito e o circuito da Figura 12. Figura 15 – Circuito final do contador síncrono progressivo-regressivo binário/Gray (a); o símbolo de um multiplexador (b) 3.2 Registrador de deslocamento Os registradores de deslocamento (shift registers – SRs) são circuitos síncronos, formados por uma cadeia de FF interligados em série, utilizados para a manipulação de bits de dados (Pedroni, 2010). Os dados podem representar valores numéricos armazenados ou quaisquer outras grandezas ou informações representadas em quantidades binárias (Tocci, 2011). Os SRs são utilizados para transferência serial de dados, organizados de forma a passar bit de um FF para o outro, na mesma sequência serial da cadeira de FF (Tocci, 2011). Podem 18 ser implementados utilizando FF JK ou FF D, operando na borda de subida ou descida, sendo mais comum encontrá-los empregando FF D. Os FF precisam ter um tempo de manutenção (hold time) pequeno para evitar que o FF armazene o valor durante a transição do sinal de saída do FF anterior (Tocci, 2011). Na Figura 16 (a) é apresentado um diagrama genérico de um registrador de deslocamento, demonstrando a transferência síncrona de bits de um FF para o FF seguinte. Na Figura 16 (b), uma tabela de saídas, normalmente empregada e encontrada com frequência em manuais de componentes para descrever seu funcionamento, apresenta todosos deslocamentos de valores após cinco pulsos de clock. Um SR de n estágios necessita de n pulsos de clock para transferir completamente os dados carregados no SR. Figura 16 – Registrador de deslocamento genérico de cinco estágios (a); Diagrama de transições de saída (b); gráfico temporal de sinais (c) Na Figura 16 (c) é apresentado um diagrama temporal de sinais com as manifestações de saída do SR genérico de cinco estágios, contendo os valores binários “10011”. As memórias genéricas podem ser substituídas por FF para apresentação do aspecto técnico aplicável em circuitos lógicos. Na Figura 17 (a) é mostrado um registrador de deslocamento de quatro estágios com flip-flops tipo D. Na Figura 17 (b), é apresentado um registrador de deslocamento de quatro estágios implementado com FF JK, no qual os FF JK realizam as funções de FF D. 19 Observe que nos SR há uma entrada serial de dados e uma saída serial, permitindo, dessa forma, que os sinais sejam lidos em paralelo. Eventualmente os sinais em paralelo podem ser utilizados para acionamento de funções em uma determinada sequência, ou depois de um determinado tempo. Figura 17 – Registrador de deslocamento empregando FF D operado com borda de subida (a); registrador de deslocamento com FF JK operado por borda de descida (b) Os SR também podem ser implementados para carga de dados em paralelo. Os SR com esse recurso são capazes de receber dados em série e disponibilizá-los em paralelo ou de receber dados em paralelo e disponibilizá-los em série e são conhecidos, genericamente, como conversores série-paralelo. Esses SR são utilizados em várias funções, das quais se destacam os buffers de comunicação de dados, que recebem dados em paralelo, via barramento de um sistema, e transmitem os bits de forma serial em uma certa taxa de bits. Na recepção, os circuitos recebem serialmente pela linha de comunicação e disponibilizam estes dados em paralelo para o barramento do sistema. Uma implementação de um conversor série-paralelo é apresentada na Figura 18. Figura 18 – Conversor serial-paralelo 20 Fonte: Pedroni, 2010, p. 310. Os SR permitem a implementação de outras funções com facilidade. Na Figura 19 (a) é apresentado um contador one-hot que desloca um bit ativo através das saídas de cada estágio do SR. A ação de reset limpa todos os FF com exceção do último da cadeia que fica ativo pelo sinal de preset. A partir do primeiro pulso de clock, este bit ativo é transferido para o primeiro FF. No próximo pulso de clock, para o segundo FF e assim sucessiva e continuamente. Na Figura 19 (b) a tabela de saídas demonstra a evolução de uma única saída ativa a cada instante, caracterizando o funcionamento do contador. Na Figura 19 (c) são apresentados os sinais de saída do contador one-hot em questão. É importante lembrar que existe o tempo de propagação dos FF para que as saídas sejam ativadas após a ocorrência do pulso de clock. Figura 19 – Contador one-hot implementado com registrador de deslocamento (a); tabela de transições de saída (b); gráfico temporal de sinais (c) 21 Fonte: Pedroni, 2010. Outro contador que pode ser implementado com SR é o contador em anel torcido, como aquele apresentado na Figura 10. Esse contador progride ativando os FF da cadeia e, depois que todos estão ativos, inicia a desativação até que todos sejam desativados. Na Figura 20, utilizando a realimentação de 𝑄0 ̅̅ ̅ para D3, um SR implementa um contador em anel torcido de quatro saídas. Após o reset, todos FF estão limpos. Dado que o 𝑄0 ̅̅ ̅ está em nível lógico alto, implica que, após o primeiro pulso de clock, esse nível lógico será armazenado no FF 3. Como o FF 0 permanece limpo, novamente o nível lógico alto de sua saída negada passará para o FF 3, que, por sua vez, transfere seu nível lógico alto para FF 2 e assim por diante. Este ciclo se repete até que o FF 0 receba um nível lógico alto, comutando o nível lógico de 𝑄0 ̅̅ ̅ para baixo, conforme apresentado na Figura 20 (b). A partir deste momento, o FF 3 recebe nível lógico baixo durante os pulsos de clock seguintes, até que todos estejam limpos, que reinicia o ciclo de ativação. Os sinais de saída dessa implementação são mostrados na Figura 20 (c). Figura 20 – Contador Johnson implementado com registrador de deslocamento (a); tabela de transições de saída (b); gráfico temporal de sinais (c) 22 Se a implementação desse contador em anel torcido é tão simples com registrador de deslocamento, por que utilizar FSM que gerou um circuito maior? Na verdade, o FSM possui um desenvolvimento procedimental para implementar máquinas muito complexas ou máquinas simples como um contador em anel. A máquina da Figura 20 está aproveitando uma característica do SR que a torna simples. Essa simplicidade é desejada, mas não é muito fácil de encontrar, pois normalmente depende da percepção, conhecimento e experiência do projetista. Outros circuitos lógicos podem ser desenvolvidos baseados na transferência serial de dados, como codificadores de linha, geradores de redundância cíclica CRC (Cyclic Redundancy Check) e multiplicadores binários. TEMA 4 – CONVERSORES D/A Os valores digitais, que vimos até o momento, estão definidos em patamares. Aceitamos que variações no entorno desses valores de referência continuam sendo valores digitais, tais como valores entre 0 V e 0,7V ainda são valores de nível lógico baixo. Entretanto, as grandezas físicas são quantidades analógicas por natureza, que podem assumir qualquer valor dentro de uma faixa contínua de valores, no qual seu valor exato é relevante (Tocci, 2011, p. 629). Cada variação representa uma nova quantidade ou uma nova medida, como são observados em medidas de temperatura, massa, velocidade, pressão etc. Essas grandezas são de natureza variada e precisam ser convertidas em medidas de 23 natureza elétrica antes de serem processadas por sistemas eletrônicos. Para tanto, são empregados os transdutores, que convertem uma variável não elétrica para uma variável elétrica, e os atuadores convertem variáveis elétricas em variáveis de outra natureza. Após essa conversão de natureza, os valores elétricos analógicos precisam ser convertidos em valores digitais antes que sistemas digitais consigam processá-los. Os conversores A/D (ADC – Analog-to- digital converter) e D/A (DAC – Digital-to-analog converter) estão na fronteira entre o analógico e digital, transformando valores elétricos analógicos de entrada em valores digitais de saída e valores digitais de entrada em analógicos de saída, respectivamente, permitindo que sistemas digitais realizem o controle de processos físicos, por meio de variáveis analógicas. O diagrama do controle de uma variável física por um sistema digital é apresentado na Figura 21, apresentando os cinco elementos principais: 1. transdutor; 2. conversor ADC; 3. sistema digital para controle; 4. conversor DAC; e 5. atuador. Figura 21 – Conversores ADC e DAC são utilizados para interfacear um sistema digital com o mundo analógico, monitorando uma variável física Fonte: Tocci, 2011, p. 629. 4.1 Conversão D/A 24 Começaremos este estudo com a conversão digital-analógica, que é estudada antes porque algumas conversores analógico-digitais empregam conversores D/A na sua construção (Tocci, 2011, p. 630). O processo de conversão D/A trata um valor digital de entrada, gerando um valor analógico de saída único. Para cada valor digital de entrada existirá um único valor analógico de saída. Por esse motivo, o sinal analógico de saída de um conversor D/A não é exatamente um sinal analógico, mas um sinal que assume determinados patamares de valor conforme a quantidade de bits na entrada digital e a tensão de referência. A Figura 22 mostra um conversor D/A de quatro bits. Os quatro bitsproduzem 16 níveis de tensão na saída analógica, cuja tensão máxima é definida pela tensão de referência da conversão. No exemplo, a tensão de referência é de 16 V, que produz 16 valores de tensão em uma faixa de 0 a 15 V. Figura 22 – Conversão analógica-digital Fonte: Tocci, 2011, p. 639. Segundo Tocci (2011), a relação de conversão pode ser calculada pela expressão (1), na qual K é o fator de proporcionalidade do conversor D/A. 𝑠𝑎í𝑑𝑎 𝑎𝑛𝑎𝑙ó𝑔𝑖𝑐𝑎 = 𝐾 ∗ 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑑𝑖𝑔𝑖𝑡𝑎𝑙 (1) No caso do conversor da Figura 22, o fator de proporcionalidade é K = 1 V. Assim como ocorria na conversão binário decimal, cada bit possui um determinado peso e uma determinada contribuição para a formação do valor de saída. Como o sinal D (MSB) tem peso 8 (23), por exemplo, sua contribuição 25 neste conversor é de SA = K * ED = [1 V] * 8 = 8 V. Dessa forma, o valor binário “1011” possui a soma dos pesos 23 + 21 + 20 = 8 + 2 + 1 = 11, levando ao valor de saída de SA = K * ED = [1 V] * 11 = 11 V, correspondendo ao valor apresentado na tabela da Figura 22. Um dos parâmetros de um conversor D/A é a resolução. A resolução representa o valor do degrau na saída analógica entre dois valores digitais subsequentes, que no caso do conversor da Figura 22 é de 1 V. Representa a mesma medida que o fator de proporcionalidade entre entrada e saída do conversor (K) (Tocci, 2011). Na Figura 23, um conversor D/A acionado por um contador módulo 4, produz um sinal analógico que descreve uma escada, que representa cada valor digital de entrada multiplicado pelo fator de proporcionalidade. Cada degrau da escada representa a resolução do conversor D/A. O valor analógico correspondente ao maior valor digital de entrada é definido como fundo de escala. Figura 23 – Conversor D/A acionado por um contador binário módulo 16 Fonte: Tocci, 2011, p. 632. Aumentando a quantidade de bits do conversor D/A, aumenta a quantidade de degraus, consequentemente promovendo uma redução no valor do degrau, aumentando a granularidade e melhorando significativamente a qualidade do sinal analógico gerado pelo conversor. Quanto maior a quantidade de bits do conversor D/A, mais fina será a resolução (Tocci, 2011). Para a mesma tensão de fundo de escala da Figura 23, considerando um conversor de 8 bits, a resolução seria de 58,82 mV. O valor da resolução pode ser determinado pela expressão (2), onde AFS é o valor analógico de fundo de escala (FS – Full Scale) e N é a quantidade de bits do conversor D/A. 𝑅𝑒𝑠𝑜𝑙𝑢çã𝑜 = 𝐾 = 𝐴𝐹𝑆 2𝑁 − 1 (2) 26 A resolução pode ser representada em um valor percentual, determinada pela expressão (3), obtida pela razão da resolução pelo valor de fundo de escala. 𝑅(%) = 𝐾 𝐴𝐹𝑆 ∗ 100% (3) Alguns conversores D/A são bipolares cujos valores de saída excursionam entre valores positivos e negativos, conforme diagrama apresentado na Figura 24. Os valores digitais de entrada, neste tipo de conversor D/A, podem ser valores não sinalizados (binários) ou podem utilizar uma representação para números negativos, como o complemento de 2 (C2), por exemplo, estudado anteriormente. Figura 24 – Conversores D/A bifásicos Fonte: Tocci, 2011, p. 635. 4.2 Circuito de um conversor D/A simples A Figura 25 mostra um circuito simples que apresenta o princípio de conversão digital-analógica. Com base na implementação de um somador inversor, utilizando um amplificador operacional, é construído um conversor D/A de quatro bits. Os resistores são escolhidos para apresentar um ganho ponderado equivalente a ponderação binária posicional do valor de entrada. Ou seja, para a entrada “A” (LSB), o ganho do somador é a metade do ganho programado para entrada “B”, que, por sua vez, é metade do ganho da entrada “C”, que é a metade do ganho da entrada “D” (MSB). Dessa forma, reproduzem- se os pesos posicionais da representação binária. As entradas digitais apresentam valores de tensão correspondente aos níveis lógicos, sendo 5 V para nível lógico alto ou 0 V, para o nível lógico baixo. A expressão da tensão de saída de somador com amplificador operacional é apresentado na expressão 4 (Millman, 1981, p. 597). Substituindo os valores dos resistores pelas relações 27 entre resistências apresentadas no circuito do conversor D/A, a tensão de saída será dada pela expressão 5 (Tocci, 2011, p. 636), que é um somatório das tensões de entrada multiplicadas pelo ganho ponderado associado a cada entrada digital. 𝑉𝑂𝑈𝑇 = − ( 𝑅𝐹 𝑅𝐷 𝑉𝐷 + 𝑅𝐹 𝑅𝐶 𝑉𝐶 + 𝑅𝐹 𝑅𝐵 𝑉𝐵 + 𝑅𝐹 𝑅𝐴 𝑉𝐴) (4) 𝑉𝑂𝑈𝑇 = − (𝑉𝐷 + 1 2 𝑉𝐶 + 1 4 𝑉𝐵 + 1 8 𝑉𝐴) (5) Para o valor de entrada “1011”, por exemplo, o valor da saída pode ser determinado como VOUT = -(5 + 0 + 5/4 + 5/8) = - 6,875, conforme encontrado na tabela da Figura 25, para o código de entrada “1011”. Para o valor do fundo de escala teremos VOUT = -(5 + 5/2 + 5/4 + 5/8) = -9,375. Dessa forma, obtemos qualquer valor da tabela e apresentamos o princípio da conversão D/A. Figura 25 – Circuito de um conversor D/A simples Fonte: Tocci, 2011, p. 636. O circuito visto nessa figura, embora funcional, apresenta problemas práticos na precisão da conversão. A tolerância nos valores das resistências afeta os valores de saída que dependem diretamente das relações entre seus valores para a ponderação em cada entrada digital. Outro problema está na tensão de entrada digital que representa os níveis lógicos, que variam dentro da faixa considerada nível lógico alto (2 – 5 V) e nível lógico baixo (0 – 0,7 V), sendo raramente 5 V e 0V, afetando a tensão de saída do conversor D/A. O primeiro problema seria resolvido com o uso de resistores de precisão, com tolerância de 0,01 % (Tocci, 2011; Vishay, 2021a) ou 0,005% (Vishay, 2021b). Porém, a variação da tensão digital de entrada faz parte do padrão digital e não pode ser alterada, sendo necessário resolver de outra forma. Na Figura 26 é sugerida a 28 utilização de chaves comutadoras CMOS, como as chaves disponíveis no CI CD4066, e uma fonte de referência de precisão. As entradas digitais com valores lógicos altos acionam as chaves CMOS, que conduzem um valor preciso e estável de tensão às entradas do somador. Para os níveis lógicos baixos, as chaves permanecem abertas, submetendo um valor de 0 V às entradas do somador. Esses recursos permitem que saídas digitais comuns sejam interligadas diretamente com as entradas do conversor D/A sem afetar a precisão dos valores da saída analógica. Figura 26 – Conversor D/A de quatro bits com fonte de referência de precisão Fonte: Tocci, 2011, p. 637. Os conversores D/A podem fornecer uma saída em tensão, como apresentado no estudo citado, ou uma saída em corrente, apresentando os mesmos princípios e parâmetros funcionais. 4.3 Conversor D/A R/2R Na apresentação do conversor do item 4.2, há um problema prático para construção de conversores para resolução muito granulada. Um conversor de 12 bits, por exemplo, teria nas ponderações de entrada valores de resistências que variariam de 1 kΩ, para o MSB à 2 MΩ, para o LSB. Segundo Tocci (2011), o processo de fabricação para circuitos integrados não lida bem com resistências 29 integradas com diferenças muito grandes, principalmente com relação à variação de temperatura. Para tanto, foi desenvolvido o conversor com rede resistiva R/2R que apresenta, para todas as entradas digitais, apenas resistores com valor R e 2R, ou seja, alguns resistores com um certo valor (R) e outros com o dobro deste valor (2R), conforme o diagrama apresentado na Figura 27. Embora empregue o dobro de resistores, quando comparado ao conversor da Figura 26, utiliza apenas resistores R e 2R independentemente da quantidade de entradas digitais. Figura 27 – Conversor D/A empregando rede R/2RFonte: Millman,1981, p. 715. Observando na Figura 27, em qualquer nó da rede R/2R, a resistência equivalente será 2R à direita, à esquerda ou em direção à chave de comutação. Considerando a corrente fluindo da fonte de referência pela chave B3 (MSB), a resistência R9 está à direita, para o terra-virtual do amplificador operacional, e uma resistência equivalente igual a 2R à esquerda, formada pelas resistências (((R1//R2 + R3)//R4 + R5)// R6 + R7), faz a corrente de dividir igualmente nas duas direções. A corrente em R9 é a metade da corrente em R8. Logo, para R = 1 kΩ, conforme apresentado na Figura 27, temos: 𝑉𝑅𝐸𝐹 = 𝑅8. 𝑖 + 𝑅9. 𝑖 2 = 2𝑅. 𝑖 + 2𝑅. 𝑖 2 = 𝑖(2𝑅 + 𝑅) ∴ 𝑖 = 𝑉𝑅𝐸𝐹 3𝑅 (6) 𝑉𝑜 = −𝑅𝐹. 𝑖 2 = −3𝑅. 𝑉𝑅𝐸𝐹 3𝑅 . 1 2 = − 𝑉𝑅𝐸𝐹 2 ∴ 𝑉𝑜 = − −𝑉𝑅𝐸𝐹 2 = 2,5 𝑉 (7) 30 Como pode ser observado na equação 7, o valor da tensão de saída é independente do valor das resistências, desde que se mantenha a relação R/2R na rede resistiva. Na comutação da chave B2, R6 é interligado à fonte de referência. Por este ramo, passa a circular uma corrente com intensidade i, que é o mesmo valor obtido pela equação (6), para B3. Porém, após R7, esta corrente é a metade de i e se divide novamente, e igualmente, pelos ramos de R9, em direção ao terra- virtual, e de R8, em direção ao referencial terra do circuito, entregando à R9 e, consequentemente, RF uma corrente com intensidade i/4, produzindo uma tensão de saída de -VREF/4. Desta forma, B3 contribui com zero ou com VREF/2, B2 contribui com zero ou VREF/4, B1 com zero ou VREF/8 e B0 com zero ou com VREF/16, produzindo 16 valores combinados de saída de zero à VREF-VREF/16, ou seja, VREF-V(LSB). 4.4 Caracterização de um D/A A resolução de um conversor D/A é dado pela quantidade de bits que define, consequentemente, a quantidade de degraus e a menor medida de conversão, ou o valor do LSB. A precisão é uma medida que apresenta a diferença entre o valor do esperado do degrau e o valor real, a qualquer momento, normalmente apresentada em porcentagem do valor de fundo de escala (% F.S). Para uma precisão de 0,01%, por exemplo, para um conversor de 8 bits com valor de fundo de escala de 4,9805 V (VREF = 5 V), o erro máximo previsto poderia ser de até E=±0,01% * 4,9805 V = ±498 µV, a qualquer momento, para uma determinada conversão (Tocci, 2011), conforme apresentado na Figura 28. O erro de linearidade também é dado com relação ao valor de fundo de escala (% F.S.) e significa que uma diferença que pode ocorrer no valor dos degraus, com relação ao valor teórico esperado, é de, no máximo, esse valor. Para o exemplo do paragrama anterior, um erro de até 498 µV pode ser observado nos valores de um degrau. A Figura 28 apresenta um gráfico descrevendo o erro de linearidade. O erro de offset ocorre quando, para uma entrada digital toda em nível lógico baixo, há um valor de tensão na saída analógica do conversor. Essa tensão, embora de pequena ordem, deslocará todos os valores convertidos. Por exemplo, se existir uma tensão de +1 mV na saída analógica, todas as 31 conversões apresentarão um valor 1 mV maior que o esperado, conforme apresentado na Figura 28. O tempo de estabilização é o período necessário para a saída atingir ½ do LSB para qualquer conversão. Considerando o conversor do exemplo, com uma entrada digital de “10000000” (128) para o valor esperado de saída de 2,5000 V, o tempo de estabilização será atingido quando o valor de saída estiver entre 2,4902 V e 2,5098, ou seja, 2,5000 V ± (LSB/2) = 2,5000 V ± 9,7656 mV. A monotonicidade é definida como o incremento do valor digital acompanhado do incremento do valor analógico. Caso isso não aconteça em qualquer momento há um erro de monotonicidade no conversor D/A, conforme apresentado na Figura 28. 32 Figura 28 – Caracterização de um conversor D/A TEMA 5 – CONVERSORES A/D O processo de conversão A/D consiste em receber uma amostra da intensidade momentânea de um sinal analógico e determinar o valor digital correspondente a esse valor analógico. É normalmente mais complexo e demanda mais tempo para se determinar o valor digital (Tocci, 2011, p. 645). Os primeiros conversores A/D eram mais lentos e impuseram a necessidade de buscar outros métodos para tornar a conversão A/D mais rápida. 33 5.1 Conversor A/D genérico O princípio básico de conversão é apresentado na Figura 29. Segundo Millman (1981), uma sequência contínua de pulso é aplicada a um contador binário através de uma porta AND, que está normalmente bloqueada, sendo liberada ao iniciar um novo processo de conversão, que produz uma rampa digital (escada crescente). A partir de um valor binário produzido pelo contador, é produzido um valor pseudoanalógico via conversão D/A (VD), que é comparado com o valor analógico de entrada (VIN). Caso o valor VD seja menor que o valor VIN, o contador continua incrementando o valor binário e consequentemente o valor VD, conforme é apresentado no gráfico da Figura 29, até que seja, finalmente, maior que o valor VIN. Essa condição faz a saída do comparador (VCOUT) ir a nível lógico baixo (zero) que inibe a passagem do sinal de relógio para o contador pelo bloqueio da porta AND que, dessa forma, encerra o processo de conversão, fornecendo o valor digital pelo valor presente na saída do contador binário (Tocci, 2011, p. 645). Figura 29 – Esquema geral de uma classe de ADC Fonte: Millman, 1981, p. 717. Observe que a quantidade de pulsos que passam pela porta AND é proporcional ao valor analógico presente na entrada do conversor e que o valor digital encontrado (Millman, 1981, p. 716) é aproximadamente superior ao valor analógico na entrada do conversor, mas sempre com valor inferior ao LSB do contador/conversor. Essa diferença é conhecida como erro de quantização. O 34 tempo de conversão dependerá da frequência de relógio aplicada ao contador e do tempo de estabilização do conversor D/A. Como os valores analógicos variam com o tempo, são obtidos a cada intervalo regular, que precisam ser consistentes ao tempo de conversão (Milman, 1981, p. 717). Ou seja, o intervalo de amostragem precisa ser maior que o maior tempo esperado de conversão. Essa cadência é conhecida como frequência de amostragem. 5.2 Conversor A/D de rampa digital Segundo Tocci (2011), uma das versões mais simples do conversor A/D, que é baseada no modelo já descrito, é denominada conversor A/D de Rampa Digital e é apresentada na Figura 30. Um contador que tem o papel de contador e registrador é incrementado continuamente, um pulso de cada vez, até que o valor VD ultrapasse o valor VIN. O processo inicia com o sinal ST (start), que inibe os sinais de clock para o contador, bloqueando a porta de controle AND, ao mesmo tempo que reinicia o contador (ou zera o registrador), pela entrada RST (reset). Quando o sinal ST é desativado, inicia o processo de conversão, liberando o sinal de clock pelo desbloqueio do controle realizado pela AND. O primeiro pulso de clock avança a contagem do registrador. O valor binário do contador é aplicado ao conversor D/A. A resolução do conversor A/D é definida pela resolução do contador D/A e pela quantidade de bits do contador, compatível com o conversor D/A. O valor VD, proveniente do conversor D/A, é incrementado por um valor de LSB (resolução do conversor D/A). Enquanto VD for menor que VIN, a saída do comparador, 𝐸𝑂𝐶̅̅ ̅̅ ̅̅ (End of Conversion), permanece em nível lógico alto (“1”), mantendo a porta de controle AND liberada, que permite o fornecimento de pulso de clock para o contador que, consequentemente, avança para o próximo valor a cada pulso de entrada. Quando o valor VD ultrapassa o valor da entrada analógica VIN, o comparador troca o nível lógico de saída, ativando o sinal de fim de conversão𝐸𝑂𝐶̅̅ ̅̅ ̅̅ , conforme apresentado no diagrama e no gráfico da Figura 30, que bloqueia o sinal de clock para o contador. O valor digital fica disponível no registrador/contador. O sinal 𝐸𝑂𝐶̅̅ ̅̅ ̅̅ também sinaliza a outros dispositivos que há um novo resultado de conversão disponível, permitindo que este possa ser lido. Esse valor pode ficar disponível até a ocorrência de uma nova ativação do sinal ST. 35 Figura 30 – Diagrama em blocos de um conversor A/D em rampa digital Fonte: Tocci, 2011, p. 646. O tempo de conversão depende do valor analógico e é proporcional a este. Em outras palavras, no conversor de rampa digital, quanto maior o valor analógico, maior o tempo de conversão. 5.3 Conversor A/D aproximações sucessivas (SAR) O conversor A/D de aproximações sucessivas (Successive Approximation - SAR) emprega um conversor D/A, assim como o ADC de rampa digital, mas adota uma estratégia diferente do incremento de um contador na busca do valor analógico deste último. Sua operação emprega um bloco lógico de controle que realiza a busca, adotando um mecanismo de teste de bit e um registrador de controle que auxilia na formação e disponibilização do valor digital de saída. A entrada do registrador de controle está ligada ao bloco de controle, e a saída do registrador está ligada à entrada do conversor D/A, como pode ser observado na Figura 31. O mecanismo de conversão inicia o processo, após a ocorrência do sinal START, pela ativação do bit MSB (most significant bit) no registrador de controle, que produz um valor de, aproximadamente, meio fundo de escala (½ FS) na saída do conversor D/A (VAX), que é comparado com o valor analógico de entrada (VA). A saída do comparador produz um sinal de retorno para a lógica de controle, que mantém ou não o MSB ativo antes de passar para a análise do próximo bit mais significativo, que não este, conforme algoritmo apresentado da 36 Figura 31. O bloco de controle avalia se a tensão VA é maior ou menor que VAX ou, em outras palavras, se o valor VA se encontra na primeira ou na segunda metade da escala, uma vez que o peso do MSB faz esta distinção. Se VA for maior que VAX, o valor final estará em algum lugar entre o ½ FS e FS e se VA for menor que VAX, o valor final estará entre 0 e ½ FS. Figura 31 – Diagrama em blocos de um conversor A/D de aproximações sucessivas Fonte: Tocci, 2011, p. 653. Após a definição do valor do MSB, o bloco de controle ativa o segundo bit mais significativo, que definirá um novo valor na saída VAX, que será maior ou menor que VA. Caso VAX seja maior que VA, o bit é desativado, e caso seja menor o bit permanecerá ativo, definindo o segundo bit do valor binário. O bloco de controle ativa o próximo bit mais significativo e assim, sucessivamente, até que todos os bits sejam testados. Quando o valor do LSB (least significant bit) for definido, o sinal 𝐸𝑂𝐶̅̅ ̅̅ ̅̅ se torna ativo, indicando que o valor digital da conversão foi determinado e está disponível no registrador de controle. Quando comparado ao ADC de rampa digital, o mecanismo empregado pelo conversor A/D de aproximações sucessivas é bem mais rápido e possui tempo fixo para conversão que depende da resolução (quantidade de bits) e independe do valor analógico VA (Tocci, 2011, p. 652). O valor digital encontrado 37 será pouco menor que o valor real, superior a zero e inferior à resolução de um degrau (LSB). 5.4 Conversor A/D Flash O conversor A/D Flash possui o mecanismo mais rápido de conversão, composto essencialmente por comparadores, mas que se torna rapidamente caro para conversores resolução elevada. Na Figura 32 é apresentado um ADC Flash para 3 bits de resolução, que envolve o emprego de sete comparadores. Para um ADC de 8 bits seriam necessários 255 comparadores (2N-1), além dos circuitos necessários para a implementação de um codificador de prioridade de 255 entradas. O tempo de conversão é dependente da comutação dos comparadores e da propagação dos circuitos digitais no codificador de prioridade, portanto, muito rápido e independente do valor analógico de entrada. O princípio de funcionamento do ADC Flash baseia-se na comparação entre a tensão de entrada (VAIN) e vários valores de tensão, produzidos pelo valor de fundo de escala (FS), distribuído em uma rede resistiva, que fornece as referências de tensão para cada degrau da escala. Na Figura 32 é apresentado um conversor A/D Flash de três bits, no qual podem ser observados sete níveis de tensão correspondentes aos valores de referência dos degraus, com resolução de 1 V, cujo valor de FS é 7 V. Os valores de referência são aplicados nas entradas não inversora dos comparadores. A entrada VAIN é comum a todos os comparadores e é aplicada nas entradas inversoras dos comparadores, de modo que essa tensão seja comparada a cada um dos valores de referência da rede resistiva (entradas não inversoras). Cada comparador que experimentar a condição de a tensão de entrada VAIN ser maior que a tensão de referência apresentará uma saída zero. Exemplificando com base na Figura 32, caso VAIN seja 3,54 V, os comparadores C1 (1 V), C2 (2 V) e C3 (3 V) apresentarão saída de nível lógico baixo, e os comparadores C4, C5, C6 e C7, de 4 V a 7 V, apresentarão saídas de nível lógico alto, condição prevista na tabela-verdade da mesma figura, que produzirá a codificação do valor binário “011”. O ADC MAX105 da Maxim, por exemplo, é um conversor A/D Flash duplo que possui uma taxa de conversão de 800 Msps (samples per second do inglês, amostras por segundo), para digitalização de sinais de entrada com frequências de até 200 MHz, mas que possui apenas 6 bits de resolução e que custa US$ 42,24 por unidade, no momento da elaboração deste texto (Maxim, 2021). 38 Comparando, um ADC SAR da Texas com 10 bits de resolução, baixo consumo e pequena dimensão, com taxa de conversão de 2 Msps (Texas, 2021), possui um custo unitário de US$ 1,96 (Mouser, 2021), no momento da elaboração deste texto. Figura 32 – Diagrama de um conversor A/D Flash de três bits e tabela verdade do codificador de prioridade Fonte: Tocci, 2011, p. 660. 5.5 Outros métodos de conversão A/D Além desses métodos mais conhecidos e comuns de conversão, outras técnicas foram desenvolvidas para se obter maior imunidade ao ruído de baixa frequência, como os necessários em processos industriais, ou para permitir amostrar sinais com maior resolução com custos menores, como para voz e música, ou para medição de sinais com pouca variação, como medidores de tensão DC. 5.5.1 Conversor A/D de rampa dupla O ADC de rampa dupla não utiliza um D/A no mecanismo de conversão, mas capacitores que carregam com uma corrente constante, proporcional ao valor analógico de entrada VA e, após determinado tempo fixo, descarregam, 39 para uma carga padrão até zero. O tempo de descarga, de outra forma, é variável e depende da carga adquirida pelo capacitor na primeira parte da conversão, conforme apresentado na Figura 33. Durante o período de descarga, um contador é habilitado e conta até que o capacitor se descarregue completamente. Como os circuitos integradores garantem a carga e descarga lineares do capacitor, o valor presente no contador ao final da descarga do capacitor será proporcional ao valor analógico de entrada, ou seja, um valor digital que representa o valor analógico de entrada. O conversor de dupla rampa é de custo baixo e não emprega outros dispositivos de precisão como DAC e VCO (voltage- controlled oscillator do inglês, osciladores controlados por tensão). Figura 33 – Operação do ADC de rampa dupla Fonte: Tocci, 2011, p. 661. O conversor A/D de rampa dupla ainda pode fornecer resoluções altas para conversões de sinais de baixa frequência, além de mantém boa imunidade ao ruído e estabilidade diante de variaçõestemperatura e precisão dos componentes. Embora a aquisição de dados não seja a aplicação adequada para este conversor, encontrou sua aplicação típica em multímetros digitais cujo tempo de conversão não afeta a funcionalidade desejada (Tocci, 2011, p. 662). 5.5.2 Conversor A/D Tensão-Frequência (VFC/counter ADC) Os conversores A/D tensão-frequência (Voltage-to-Frequency Converters/counter ADC – VFC/counter ADC) possuem um mecanismo de compreensão bastante simples de conversão, baseado em um oscilador controlado por tensão (VOC) que produz uma frequência de saída que é linearmente proporcional à tensão analógica na entrada do seu circuito (Tocci, 40 2011, p. 662). O diagrama em blocos do conversor A/D tensão-frequência pode ser observado no diagrama da Figura 34. Dependendo da intensidade do valor analógico de entrada, o VCO produzirá uma frequência maior ou menor, proporcional às variações na tensão de entrada. Por exemplo, se o VCO tiver uma relação de 10 kHz/V, uma tensão de entrada de 1 V produzirá um sinal de saída com uma frequência de 10 kHz. Caso a próxima amostra seja de 1,3 V, o VCO produzirá uma saída com 13 kHz e, se na próxima amostra for 0,75 V, produzirá uma saída de 7,5 kHz. A saída do VCO é ligada a um contador, que contará ao longo de um intervalo de tempo fixo (tempo de conversão), apresentando um valor de contagem proporcional à frequência de entrada, que, por sua vez, é proporcional ao valor analógico na entrada do VCO. Ou seja, o valor analógico de entrada produzirá um valor digital, correspondente, no contador, realizando a conversão A/D. Figura 34 – Princípio do ADC por tensão-frequência Segundo Tocci (2011, p. 662), uma característica importante desse conversor A/D T-F está na sua precisão, em função da dificuldade prática de se implementar um VCO mais preciso, cujos valores ficam em torno de 0,1 %. Sua aplicação típica ocorre em ambiente industrial onde a transmissão de uma frequência por um cabo sofre menos interferência que outras forma de sinalização, como na utilização de tensão ou corrente. Quando maior a frequência, maior o valor analógico medido na variável de controle. Segundo Kester e Bryant (2009, p. 1), por ser monolítico, pequeno, livre de códigos ausentes e por possuir imunidade a ruído e baixo consumo, encontra aplicações em telemetria, podendo ser implantado, montado ou instalado em um sujeito experimental, como pacientes, animais selvagens e projéteis de artilharia e transmitir informações de medições de variáveis de controle por enlaces de telemetria. 41 5.5.3 Conversor A/D Sigma/Delta (ΔΣ) O conversor Sigma/Delta (ΔΣ) é um dispositivo de sobre amostragem que utiliza uma taxa de amostragem maior que a taxa mínima (fsmin ≥ 2fBW) que é maior de duas vezes a maior frequência (ou banda) do sinal amostrado (FBW – bandwidth). Portanto, a taxa de sobre amostragem é maior que fsmin. O codificador A/D ΔΣ produz um sinal digital de saída que possui uma densidade de bits “1” variável e proporcional ao valor analógico de entrada. Um valor positivo produz uma sequência binária na qual o bit “1” é mais denso. Um valor negativo produz, de outra forma, um sinal digital com baixa densidade de bits “1”. Por exemplo, o valor “011101111110111” representaria um valor analógico positivo intenso, já o valor “000010000001000” representaria um sinal analógico negativo intenso. O primeiro módulo do conversor A/D é o modulador Sigma/Delta, que faz uma amostragem grosseira, com resolução de 1 bit do sinal de entrada, a uma taxa muito elevada, produzindo uma sequência serial binária. O próximo módulo, formado por um filtro e um decimador digitais, convertem a sequência serial binária em um valor digital alta resolução, mas com uma taxa de conversão lenta. O conversor A/D ΔΣ tem, então, duas taxas de conversão, sendo uma para de amostragem (fS) e outra para a saída, na disponibilização do valor digital de alta resolução (fD). Figura 35 – Diagrama de blocos e gráfico típico do modulador ADC ΔΣ O modulador ΔΣ é a principal parte funcional do conversor A/D ΔΣ. É responsável por digitalizar o sinal da entrada analógica e reduzir ruído em frequências mais baixas. A arquitetura implementa, nessa fase, uma função chamada modelagem de ruído, que desloca o ruído de baixa frequência para frequências mais altas, fora da banda de interesse. A modelagem de ruído é uma 42 das razões para que os conversores ΔΣ sejam adequados para medições de baixa frequência e alta precisão (Texas, 2011, p.1). O sinal de entrada para o modulador ΔΣ é uma tensão analógica variável no tempo. Com os ADCs anteriores, a tensão de entrada sinal era principalmente para aplicações de áudio onde os sinais AC eram importantes. Agora que a atenção se voltou para aplicações de precisão, as taxas de conversão dos aplicativos incluem sinais DC (Texas, 2011, p. 1) 5.5.4 Conversor A/D Pipelined O conversor A/D Pinelined divide a escala em subescalas que são convertidas por módulos separados. O primeiro módulo faz a conversão dos n bits mais significativos. A saída desse módulo, novamente convertido em analógico, é subtraída do sinal de entrada desse estágio. A diferença é amplificada por um ganho G apropriado e submetida ao próximo módulo, responsável pela conversão dos próximos n bits, conforme apresentado na Figura 36 (a). Esse processo continua estágio a estágio, determinando os n bits parciais, até a conversão do estágio final para os n bits menos significativos. A arquitetura do conversor A/D Pipelined emprega ADC Flash de 3 ou 4 bits, proporcionando conversões parciais rápidas, podendo ser implementado com resolução elevada com custos relativamente baixos, tendo sido bastante difundida (Tocci, 2011, p. 664). Figura 36 – Diagrama ADC Pipelined (a); arquitetura ADC Pipelined ADS54J54 (b) Fonte: Tocci, 2011, p. 665; Texas, 2016, p. 2. 43 A arquitetura de um dispositivo real, pode ser observado na Figura 36 (b), obtido da folha de dados (datasheet) do ADC Pipelined comercial ADS54J54, com custo unitário em torno de US$ 3,00 (Mouse 2, 2021), no momento da elaboração deste texto. 5.6 Circuito de amostragem e retenção Os valores analógicos na entrada do conversor A/D são continuamente variáveis. Essa variação contínua pode afetar o processo de conversão na busca de um valor exato, durante o período de conversão. O circuito de amostragem e retenção é empregado para retirar uma amostra o sinal analógico e mantê-la fixa até o final do processo de conversão, evitando afetar o processo de conversão. O princípio de funcionamento dessa função consiste no chaveamento rápido do sinal analógico para a carga de um capacitor Ch, que mantém o valor da amostra mesmo após a abertura da chave. Na Figura 37, é apresentado um circuito simplificado para a função de amostragem e retenção. Os amplificadores A1 e A2 estão no modo seguidor de tensão, que apresentam alta impedância de entrada e seguem na saída o valor atual, presente na entrada do amplificador. O amplificador A1 evita que o sinal analógico de entrada seja afetado e que existam desvios de corrente significativos. O amplificador A2 evita que existam desvios de corrente significativos que afetem o valor carregado no capacitor Ch. A entrada digital de controle aciona a chave digital para obter a amostra do sinal analógico de entrada, obedecendo à taxa de amostragem. Figura 37 – Circuito de amostragem e retenção Fonte: Tocci, 2011, p. 666. 44 5.7 Amostragem A taxa de amostragem foi definida por Henry Nyquist como um valor de frequência (fS) que deve ser duas vezes maior que o maior componente de frequência (fBW) do sinal amostrado. Essa taxa é a necessária para permitir a recuperação de um sinal analógico a partir das amostras obtidas do sinal original. O sinal de voz digital, utilizado nos sistemasde telefonia fixo comutado, por exemplo, é obtido por uma taxa de 8.000 amostras por segundo. Esse valor foi definido com base na largura de banda de frequências definido para o sinal analógico de voz, que está limitado, por norma, entre 340 e 3400 Hz. A Figura 38 apresenta um cenário no qual a frequência de amostragem é inferior a necessária. A subamostragem obtém leituras inadequadas do sinal amostrado, produzindo um sinal falso, cuja frequência é a diferença entre as frequências do sinal original e o sinal de amostragem. Nessa figura, a expressão do sinal original, obtido do gráfico, é A = 3 sen(5t), que apresenta uma frequência de 0,79577 Hz. A frequência do sinal de amostragem é obtida pelo inverso do período dos pulsos de amostragem, com valor de 0,63662 Hz. O sinal resultado tem expressão B = 3sen(t) obtida pelo gráfico apresenta frequência de 0,15915 Hz. Claramente, o sinal resultante é diferente do sinal original, com a mesma amplitude, mas com frequência bem inferior. A diferença entre os sinais de amostragem e original é 0,79577 – 0,63662 = 0,15915 Hz, que é igual à frequência do sinal falso. Figura 38 – Sinal falso obtido por subamostragem 45 5.8 Arquiteturas típicas para conversores A/D A maioria dos conversores A/D se encaixam nas áreas de medição industrial de precisão, aplicações de voz e áudio, aquisição de dados e para obtenção de dados de alta velocidade (Tocci, 2011, p. 665). Os conversores A/D de rampa dupla apresentam custo baixo, baixa velocidade de conversão e imunidade a ruído, sendo aplicados principalmente no monitoramento de sinais DC e em multímetros digitais. Os conversores Sigma/Delta apresentam alta resolução e permite operação em larguras de faixas moderadas, sendo utilizados em aplicações industriais de precisão, leitura de sensores e acionamento de motores e em voz e áudio. Os conversores A/D de aproximações sucessivas são aplicados normalmente em aquisição de dados em múltiplos canais. Os conversores A/D Pipelined apresentam tempo de conversão menores e são aplicados em equipamentos de medição na digitalização em osciloscópios digitais, analisadores de espectro, exames por imagem e em radares, sistemas de comunicação e câmeras. Para aplicações de alta velocidade são utilizados os conversores A/D Flash (Tocci, 2011, p. 665). FINALIZANDO Nesta aula, estudamos as máquinas de estados finitos (FSM), sua representação gráfica em diagramas de estados e o processo de desenvolvimento de FSM com determinada função desejada. Estudamos a aplicação de FSM em contadores binários, Gray e em anel, em contadores progressivo-regressivo e registradores de deslocamento. Por último, analisamos o interfaceamento com o mundo real, apresentando os princípios da conversão de valores digitais para valores analógicas e de valores analógicos para valores digitais e seus parâmetros de qualificação. Vimos que os conversores A/D e D/A são empregados em praticamente todos os equipamentos digitais que realizam algum tipo de medição ou controle analógico e que apresentam soluções técnicas diferentes, com taxas de conversão e custos diversos, implementados por mecanismos de conversão distintos para aplicações com necessidades específicas. 46 REFERÊNCIAS KESTER, W.; BRYANT, J. Voltage-to-frequency converters. Analog Devices– MT-028 Tutorial, 2009. Disponível em: . Acesso em: 12 out. 2021. MAXIM Integrated, Max105, S.d. Disponível em: . Acesso em:12 out. 2021. MILLMAN, J. Eletrônica V-II. São Paulo: McGraw Hill do Brasil, 1981. MOUSER Eletronics. TI ADS7039QDCURQ1. Mouser Eletronics, S.d. Disponível em: . Acesso em: 12 out. 2021. _____. ADS54J54 Texas Instruments Analog to Digital Converters – ADC, 2021. Mouser Eletronics, S.d. Disponível em: . Acesso em: 12 out. 2021. PEDRONI, V. A. Eletrônica digital moderna e VHDL. Rio de Janeiro: Elsevier, 2010. TEXAS Instruments. ADS7039-Q1 Ultra-Low-Power Ultra-Small-Size 10-Bit 2MSPS ADC. Texas Instruments, S.d.a. Disponível em: . Acesso em: 12 out. 2021. _____. How delta-sigma ADCs work, Part 1. Texas Instruments, S.d.b. Disponível em: . Acesso em: 12 out. 2021. _____. TI High-Speed Designs - Verified Design Pipeline ADC Code Error Rate Analysis and Measurement. Texas Instruments, 2016. Disponível em: . Acesso em: 12 out. 2021. 47 TOCCI, R. J. Sistemas digitais – Princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2011. VISHAY. High precision (0.01 % / 10 ppm/°C) through hole thin film conformal coating sil resistor. Vishay, 2021a. Disponível em: . Acesso em: 12 out. 2021. _____. Wirewound resistor, ultra precision, epoxy molded, axial lead. Vishay, 2021b. Disponível em: . Acesso em: 12 out. 2021.