Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Microcontroladores, Notas de estudo de Teatro

Apostila detalhada sobre microcontroladores Freescalle

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 28/11/2009

janis-kids-9
janis-kids-9 🇧🇷

4.6

(47)

63 documentos

Pré-visualização parcial do texto

Baixe Microcontroladores e outras Notas de estudo em PDF para Teatro, somente na Docsity! Microcontroladores 1. Introdução Atualmente um grande número de microcontroladores, integrados em diversos equipamentos, exercem um papel importante no dia a dia das pessoas. Despertar ao som de um CD Player programável, tomar café da manhã preparado por um microondas digital, e ir ao trabalho de carro, cuja injeção de combustível é microcontrolada, são apenas alguns exemplos. O mercado de microcontroladores apresenta-se em franca expansão, ampliando seu alcance principalmente em aplicações residenciais, industriais, automotivas e de telecomunicações. Segundo dados da National Semiconductor (1997), uma residência típica americana possui 35 produtos baseados em microcontrolador. Estima-se que, em 2010, em média uma pessoa interagirá com 250 dispositivos com microcontroladores diariamente. Em um passado recente, o alto custo dos dispositivos eletrônicos limitou o uso dos microcontroladores apenas aos produtos domésticos considerados de alta tecnologia (televisão, vídeo e som). Porém, com a constante queda nos preços dos circuitos integrados, os microcontroladores passaram a ser utilizados em produtos menos sofisticados do ponto de vista da tecnologia, como máquinas de lavar, microondas, fogões e refrigeradores. Assim, a introdução do microcontrolador nestes produtos cria uma diferenciação e permite a inclusão de melhorias de segurança e de funcionalidade. Alguns mercados chegaram ao ponto de tornar obrigatório o uso de microcontroladores em determinados tipos de equipamentos, impondo um pré-requisito tecnológico. Muitos produtos que temos disponíveis hoje em dia, simplesmente não existiriam, ou não teriam as mesmas funcionalidades sem um microcontrolador. É o caso, por exemplo, de vários instrumentos biomédicos, instrumentos de navegação por satélites, detetores de radar, equipamentos de áudio e vídeo, eletrodomésticos, entre outros. Entretanto, o alcance dos microcontroladores vai além de oferecer algumas facilidades. Uma aplicação crucial, onde os microcontroladores são utilizados, é na redução de consumo de recursos naturais. Existem sistemas de aquecimento modernos que captam a luz solar e, de acordo com a demanda dos usuários, controlam a temperatura de forma a minimizar perdas. Um outro exemplo, de maior impacto, é o uso 1 Prof. Gustavo Weber Denardin de microcontroladores na redução do consumo de energia em motores elétricos, que são responsáveis pelo consumo de, aproximadamente, 50% de toda eletricidade produzida no planeta. Portanto, o alcance dessa tecnologia tem influência muito mais importante em nossas vidas, do que se possa imaginar. O universo de aplicações dos microcontroladores, como já mencionado, está em grande expansão, sendo que a maior parcela dessas aplicações é em sistemas embarcados. A expressão “sistema embarcado” (do inglês embedded system) se refere ao fato do microcontrolador ser inserido nas aplicações (produtos) e usado de forma exclusiva por elas. Como a complexidade desses sistemas cresce vertiginosamente, o software tem sido fundamental para oferecer as respostas às necessidades desse mercado. Tanto é, que o software para microcontroladores representa uma fatia considerável do mercado de software mundial. Segundo Edward Yourdon (consultor na área de computação, pioneiro nas metodologias de engenharia do software e programação estruturada) a proliferação dos sistemas embarcados, juntamente com o advento da Microsoft, são os responsáveis pela retomada do crescimento da indústria de software nos Estados Unidos da América. 2. Definição de Microcontrolador Um microcontrolador é um sistema computacional completo, no qual estão incluídos uma CPU (Central Processor Unit), memória de dados e programa, um sistema de clock, portas de I/O (Input/Output), além de outros possíveis periféricos, tais como, módulos de temporização e conversores A/D entre outros, integrados em um mesmo componente. As partes integrantes de qualquer computador, e que também estão presentes, em menor escala, nos microcontroladores são: ● Unidade Central de Processamento (CPU) ● Sistema de clock para dar seqüência às atividades da CPU ● Memória para armazenamento de instruções e para manipulação de dados ● Entradas para interiorizar na CPU informações do mundo externo ● Saídas para exteriorizar informações processadas pela CPU para o mundo externo ● Programa (firmware) para definir um objetivo ao sistema 2 Prof. Gustavo Weber Denardin armazena um operando para quaisquer instruções, lógica ou matemática. O resultado da operação é armazenado no acumulador após a instrução ser executada. Para que exista comunicação entre as unidades que formam um processador devemos definir uma forma de conexão entre estas unidades. Em um processador tradicional com arquitetura Von Neuman este meio é o barramento de dados. A largura do barramento de dados em bits é o que determina o número de bits para um dado processador. A figura a seguir apresenta a interface dos principais dispositivos que compõem um sistema microprocessado através de um barramento de dados. A CPU é o centro de todo sistema computacional, e não é diferente quando se trata de microcontroladores. O trabalho da CPU é executar rigorosamente as instruções de um programa, na seqüência programada, para uma aplicação específica. Um programa computacional (software) instrui a CPU a ler informações de entradas, ler e escrever informações na memória de dados, e escrever informações nas saídas. O diagrama de blocos simplificado da CPU presente nos microcontroladores da família HC08, também denominado de CPU08, é apresentado na figura a seguir. Esta arquitetura de processador será utilizada como modelo neste documento. 5 Prof. Gustavo Weber Denardin As principais funções de cada um dos componentes da CPU08 serão apresentadas a seguir. Unidade Lógica/Aritmética (ULA): A ULA é utilizada para realizar operações lógicas e aritméticas definidas no conjunto de instruções da CPU. Vários circuitos implementam as operações aritméticas binárias decodificas pelas instruções e fornecem dados para a execução da operação na ULA. A maioria das operações aritméticas binárias são baseadas em algoritmos de adição e subtração (adição com o valor negativo). A multiplicação é realizada através de uma série de adições e deslocamentos com a ULA sob controle lógico da CPU. Controle da CPU: O circuito de controle da CPU implementa o sequeciamento de elementos lógicos necessários para a ULA realizar as operações requisitadas durante a execução do programa. O elemento central da seção de controle da CPU é o decodificador de instruções. Cada opcode (código de instrução) é decodificado para determinar quantos operandos são necessários e qual seqüência de passos será necessária para completar a instrução em curso. Quando uma instrução é executada completamente, o próximo opcode é lido e decodificado. 6 Prof. Gustavo Weber Denardin Registradores da CPU: A CPU08 contém 5 registradores como apresentado na figura anterior. Os registradores da CPU são memórias especiais que não fazem parte do mapa de memória. O conjunto de registradores da CPU é freqüentemente chamado de modelo de programação. O acumulador, também chamado de registrador A, é freqüentemente utilizado para armazenar um dos operandos ou o resultado de operações. O registrador H:X é um registrador de 16 bits de índice que possibilita ao usuário endereçar indiretamente o espaço de memória de 64Kbytes. O byte mais significativo do registrador de índice é denominado H, e o byte menos significativo denominado X. Sua principal função é servir de apontador para uma área na memória onde a CPU irá carregar (ler) ou armazenar (escrever) informação. Quando não estiver sendo utilizado para apontar um endereço na memória, ele pode ser utilizado como registrador genérico. O registrador Program Counter (PC) é usado pela CPU para controlar e conduzir ordenadamente a busca do endereço da próxima instrução a ser executada. Quando a CPU é energizada ou passa por um processo de reset, o PC é carregado com o conteúdo de um par de endereços específicos denominados vetor de reset (reset vector). O vetor de reset contém o endereço da primeira instrução a ser executada pela CPU. Assim que as instruções são executadas, uma lógica interna a CPU incrementa o PC, de tal forma que ele sempre aponte para o próximo pedaço de informação que a CPU vai precisar. O número de bits do PC coincide exatamente com o número de linhas do barramento de endereços, que por sua vez determina o espaço total disponível de memória que pode ser acessada pela CPU. 7 Prof. Gustavo Weber Denardin 2.2. Sistema de Clock Todo sistema computacional utiliza um clock para fornecer a CPU uma maneira de se mover de instrução em instrução, em uma seqüência pré-determinada. Uma fonte de clock de alta freqüência (normalmente derivada de um cristal ressonador conectado a CPU) é utilizada para controlar o sequeciamento das instruções da CPU. Normalmente as CPUs dividem a freqüência básica do cristal por 2 ou mais para chegar ao clock do barramento interno. Cada ciclo de leitura ou escrita a memória é executado em um ciclo de clock do barramento interno, também denominado ciclo de barramento (bus cycle). 2.3. Memória Podemos pensar na memória como sendo uma lista de endereços postais, onde o conteúdo de cada endereço é um valor fixo de 8 bits (para CPU de 8 bits). Se um sistema computacional tem n linhas (bits) de endereços, ele pode endereçar 2n posições de memória (p.ex.: um sistema com 14 linhas pode acessar 214 = 16384 endereços). Entre os diversos tipos de memória encontram-se: RAM (Random Access Memory)– Memória de acesso aleatório. Pode ser lida ou escrita pela execução de instruções da CPU e, normalmente é utilizada para manipulação de dados pela CPU. O conteúdo é perdido na ausência de energia (memória volátil). ROM (Read Only Memory) – Memória apenas de leitura. Pode ser lida, mas não é alterável. O conteúdo deve ser determinado antes que o circuito integrado seja fabricado. O conteúdo é mantido na ausência de energia (memória não volátil). EPROM (Erasable and Programmable Read-Only Memory) – Memória ROM programável e apagável. O conteúdo dessa memória pode ser apagado com luz ultravioleta, e posteriormente, reprogramado com novos valores. As operações de apagamento e programação podem ser realizadas um número limitado de vezes depois que o circuito integrado for fabricado. Da mesma forma que a ROM, o conteúdo é mantido na ausência de energia (memória não volátil). OTP (One Time Programmable) – Memória programável uma única vez. Semelhante à EPROM quanto a programação, mas que não pode ser apagada. EEPROM (Electrically Erasable and Programmable Read-Only Memory) – Memória ROM programável e apagável eletricamente. Pode ter seu conteúdo alterado através da 10 Prof. Gustavo Weber Denardin utilização de sinais elétricos convenientes. Tipicamente, um endereço de uma EEPROM pode ser apagada e reprogramada até 100.000 vezes. FLASH – Memória funcionalmente semelhante a EEPROM, porém com ciclos de escrita bem mais rápidos. I/O (Input/Output) – Registradores de controle, estado e sinais de I/O são um tipo especial de memória porque a informação pode ser sentida (lida) e/ou alterada (escrita) por dispositivo diferentes da CPU. 2.4. Sinais de Entrada Dispositivos de entrada fornecem informação para a CPU processar, vindas do mundo externo. A maioria das entradas que os microcontroladores processam são denominadas sinais de entrada digitais, e utilizam níveis de tensão compatíveis com a fonte de alimentação do sistema. O sinal de 0V (GND ou VSS ) indica o nível lógico 0 e o sinal de fonte positiva, que tipicamente é +5VDC (VDD ) indica o nível lógico 1 (atualmente os microcontroladores começaram a reduzir a tensão de VDD para valores na faixa dos 3V). Naturalmente que no mundo real existem sinais puramente analógicos (com uma infinidade de valores) ou sinais que utilizam outros níveis de tensão. Alguns dispositivos de entrada traduzem as tensões do sinal para níveis compatíveis com VDD e VSS. Outros dispositivos de entrada convertem os sinais analógicos em sinais digitais (valores binários formados por 0s e 1s) que a CPU pode entender e manipular. Alguns microcontroladores incluem circuitos conversores analógicos/digitais (ADC) encapsulados no mesmo componente. 2.5. Sinais de Saída Dispositivos de saída são usados para informar ou agir no mundo exterior através do processamento de informações realizados pela CPU. Circuitos eletrônicos (algumas vezes construídos no próprio microcontrolador) podem converter sinais digitais em níveis de tensão analógicos. Se necessário, outros circuitos podem alterar os níveis de tensão VDD e VSS nativos da CPU em outros níveis. 11 Prof. Gustavo Weber Denardin 2.6. Códigos de operação (opcodes) Os programas usam códigos para fornecer instruções para a CPU. Estes códigos são chamados de códigos de operação ou opcodes. Cada opcode instrui a CPU a executar uma seqüência específica para realizar sua operação. Microcontroladores de diferentes fabricantes usam diferentes conjuntos de opcodes porque são implementados internamente por hardware na lógica da CPU. O conjunto de instruções de uma CPU especifica todas as operações que podem ser realizadas. Opcodes são uma representação das instruções que são entendidas pela máquina, isto é, uma codificação em representação binária a ser utilizada pela CPU. Mnemônicos são outra representação para as instruções, só que agora, para serem entendidas pelo programador. 2.7. Mnemônicos das instruções e assembler Um opcode como 0x4C é entendido pela CPU, mas não é significativo para nós humanos. Para resolver esse problema, um sistema de instruções mnemônicas equivalentes foram criadas (Linguagem Assembly). O opcode 0x4C corresponde ao mnemônico INCA, lê-se “incrementa o acumulador”, que é muito mais inteligível. Para realizar a tradução de mnemônicos em códigos de máquina (opcodes e outras informações) utilizados pela CPU é necessário um programa computacional chamado assembler (compilador para linguagem Assembly). Um programador utiliza um conjunto de instruções na forma de mnemônicos para desenvolver uma determinada aplicação, e posteriormente, usa um assembler para traduzir estas instruções para opcodes que a CPU pode entender. Após a descrição da unidade central de processamento de um microcontrolador podemos partir para o aprendizado da linguagem de programação Assembly. Recomenda-se a leitura da folha de dados (principalmente a seção que trata do conjunto de instruções) do microcontrolador, bem como da apostila do microcontrolador HC08, família QT/QY. O próximo capítulo deste documento irá descrever diversos periféricos que podem compor um microcontrolador, como portas de entrada/saída, temporizadores, entre outros. 12 Prof. Gustavo Weber Denardin registradores de configuração do temporizador neste microcontrolador são: TSC, TCNT e TMOD. Abaixo é apresentado o diagrama de blocos do temporizador destes microcontroladores. É importante ressaltar que alguns dos registradores apresentados na figura são relativos ao módulo PWM e captura de entrada. Figura – Diagrama de blocos do módulo temporizador de microcontrolador MC68HC908QY4 TSC (Timer Status and Control Register): Possibilita habilitar a interrupção do temporizador, verificar o estado da flag de interrupção, para-lo, reiniciar a contagem e dividir o relógio para obter a base de tempo. 15 Prof. Gustavo Weber Denardin Figura – Registrador TSC Abaixo serão descritos as funções de cada um dos bits deste registrador: TOF (Timer Overflow Flag): Este bit de escrita/leitura torna-se é setado quando o registrador contador (TCNT) atinge o valor do registrador de módulo de contagem (TMOD), condição essa que indica o estouro da contagem de tempo. O procedimento correto para limpar esta indicação é ler o registrador TSC e escrever um “0” lógico para o bit TOF; 1 = O módulo temporizador atingiu o valor desejado 0 = O módulo temporizador não atingiu o valor desejado TOIE (Timer Overflow Interrupt Enable Bit): Este bit de escrita/leitura habilita a interrupção do temporizador quando o bit TOF for setado. 1 = Interrupção do temporizador ativa 0 = Interrupção do temporizador desabilitada TSTOP (Timer Stop Bit): Este bit de escrita/leitura para o incremento do contador de tempo. 1 = Contador de tempo parado 0 = Contador de tempo ativo TRST (Timer Reset Bit): Levar este bit de escrita para nível lógico 1 irá iniciar o contador de tempo com zero e colocar o divisor de base de tempo para o estado inicial, ou seja, divisão por 1. 1 = Pré-Escala de base de tempo e contador iniciados com o valor “0”; 0 = Sem efeito 16 Prof. Gustavo Weber Denardin PS[2:0] (Prescaler Setect Bits) – Bits de pré-escala da base de tempo. Estes bits de escrita/leitura selecionam um dos sete possíveis valores de divisão da base de tempo do relógio para utilização como base de tempo do temporizador. PS2 PS1 PS0 Base de tempo do temporizador 0 0 0 Clock de barramento interno / 1 0 0 1 Clock de barramento interno / 2 0 1 0 Clock de barramento interno / 4 0 1 1 Clock de barramento interno / 8 1 0 0 Clock de barramento interno / 16 1 0 1 Clock de barramento interno / 32 1 1 0 Clock de barramento interno / 64 1 1 1 Não disponível TCNT (Timer Count Registers): Estes registradores são somente de leitura e contém o valor mais significativo (TCNTH) e menos significativo (TCNTL) do contador do temporizador. A leitura do registrador mais significativo deve ser realizada primeiro. Figura – Registrador TCNTH e TCNTL. TMOD (Timer Module Registers): Estes registradores de escrita/leitura contém o valor do módulo da contagem do temporizador. Quando os registradores de contagem (TCNT) atingem o valor dos registradores de módulo (TMOD), o bit TOF torna-se nível lógico “1” e os registradores de 17 Prof. Gustavo Weber Denardin Cálculo do valor de módulo de tempo: Módulo= 100×10 −3 2,5×10−6 =40000 Sendo 40000 um valor válido em 16 bits, a configuração do temporizador em linguagem “c” é apresentada abaixo: “c”: TMOD = 40000; /*Configuração do registrador TSC: Divisão por 8, timer ativo com interrupção do temporizador habilitada. TOF TOIE TSTOP TRST Reservado PS2 PS1 PS0 0 1 0 0 0 0 1 1 */ TSC = 0x43; Obs: Devemos lembrar que o código contido nas interrupções deve ser o menor possível, com o intuito de evitar que o tempo de execução deste código seja superior ao tempo da próxima interrupção. Por exemplo, se configurarmos a interrupção do temporizador para ocorrer a cada 100μs, o tempo de execução do código contido nesta interrupção não deve ser superior a esta base de tempo. Exemplo de utilização da interrupção do temporizador (esta interrupção é conhecida como interrupção de estouro de tempo): Assembly: ; Interrupção do temporizador. TOVER: BCLR 7,TSC ; Limpa a flag da interrupção do temporizador INC I ; Incrementa uma variável qualquer RTI ; Retorna da interrupção “c”: // Interrupção do temporizador interrupt void tover(void) { TSC_TOF = 0; // Limpa a flag da interrupção do temporizador i++; // Incrementa uma variável qualquer } // Retorna da interrupção 20 Prof. Gustavo Weber Denardin 3.2 PWM (Pulse Width Modulation) O módulo de geração de Modulação por Largura de Pulso (PWM) é um recurso muito utilizado para o controle de motores e conversores CC-CC em geral. A partir dele é possível gerar um sinal analógico, apesar de sua saída ser um sinal digital que assume apenas os níveis lógicos alto (um) e baixo (zero). A saída gerada é uma onda quadrada, com freqüência constante e largura de pulso variável. Estes conceitos estão diretamente relacionados com o período fixo e o ciclo ativo (duty cycle) respectivamente. A freqüência de uma onda pode ser definida como a quantidade de vezes que ela se repete no tempo. E o período é cada pedaço dessa onda que irá se repetir. O duty cycle define o tempo de sinal ativo (nível lógico alto) em um período fixo. Assim, quando temos um duty cycle de 100%, temos nível lógico alto por todo o período. Um duty cycle de 50% define a metade do período em nível lógico alto e a outra metade em nível lógico baixo. Se uma saída TTL for utilizada, a tensão média de saída em um duty cycle de 50% será 2,5V. Estes conceitos são demonstrados na figura abaixo. Devemos lembrar que o PWM nem sempre possui estado inicial positivo, podendo iniciar o período com nível lógico baixo. Figura – Sinais modulados por Largura de Pulso 21 Prof. Gustavo Weber Denardin A base de tempo dos módulos PWM normalmente é implementada de duas formas. Uma destas formas é utilizando o próprio módulo temporizador como base de tempo no PWM, ou seja, se o temporizador está configurado para um período de 1ms, a freqüência do PWM será de 1 KHz. A outra forma é utilizando um temporizador específico para o PWM, que deve ser configurado para a freqüência desejada. Ainda, um temporizador pode ser utilizado como base de tempo de várias saídas PWM, ou seja, vários PWM com a mesma freqüência, mas larguras de pulso diferentes. A figura a seguir irá exemplificar o funcionamento de um PWM em um microcontrolador onde o registrador PTPER possui o valor referente ao período do PWM e os registradores PWM1H e PWM2H representam dois canais de saída PWM. Figura – Sinais PWM com mesmo período e largura de pulso diferentes. Para exemplificar a configuração de um módulo PWM será utilizado novamente o microcontrolador MC68HC908QY4. Este microcontrolador utiliza o temporizador como base de tempo para o período do PWM. Desta forma, para configurar a freqüência do PWM deve-se utilizar a mesma metodologia adotada para o temporizador. Neste exemplo será configurado um PWM de 10 KHz com largura de pulso inicial do ciclo ativo de 40%, onde o relógio utilizado será de 3,2 MHz. 22 Prof. Gustavo Weber Denardin 1 = Comparação de saída no canal x 0 = Sem comparação de saída no canal x ChxIE (Channel x Interrupt Enable Bit): Este bit de escrita/leitura permite habilitar a interrupção de comparação de saída para o canal x. 1 = Interrupção do canal x habilitada 0 = Interrupção do canal x desabilitada TOVx (Toggle On Overflow Bit): Quando o canal x está configurado para comparação de saída, este bit de escrita/leitura controla o comportamento da saída do canal x quando ocorre um estouro de tempo no temporizador. 1 = Valor lógico no pino relativo ao canal x se altera no estouro de tempo 0 = Valor lógico no pino relativo ao canal x não se altera no estouro de tempo ChxMAX (Channel x Maximum Duty Cycle Enable Bit): Quando o bit TOVx está em nível lógico 1, ao setar o bit ChxMAX irá forçar o Duty Cycle do canal para 100%. Como a figura a seguir demonstra, o efeito relativo a este bit só é notado 1 ciclo após que este bit é alterado. O Duty Cycle permanece 100% até que este bit volte ao estado lógico zero. Figura – Latência do bit CHxMAX Os outros bits relativos a estes registradores são configurados a partir da tabela abaixo: 25 Prof. Gustavo Weber Denardin Tabela – Seleção de modo, nível e borda O registrador onde é realizada a configuração da largura de pulso é o TCHx, sendo TCHxH o registrador de maior significado e TCHxL o de menor significado na palavra de 16 bits que irá representar a largura do pulso. Abaixo estes registradores são apresentados. 26 Prof. Gustavo Weber Denardin Figura – Registradores TCH0H, TCH0L, TCH1H e TCH1L. Voltando ao exemplo onde deseja-se configurar um PWM de 10KHz com largura de pulso inicial igual a 40% e ciclo inicial ativo, utilizando um relógio de 3,2MHz. O módulo referente ao período do PWM já foi definido, sendo igual a 320. Para configurarmos a largura inicial para 40% deve-se utilizar 40% do valor do módulo do período encontrado, ou seja, TCH0 = 320 x 40% = 128. A seguir será apresentado a configuração do PWM do exemplo acima, utilizando modo sem buffer com saída no canal zero, tanto para Assembly quanto para “c”. 27 Prof. Gustavo Weber Denardin Figura – Exemplo de utilização de tempo morto 3.3 Conversores Analógico-Digital e Digital-Analógico De um modo geral, os sinais encontrados no mundo real são contínuos (ou analógicos, pois variam no tempo de forma contínua), como, por exemplo: a intensidade luminosa de um ambiente que se modifica com a distância, a aceleração de um carro de corrida, etc. Os sinais manipulados por computadores e sistemas embarcados são digitais, como por exemplo, uma faixa de áudio lida de um compact disk. A conversão analógico-digital (A/D) é o processo que possibilita a representação de sinais analógicos no mundo digital. Desta forma é possível utilizar os dados extraídos do mundo real para cálculos ou operar seus valores. Em geral, o conversor A/D está presente internamente nos processadores e controladores de sinais digitais e alguns microcontroladores, mas também existem circuitos integrados dedicados a este fim. Basicamente é um bloco que apresenta portas de entrada e saída. A entrada recebe sinais elétricos de forma contínua e possui uma faixa de tensão de entrada máxima e mínima. Nos microcontroladores que possuem um conversor A/D e operam na faixa de 5V, geralmente a faixa de tensão aceita sinais elétricos entre -5V e +5V. 30 Prof. Gustavo Weber Denardin Na saída o sinal é amostrado em um dado intervalo de tempo fixo (determinado pela freqüência de amostragem). Esta amostra disponibiliza um certo valor que representa o sinal original naquele momento (quantização). As características de quantização estão relacionadas à precisão do conversor. Para ilustrar esta situação, imagine que você queira mostrar a temperatura de um forno em um display de cristal líquido (LCD). Para isto seriam necessários alguns componentes eletrônicos. Os mais expressivos são: um transdutor (sensor de temperatura), um display de cristal líquido (LCD), um processador digital e um conversor analógico digital. Figura - Diagrama de blocos de uma conversão A/D de um sinal de temperatura A temperatura é um sinal analógico. O sensor de temperatura converte a temperatura em um sinal de impulsos elétricos analógicos. O conversor A/D recebe esse sinal e o transforma em sinal digital, através de amostragem, entregando ao processador. Este, por sua vez, manipula esses dados e envia-os para o display, mostrando em graus a temperatura do forno. A figura abaixo mostra a representação do sinal analógico de temperatura e seu equivalente na forma digital. Figura – Representação de um sinal de temperatura analógico e digital. 31 Prof. Gustavo Weber Denardin A informação digital é diferente de sua forma original contínua em dois aspectos fundamentais: ● É amostrada porque é baseada em amostragens, ou seja, são realizadas leituras em um intervalo fixo de tempo no sinal contínuo; ● É quantizada porque é atribuído um valor proporcional a cada amostra. Explorando um pouco mais o caso do forno, a figura abaixo detalha um pouco mais as três etapas mais importantes do processo: a aquisição, a amostragem e o processamento. Neste diagrama de blocos, o sinal analógico é capturado pelo transdutor (sensor), em seguida passa por um filtro, denominado de anti-alias, a fim de diminuir os ruídos. A chave representa a freqüência de amostragem do conversor A/D, entregando ao processador o sinal digitalizado. Figura – Diagrama de blocos da conversão A/D. A freqüência de amostragem é o número de amostras capturadas em um segundo. Esta freqüência é dada em Hertz (Hz) e é considerada adequada quando se pode reconstruir o sinal analógico razoável a partir de amostras obtidas na conversão. A taxa de conversão ou freqüência de amostragem é de suma importância para o processamento de sinais reais. Para obter uma taxa de amostragem adequada pode-se utilizar os teoremas de Nyquist ou Shannon. Estes teoremas indicam que um sinal contínuo x(t) pode ser amostrado adequadamente se tiver banda limitada, ou seja, seu espectro de freqüência não pode conter freqüências acima de um valor máximo (Fmáx – freqüência máxima). Ainda, outro ponto importante é que a taxa de amostragem (Fa – Freqüência de amostragem) deve ser escolhida para ser no mínimo duas vezes maior que a freqüência máxima (Fmáx). Por exemplo, para representar um sinal de áudio com 32 Prof. Gustavo Weber Denardin
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved