Documente Academic
Documente Profesional
Documente Cultură
Microprocessadores 1
Francisco Jadilson dos Santos Silva
Alcntara MA
2011
1. INTRODUO AOS SISTEMAS MICROPROCESSADOS
Para que este programa seja executado pelo processador necessrio que ele esteja
armazenado na memria na forma de linguagem de mquina, comumente conhecida como
firmware nos sistemas embarcados.
Compilador: traduz uma linguagem de alto nvel (como por exemplo, linguagem
C) em linguagem assembly e ento em linguagem de mquina;
Esta arquitetura usa uma unidade central de processamento (CPU) e uma nica
unidade de armazenamento (memria) para comportar tanto instrues quanto dados. Dessa
forma, o acesso s instrues e aos dados ocorre pelo mesmo barramento. Na Figura 1.7 est
ilustrado um esquema da arquitetura von Neumann.
b) Arquitetura Harvard:
Esta separao das memrias e dos barramentos para instrues e dados permite que
um processador acesse tanto instrues como dados simultaneamente, obtendo assim um
melhor desempenho.
A principal vantagem desta arquitetura que a leitura de uma instruo pode ser feita
ao mesmo tempo em que outra est sendo executada. Isso significa que o sistema fica o tempo
todo executando instrues, o que acarreta um ganho significativo de velocidade. Um
esquema da arquitetura Harvard pode ser visualizado na Figura 1.8.
a) Arquitetura CISC:
b) Arquitetura RISC:
Uma grande vantagem da arquitetura RISC com relao CISC a quantidade menor
de transistores necessrios para a implementao da CPU, o que diminui os gastos com rea
de silcio e com energia, e produzem menos calor.
PROM (Programmable ROM): pode ser escrita (programada) uma nica vez por
meio de um dispositivo especial chamado Programador de PROM;
EPROM (Erasable Programmable ROM): pode ser apagada pela exposio luz
ultravioleta (tipicamente por 10 minutos), e ento reprogramada. Este tipo de
memria pode ser identificado por uma pequena janela que permite a entrada da
luz ultravioleta. Aps a programao a janela normalmente fechada com uma
etiqueta para impedir o apagamento acidental dos dados gravados;
Para comear o preparo do bolo o cozinheiro deve acessar a pgina do livro de receitas
correspondente receita do bolo de chocolate. Nesta pgina o cozinheiro deve ler as
instrues que indicam o preparo do bolo de chocolate.
Suponha que a receita seja para o preparo de um bolo de 2kg e que o cozinheiro deseje
preparar um de 1 kg. Neste caso, o cozinheiro precisar fazer clculos em uma folha de
rascunho para adequar a quantidade de ingredientes ao bolo de 1 kg. Esta folha de rascunho
poder ser jogada fora depois do preparo.
Como indicado na Figura 2.1 pela direo das setas, o acesso memria RAM
bidirecional, ou seja, o microprocessador pode tanto ler quanto escrever seu contedo; o
acesso memria ROM permitido somente no sentido de leitura; e com relao aos
perifricos,o microprocessador pode tanto ler informaes (como por exemplo do teclado)
quanto enviar informaes (como por exemplo um display ou um monitor).
2.1 MICROPROCESSADOR: UMA DESCRIO TCNICA
Na Figura 2.3 est uma ilustrao bsica do trabalho interno de uma CPU.
Figura 2.3 Ilustrao da CPU em um ciclo de busca de instruo na ROM.
Dentro do registrador, cada flip-flop pode ser visto como uma chave configurada por
software, na qual um valor lgico 1 pode ser usado para ligar (habilitar) uma caracterstica
especfica do microcontrolar e um valor lgico 0 pode ser usado para desligar (desabilitar)
tal caracterstica.
anl A,#dado: realiza uma operao AND entre o valor #dado e o valor
armazenado no acumulador. O resultado fica armazenado no acumulador.
Figura 2.5 Conjunto de registradores.
mov P0, #00h: move o valor 00h (valor em hexadecimal) para o registrador P0,
ou seja, zera todos os bits deste registrador (os pinos com a designao desta
porta apresentam um valor de tenso zero);
setb P0.7: faz o pino 7 da porta P0 ficar em nvel lgico 1 (tenso em nvel
alto);
clr P0.0: faz o pino 0 da porta P0 ficar em nvel lgico 0 (tenso em nvel
baixo).
Barramento de Endereos
Barramento de Dados
O barramento de dados como o nome indica, usado para transferir dados, de forma
paralela, entre os diferentes subsistemas dentro do microcontrolador. Os microcontroladores
disponveis comercialmente apresentam barramentos de dados de 4, 8, 16 ou 32 bits. A
quantidade de condutores paralelos que compem o barramento de dados geralmente
determina o tamanho do argumento de dados que o microcontrolador pode processar. Por
exemplo, o maior inteiro no sinalizado (inteiro positivo) que pode ser armazenado em um
microcontrolador que possui um barramento de 8 bits 255 (28 1).
Barramento de Controle
2.5.3 Memrias
Flash EEPROM: usada para armazenar os programas. Ela pode ser apagada e
reprogramada por completo. Elas so geralmente programadas dentro de seu
prprio circuito de aplicao por meio de um cabo de comunicao conectado a
um computador, ou seja, no precisam ser retiradas do circuito original e
inseridas em um outro circuito exclusivo para gravao.
2.5.4 Base de Tempo
Subsistemas de tempo
1
Nos microcontroladores modernos pode-se optar por uma base de tempo interna.
maior ser o valor da tenso efetiva e consequentemente maior ser a velocidade
do motor.
Medir os parmetros dos sinais de entrada, tais como perodo e ciclo de trabalho;
Embora as portas sejam geralmente usadas por sinais digitais de entrada e sada,
muitos microcontroladores compartilham os pinos de suas portas com outras funes
alternativas, tais como: converso analgico-digital e comunicao serial. A escolha entre a
funo convencional de entrada ou sada e a funo alternativa normalmente realizada por
meio de registradores que funcionam como chaves capazes de habilitar uma funo ou outra.
Pode-se perceber na figura acima que o pino RB0 da Porta B tambm pode ser usado
como a interrupo externa INT e os pinos RB1 e RB2 podem ser usados para comunicao
serial. Outras funes alternativas tambm so compartilhadas com os pinos da Porta A.
2.5.6 Conversor analgico-digital
A comunicao assncrona usa um bit de protocolo para determinar o incio dos dados
(bit de start) e outro para determinar o fim da transmisso dos dados (bit de stop). Os bits de
start e stop so inseridos em cada byte transmitido. A vantagem da comunicao assncrona
que ela mais econmica, mas como desvantagem as suas taxas de transmisso so
normalmente mais lentas que a comunicao sncrona devido seu caberio2, ou overhead
(bits de start e stop). Os subsistemas que que usam a comunicao assncrona so
normalmente referenciados como UART (Universal Asynchronous Receiver/Transmiter) ou
SCI (Serial Communications Interface).
2
Bits que no carregam informao e so usados apenas para manter o sincronismo entre transmissor e
receptor.
Figura 2.10 Diagramas de comunicao serial assncrona e sncrona.
Terminologia
Para melhor entender o processo de comunicao serial, alguns termos devem ser
apresentados. Dentre tais termos, os mais comumente encontrados nas documentaes
tcnicas so:
Modo duplex: modo de comunicao serial que permite que os dados sejam
transmitidos e recebidos ao mesmo tempo;
Mecanismos de Handshake
Uma tcnica bastante comum a do bit paridade. O bit de paridade permite que o
receptor seja capaz de detectar a presena de um nico bit errado na transmisso. H dois
tipos de paridade: a paridade par e a paridade mpar.
Quando a paridade par usada, o bit de paridade usado para tornar o nmero total de
bits 1s, incluido o bit de paridade, um nmero par. Enquanto que na paridade mpar o bit de
paridade deve ser adicionado para tornar o nmero de bits 1s, incluindo o bit de paridade,
um nmero mpar.
Esta tcnica funciona da seguinte forma: quando o receptor est recebendo os dados,
ele calcula a quantidade de bits 1s presentes no conjunto e determina o bit de paridade de
acordo com a paridade escolhida para a comunicao (par ou mpar). Este bit de paridade
determinado pelo receptor ento comparado com o enviado pelo transmissor. Se o valor
deles coincide, a transmisso considerada sem erros, caso contrrio, o receptor reconhece
que ocorreu um erro na transmisso e neste caso, descarta todo o pacote de dados e solicita a
retransmisso do mesmo. Na Tabela 2.1 est representado um esquema de codificao de
paridade.
3
uma rotina de software (trecho de um cdigo) que o hardware executa em resposta uma determinada
interrupo.
Quando uma interrupo ocorre, o microcontrolador termina de executar a instruo
atual e ento armazena na pilha a informao de contexto (registradores usados durante o
processamento das instrues anteriores), o valor dos principais registradores e o endereo de
retorno (posio da prxima instruo que seria executada caso no ocorresse a interrupo).
Em seguida, a rotina de interrupo executada. Quando a rotina de interrupo tiver sido
executada, o controle das operaes retorna ao programa que estava em execuo antes da
ocorrncia da interrupo. A informao de contexto, previamente armazenada na pilha, ser
usada para restaurar o estado do sistema para uma condio imediatamente antes da
interrupo.
A IRQ uma interrupo externa, acessvel por meio de pinos. Esta interrupo til
para permitir que um hardware externo alerte o microcontrolador quando um mal
funcionamento ocorrer. Por exemplo, se o microcontrolador est tentando abrir um porto
eletrnico e algum obstculo o est impedindo de ser aberto, o microcontrolador precisa ser
alertado desta condio. Caso contrrio, o microcontrolador continuar a enviar um sinal de
controle ao motor do porto, o que poder danific-lo.
Aritmticas (, , , ) ;
Cada instruo tem um smbolo que uma palavra que pode ser memorizada
facilmente. Este smbolo normalmente conhecido como mnemnico. Por exemplo:
cjne A, #data, rel = Compare and Jump if Not Equal compare e salte se no
for igual.
Esta instruo apresenta trs partes: cjne A, #data e rel. Ela compara o
contedo do registrador A com o valor #data. Se eles forem iguais, o programa no desvia e
continua a executar a prxima instruo. Se por outro lado os contedos forem diferentes, o
programa desvia para o endereo rel. O smbolo # usado para destacar que data
representa um nmero e no um endereo.
mov A, #5
cjne A, #10, 1000
clear A
1000: mov B, #20
AVR
Figura 2.13 - Microcontrolador AVR Atmega328 da Atmel usado em uma placa Arduino.
PIC
8051
2.8 ARDUINO
Esta seo foi elaborada para dar destaque a uma plataforma aberta de prototipagem
eletrnica baseada em hardware e software flexveis e relativamente fceis de utilizar: o
arduino. O pblico alvo deste tipo de plataforma so os hobistas, artistas e qualquer um
interessado em criar ambientes ou objetos interativos.
4
Arduinos produzidos na Itlia, onde o projeto teve incio.
microcontroladores da srie megaAVR (Atmega8, Atmega168, Atmega328, etc.) em seus
projetos. Um aspecto importante do arduino est em seus conectores padro, que permitem
que o microcontrolador da placa seja conectado a uma variedade de mdulos adicionais,
popularmente conhecidos como shields. Esses conectores so usados como entrada e sada e
esto disponveis na forma de conectores do tipo macho ou fmea. Na Figura 2.16 esto
representadas algumas plataformas arduino e na Figura 2.17 algumas shields.
Figura 2.16 Plataformas de desenvolvimento: Arduino Uno, Arduino Mega 2560 e Arduino Mini.
Figura 2.17 Shields arduino: Shield Ethernet, Shield Touch Screen LCD e Shield Joystick.
As placas arduino podem ser conectadas shields, que so placas de circuito impresso
usadas para fornecer as mais variadas funcionalidades ao arduino, indo desde o controle de
motores at a integrao de GPS e bluetooth ao hardware. Estas placas possuem conectores
padro usados para unir a shield placa aduino.
Nas sees seguintes sero apresentados alguns dos pricipais tipos de encapsulamentos
encontrados comercialmente..
Os tipos mais comuns de circuito integrado que usam este tipo de encapsulamento so
as portas lgicas, circuitos analgicos e alguns microcontroladores. Eles podem ser
5
Quando encapsulados com material plstico, tais CIs so comumente conhecidos como PDIP (Plastic Dual In
Line Package) ou PEM (Plastic Encapsulated Microcircuit).
conectados diretamente placa de circuito impresso por meio de solda ou podem ser
conectados por meio de soquetes presos placa. O uso de soquetes permite uma fcil
substituio do CI e elimina o risco de dano por superaquecimento, uma vez que o circuito
integrado inserido no soquete frio. Na Figura 2.20 esto as ilustraes de CIs tipo DIP e
alguns soquetes para este tipo de circuito integrado.
Cada pino no DIP recebe uma numerao diferente e sequencial, ou seja, conhecendo-
se o pino de nmero 1 sabe-se o restante dos pinos. O pino de nmero 1 fica localizado no
lado marcado por uma chanfradura6 (corte em forma de semicrculo) na parte superior (ou
esquerda) do DIP. A partir dele segue-se a contagem em sequncia, de cima para baixo
(distanciando-se da chanfradura) at atingir o pino da extremidade oposta. Quando este ponto
tiver chegado continua-se a contagem na outra linha de pinos, agora no sentido de
aproximao com a chanfradura. Na Figura 2.23 est representado o processo de identificao
dos pinos de um circuito integrado do tipo DIP.
Este tipo de encapsulamento tambm possui duas linhas paralelas de pinos para a
conexo eltrica, assim como os encapsulamentos do tipo DIP. Entretanto, possui uma
6
Tambm comum o uso de crculos para identificar o pino de nmero 1.
distncia entre pinos adjacentes bem menor em comparao com o DIP, o que possibilita uma
quantidade bem maior de pinos para um mesmo tamanho de encapsulamento.
Talvez a caracterstica mais marcante deste tipo de encapsulamento seja o fato de que
o CI soldado sobre a superfcie da placa de circuito impresso, ao contrrio dos CIs tipo DIP
que necessitam que as placas sejam perfuradas para que a conexo deles seja executada.
Com isso foi possvel confeccionar placas mais baratas, uma vez que a perfurao e o
posterior processo de metalizao dos furos no seriam mais necessrios. Alm disso, o
espao que seria ocupado pelos furos poderia agora ser aproveitado para o roteamento das
trilhas de condutores.
QFP (Quad Flap Pack)
O encapsulamento QFP permitiu o aparecimento de CIs com cada vez mais terminais.
Em contrapartida, tambm tornou a tarefa de conexo dos CIs para as placas cada vez mais
difcil: o alinhamento e a fixao de tais CIs exige mais habilidade, sem mencionar que o
manuseio inadequado deste tipo de dispositivo pode danificar os seus teminais, inviabilizando
portanto, o seu uso.
Este tipo de encapsulamento bastante similar ao QFP, com a diferena de que ele no
possui terminais condutores para a conexo do CI com a placa de circuito impresso, ou seja, a
7
Quando encapsulados com material plstico, estes CIs so comumente conhecidos como PQFP (Plastic Quad
Flat Pack).
conexo com a superfcie da placa feita diretamente do corpo do circuito integrado. Na
Figura 2.26 est ilustrado um exemplo deste tipo de encapsulamento.
Este tipo de encapsulamento tem a vantagem de oferecer uma indutncia menor nos
terminais de entrada/sada, caracterstica importante em aplicaes de alta frequncia. E
tambm possui um bom desempenho trmico, uma vez que o CI fica praticamente colado na
placa de circuito impresso, facilitando portanto, as transferncias de calor do circuito
integrado para a placa.
Estes dois tipos de encapsulamento permitiram que uma rea maior do corpo do
circuito integrado (e no s a sua periferia) fosse ocupada por terminais, localizados na
superfcie de baixo do CI.
8
Mquina que usa geralmente um fluxo de ar quente ajustvel para execuo de trabalhos de soldagem e
dessoldagem de componentes eletrnicos SMD.
O encapsulamento PGA caracterizado por uma matriz quadrada de pinos localizados
na parte inferior do circuito integrado, os quais so utilizados para a conexo do CI com a
placa de circuito impresso por meio de furos ou soquetes. Como um resultado, o custo de
fabricao de placas que utilizam esse tipo de componente aumentou devido a quantidade de
furos e/ou de soquetes que deveriam ser adicionados. Na Figura 2.27 est ilustrado um
exemplo deste tipo de encapsulamento.
Algumas variantes deste tipo de encapslamento so: PPGA (Plastic Pin Grid Array),
que possui um encapsulamento de material plstico e CPGA (Ceramic Pin Grid Array), que
possui um encapsulamento de material cermico.
Este PIC tambm possui uma arquitetura RISC, garantindo-lhe um conjunto reduzido
de 35 intrues, bem menos que os microcontroladores baseados na arquitetura CISC, que
geralmente possuem mais de cem intrues. Um conjunto reduzido de intrues facilita o
aprendizado por um lado, mas por outro, implica que muitas funes devem ser construdas,
uma vez que no possuem uma instruo direta, exigindo portanto, maior habilidade9 do
programador.
Este tipo de microcontrolador ideal para uma ampla gama de aplicaes, desde
carregadores de bateria at sensoriamento remoto de baixa potncia. Seu baixo custo, baixo
consumo de energia, alto desempenho e seu fcil uso o tornam uma opo muito verstil.
Alm disso, sua tecnologia de armazenamento flash faz a tarefa de customizao de
programas (firmwares) extremamente rpida e conveniente.
9
Esta habilidade relevante somente se voc est programando em linguagem assembly, uma vez que em
linguagens de alto nvel, como C/C++, toda a complexidade do cdigo mascarada pelos compiladores.
Figura 3.1 Encapsulamentos disponveis comercialmente para o PIC16F628A.
Na Figura 3.2 est ilustrado um diagrama simplificado dos elementos internos que
compem o PIC e que foi retirado do datasheet original da Microchip10.
10
Fabricante dos microcontroladores da famlia PIC.
Figura 3.2 Diagrama de blocos da arquitetura interna do PIC16F628A.
Na parte inferior esto localizados alguns perifricos, tais como os timers (Timer0,
Timer1 e Timer2), o comparador interno, o mdulo CCP (Capture, Compare e PWM) e a
porta serial (USART).
O ciclo de mquina do PIC consiste dos quatro ciclos (Q1, Q2, Q3 e Q4) e essa
caracterstica de buscar a instruo em um ciclo de mquina e decodific-la e execut-la no
prximo conhecida como pipeline. Ela permite que cada instruo seja efetivamente
executada em um nico ciclo de mquina. As nicas excees so as instrues que geram
saltos no contador de programa, como chamadas de rotina e retornos.
A arquitetura Harvard permite que durante um ciclo de mquina uma intruo seja
buscada (ciclo de busca), ao mesmo tempo em que a instruo anterior executada (ciclo de
execuo). O ciclo de busca comea com o contador de programa sendo incrementado,
durante o ciclo Q1, e termina quando a instruo armazenada no registrador de instruo,
durante o ciclo Q4. No ciclo de execuo a instruo decodificada e executada durante os
ciclos Q2, Q3 e Q4: a memria de dados lida durante o ciclo Q2 e escrita durante Q4.
Na Figura 3.3 est ilustrado o esquema dos ciclos de mquina e na Figura 3.4 o
esquema pipeline de execuo das instrues. Ambas as figuras foram retiradas diretamente
do datasheet original da Microchip.
11
Sinal que fornece o marcapasso necessrio para as operaes sequenciais de todo microcontrolador.
Figura 3.4 Esquema pipeline de execuo das instrues.