-
UPF Engenharia Eltrica
EEE133 - Microprocessadores I Prof. Eduardo Appel
1
CAPTULO 1 INTRODUO
1.1. MICROCONTROLADOR X MICROPROCESSADOR
Um microcontrolador difere de um microprocessador em diversas
formas. A primeira, e mais importante, a sua funcionalidade. Para
que um microprocessador possa ser usado, outros componentes tais
como memria, tm que ser ligados ao chip. Mesmo sendo os
microprocessadores considerados excelentes mquinas matemticas, o
seu ponto fraco a sua pouca possibilidade de se comunicar com
perifricos. Ento, para que possa se comunicar com perifricos, o
microprocessador tem que usar circuitos especiais, como chips
externos. Resumindo, os microprocessadores so o corao dos
computadores. Era assim no incio, e ainda nos dias de hoje se
mantm.
Por outro lado, o microcontrolador foi projetado para ser um
tudo em um. No so necessrios componentes externos para as
suas aplicaes, porque todos os circuitos que pertencem aos
perifricos, j esto dentro do chip. Poupa tempo e espao no
projeto de um sistema.
Figura 1 Microprocessador x Microcontrolador
1.2. ARQUITETURA INTERNA Todos os microcontroladores modernos
usam uma de duas arquiteturas: Harvard (RISC) ou von-Neumann
(CISC). Em resumo,
so duas formas distintas de trocar a informao entre a CPU e a
Memria.
-
UPF Engenharia Eltrica
EEE133 - Microprocessadores I Prof. Eduardo Appel
2
ARQUITETURA VON-NEUMANN
Os microcontroladores que usam esta tecnologia, s tem disponvel
uma rea de memria, e um barramento de dados de N bits.
Como todos os dados so trocados, usando estas N linhas, este
barramento sobrecarregado e a comunicao extremamente
lenta e ineficiente.
A CPU pode ler uma instruo, ou ler/escrever dados de/para a
memria. Ambas as situaes ao mesmo tempo so impossveis,
pois as instrues partilham o barramento com os dados.
Figura 2 Arquitetura von-Neumann
ARQUITETURA HARVARD
Os microcontroladores que usam esta arquitetura dispem de dois
barramentos de dados distintos. Um de N bits e liga a CPU
RAM (memria de dados). O outro tem vrias linhas (12, 14 ou 16) e
liga a CPU ROM (memria de programa).
Assim, a CPU pode ler uma instruo, ao mesmo tempo em que faz um
acesso memria de dados.
Figura 3 Arquitetura Harvard
As vantagens deste modelo so as seguintes:
Todos os dados so de 8 bits. Como o barramento usado para a
leitura do programa tem 12, 14 ou 16 linhas, ambos
(instrues e dados) podem ser lidos simultaneamente. Assim, todas
as instrues so executadas em apenas um ciclo.
A nica exceo so as instrues de salto, que so executadas em dois
ciclos.
Como a ROM e RAM so separadas, a CPU pode executar duas instrues
simultaneamente. Enquanto a leitura/escrita
da RAM est sendo feita, a prxima instruo est sendo lida pelo
outro barramento.
-
UPF Engenharia Eltrica
EEE133 - Microprocessadores I Prof. Eduardo Appel
3
1.3. REGISTRO OU REGISTRADOR Um registro um circuito eletrnico
que consegue memorizar o estado de um byte. Portanto formado por N
bits que definem
o tamanho do registrador. O elemento bsico de um registro um
flip-flop.
Figura 4 Registrador
1.4. SFR / SPECIAL FUNCTION REGISTER - REGISTRO DE FUNO ESPECIAL
Alm dos registros que no tem qualquer funo predeterminada, todos os
microcontroladores tm alguns registros em que a
sua funo predeterminada pelo fabricante. Os seus bits esto
interligados fisicamente aos circuitos internos, tais como
temporizadores, conversores A/D, osciladores, portas e outros, o
que significa que so responsveis pela configurao, e
funcionamento do respectivo perifrico do microcontrolador. Como
um byte tem oito bits, como se fossem oito interruptores
que comandam outros pequenos circuitos dentro do chip. Os SFRs
tm esta funo.
Figura 5 Registo de Funo Especial (SFR)
1.5. PORTAS DE ENTRADA/SADA - I/O Para tornar o microcontrolador
com alguma utilidade, o mesmo tem que estar ligado ao seu exterior,
tais como perifricos. Cada
microcontrolador tem um ou mais registros chamados de Portas,
ligados aos pinos do mesmo.
O porqu de I/O deve-se ao fato que o programador pode alterar a
funo a seu belo prazer, e conforme a aplicao atribuda
porta. Como exemplo, vamos supor que queremos comandar trs LEDs,
e simultaneamente controlar o estado lgico de cinco
botes: algumas portas tm de ser configuradas para que haja trs
sadas e cinco entradas.
Esta configurao simples e feita por software, o que significa
tambm que a funo pode ser alterada durante a operao,
possibilidade denominada (on the fly).
Uma das especificaes mais importantes dos pinos de I/O, a
corrente mxima que os mesmos podem suportar.
-
UPF Engenharia Eltrica
EEE133 - Microprocessadores I Prof. Eduardo Appel
4
Para a maioria dos microcontroladores, a corrente possvel de
drenar de um pino a suficiente para ativar um LED, ou outro
dispositivo similar de baixa corrente (5-25mA). Se o
microcontrolador tiver muitos pinos de I/O, ento a corrente mxima
de um
s pino menor. Resumidamente, no possvel que todos os pinos
suportem a mxima corrente, se houver mais de 80 pinos
em um microcontrolador. A corrente mxima descrita nas
especificaes partilhada entre todas as portas de I/O.
Outra funo importante a de que podem ter resistncias de pull-up
(polarizao positiva). Estas resistncias ligam os pinos
alimentao positiva, e o seu efeito visvel quando o pino est
configurado como entrada.
As novas verses de microcontroladores j tm estas resistncias
configurveis por software.
Normalmente cada porta de I/O controlada por um SFR, o que
significa que, cada bit deste registro determina o estado do
pino correspondente do microcontrolador. Como exemplo,
escrevendo 1 lgico no bit deste SFR, o pino da porta
correspondente automaticamente configurado como entrada.
Escrevendo 0 lgico no SFR, o pino da porta correspondente
configurado como sada.
Se escrevermos 0 em um bit do registro da Porta, esse pino
apresentar 0v. Se escrevermos 1 no mesmo bit, o pino vai
apresentar 5v.
Figura 6 - Porta de I/O
1.6. UNIDADE DE MEMRIA A memria a parte do microcontrolador
usada para o armazenamento de dados e programa.
Cada endereo de memria corresponde a uma posio de memria. O
contedo dessa posio conhecido atravs do seu
endereamento. A memria tanto pode ser lida de como pode ser
escrita para.
Existem vrios tipos de memria dentro do microcontrolador.
FLASH - Este tipo de memria foi inventada pela Intel nos anos
80. O seu contedo pode ser escrito/apagado quase que infinitamente.
Os microcontroladores com memria Flash so muito uteis para
aprendizagem, investigao e desenvolvimento.
Devido sua popularidade, a maioria dos microcontroladores so
fabricados com este tipo de memria.
RAM - Random Access Memory: Este tipo de memria voltil, o que
significa que quando se desliga a alimentao do chip, a sua informao
desaparece. usada para o armazenamento temporrio de dados criados e
usados durante a operao do
microcontrolador. Como exemplo, se o programa faz uma adio,
necessrio haver um registro que tenha o valor da soma.
Para esse fim, um dos registros da RAM chamado de soma e usado
para armazenar o resultado da adio.
-
UPF Engenharia Eltrica
EEE133 - Microprocessadores I Prof. Eduardo Appel
5
EEPROM - Electrically Erasable Programmable ROM: ROM programvel
que se pode apagar eletricamente.
O contedo desta memria pode ser mudado durante a operao, e o seu
contedo no perdido quando se desliga a
alimentao do microcontrolador. Este tipo de memria usado para
guardar valores criados durante a operao, que devem
ser permanente armazenados.
Figura 7 Memria
1.7. CPU - UNIDADE CENTRAL DE PROCESSAMENTO Como o seu nome
sugere, esta a unidade que monitora e controla todos os processos
dentro do microcontrolador.
Consiste em vrias subunidades, as mais importantes so:
Decodificador de Instrues: a parte eletrnica que reconhece as
instrues de programa, e faz funcionar os outros circuitos. O
conjunto de instrues que diferente para cada famlia de
microcontroladores mostra as capacidades do circuito.
ALU: Unidade Lgica e Aritmtica: responsvel por todas as operaes
lgicas e aritmticas.
Acumulador: um registro SFR responsvel pela operao da ALU. como
um registro de trabalho, usado para armazenar todos os dados que so
usados para executar uma operao, e que tambm armazena os resultados
prontos para serem usados
para a continuao do processamento. Um dos SFRs, chamado de
Status, contm informao sobre o estado dos dados
armazenados no Acumulador sob a forma de flags sinalizadores (o
nmero maior ou menor que zero, overflow, carry, etc).
Figura 8 Unidade Central de Processamento
-
UPF Engenharia Eltrica
EEE133 - Microprocessadores I Prof. Eduardo Appel
6
1.8. BARRAMENTO Fisicamente o barramento constitudo por 8, 16 ou
mais condutores. Existem dois tipos de barramento: o de
endereamento e
o de dados. O barramento de endereamento consiste no nmero de
linhas necessrias para poder enderear a memria.
usado para transmitir o endereo da CPU para a Memria. A
capacidade de endereamento de um microcontrolador pode ser
definida pela seguinte relao 2N, onde N o nmero de bits do
barramento. O barramento de dados possui a largura dos dados
que vo ser trabalhados, e no caso do dispositivo que iremos
estudar de 8 bits ou largura de fios. usado para ligar todos os
circuitos dentro do microcontrolador.
1.9. OSCILADOR Pulsos dados pelo oscilador possibilitam a operao
sncrona de todos os circuitos do microcontrolador. O mdulo
oscilador
normalmente configurado para usar um cristal de quartzo, ou um
ressoador cermico, para ter a sua oscilao estabilizada. Se
no houver por parte da aplicao necessidade de estabilidade da
oscilao ento pode usar-se um oscilador RC
(resistncia/capacitor).
importante salientar que as instrues no so executas ao ritmo
imposto pelo oscilador, mas algumas vezes mais lento. Isto
acontece porque cada instruo executada em vrios passos. Em
alguns microcontroladores o mesmo nmero de ciclos
necessrio para qualquer instruo, enquanto que em outros, o tempo
de execuo no o mesmo para todas as instrues. Se
o sistema usa um cristal de 20 MHz, o tempo de execuo de uma
instruo no de 50ns, mas 200ns, 400 ou 800ns,
dependendo do tipo de microcontrolador usado.
Figura 9 Oscilador
1.10. CIRCUITO DE ALIMENTAO H duas situaes que merecem ateno
relacionadas alimentao do microcontrolador:
Brown-Out, um estado potencialmente perigoso, e que acontece no
momento em que o microcontrolador vai ser desligado, ou em situaes
onde a energia de alimentao cai para certo limite devido ao rudo
eltrico.
Como o microcontrolador formado por vrios circuitos com
diferentes necessidades de nvel de tenso, este estado pode
causar uma perda significativa em seu desempenho. Para proteg-lo
este circuito faz um reset imediato a toda a eletrnica
interna quando a tenso de alimentao desce abaixo de um nvel
pr-determinado.
Pino Reset, normalmente marcado como MCLR (Master Clear Reset),
serve para fazer o Reset externo do microcontrolador, aplicando
nvel lgico 0 ou 1, dependendo do tipo de microcontrolador usado. No
caso do chip no ter circuito de Brown-Out,
um simples circuito externo de Brown-Out pode ser ligado a este
pino.
-
UPF Engenharia Eltrica
EEE133 - Microprocessadores I Prof. Eduardo Appel
7
1.11. TEMPORIZADORES E CONTADORES O microcontrolador usa
normalmente um cristal de quartzo para funcionar. Mesmo que no seja
a soluo mais simples, h
muitas razes para isso. A frequncia do oscilador definida de
maneira precisa e muito estvel, e os pulsos originados tm
sempre a mesma largura, o que os torna ideais para medies de
tempo. Estes osciladores so usados em relgios de quartzo.
Figura 10 Temporizadores/Contadores
Se for necessrio medir o tempo entre dois eventos, suficiente
contar os pulsos enviados pelo oscilador. Isto exatamente o
que o Temporizador faz.
Muitos programas usam estes cronmetros miniatura, que so SFR de
8 ou 16 bits, e o seu contedo automaticamente
incrementado a cada pulso recebido. Quando um registro chegar ao
fim da contagem (255 ou 65535), uma Interrupo gerada
ou ento gerada uma sinalizao.
Se os temporizadores usam um oscilador interno de quartzo, ento
possvel medir o tempo entre dois eventos (se o valor do
registro T1 no momento inicial, e T2 no momento final, ento o
tempo decorrido igual ao resultado da subtrao T2-T1). Se
os temporizadores usam pulsos externos, ento o temporizador
transformado em contador.
COMO FUNCIONA UM TEMPORIZADOR
Na prtica, os pulsos que chegam do oscilador de quartzo a cada
ciclo de mquina, ou atravs do divisor, vo incrementar
(somar uma unidade) o valor do registro contador do
temporizador. Se uma instruo (um ciclo de mquina) durar por
quatro
perodos do oscilador de quartzo, ento o nmero vai mudar um milho
de vezes por segundo, ou a cada microsegundo (us).
Figura 11 Funcionamento do temporizador
-
UPF Engenharia Eltrica
EEE133 - Microprocessadores I Prof. Eduardo Appel
8
USO DO DIVISOR NO FUNCIONAMENTO DO TEMPORIZADOR
Um divisor um dispositivo eletrnico usado para reduzir a
frequncia, por um fator pr-determinado tambm conhecido como
prescaler. O que significa que, para gerar um pulso na sua sada,
necessrio fazer chegar 1, 2, 4, 8 ou mais pulsos sua
entrada. Este circuito parte integrante do microcontrolador, e o
seu fator de diviso pode ser alterado pelo software. usado
quando necessrio medir perodos de tempo longos.
Figura 12 Divisor no funcionamento do Temporizador
CONTADORES
Se o temporizador for incrementado com pulsos do exterior, ento
o mesmo torna-se num contador. O circuito no mudou,
mantm-se o mesmo. A nica diferena que neste caso os pulsos que
sero contados chegam atravs das portas, e a sua
durao nunca definida. Esta a razo pela qual no podem ser usados
para medio de tempo, embora os seus fins sejam
imensos.
Desde a contagem de peas numa linha de montagem, quantidade de
passos que o motor andou, nmero de passageiros numa
fila, etc. As possibilidades so vastas, e so dependentes dos
sensores usados.
1.12. COMO ESCOLHER O MICROCONTROLADOR CERTO PARA A APLICAO?
Antes de comear a desenvolver um sistema baseado em
microcontrolador, deve-se equacionar o seguinte:
quantas entradas/sadas so necessrias?
comunicaes srie?
conversor A/D?
quantidade de memria (programa e dados)?
quantidade de temporizadores?
interfaces de comunicao?
outro...
Quando se define muito bem os requisitos do projeto, a grande
oferta naturalmente filtrada, e muito mais simples fazer a
escolha adequada.
Por ltimo, fazer a escolha relacionada ao nmero de unidades do
produto, e o preo por unidade.