Você está na página 1de 34

Microcontroladores

1. Introduo
Atualmente um grande nmero de microcontroladores, integrados em diversos equipamentos, exercem um papel importante no dia a dia das pessoas. Despertar ao som de um CD Player programvel, tomar caf da manh preparado por um microondas digital, e ir ao trabalho de carro, cu a in e!o de combust"vel microcontrolada, so apenas alguns exemplos. # mercado de microcontroladores apresenta$se em franca expanso, ampliando seu alcance principalmente em aplica!%es residenciais, industriais, automotivas e de telecomunica!%es. &egundo dados da National Semiconductor '())*+, uma resid,ncia t"pica americana possui -. produtos baseados em microcontrolador. /stima$se que, em 01(1, em mdia uma pessoa interagir com 0.1 dispositivos com microcontroladores diariamente. /m um passado recente, o alto custo dos dispositivos eletr2nicos limitou o uso dos microcontroladores apenas aos produtos domsticos considerados de alta tecnologia 'televiso, v"deo e som+. 3orm, com a constante queda nos pre!os dos circuitos integrados, os microcontroladores passaram a ser utili4ados em produtos menos sofisticados do ponto de vista da tecnologia, como mquinas de lavar, microondas, fog%es e refrigeradores. Assim, a introdu!o do microcontrolador nestes produtos cria uma diferencia!o e permite a incluso de melhorias de seguran!a e de funcionalidade. Alguns mercados chegaram ao ponto de tornar obrigat5rio o uso de microcontroladores em determinados tipos de equipamentos, impondo um pr$requisito tecnol5gico. 6uitos produtos que temos dispon"veis ho e em dia, simplesmente no existiriam, ou no teriam as mesmas funcionalidades sem um microcontrolador. 7 o caso, por exemplo, de vrios instrumentos biomdicos, instrumentos de navega!o por satlites, detetores de radar, equipamentos de udio e v"deo, eletrodomsticos, entre outros. /ntretanto, o alcance dos microcontroladores vai alm de oferecer algumas facilidades. 8ma aplica!o crucial, onde os microcontroladores so utili4ados, na redu!o de consumo de recursos naturais. /xistem sistemas de aquecimento modernos que captam a lu4 solar e, de acordo com a demanda dos usurios, controlam a temperatura de forma a minimi4ar perdas. 8m outro exemplo, de maior impacto, o uso ( 3rof. 9ustavo :eber Denardin

de microcontroladores na redu!o do consumo de energia em motores eltricos, que so responsveis pelo consumo de, aproximadamente, .1; de toda eletricidade produ4ida no planeta. 3ortanto, o alcance dessa tecnologia tem influ,ncia muito mais importante em nossas vidas, do que se possa imaginar. # universo de aplica!%es dos microcontroladores, como mencionado, est em grande expanso, sendo que a maior parcela dessas aplica!%es em sistemas embarcados. A expresso <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. ?anto , que o software para microcontroladores representa uma fatia considervel do mercado de software mundial. &egundo /d@ard Aourdon 'consultor na rea de computa!o, pioneiro nas metodologias de engenharia do soft@are e programa!o estruturada+ a prolifera!o dos sistemas embarcados, untamente com o advento da 6icrosoft, so os responsveis pela retomada do crescimento da indstria de software nos /stados 8nidos da Amrica.

2. Definio de Microcontrolador
8m microcontrolador um sistema computacional completo, no qual esto inclu"dos uma C38 'Central Processor Unit+, mem5ria de dados e programa, um sistema de clocB, portas de CD# 'Input/Output+, alm de outros poss"veis perifricos, tais como, m5dulos de tempori4a!o e conversores ADD entre outros, integrados em um mesmo componente. As partes integrantes de qualquer computador, e que tambm esto presentes, em menor escala, nos microcontroladores soE

8nidade Central de 3rocessamento 'C38+ &istema de clock para dar seqF,ncia >s atividades da C38 6em5ria para arma4enamento de instru!%es e para manipula!o de dados /ntradas para interiori4ar na C38 informa!%es do mundo externo &a"das para exteriori4ar informa!%es processadas pela C38 para o mundo externo 3rograma 'firmware+ para definir um ob etivo ao sistema

3rof. 9ustavo :eber Denardin

2.1 Unidade Central de Processamento (CPU) A unidade central de processamento composta por uma unidade l5gica aritmtica '8GA+, por uma unidade de controle e por unidades de mem5ria especiais conhecidas por registradores. 3ara que a C38 possa reali4ar tarefas necessrio que se agregue outros componentes, como unidades de mem5ria, unidades de entrada e unidades de sa"da. A figura a seguir apresenta um diagrama de blocos com uma poss"vel interface entre a C38 e outros dispositivos.

A unidade de mem5ria permite arma4enar grupos de d"gitos binrios que podem representar instru!%es que o processador ir executar ou dados que sero manipulados pelo processador. A unidade de entrada consiste em todos os dispositivos utili4ados para obter informa!%es e dados externos ao processador. A unidade de sa"da consiste em dispositivos capa4es de transferir dados e informa!%es do processador para o exterior. A 8GA a rea de uma C38 na qual as opera!%es l5gicas e aritmticas so reali4adas sobre os dados. # tipo de opera!o reali4ada determinada pelos sinais da unidade de controle. #s dados a serem operados pela 8GA podem ser oriundos de uma mem5ria ou de uma unidade de entrada. #s resultados das opera!%es reali4adas na 8GA podem ser transferidos tanto para uma mem5ria de dados como para uma unidade de sa"da. 3rof. 9ustavo :eber Denardin

A fun!o da unidade de controle comandar as opera!%es da 8GA e de todas as outras unidades conectadas a C38, fornecendo sinais de controle e tempori4a!o. De certa maneira, a unidade de controle como um maestro que responsvel por manter cada um dos membros da orquestra em sincronismo. /ssa unidade contm circuitos l5gicos e de tempori4a!o que geram os sinais apropriados necessrios para executar cada instru!o de um programa. A unidade de controle busca uma instru!o na mem5ria enviando um endere!o e um comando de leitura para a unidade de mem5ria. A palavra da instru!o arma4enada na posi!o de mem5ria transferida para um registrador conhecido por registrador de instru!%es 'HC+ da unidade de controle. /ssa palavra de instru!o, que est de alguma forma de c5digo binrio, ento decodificada pelos circuitos l5gicos na unidade de controle para determinar a instru!o que est sendo invocada. A unidade de controle usa essa informa!o para enviar os sinais apropriados para as unidades restantes a fim de executar a opera!o espec"fica. /ssa seqF,ncia de busca de um c5digo de instru!o e de execu!o da opera!o indicada repetida indefinidamente pela unidade de controle. /ssa seqF,ncia repetitiva de buscaDexecu!o continua at que a C38 se a desligada ou at que o H/&/? se a ativado. # H/&/? sempre fa4 a C38 buscar sua primeira instru!o no programa. 8ma C38, tambm conhecida por processador, repete indefinidamente as mesmas opera!%es bsicas de busca e execu!o. Iaturalmente, os diversos ciclos de execu!o sero diferentes para cada tipo de instru!o > medida que a unidade de controle envia sinais diferentes para as outras unidades de execu!o de uma instru!o em particular. 8m registrador um tipo de mem5ria de pequena capacidade porm muito rpida, contida na C38, utili4ado no arma4enamento temporrio de dados durante o processamento. #s registradores esto no topo da hierarquia de mem5ria, sendo desta forma o meio mais rpido e de maior custo para arma4enar um dado. Cada registrador de um processador possui uma fun!o especial. 8m dos mais importantes o contador de programa 'program counter J 3C+, que arma4ena os endere!os dos c5digos das instru!%es > medida que so buscadas da mem5ria. #utros registradores so utili4ados para reali4ar fun!%es comoE arma4enamento de c5digos de instru!o 'HC+, manuten!o dos dados operados pela 8GA 'acumulador+, arma4enamento de endere!os de dados a serem lidos na mem5ria 'ponteiro de dados+, alm de outras fun!%es de arma4enamento e contagem. ?odos os processadores possuem um registrador em especial muito utili4ado chamado de acumulador ou registrador A. /le K 3rof. 9ustavo :eber Denardin

arma4ena um operando para quaisquer instru!%es, l5gica ou matemtica. # resultado da opera!o arma4enado no acumulador ap5s a instru!o ser executada. 3ara que exista comunica!o entre as unidades que formam um processador devemos definir uma forma de conexo entre estas unidades. /m um processador tradicional com arquitetura Lon Ieuman este meio o barramento de dados. A largura do barramento de dados em bits o que determina o nmero de bits para um dado processador. A figura a seguir apresenta a interface dos principais dispositivos que comp%em um sistema microprocessado atravs de um barramento de dados.

A C38 o centro de todo sistema computacional, e no diferente quando se trata de microcontroladores. # trabalho da C38 executar rigorosamente as instru!%es de um programa, na seqF,ncia programada, para uma aplica!o espec"fica. 8m programa computacional 'soft@are+ instrui a C38 a ler informa!%es de entradas, ler e escrever informa!%es na mem5ria de dados, e escrever informa!%es nas sa"das. # diagrama de blocos simplificado da C38 presente nos microcontroladores da fam"lia MC1N, tambm denominado de C381N, apresentado na figura a seguir. /sta arquitetura de processador ser utili4ada como modelo neste documento.

3rof. 9ustavo :eber Denardin

As principais fun!%es de cada um dos componentes da C381N sero apresentadas a seguir. Unidade Lgica !ritm"tica (UL!)E A 8GA utili4ada para reali4ar opera!%es l5gicas e aritmticas definidas no con unto de instru!%es da C38. Lrios circuitos implementam as opera!%es aritmticas binrias decodificas pelas instru!%es e fornecem dados para a execu!o da opera!o na 8GA. A maioria das opera!%es aritmticas binrias so baseadas em algoritmos de adi!o e subtra!o 'adi!o com o valor negativo+. A multiplica!o reali4ada atravs de uma srie de adi!%es e deslocamentos com a 8GA sob controle l5gico da C38. Controle da CPUE # circuito de controle da C38 implementa o sequeciamento de elementos l5gicos necessrios para a 8GA reali4ar as opera!%es requisitadas durante a execu!o do programa. # elemento central da se!o de controle da C38 o decodificador de instru#es. Cada opcode 'c5digo de instru!o+ decodificado para determinar quantos operandos so necessrios e qual seqF,ncia de passos ser necessria para completar a instru!o em curso. Ouando uma instru!o executada completamente, o pr5ximo opcode lido e decodificado. P 3rof. 9ustavo :eber Denardin

$egistradores da CPUE A C381N contm . registradores como apresentado na figura anterior. #s registradores da C38 so mem5rias especiais que no fa4em parte do mapa de mem5ria. # con unto de registradores da C38 freqFentemente chamado de modelo de %rogramao. # acumulador, tambm chamado de registrador A, freqFentemente utili4ado para arma4enar um dos operandos ou o resultado de opera!%es.

# registrador &'( um registrador de (P bits de "ndice que possibilita ao usurio endere!ar indiretamente o espa!o de mem5ria de PKQbRtes. # bRte mais significativo do registrador de "ndice denominado M, e o bRte menos significativo denominado S. &ua principal fun!o servir de apontador para uma rea na mem5ria onde a C38 ir carregar 'ler+ ou arma4enar 'escrever+ informa!o. Ouando no estiver sendo utili4ado para apontar um endere!o na mem5ria, ele pode ser utili4ado como registrador genrico.

# registrador Program Counter '3C+ usado pela C38 para controlar e condu4ir ordenadamente a busca do endere!o da pr5xima instru!o a ser executada. Ouando a C38 energi4ada ou passa por um processo de reset, o 3C carregado com o contedo de um par de endere!os espec"ficos denominados )etor de reset 'reset vector+. # vetor de reset contm o endere!o da primeira instru!o a ser executada pela C38. Assim que as instru!%es so executadas, uma l5gica interna a C38 incrementa o 3C, de tal forma que ele sempre aponte para o pr5ximo peda!o de informa!o que a C38 vai precisar. # nmero de bits do 3C coincide exatamente com o nmero de linhas do barramento de endere!os, que por sua ve4 determina o espa!o total dispon"vel de mem5ria que pode ser acessada pela C38. * 3rof. 9ustavo :eber Denardin

# registrador Condition Code 'CCH+ um registrador de N bits que arma4ena os bits de estado 'flags+ que refletem o resultado de algumas opera!%es da C38. A instru!%es de desvio usam estes bits de estado para tomar suas decis%es.

A descri!o dos bits do registrador de condi!o apresentada abaixoE * 'Bit de Overflow+ $ A C38 leva o bit de overflow para n"vel l5gico alto quando houver estouro no resultado de uma opera!o em complemento de 0. # bit L utili4ado pelas instru!%es de desvios condicionais T9?, T9/, TG/, e TG?. & 'Tit de alf!carry+ $ A C38 leva o bit de "alf!carry para n"vel l5gico alto quando ocorrer estouro entre os bits - e K do acumulador durante as opera!%es ADD e ADC. # bit M importante nas opera!%es aritmticas codificadas em binrio 'TCD+. A instru!o DAA utili4a o estado dos bits M e C para determinar o fator de corre!o apropriado. I '6scara de Cnterrup!%es+ $ Ouando o bit C est em n"vel l5gico alto, todas as interrup!%es so mascaradas 'desabilitadas+. As interrup!%es so habitadas quando o bit C levado a n"vel l5gico baixo. Ouando ocorre uma interrup!o, o bit que mascara as interrup!%es automaticamente levado a n"vel l5gico alto. Depois que os registradores da C38 so arma4enados na pilha este bit volta ao n"vel l5gico baixo. &e uma interrup!o ocorrer enquanto o bit C estiver setado, seu estado ser guardado. As interrup!%es so atendidas, em ordem de prioridade, assim que o bit C for a n"vel l5gico 1. A instru!o retorno da interrup!o 'H?C+ retorna os registradores da C38 da pilha, e restaura o bit C no seu estado de n"vel l5gico 1. Ap5s qualquer reset, o bit C colocado em n"vel l5gico alto e s5 pode ser limpo por uma instru!o de soft@are 'CGC+. + 'Tit Iegativo+ $ A C38 coloca o bit I em n"vel l5gico alto quando uma opera!o aritmtica, l5gica ou de manipula!o de dados produ4ir um resultado negativo. Corresponde ao No bit do registrador que contm o resultado. , 'Tit Uero+ $ A C38 leva o bit U para n"vel l5gico alto quando uma opera!o aritmtica, l5gica ou de manipula!o de dados produ4ir um resultado igual a 1. C 'Tit Carry/Borrow+ $ A C38 coloca o bit C em n"vel l5gico alto quando uma opera!o de adi!o produ4ir um valor superior a N bits ou quando uma subtra!o N 3rof. 9ustavo :eber Denardin

necessitar um emprstimo. Algumas opera!%es l5gicas e as instru!%es de manipula!o de dados tambm podem modificar o estado do bit C. # Stack Pointer '&3+ um registrador cu a fun!o apontar para a pr5xima locali4a!o dispon"vel 'endere!o livre+ de uma pilha 'lista de endere!os cont"guos+. A pilha pode ser vista como um monte de cartas empilhadas, onde cada carta arma4ena um bRte de informa!o. A qualquer hora, a C38 pode colocar uma carta nova no topo da pilha ou retirar uma carta do topo da pilha. As cartas que esto no meio da pilha no podem ser retiradas at que todas que este am acima dela se am removidas primeiro. A C38 acompanha o efeito da pilha atravs do valor arma4enado no &3. # &3 sempre aponta para a locali4a!o de mem5ria dispon"vel para se colocar a pr5xima carta 'bRte+.

Iormalmente, a C38 usa a pilha para guardar os endere!os de retorno e o contexto, isto , os registradores da C38, na ocorr,ncia de uma exce!o 'interrup!o ou reset+. Durante um reset, o Stack Pointer contm o endere!o 1x11VV. A instru!o H&3 '#eset Stack Pointer+ carrega o bRte menos significativo com 1xVV e o bRte mais significativo no afetado. Ouando a C38 insere um novo dado na pilha, automaticamente o &3 decrementado para o pr5ximo endere!o livre. Ouando a C38 retira um dado da pilha, o &3 incrementado para apontar para o dado mais recente, e o valor do dado lido nesta posi!o. Ouando a C38 energi4ada ou passa por um processo de reset, o &3 aponta para um endere!o espec"fico na mem5ria HA6 'no caso dos microcontroladores MC1N e MC&1N W 1x11VV+. A C381N possui modos de endere!amento indexado com offsets de N ou (P bits do &3 para acesso de variveis temporrias inseridas na pilha. A C38 utili4a o contedo do registrador &3 para determinar o endere!o efetivo do operando. -./E /mbora o endere!o inicial do &3 se a 1x11VV, a locali4a!o da pilha arbitrria e pode ser realocada pelo usurio em qualquer lugar na HA6. 6ovimentar o &3 para fora da pgina de acesso direto '1x1111 a 1x11VV+ permitir que este espa!o de mem5ria se a utili4ado para modos de endere!amento mais eficientes. ) 3rof. 9ustavo :eber Denardin

2.2. /istema de Cloc0 ?odo sistema computacional utili4a um clocB para fornecer a C38 uma maneira de se mover de instru!o em instru!o, em uma seqF,ncia pr$determinada. 8ma fonte de clocB de alta freqF,ncia 'normalmente derivada de um cristal ressonador conectado a C38+ utili4ada para controlar o sequeciamento das instru!%es da C38. Iormalmente as C38s dividem a freqF,ncia bsica do cristal por 0 ou mais para chegar ao clocB do barramento interno. Cada ciclo de leitura ou escrita a mem5ria executado em um ciclo de clocB do barramento interno, tambm denominado ciclo de barramento 'bus cycle+. 2.1. Memria 3odemos pensar na mem5ria como sendo uma lista de endere!os postais, onde o contedo de cada endere!o um valor fixo de N bits 'para C38 de N bits+. &e um sistema computacional tem n linhas 'bits+ de endere!os, ele pode endere!ar 0n posi!%es de mem5ria 'p.ex.E um sistema com (K linhas pode acessar 0(K W (P-NK endere!os+. /ntre os diversos tipos de mem5ria encontram$seE $!M '#andom $ccess %emory+J 6em5ria de acesso aleat5rio. 3ode ser lida ou escrita pela execu!o de instru!%es da C38 e, normalmente utili4ada para manipula!o de dados pela C38. # contedo perdido na aus,ncia de energia 'mem5ria voltil+. $-M '#ead Only %emory+ J 6em5ria apenas de leitura. 3ode ser lida, mas no altervel. # contedo deve ser determinado antes que o circuito integrado se a fabricado. # contedo mantido na aus,ncia de energia 'mem5ria no voltil+. 2P$-M '&rasable and Programmable #ead!Only %emory+ J 6em5ria H#6 programvel e apagvel. # contedo dessa mem5ria pode ser apagado com lu4 ultravioleta, e posteriormente, reprogramado com novos valores. As opera!%es de apagamento e programa!o podem ser reali4adas um nmero limitado de ve4es depois que o circuito integrado for fabricado. Da mesma forma que a H#6, o contedo mantido na aus,ncia de energia 'mem5ria no voltil+. #?3 'One 'ime Programmable+ J 6em5ria programvel uma nica ve4. &emelhante > /3H#6 quanto a programa!o, mas que no pode ser apagada. 22P$-M '&lectrically &rasable and Programmable #ead!Only %emory+ J 6em5ria H#6 programvel e apagvel eletricamente. 3ode ter seu contedo alterado atravs da (1 3rof. 9ustavo :eber Denardin

utili4a!o de sinais eltricos convenientes. ?ipicamente, um endere!o de uma //3H#6 pode ser apagada e reprogramada at (11.111 ve4es. 3L!/& J 6em5ria funcionalmente semelhante a //3H#6, porm com ciclos de escrita bem mais rpidos. CD# 'Input/Output+ J Hegistradores de controle, estado e sinais de CD# so um tipo especial de mem5ria porque a informa!o pode ser sentida 'lida+ eDou alterada 'escrita+ por dispositivo diferentes da C38. 2.4. /inais de 2ntrada Dispositivos de entrada fornecem informa!o para a C38 processar, vindas do mundo externo. A maioria das entradas que os microcontroladores processam so denominadas sinais de entrada digitais, e utili4am n"veis de tenso compat"veis com a fonte de alimenta!o do sistema. # sinal de 1L '9ID ou L&& + indica o n"vel l5gico 1 e o sinal de fonte positiva, que tipicamente X.LDC 'LDD + indica o n"vel l5gico ( 'atualmente os microcontroladores come!aram a redu4ir a tenso de LDD para valores na faixa dos -L+. Iaturalmente que no mundo real existem sinais puramente anal5gicos 'com uma infinidade de valores+ ou sinais que utili4am outros n"veis de tenso. Alguns dispositivos de entrada tradu4em as tens%es do sinal para n"veis compat"veis com LDD e L&&. #utros dispositivos de entrada convertem os sinais anal5gicos em sinais digitais 'valores binrios formados por 1s e (s+ que a C38 pode entender e manipular. Alguns microcontroladores incluem circuitos conversores anal5gicosDdigitais 'ADC+ encapsulados no mesmo componente. 2.5. /inais de /a6da Dispositivos de sa"da so usados para informar ou agir no mundo exterior atravs do processamento de informa!%es reali4ados pela C38. Circuitos eletr2nicos 'algumas ve4es constru"dos no pr5prio microcontrolador+ podem converter sinais digitais em n"veis de tenso anal5gicos. &e necessrio, outros circuitos podem alterar os n"veis de tenso LDD e L&& nativos da C38 em outros n"veis.

((

3rof. 9ustavo :eber Denardin

2.7. Cdigos de o%erao (opcodes) #s programas usam c5digos para fornecer instru!%es para a C38. /stes c5digos so chamados de c5digos de opera!o ou opcodes. Cada opcode instrui a C38 a executar uma seqF,ncia espec"fica para reali4ar sua opera!o. 6icrocontroladores de diferentes fabricantes usam diferentes con untos de opcodes porque so implementados internamente por hard@are na l5gica da C38. # con unto de instru!%es de uma C38 especifica todas as opera!%es que podem ser reali4adas. Opcodes so uma representa!o das instru!%es que so entendidas pela mquina, isto , uma codifica!o em representa!o binria a ser utili4ada pela C38. 6nem2nicos so outra representa!o para as instru!%es, s5 que agora, para serem entendidas pelo programador. 2.8. Mnem9nicos das instru#es e assem:ler 8m opcode como 1xKC entendido pela C38, mas no significativo para n5s humanos. 3ara resolver esse problema, um sistema de instru!%es mnem2nicas equivalentes foram criadas 'Ginguagem AssemblR+. # opcode 1xKC corresponde ao mnem2nico CICA, l,$se <incrementa o acumulador=, que muito mais intelig"vel. 3ara reali4ar a tradu!o de mnem2nicos em c5digos de mquina 'opcodes e outras informa!%es+ utili4ados pela C38 necessrio um programa computacional chamado assembler 'compilador para linguagem AssemblR+. 8m programador utili4a um con unto de instru!%es na forma de mnem2nicos para desenvolver uma determinada aplica!o, e posteriormente, usa um assembler para tradu4ir estas instru!%es para opcodes que a C38 pode entender. Ap5s a descri!o da unidade central de processamento de um microcontrolador podemos partir para o aprendi4ado da linguagem de programa!o AssemblR. Hecomenda$se a leitura da folha de dados 'principalmente a se!o que trata do con unto de instru!%es+ do microcontrolador, bem como da apostila do microcontrolador MC1N, fam"lia O?DOA. # pr5ximo cap"tulo deste documento ir descrever diversos perifricos que podem compor um microcontrolador, como portas de entradaDsa"da, tempori4adores, entre outros.

(0

3rof. 9ustavo :eber Denardin

1. Perif"ricos
#s microcontroladores normalmente so classificados em fam"lias, dependendo da aplica!o a que se destinam. A partir da aplica!o que a fam"lia de microcontroladores se destina, um con unto de perifricos espec"ficos escolhido e integrado a um determinado microprocessador. /stes microprocessadores normalmente operam com barramentos de N, (P ou -0 bits, e apresentam arquiteturas HC&C 'H educed Instruction Set Computer+ ou CC&C 'Comple( Instruction Set Computer+. Alguns exemplos de microcontroladores que utili4am microprocessadores com arquitetura HC&C so o 3CC '%icroc"ip+ e o 6&3K-1 ''e(as Instruments+. Y o 6CPNMC1N e MC&1N ')reescale+ e o N1.( 'Cntel+ so exemplos de microcontroladores que utili4am arquitetura CC&C. Apesar da classifica!o dos microcontroladores em fam"lias, existem perifricos necessrios a praticamente todas as aplica!%es, que so a mem5ria de dados e a mem5ria de programa. A mem5ria de dados mais utili4ada a HA6 '#andom $ccess %emory+, que uma mem5ria voltil, ou se a, no preserva o seu contedo sem uma fonte de alimenta!o. Hecentemente as mem5rias de programa sofreram uma grande mudan!a. A alguns anos atrs as mem5rias de programa mais utili4adas eram a H#6 ' #eady!Only %emory+ e a /3H#6 '&rasable Programmable #ead!Only %emory+. # grande problema da utili4a!o de tais mem5rias era a falta de praticidade durante o desenvolvimento de um sistema embarcado. Com a populari4a!o das mem5rias VGA&M e, ainda, devido a facilidade de utili4a!o, cada ve4 mais os microcontroladores tendem a ser produ4idos com esta mem5ria, em substitui!o a H#6 e a /3H#6. Cmportante lembrar que a praticidade da mem5ria VGA&M se deve a esta mem5ria ser uma varia!o das //3H#6 '&lectrically$&rasable Programmable #ead!Only %emory* +ue permitem que mltiplos endere!os se am apagados ou escritos com sinais eltricos. A seguir sero apresentadas as caracter"sticas e aplica!%es dos principais perifricos encontrados em microcontroladores, tais comoE portas de entrada e sa"da, tempori4adores, portas de comunica!o serial e conversores Anal5gico$digitais 'ADD+.

(-

3rof. 9ustavo :eber Denardin

1.1 ;em%ori<adores 8m microprocessador deve possuir um rel5gio. # rel5gio pode ser implementado por um cristal oscilador que sincroni4a todo o funcionamento do microprocessador, controlando o tempo de cada um dos eventos relacionados aos dispositivos integrados a ele. #s tempori4adores utili4am a base de tempo do rel5gio para poder implementar contagens de tempo bem espec"ficas e configurveis. /stes utili4am contadores, incrementados na mesma base de tempo do rel5gio. Desta forma poss"vel descrever tempo em nmero de ciclos de um rel5gio. 3or exemplo, imagine um microprocessador utili4ando um rel5gio de 01 6M4. # per"odo relativo a esta freqF,ncia .1 ns. 3odemos representar ento um tempo de (ms atravs de per"odos de .1ns, obtendo o valor de 01111. #u se a, se incrementarmos um contador a cada ciclo de rel5gio, no caso .1ns, quando este contador atingir o valor de 01111, teremos atingido a contagem de (ms. 3ara que este mtodo se a aplicado, existe a necessidade da utili4a!o de pelo menos 0 registradores. # registrador que ser incrementado e o registrador que conter o valor a ser atingido. Io entanto, existe um problema relacionado a este mtodo. Cmagine que precisemos de um tempo na ordem de segundos, por exemplo, ( segundos. &e estivermos utili4ando um rel5gio de K 6M4, seria necessrio registradores de 0K bits para representar o valor de Kx(1P. Com o intuito de redu4ir o tamanho destes contadores, os tempori4adores apresentam a possibilidade de diviso do rel5gio, normalmente por valores mltiplos de 0. Io caso do exemplo acima, poder"amos dividir o rel5gio por (0N, obtendo uma freqF,ncia de -(,0.1 QM4. /nto, para representarmos ( segundo, seria necessrio uma contagem de -(0.1 per"odos de -0Zs, ou se a, um valor que pode ser representado em (P bits. Devemos lembrar que a diviso ter influ,ncia somente no tempo de incrementa!o do contador, continuando o barramento interno do microprocessador a operar com o rel5gio original. 3ara exemplificar a configura!o dos registradores relativos a um tempori4ador em um microcontrolador ser utili4ado o microcontrolador 6CPNMC)1NOAK. # processo de configura!o apresentado a seguir. #s microcontroladores da linha MC1N normalmente possuem ( ou 0 tempori4adores. #s registradores relativos a estes tempori4adores apresentam nomes semelhantes, tendo apenas o nmero no tempori4ador para diferenci$los. #s tr,s (K 3rof. 9ustavo :eber Denardin

registradores de configura!o do tempori4ador neste microcontrolador soE ?&C, ?CI? e ?6#D. Abaixo apresentado o diagrama de blocos do tempori4ador destes microcontroladores. 7 importante ressaltar que alguns dos registradores apresentados na figura so relativos ao m5dulo 3:6 e captura de entrada.

Vigura J Diagrama de blocos do m5dulo tempori4ador de microcontrolador 6CPNMC)1NOAK

?&C ''imer Status and Control #egister+E 3ossibilita habilitar a interrup!o do tempori4ador, verificar o estado da flag de interrup!o, para$lo, reiniciar a contagem e dividir o rel5gio para obter a base de tempo.

(.

3rof. 9ustavo :eber Denardin

Vigura J Hegistrador ?&C

Abaixo sero descritos as fun!%es de cada um dos bits deste registradorE ?#V ''imer Overflow )lag+E /ste bit de escritaDleitura torna$se setado quando o registrador contador '?CI?+ atinge o valor do registrador de m5dulo de contagem '?6#D+, condi!o essa que indica o estouro da contagem de tempo. # procedimento correto para limpar esta indica!o ler o registrador ?&C e escrever um <1= l5gico para o bit ?#V[ ( W # m5dulo tempori4ador atingiu o valor dese ado 1 W # m5dulo tempori4ador no atingiu o valor dese ado ?#C/ ''imer Overflow Interrupt &nable Bit+E /ste bit de escritaDleitura habilita a interrup!o do tempori4ador quando o bit ?#V for setado. ( W Cnterrup!o do tempori4ador ativa 1 W Cnterrup!o do tempori4ador desabilitada ?&?#3 ''imer Stop Bit+E /ste bit de escritaDleitura para o incremento do contador de tempo. ( W Contador de tempo parado 1 W Contador de tempo ativo ?H&? ''imer #eset Bit+E Gevar este bit de escrita para n"vel l5gico ( ir iniciar o contador de tempo com 4ero e colocar o divisor de base de tempo para o estado inicial, ou se a, diviso por (. ( W 3r$/scala de base de tempo e contador iniciados com o valor <1=[ 1 W &em efeito (P 3rof. 9ustavo :eber Denardin

3&\0E1] 'Prescaler Setect Bits+ J Tits de pr$escala da base de tempo. /stes bits de escritaDleitura selecionam um dos sete poss"veis valores de diviso da base de tempo do rel5gio para utili4a!o como base de tempo do tempori4ador.
P/2 1 1 1 1 ( ( ( ( P/1 1 1 ( ( 1 1 ( ( P/= 1 ( 1 ( 1 ( 1 ( .ase de tem%o do tem%ori<ador ClocB de barramento interno D ( ClocB de barramento interno D 0 ClocB de barramento interno D K ClocB de barramento interno D N ClocB de barramento interno D (P ClocB de barramento interno D -0 ClocB de barramento interno D PK Io dispon"vel

?CI? ''imer Count #egisters+E /stes registradores so somente de leitura e contm o valor mais significativo '?CI?M+ e menos significativo '?CI?G+ do contador do tempori4ador. A leitura do registrador mais significativo deve ser reali4ada primeiro.

Vigura J Hegistrador ?CI?M e ?CI?G.

?6#D ''imer %odule #egisters+E /stes registradores de escritaDleitura contm o valor do m5dulo da contagem do tempori4ador. Ouando os registradores de contagem '?CI?+ atingem o valor dos registradores de m5dulo '?6#D+, o bit ?#V torna$se n"vel l5gico <(= e os registradores de

(*

3rof. 9ustavo :eber Denardin

contagem resumem a contagem para ^1111 at o pr5ximo passo de clocB. /screver no registrador ?6#DM inibe o bit ?#V at que o registrador ?6#DG se a escrito.

Vigura J Hegistradores ?6#DM e ?6#DG

/stando os registradores a serem configurados apresentados pode$se demonstrar um exemplo de utili4a!o. Abaixo ser implementada a configura!o de um tempori4ador utili4ando um rel5gio de -,0 6M4 para obter a base de tempo de (1ms. 1 =312,5109 6 3,210 10 103 =32000 312,5109

3er"odo relativo a base de tempoE

Perodo=

Clculo do valor de m5dulo de tempoE

Mdulo =

# valor -0111 deve ser escrito nos registradores ?6#DM e ?6#DG da seguinte maneiraE # valor deve ser convertido para hexadecimal, sendo este igual a *D11h. # valor obtido um valor vlido dentro dos (P bits referentes aos registradores ?6#DM e ?6#DG, ou se a, a base de tempo do rel5gio foi dividida por (. Desta forma, ?6#DM igual a *Dh e ?6#DG igual a 11h. Abaixo o exemplo de configura!o dos registradores para este caso apresentado, tanto em assemblR, quanto em linguagem <c=.

(N

3rof. 9ustavo :eber Denardin

AssemblRE MOV #$7D,TMODH CLR TMODL ; Configurao do registrador TSC: ; Di iso !or ", ti#er ati o $o# interru!o do te#!ori%ador &a'i(itada) ; TO* TO+, TSTO- TRST Reser ado -S. -S" -S/ ; / " / / / / / / MOV #$0/,TSC <c=E TMOD 1 2.///; 34Configurao do registrador TSC: Di iso !or ", ti#er ati o $o# interru!o do te#!ori%ador &a'i(itada) TO* TO+, TSTO- TRST Reser ado -S. -S" -S/ / " / / / / / / 43 TSC 1 /50/; 3ara demonstrar um caso onde se fa4 necessrio a diviso da base de tempo, o tempori4ador ser configurado utili4ando um rel5gio de -,0 6M4 para obter a base de tempo de (11ms. 3er"odo relativo a base de tempoE Perodo = 1 9 =312,5 10 6 3,2 10 100103 =320000 312,5109

Clculo do valor de m5dulo de tempoE

Mdulo =

3ara representar -01111 necessrio mais do que os (P bits dispon"veis. Desta forma se fa4 necessrio a diviso da base de tempo. Dividindo -01111 pelo maior valor poss"vel em (P bits, encontramos K,NN. Assumimos ento o pr5ximo valor vlido de diviso, ou se a, oito, como fator de diviso da base de tempo. Vator de diviso da base de tempoE Fator = 320000 =4,88 65535

/, recalculando os valores de configura!oE 3er"odo relativo a base de tempoE Perodo = 1 =2,5106 6 3,210 8

()

3rof. 9ustavo :eber Denardin

Clculo do valor de m5dulo de tempoE

100 103 Mdulo = = 40000 2,5106

&endo K1111 um valor vlido em (P bits, a configura!o do tempori4ador em linguagem <c= apresentada abaixoE <c=E TMOD 1 0////; 34Configurao do registrador TSC: Di iso !or 6, ti#er ati o $o# interru!o do te#!ori%ador &a'i(itada) TO* TO+, TSTO- TRST Reser ado -S. -S" -S/ / " / / / / " " 43 TSC 1 /502; #bsE Devemos lembrar que o c5digo contido nas interrup!%es deve ser o menor poss"vel, com o intuito de evitar que o tempo de execu!o deste c5digo se a superior ao tempo da pr5xima interrup!o. 3or exemplo, se configurarmos a interrup!o do tempori4ador para ocorrer a cada (11Zs, o tempo de execu!o do c5digo contido nesta interrup!o no deve ser superior a esta base de tempo. /xemplo de utili4a!o da interrup!o do tempori4ador 'esta interrup!o conhecida como interrup!o de estouro de tempo+E AssemblRE ; +nterru!o do te#!ori%ador) TOV,R: 7CLR 7,TSC +8C + RT+ <c=E 33 +nterru!o do te#!ori%ador interru!t oid to er; oid< = TSC>TO* 1 /; i??; @ ; Li#!a a f(ag da interru!o do te#!ori%ador ; +n$re#enta u#a ari9 e( :ua(:uer ; Retorna da interru!o

33 Li#!a a f(ag da interru!o do te#!ori%ador 33 +n$re#enta u#a ari9 e( :ua(:uer 33 Retorna da interru!o

01

3rof. 9ustavo :eber Denardin

1.2 P>M (Pulse Width Modulation) # m5dulo de gera!o de 6odula!o por Gargura de 3ulso '3:6+ um recurso muito utili4ado para o controle de motores e conversores CC$CC em geral. A partir dele poss"vel gerar um sinal anal5gico, apesar de sua sa"da ser um sinal digital que assume apenas os n"veis l5gicos alto 'um+ e baixo '4ero+. A sa"da gerada uma onda quadrada, com freqF,ncia constante e largura de pulso varivel. /stes conceitos esto diretamente relacionados com o per"odo fixo e o ciclo ativo 'duty cycle+ respectivamente. A freqF,ncia de uma onda pode ser definida como a quantidade de ve4es que ela se repete no tempo. / o per"odo cada peda!o dessa onda que ir se repetir. # duty cycle define o tempo de sinal ativo 'n"vel l5gico alto+ em um per"odo fixo. Assim, quando temos um duty cycle de (11;, temos n"vel l5gico alto por todo o per"odo. 8m duty cycle de .1; define a metade do per"odo em n"vel l5gico alto e a outra metade em n"vel l5gico baixo. &e uma sa"da ??G for utili4ada, a tenso mdia de sa"da em um duty cycle de .1; ser 0,.L. /stes conceitos so demonstrados na figura abaixo. Devemos lembrar que o 3:6 nem sempre possui estado inicial positivo, podendo iniciar o per"odo com n"vel l5gico baixo.

Vigura J &inais modulados por Gargura de 3ulso

0(

3rof. 9ustavo :eber Denardin

A base de tempo dos m5dulos 3:6 normalmente implementada de duas formas. 8ma destas formas utili4ando o pr5prio m5dulo tempori4ador como base de tempo no 3:6, ou se a, se o tempori4ador est configurado para um per"odo de (ms, a freqF,ncia do 3:6 ser de ( QM4. A outra forma utili4ando um tempori4ador espec"fico para o 3:6, que deve ser configurado para a freqF,ncia dese ada. Ainda, um tempori4ador pode ser utili4ado como base de tempo de vrias sa"das 3:6, ou se a, vrios 3:6 com a mesma freqF,ncia, mas larguras de pulso diferentes. A figura a seguir ir exemplificar o funcionamento de um 3:6 em um microcontrolador onde o registrador 3?3/H possui o valor referente ao per"odo do 3:6 e os registradores 3:6(M e 3:60M representam dois canais de sa"da 3:6.

Vigura J &inais 3:6 com mesmo per"odo e largura de pulso diferentes.

3ara exemplificar a configura!o de um m5dulo 3:6 ser utili4ado novamente o microcontrolador 6CPNMC)1NOAK. /ste microcontrolador utili4a o tempori4ador como base de tempo para o per"odo do 3:6. Desta forma, para configurar a freqF,ncia do 3:6 deve$se utili4ar a mesma metodologia adotada para o tempori4ador. Ieste exemplo ser configurado um 3:6 de (1 QM4 com largura de pulso inicial do ciclo ativo de K1;, onde o rel5gio utili4ado ser de -,0 6M4.

00

3rof. 9ustavo :eber Denardin

3er"odo da base de tempo do rel5gioE

Perodo=

1 =312,5109 6 3,210 100106 =320 312,5109

Lalor de m5dulo de tempo para (11ZsE

Mdulo =

/stando o m5dulo da base de tempo do 3:6 configurado, deve$se partir para a configura!o da largura do pulso e do n"vel do ciclo inicial do 3:6. Atravs do m5dulo 3:6 deste microcontrolador poss"vel obter duas sa"das 3:6 para cada tempori4ador. Como o microcontrolador utili4ado possui somente um tempori4ador, poss"vel obter duas sa"das 3:6, conhecidas como canal 1 e canal (. #s registradores de configura!o do m5dulo 3:6 soE ?&C1, ?&C(, ?CM1 e ?CM(. 3ode$se notar que os valores 1 e ( so relativos ao canal a que se destina a configura!o. /ste microcontrolador apresenta duas maneiras de se utili4ar estes canais. As sa"das 3:6 podem ser configuradas no modo com buffer ou sem buffer. Io modo com buffer ambos os canais so aproveitados para gerar uma sa"da 3:6. # modo com buffer opera da seguinte maneiraE Ambos os canais so configurados para operar com buffer. A configura!o da largura de pulso inicial reali4ada no canal 4ero. Ouando se dese ar alterar a largura de pulso da sa"da 3:6, altera$se o valor da largura de pulso no canal um. #u se a, toda ve4 que se dese ar alterar o valor da largura de pulso reali4ado um intercalamento entre os dois canais. A sa"da 3:6 ficar agregada ao pino de sa"da do canal 4ero. Y no modo sem buffer, cada canal de tempo pode gerar uma sa"da 3:6. # cuidado que deve ser tomado neste caso que altera!%es de largura de pulso devem ser reali4adas em locais bem espec"ficos. A altera!o da largura de pulso para um valor superior deve ser reali4ada na interrup!o de estouro de tempo 'tempori4ador+. A altera!o da largura de pulso para um valor inferior deve ser reali4ada na interrup!o de compara!o do devido canal. Ia figura a seguir apresentado os locais referentes as interrup!%es supracitadas.

0-

3rof. 9ustavo :eber Denardin

Vigura J Gargura de pulso e per"odo de um 3:6

Abaixo temos a configura!o de bits relativa aos registradores ?&C1 e ?&C(.

Vigura J 'imer C"annel Status $nd Control #egisters

A seguir sero descritos as fun!%es de cada um dos bits deste registradorE CMxV 'C"annel ( )lag Bit+E Ouando o canal x est configurado para compara!o de sa"da 'modo que permite a implementa!o de um 3:6+, esta flag torna$se ( quando o valor do registrador contador de tempo '?CI?+ atinge a valor contido no registrador do canal x '?CMx+. 3ara limpar esta flag deve$se ler o registrador ?&Cx e escrever um 4ero l5gico para este bit. 0K 3rof. 9ustavo :eber Denardin

( W Compara!o de sa"da no canal x 1 W &em compara!o de sa"da no canal x ChxC/ 'Channel x Cnterrupt /nable Tit+E /ste bit de escritaDleitura permite habilitar a interrup!o de compara!o de sa"da para o canal x. ( W Cnterrup!o do canal x habilitada 1 W Cnterrup!o do canal x desabilitada ?#Lx ''oggle On Overflow Bit+E Ouando o canal x est configurado para compara!o de sa"da, este bit de escritaDleitura controla o comportamento da sa"da do canal x quando ocorre um estouro de tempo no tempori4ador. ( W Lalor l5gico no pino relativo ao canal x se altera no estouro de tempo 1 W Lalor l5gico no pino relativo ao canal x no se altera no estouro de tempo Chx6AS 'C"annel ( %a(imum ,uty Cycle &nable Bit+E Ouando o bit ?#Lx est em n"vel l5gico (, ao setar o bit Chx6AS ir for!ar o ,uty Cycle do canal para (11;. Como a figura a seguir demonstra, o efeito relativo a este bit s5 notado ( ciclo ap5s que este bit alterado. # ,uty Cycle permanece (11; at que este bit volte ao estado l5gico 4ero.

Vigura J Gat,ncia do bit CMx6AS

#s outros bits relativos a estes registradores so configurados a partir da tabela abaixoE

0.

3rof. 9ustavo :eber Denardin

?abela J &ele!o de modo, n"vel e borda

# registrador onde reali4ada a configura!o da largura de pulso o ?CMx, sendo ?CMxM o registrador de maior significado e ?CMxG o de menor significado na palavra de (P bits que ir representar a largura do pulso. Abaixo estes registradores so apresentados.

0P

3rof. 9ustavo :eber Denardin

Vigura J Hegistradores ?CM1M, ?CM1G, ?CM(M e ?CM(G.

Loltando ao exemplo onde dese a$se configurar um 3:6 de (1QM4 com largura de pulso inicial igual a K1; e ciclo inicial ativo, utili4ando um rel5gio de -,06M4. # m5dulo referente ao per"odo do 3:6 foi definido, sendo igual a -01. 3ara configurarmos a largura inicial para K1; deve$se utili4ar K1; do valor do m5dulo do per"odo encontrado, ou se a, ?CM1 W -01 x K1; W (0N. A seguir ser apresentado a configura!o do 3:6 do exemplo acima, utili4ando modo sem buffer com sa"da no canal 4ero, tanto para AssemblR quanto para <c=.

0*

3rof. 9ustavo :eber Denardin

AssemblRE ; Configurao do #Adu(o de te#!o LHDB #C2./ ; Va(or re(ati o ao !erDodo de "//us STHB TMD ; Mo e !ara o registrador de #Adu(o do te#!ori%ador LDHB #C".6 ; Va(or de 0/E de (argura de !u(so ;0/E de 2./< STHB TCH/ ; Mo e !ara o registrador do $ana( / CLRH ; Li#!a a !arte a(ta do registrador de Dndi$e, uti(i%ado anterior#ente ; SaDda -FM no $ana( /, $o# a(terao !ara nD e( (Agi$o 'ai5o na $o#!arao ; CH/* CH/+, MS/7 MS/G ,LS/7 ,LS/G TOV/ CH/MGB ; / " / " " / " / MOV #$HG,TSC/ ; -erDodo do -FM igua( a "//us ; TO* TO+, TSTO- TRST Reser ado -S. -S" -S/ ; / " / / / / / / MOV #$0/,TSC <c=E TMOD 1 2./; TCH/ 1 ".6; 34 -erDdo do -FM43 34 0/E de -FM 43

34SaDda -FM no $ana( /, $o# a(terao !ara nD e( (Agi$o 'ai5o na $o#!arao CH/* CH/+, MS/7 MS/G ,LS/7 ,LS/G TOV/ CH/MGB / " / " " / " / 43 TSC/ 1 /5HG; 34-erDodo do -FM igua( a "//us TO* TO+, TSTO- TRST Reser ado -S. -S" -S/ / " / / / / / / 43 TSC 1 /50/; 34 8o di ide o $(o$I 43 Apesar de termos definido as iniciali4a!%es, se o modo sem buffer est sendo utili4ado, precisamos implementar tambm no c5digo as interrup!%es de estouro de tempo e compara!o de sa"da para ser poss"vel alterar o valor da largura de pulso desta sa"da. AssemblRE ; +nterru!o do te#!ori%ador) TOV,R: 7CLR 7,TSC ; Li#!a a f(ag da interru!o do te#!ori%ador 7RCLR $ondio,SG+R>OV,R ; Verifi$a a ne$essidade de au#entar a (argura ; Se a f(ag esti er $o# %ero, no $orrige 7CLR GJM,*LGK ; Li#!a a f(ag da ne$essidade de au#entar MOV Va(or>$orrigido,TCH/ ; au#enta a (argura de !u(so SG+R>OV,R RT+ ; Retorna da interru!o

0N

3rof. 9ustavo :eber Denardin

; +nterru!o da $o#!arao COM-: LDG TSC/ 7CLR 7,TSC/ ; Li#!a a f(ag da interru!o da $o#!arao 7RCLR $ondio,SG+R>COM- ; Verifi$a a ne$essidade de di#inuir a (argura ; Se a f(ag esti er $o# %ero, no $orrige 7CLR D+M,*LGK ; Li#!a a f(ag da ne$essidade de di#inuir MOV Va(or>$orrigido,TCH/ ; di#inui a (argura de !u(so SG+R>COMRT+ ; Retorna da interru!o <c=E 33 +nterru!o do te#!ori%ador interru!t oid to er; oid< = TSC>TO* 1 /; if ;$ondio<= f(ag>au# 1 /; TCH/ 1 Va(or>$orrigido; @ @ 33 +nterru!o da $o#!arao interru!t oid $o#!ara$ao; oid<= 'Lte i; i 1 TSC/; TSC/>CH/* 1 /; if ;$ondio< = f(ag>di# 1 /; TCH/ 1 Va(or>$orrigido; @ @

33 Li#!a a f(ag da interru!o do te#!ori%ador 34 +ndi$ao !ara au#enta (argura do -FM43 33 Li#!a f(ag de $ondio 33 Corrige a (argura do !u(so 33 Retorna da interru!o

33 LM registrador de estado do -FM 33 Li#!a a f(ag 33 Verifi$a se N ne$ess9rio di#inuir a (argura 33 Li#!a f(ag de $ondio 33 Corrige a (argura do !u(so

/m algumas aplica!%es necessrio a inser!o de um tempo morto 'dead time+ devido ao tempo de comuta!o de certos tipos de componentes utili4ados ou devido as topologias dos sistemas agregados a estas sa"das 3:6. Iormalmente estes tempos mortos so inseridos em pares complementares de sa"das 3:6, ou se a, quando uma das sa"das comuta para n"vel l5gico alto, a outra sa"da comuta para n"vel l5gico baixo. Abaixo apresentado um exemplo de utili4a!o de tempos mortos.

0)

3rof. 9ustavo :eber Denardin

Vigura J /xemplo de utili4a!o de tempo morto

1.1 Con)ersores !nalgico?Digital e Digital?!nalgico De um modo geral, os sinais encontrados no mundo real so cont"nuos 'ou anal5gicos, pois variam no tempo de forma cont"nua+, como, por exemploE a intensidade luminosa de um ambiente que se modifica com a dist_ncia, a acelera!o de um carro de corrida, etc. #s sinais manipulados por computadores e sistemas embarcados so digitais, como por exemplo, uma faixa de udio lida de um compact disB. A converso anal5gico$digital 'ADD+ o processo que possibilita a representa!o de sinais anal5gicos no mundo digital. Desta forma poss"vel utili4ar os dados extra"dos do mundo real para clculos ou operar seus valores. /m geral, o conversor ADD est presente internamente nos processadores e controladores de sinais digitais e alguns microcontroladores, mas tambm existem circuitos integrados dedicados a este fim. Tasicamente um bloco que apresenta portas de entrada e sa"da. A entrada recebe sinais eltricos de forma cont"nua e possui uma faixa de tenso de entrada mxima e m"nima. Ios microcontroladores que possuem um conversor ADD e operam na faixa de .L, geralmente a faixa de tenso aceita sinais eltricos entre $.L e X.L.

-1

3rof. 9ustavo :eber Denardin

Ia sa"da o sinal amostrado em um dado intervalo de tempo fixo 'determinado pela freqF,ncia de amostragem+. /sta amostra disponibili4a um certo valor que representa o sinal original naquele momento 'quanti4a!o+. As caracter"sticas de quanti4a!o esto relacionadas > preciso do conversor. 3ara ilustrar esta situa!o, imagine que voc, queira mostrar a temperatura de um forno em um display de cristal l"quido 'GCD+. 3ara isto seriam necessrios alguns componentes eletr2nicos. #s mais expressivos soE um transdutor 'sensor de temperatura+, um display de cristal l"quido 'GCD+, um processador digital e um conversor anal5gico digital.

Vigura $ Diagrama de blocos de uma converso ADD de um sinal de temperatura

A temperatura um sinal anal5gico. # sensor de temperatura converte a temperatura em um sinal de impulsos eltricos anal5gicos. # conversor ADD recebe esse sinal e o transforma em sinal digital, atravs de amostragem, entregando ao processador. /ste, por sua ve4, 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 anal5gico de temperatura e seu equivalente na forma digital.

Vigura J Hepresenta!o de um sinal de temperatura anal5gico e digital.

-(

3rof. 9ustavo :eber Denardin

A informa!o digital diferente de sua forma original cont"nua em dois aspectos fundamentaisE

7 amostrada porque baseada em amostragens, ou se a, so reali4adas 7 quanti4ada porque atribu"do um valor proporcional a cada amostra.

leituras em um intervalo fixo de tempo no sinal cont"nuo[

/xplorando um pouco mais o caso do forno, a figura abaixo detalha um pouco mais as tr,s etapas mais importantes do processoE a aquisi!o, a amostragem e o processamento. Ieste diagrama de blocos, o sinal anal5gico 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 freqF,ncia de amostragem do conversor ADD, entregando ao processador o sinal digitali4ado.

Vigura J Diagrama de blocos da converso ADD.

A freqF,ncia de amostragem o nmero de amostras capturadas em um segundo. /sta freqF,ncia dada em ert- 'M4+ e considerada adequada quando se pode reconstruir o sinal anal5gico ra4ovel a partir de amostras obtidas na converso. A taxa de converso ou freqF,ncia de amostragem de suma import_ncia para o processamento de sinais reais. 3ara obter uma taxa de amostragem adequada pode$se utili4ar os teoremas de Ny+uist ou S"annon. /stes teoremas indicam que um sinal cont"nuo x't+ pode ser amostrado adequadamente se tiver banda limitada, ou se a, seu espectro de freqF,ncia no pode conter freqF,ncias acima de um valor mximo ' )m.( J freqF,ncia mxima+. Ainda, outro ponto importante que a taxa de amostragem ')a J VreqF,ncia de amostragem+ deve ser escolhida para ser no m"nimo duas ve4es maior que a freqF,ncia mxima ')m.(+. 3or exemplo, para representar um sinal de udio com -0 3rof. 9ustavo :eber Denardin

freqF,ncias at (1 QM4, o conversor ADD deve amostrar esses sinais utili4ando uma freqF,ncia de amostragem de no m"nimo 01 QM4. 3ara melhor entendimento, vamos ver como funciona um conversor ADD de K bits 'Vigura abaixo+.

Vigura J Converso ADD de K bits.

Com K bits o mximo representvel o nmero (P. Csso quer di4er que temos uma faixa de 1 a (. 'no sinali4ado+ ou X* a $N 'sinali4ado+. Iesse conversor fict"cio, teremos uma varia!o a cada ( volt. A figura anterior mostra um sinal de udio de 011 M4 variando de X* a $N volts, que pode ser capturado por um microfone. Conforme o teorema de Ny+uist, seria necessrio uma freqF,ncia de amostragem de K11 M4. Gembrando que, se o sinal de udio possu"sse amplitude maior que a faixa representvel do conversor ADD '*L a $NL+, ento no seria poss"vel converter tal sinal. # conversor DDA possui todas as caracter"sticas do conversor ADD, as quais diferem apenas porque o conversor DDA pega um sinal digital e transforma em anal5gico. 3or exemplo, em uma aplica!o de udio, um microfone captura o udio e envia a um conversor ADD, que entrega o sinal amostrado e quanti4ado a um processador digital. /ste ltimo efetua diversas opera!%es com o sinal de udio. &5 ento o processador envia ao conversor DDA, para remontar o sinal anal5gico a partir do sinal digital, para ser reprodu4ido em um alto$falante. 8m exemplo de conversor DDA de (P bits o DAC(00(, da 'e(as Instruments. Iovamente para exemplificar a configura!o de um conversor ADD em um microcontrolador ser utili4ado o microcontrolador 6CPNMC)1NOAK. /ste microcontrolador possui um conversor ADD por aproxima!o sucessiva linear com quatro canais, ou se a, existem K entradas poss"veis para sinais anal5gicos que so multiplexadas para um nico conversor ADD. Csto implica em que s5 um canal ser convertido em um determinado momento. A resolu!o deste ADD de N bits, no entanto, a -3rof. 9ustavo :eber Denardin

)reescale disponibili4ou uma nova verso com ADD de (1 bits, o 6CPNMC)1NOAKA. Ia figura a seguir apresentado o diagrama de blocos do conversor ADD deste microcontrolador.

Vigura J Diagrama de blocos do conversor ADD do microcontrolador 6CPNMC)1NOAK

-K

3rof. 9ustavo :eber Denardin

Você também pode gostar