You are on page 1of 56

INSTITUTO FEDERAL DO MARANHO CAMPUS ALCNTARA

DEPARTAMENTO DE EDUCAO PROFISSIONAL


CURSO TCNICO EM ELETRNICA

Microprocessadores 1
Francisco Jadilson dos Santos Silva

Alcntara MA

2011
1. INTRODUO AOS SISTEMAS MICROPROCESSADOS

O desenvolvimento paralelo da arquitetura de computadores e da fabricao de


circuitos integrados tm proporcionado mudanas radicais na maneira como analizamos e
controlamos o mundo ao nosso redor. Tais mudanas esto presentes em muitos aspectos da
vida moderna e h muitos exemplos delas:

Nos sistemas de Telecomunicao, os aparelhos celulares incorporam dezenas


de funes: camra digital, MP3 players, videoconferncia, acesso internet,
entre outras;

No setor de eletrodomticos h televisores de LED e LCD, que j dispem de


tecnologia 3D e de acesso internet. Tambm h uma mirade de outros
componentes eletrnicos que possuem uma inteligncia cada vez mais
evidente, tais como: mquinas de lavar, microondas, aparelhos de ar
condicionado, etc.

No setor de transportes, os freios ABS e os controles de estabilidade e de trao


nos automveis tm garantido uma segurana cada vez maior aos passageiros.

A maioria destas mudanas tem sido impulsionada pelos sistemas microprocessados.

Um sistema microprocessado, tambm conhecido como sistema embarcado, um


sistema computacional projetado para fazer uma ou algumas funes especficas ou
dedicadas. Eles variam desde sistemas portteis como MP3 players at grandes sistemas
estacionrios como controladores de reatores nucleares.

Tais sistemas microprocessados caracterizam-se por duas partes bsicas: hardware e


software. O primeiro representa a parte fsica do sistema, envolvendo circuitos integrados,
fios, chaves e demais componentes. J o segundo constitui-se dos componentes lgicos,
representados por dados ou conjunto de instrues organizadas em uma sequncia
determinada para realizar uma tarefa (firmware). Maiores detalhes sobre estas duas partes
sero apresentados no decorrer desta apostila. Na Figura 1.1 possvel visualizar um exemplo
de sistema microprocessado.
Figura 1.1 Circuito interno de modem/roteador ADSL com microprocessador (4), RAM (6) e
memria flash (7).

1.1 ELEMENTOS DE HARDWARE

H vrias alternativas de hardware disponveis para o desenvolvimento de um sistema


embarcado. A seguir ser apresentada uma breve descrio das principais:

Conjuntos de portas lgicas programavis (Programmable Gate Arrays


PGAs): caracterizam-se por circuitos integrados projetados para serem
configurados pelo consumidor aps sua fabricao. Os principais representantes
desta classe so os FPGAs (Field Programmable Gate Arrays). Este tipo de
hardware configurvel consiste de blocos lgicos que podem ser conectados
entre si de diferentes maneiras, para implementar sistemas digitais mais
complexos. Um exemplo de FPGA comercial est ilustrado na Figura 1.2;

Figura 1.2 Exemplo de um FPGA produzido pela ALTERA.


Microprocessadores: caracterizam-se por uma unidade central de processamento
(CPU) de propsito geral em um simples circuito integrado. A principal funo
do microprocessador buscar dados, executar clculos e armazenar os
resultados em um dispositivo de armazenamento e/ou mostr-los em um monitor
ou em outro dispositivo para visualizao. Para tornar um microprocessador um
computador completo, necessrio adicionar memria (RAM e/ou ROM),
oscilador, e dispositivos de armazenamento em massa (discos rgidos) e
dispositivos de entrada/sada (teclado, mouse, monitor, etc.). Um exemplo de
microprocessador est ilustrado na Figura 1.3;

Figura 1.3 Microprocessador da famlia Intel.

Processadores de sinais digitais (Digital Signal Processors DSPs): so


microprocessadores otimizados para o processamento massivo de sinais digitais.
So extremamente eficientes na manipulao de dados com ponto flutuante e
suas aplicaes mais comuns podem ser encontradas nos dispositivos mveis,
tais como, celulares. Um exemplo de DSP est ilustrado na Figura 1.4;

Figura 1.4 Exemplo de um DSP fabricado pela Texas Instruments.


Microcontroladores: so circuitos integrados que incorporam alm das
caractersticas de um microprocessador, outros circuitos adicionais tais como,
memrias ROM e RAM, portas de entrada/sada paralelas e seriais, contadores,
circuitos osciladores, etc., tudo em um nico chip. Ele normalmente
empregado para controlar a operao de uma determinada mquina por meio de
um programa fixo armazenado em sua memria ROM. Na Figura 2.8 est
ilustrado um exemplo de microcontrolador.

Figura 1.5 Microcontrolador PIC18F8720 fabricado pela Microchip.

1.2 ELEMENTOS DE SOFTWARE

O software um conjunto de instrues ordenadas com a finalidade de realizar uma


tarefa. Esta sequncia ordenada comumente conhecida como programa e indica ao
processador (CPU) qual ao ele deve executar.

Os programas esto vinculados ao conjunto de instrues especficas que cada


hardware (microcontrolador) pode realizar. Dessa forma, um programa desenvolvido para um
tipo de hardware especfico, no funcionar adequadamente em outro.

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.

H muitas ferramentas comercialmente disponveis para o desenvolvimento de


firmwares, dentre as quais podemos citar:
Assembler: responsvel pela converso de um algoritmo escrito em linguagem
assembly para uma linguagem especfica do processador (linguagem de
mquina);

Compilador: traduz uma linguagem de alto nvel (como por exemplo, linguagem
C) em linguagem assembly e ento em linguagem de mquina;

Emulador: simula a operao de um microcontrolador e usado frequentemente


durante o teste do firmware;

Programador: normalmente os algoritmos so desenvolvidos em um computador


usando a ferramenta assembler ou o compilador. O cdigo de mquina resultante
ento enviado para o microcontrolador usando-se um cabo serial (RS-232 ou
USB) e um circuito programador.

Normalmente todas as ferramentas de software citadas anteriormente encontram-se


agrupadas em um nico aplicativo fornecido pelo fabricante na forma de um Ambiente de
Desenvolvimento Integrado (Integrated Development Enviroment IDE). Como exemplos de
tais ambientes de desenvolvimento podemos citar o MPLAB IDE da Microchip e o Vision
IDE da Keil.

O processo de desenvolvimento do firmware pode ser representado pela Figura 1.6.


Ele fornece uma descrio genrica desde o processo de desenvolvimento desde cdigo fonte
em linguagem C at o download do cdigo de mquina em um microcontrolador genrico.

Figura 1.6 Processo de desenvolvimento de firmware.


O projetista escreve os arquivos em linguagem C que devem implementar o algoritmo
a ser executado pelo microcontrolador. Estes arquivos consistem do cdigo fonte (filename.c)
e dos arquivos de caberio (headerfiles.h). O cdigo fonte o responsvel pelo contedo
principal do algoritmo, enquanto os arquivos de cabecrio podem incluir funes escritas pelo
projetista, funes fornecidas junto com o compilador e tambm dados relacionados ao
processador presente no microcontrolador especfico.

Os arquivos em linguagem C so compilados usando um compilador fornecido para o


processador especfico. A sada do compilador ser o cdigo assembly, que
automaticamente encaminhado para a ferramenta Assembler. A sada do Assembler o
cdigo objeto (ou programa objeto) o qual unido aos arquivos de biblioteca fornecidos com
o compilador.

A sada completa o cdigo de mquina que dever ser carregada no


microcontrolador por meio de um circuito de programao.

1.3 ARQUITETURAS VON NEUMANN E HARVARD

A unidade central de processamento (CPU) dentro de um microcontrolador um


circuito sequencial complexo cuja principal funo executar programas que so
armazenados dentro de sua memria ROM (geralmente uma EEPROM Electrically
Erasable Programmable Read Only Memory).

A CPU sequencialmente busca um cdigo de instruo na memria, decodifica o


contedo da instruo e executa a instruo. Ela o principal centro de controle do
microcontrolador.

Dependendo da forma como as instrues e os dados so acessados na memria pela


CPU, podemos classificar a arquitetura de um sistema microprocessado em duas categorias
distintas: a arquitetura von Neumann e a arquitetura Harvard.

a) Arquitetura von Neumann:

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.

Figura 1.7 Arquitetura von Neumann.

A desvantagem deste tipo de arquitetura que a CPU continuamente forada a


esperar por dados que precisam ser transferidos para ou a partir da memria. Isso ocorre
porque geralmente a velocidade de processamento da CPU bem superior velocidade de
acesso memria.

Uma vantagem deste tipo de arquitetura a utilizao de um nico barramento


(conjunto de condutores paralelos).

b) Arquitetura Harvard:

Esta arquitetura possui barramentos e unidades de armazenamento distintos para


instrues e dados e surgiu da necessidade de por o microcontrolador para trabalhar mais
rpido.

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.

Figura 1.8 Arquitetura Harvard.

A principal desvantagem desta arquitetura a necessidade de mais de um barramento.

1.4 ARQUITETURAS CISC E RISC

H dois tipos bsicos de arquiteturas relacionadas ao conjunto de instrues:


arquitetura CISC (Complex Instruction Set Computer Computador com um Conjunto
Complexo de Instrues) e arquitetura RISC (Reduced Instruction Set Computer
Computador com um Conjunto Reduzido de Instrues).

a) Arquitetura CISC:

Processadores com esta arquitetura so capazes de executar centenas de instrues


complexas diferentes sendo, assim, extremamente versteis. Eles possuem uma
microprogramao, ou seja, um conjunto de cdigos de instrues que so gravados no
prprio processador, permitindo-lhe receber as instrues dos programas e execut-las,
utilizando as instrues contidas em sua microprogramao. Explicando de outra maneira,
seria como quebrar as instrues, j em baixo nvel, em diversas instrues mais prximas do
hardware (as instrues contidas no microcdigo do processador).

Uma caractersticas marcante desta arquitetura o conjunto grande e complexo de


instrues, o que facilita a programao, pois uma nica instruo faz com que o sistema
realize um conjunto de instrues contidas na microprogramao. Entretanto, esta
microprogramao faz com que a arquitetura das CPUs CISC seja mais complexa.
Esta arquitetura apresenta como desvantagem a impossibilidade de se alterar alguma
instruo composta para melhorar o desempenho.

b) Arquitetura RISC:

As CPUs com arquitetura RISC possuem um conjunto simples e reduzido de


instrues que so executadas diretamente pelo hardware, sem necessidade de microcdigo.
Isto torna a arquitetura das CPUs RISC mais simples, mas em contrapartida dificulta a
programao por parte do projetista que tem que escrever mais linhas de cdigo para realizar
uma determinada tarefa.

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.

1.5 TIPOS DE MEMRIA

Memrias so dispositivos fsicos usados para armazenar programas (sequncias de


instrues) ou dados (informaes) de forma temporria ou permanente para uso em um
computador ou outro dispositivo eletrnico.

H dois tipos principais de memria: as volteis e as no volteis. As volteis so


caracterizadas pelas memrias de acesso aleatrio (RAM), enquanto as no volteis so
representadas pelas memrias somente de leitura (ROM).

Os principais tipos de memria ROM so:

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;

EEPROM (Electrically Erasable Programmable ROM): baseada em uma


estrutura similar a EPROM, mas permite que seu contedo seja eletricamente
apagado e, ento eletricamente reescrito, tal que no h a necessidade de
remoo deste tipo de memria do computador ou de outro dispositivo
eletrnico. O representante mais comum dete tipo de memria a memria flash
(pen drive).

As memrias ROM so geralmente utilizadas para armazenar instrues que devero


ser executadas por um microprocessador.

J os dois principais tipos de memria RAM so:

SRAM (Static RAM) ou RAM esttica: neste tipo de memria os bits so


armazenados usando circuitos lgicos conhecidos como flips-flops. Esta forma
de memria mais cara de produzir, mas normalmente mais rpida e necessita
de menos energia que o outro tipo de memria. A memria SRAM
frequentemente usada como memria cache para as CPUs. Este tipo de
memria chamada de esttica, pois no necessita de ciclos peridicos de
refresh, ou seja, os dados permanecem armazenados enquanto a alimentao
eltrica continuar sendo fornecida ao sistema;

DRAM (Dynamic RAM) ou RAM dinmica: neste tipo de memria os bits so


armazenados usando um par de transitor e capacitor, o qual constitue uma clula
de memria. O capacitor armazena uma carga positiva ou nula (bits 1 ou 0,
respectivamente), e o transistor atua como uma chave, permitindo que o circuito
de controle leia a carga armazenada no capacitor ou modifique o seu valor.
Essa memria mais barata de produzir, o que permite a ela alcanar uma alta
capacidade. Este tipo de memria chamada de dinmica, pois ela necessita de
ciclos peridicos de refresh, uma vez que a carga no capacitor eventualmente
diminui com o tempo. Os dados so perdidos quando a alimentao eltrica for
removida do sistema.

Este tipo de memria normalmente utilizado como memria principal nos


computadores, notebooks, bem como em alguns consoles de vdeo game (PlayStation3, Xbox
360e Wii).
2. MICROCONTROLADORES

Microcontroladores e microprocessadores apresentam algumas similaridades entre si.


Por exemplo, ambos tm uma CPU interna responsvel pela execuo das instrues gravadas
na memria de programa (ROM). Portanto, para compreender como um microcontrolador
funciona, vamos primeiramente entender o funcionamento de um microprocessador.

Podemos associar o funcionamento de um microprocessador a um cozinheiro que


pretende confeccionar um bolo de chocolate, baseado em informaes impressas em um livro
de receitas.

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.

Se pudssemos associar este cenrio com o funcionamento do microprocessador:

O cozinheiro seria o prprio microprocessador;

O livro de receitas seria a memria ROM;

A receita do bolo de chocolate seria o conjunto de intrues (firmware)


armazenado na ROM;

A folha de rascunho para os clculos seria a memria RAM.

O cozinheiro obedece ao que est escrito no livro de receitas, que a ROM.

O material necessrio para o preparo do bolo, o cozinheiro, o livro de receitas e a folha


de rascunho constituem o hardware do sistema. O que est escrito no livro de receitas e na
folha de rascunho fazem parte do software do sistema.
Uma caracterstica do microprocessador que ele capaz de reconhecer somente
intrues especficas. Desse modo, se voc quiser que ele realize alguma tarefa, voc dever
estudar e compreender precisamente a sua linguagem e limitar-se a ela para fazer o hardware
trabalhar. Esta linguagem o ASSEMBLY da mquina. Na Figura 2.1 est representada uma
comparao hipottica entre o microprocessador e suas atividades e o cozinheiro e suas
atividades.

Figura 2.1 Comparao entre a estrutura de confeco de um bolo e o trabalho de um


microprocessaor.

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

Um microprocessador um dispositivo eletrnico que pode ser programado para


executar tarefas especficas. Estas tarefas so armazenadas na memria ROM, na forma de
instrues, as quais devem ser escritas em linguagem especfica compatvel com a linguagem
do microprocessador. A execuo destas instrues normalmente requer o uso de uma
memria de dados (memria RAM) para armazenar temporariamente as informaes de
processamento.

O projetista o responsvel pelo desenvolvimento das instrues (firmware) que sero


armazenadas na memria ROM. Para cumprir tal objetivo o projetista deve conhecer
perfeitamente a estrutura fsica e o conjunto de instrues que o microprocessador possui. A
linguagem geralmente utilizada para a programao a linguagem assembler, uma linguagem
mais prxima da linguagem de mquina, e que normalmente executada mais eficientemente
que cdigos produzidos por outras linguagens de alto nvel.

2.2 MICROPROCESSADOR: ARQUITETURA BSICA

Na Figura 2.2 est ilustrada a arquitetura bsica de um microprocessador, com a CPU


e seus elementos bsicos associados: RAM, ROM, perifricos e fonte de alimentao.

Figura 2.2 Arquitetura bsica do microprocessador.


Na arquitetura bsica da Figura 2.2 pode-se observar alguns subsistemas e vias de
conexo comuns maioria dos sistemas microprocessados, dentre os quais podemos
sumarizar:

Barramento de endereos: um conjunto de condutores que permite a conexo


entre a CPU e as memrias e perifricos do sistema. Atravs dele a CPU pode
selecionar qual posio de memria ou qual perifrico ela deseja acessar;

Barramento de controle: um conjunto de condutores usado para carregar os


sinais de controle do sistema. Estes sinais de controle so usados pela CPU para
enviar comandos para os outros elementos do sistema ou receber informaes
deles. Este tipo de barramento permite, por exemplo, que a CPU acesse durante
um certo tempo a ROM e no a RAM, uma vez que ambas compartilham o
mesmo barramento de endereos e de dados. Ou seja, enviando um sinal de
controle especfico por meio deste barramento, faz com que a RAM seja
desabilitada (desconectada do circuito), enquanto a CPU acessa a memria
ROM;

Barramento de dados: um conjunto de condutores usados para transferir dados


entre os subsistemas;

Barramento de I/O: conjunto de condutores que permitem abrir a comunicao


com o mundo exterior, de modo a trocar informaes com ele. Tal mundo
exterior pode ser qualquer elemento eletroeletrnico sensvel ao mundo fsico ou
que nele atue. Como exemplo de tais elementos podemos citar: teclados,
displays, impressoras, modens, motores, lmpadas, etc;

CPU: um circuito sequencial complexo cuja principal funo executar


programas que esto armazenados na memria ROM. Ela tem competncia para
acionar e se comunicar com os outros elementos do sistema, por meio dos
barramentos citados anteriormente, s que sempre seguindo ou obedecendo s
diretivas gravadas na ROM;

Oscilador: o circuito eletrnico que gera o marcapasso da CPU. Ele permite


que a CPU execute suas instrues de maneira sincronizada e com velocidade
predeterminada;
Reset: circuito eletrnico que faz com que a CPU inicie suas rotinas internas e
tambm realize a primeira leitura de instruo no endereo 0000h (primeira
posio/endereo da memria ROM);

Interrupes: so pinos de acesso externo que permitem interromper o


microprocessador, que ento suspende temporariamente sua operao normal e
executa aes especficas da interrupo solicitada. Estas interrupes esto
geralmente associadas a eventos que exigem ateno imediata por parte da CPU.

Alimentao eltrica (CC): o circuito eletrnico responsvel pelo fornecimento


adequado de energia aos elementos do sistema microprocessado;

Memria ROM: a memria responsvel pelo armazenamento das instrues


que sero executadas pelo microprocessador. Ela est conectada aos barramentos
de endereos (indicam o endereo que dever ser lido), de controle (permite
habilitar/desabilitar a memria) e de dados (permite a leitura das intrues
armazenadas). Essa memria somente para a leitura, conforme indicado pela
seta unidirecional que conecta esta memria ao barramento de dados;

Memria RAM: a memria voltil do sistema, que usada para armazenar as


variveis de processamento da CPU. Por meio do barramento de endereos
fornecida a posio de memria que dever ser lida ou escrita. A direo do
acesso (leitura ou escrita) determinada pelo barramento de controle, alm das
funes de habilitar ou desabilitar a memria. O barramento de dados carrega as
informaes que devero ser lidas ou escritas pela CPU;

Circuitos de interface: so responsveis pela conexo fsica com os dispositivos


externos.

2.3 FUNCIONAMENTO DA CPU

A unidade central de processamento (CPU) um circuito sequencial complexo cuja


funo principal executar programas que esto armazenados na memria ROM.

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.

Nota-se na Figura 2.3 alguns elementos que fazem parte da CPU:

Registradores: so equivalentes a uma memria RAM, s que interna a CPU.


Eles servem de armazenamento temporrio de informaes de utilidade para a
CPU. Existem registradores de uso especfico e registradores de uso geral. Um
exemplo de registrador de uso especfico um que imagem de uma porta de
I/O (Entrada/Sada), em que o sinal presente na porta pode ser lido
diretamente do registrador, ou seja, o contedo do registrador reflexo do que
h na entrada fsica desta porta. J os registradores de uso geral podem ser
usados para quaisquer fins dentro do processo de execuo de uma instruo;

Contador de programa (Program Counter PC): o indicador de endereo de


memria externa. Ele serve para indicar a prxima intruo que dever ser lida
pelo microprocessador, para que ele saiba onde estava e para onde deve ir, ou
seja, ele faz referncia ao prximo endereo de memria que carrega a nova
instruo a ser lida.

Registrador de instruo (Instruction Register IR): o local para onde se dirige


o cdigo da instruo que foi retirada da memria ROM durante o ciclo de busca
da instruo da memria. Este registrado necessrio para que, depois do ciclo
de busca o decodificador possa decodificar a instruo e envi-la unidade
lgica e aritmtica (Arithmetic Logic Unit ALU) para ser executada.

Unidade de decodificao da instruo (Instruction Decoder): o local em que a


instruo decodificada e tambm so gerados os controles, que junto com a
unidade de controle, permitem executar a instruo na ALU.

Unidade lgica e aritmtica (Arithmetic Logic Unity ALU): onde so


realizadas as operaes de: lgica, aritmtica e deciso/comparao.

Acumulador: o registrador principal e usado por muitas instrues;

Unidade de controle: responsvel por gerar todos os sinais que controlam as


operaes da CPU.

O funcionamento da CPU pode ser melhor compreendido com o seguinte exemplo: o


microprocessador deve ler uma instruo da ROM. Para realizar tal tarefa os seguintes passos
devem ser executados:

1. O endereo do PC posto na via de endereos (endereo da prxima


instruo a ser lida);

2. O sinal de controle da ROM ativado;

3. A instruo lida da ROM, mais especificamente na posio de memria


fornecida pelo PC, e lida na via de dados. Estes trs primeiros passos
compem o ciclo de busca;

4. A instruo armazenada no registrador de instruo;

5. O PC incrementado para ler a prxima instruo;

6. Inicia-se o ciclo de execuo interna da instruo, a qual primeiramente


decodificada pela unidade de decodificao e executada pela ALU. A
unidade de controle e os registradores auxiliam nesta etapa.
2.4 CONCEITO DE MICROCONTROLADOR

Pode-se dizer que o microcontrolador um pequeno computador em uma nica


pastilha de circuito integrado. Desse modo ele possui CPU, memria, e outros circuitos
internos como temporizadores, contadores, geradores PWM, alm de portas de entrada/sada e
circuitos de comunicao serial em um s chip.

Desse modo, a diferena bsica entre um microprocessador e um microcontrolador


que no microprocessador a memria e os outros elementos necessitam ser adicionados
externamente para tornar o conjunto (microprocessador e dispositivos) funcional, enquanto
que o microcontrolador j engloba microprocessador (CPU) e demais dispositivos em um
nico circuito integrado.

O microcontrolador pode ser considerado um subproduto do desenvolvimento do


microprocessador. Ele apresenta as mesmas tcnicas de fabricao e os mesmos conceitos de
programao. Entretanto, os microcontroladores no so to conhecidos como os
microprocessadores. Isto se deve, em parte ao grande investimento em propaganda realizado
pelos fabricantes dos microprocessadores, como a Intel e a AMD.

Este desconhecimento nos leva a erroneamente a imaginar que h mais


microprocessados sendo fabricados do que microcontroladores. Para se ter uma idia do
voleume de produo entre destes dois produtos similares vamos analisar o mercado em 2008.
Em tal ano foram produzidas cerca de 10 bilhes de CPUs, das quais somente 2% foram
destinadas ao uso em computadores e notebooks, todo o resto foi aplicado em sistemas
embarcados.

Uma casa tpica em um pas desenvolvido provavelmente possui at quatro


microprocessadores, mas pode possuir dezenas de microcontroladores. Um tpico automvel
possui 30 ou mais microcontroladores. Eles tambm podem ser encontrados em muitos
dispositivos eltricos como mquinas de lavar, fornos microondas e telefones.

No mercado dos microcontroladores h uma vasta gama de opes indo desde os


menores, com caractersticas limitadas e baseados em processadores de 4 bits, at os mais
complexos baseados em processadores de 32 bist de alta velocidade. O desafio escolher a
melhor opo para um projeto especfico.
2.5 MICROCONTROLADOR: ARQUITETURA GENRICA

Para entender melhor como um microcontrolador funciona, precisamos primeiramente


estudar seu hardware interno, tambm chamado de arquitetura do dispositivo. Na Figura 2.4
est representada a arquitetura bsica de um microcontrolador genrico.

Figura 2.4 Diagrama de blocos de um microcontrolador genrico.

A maioria dos microcontroladores so equipados com os subsistemas mostrados na


Figura 2.4. As portas so usadas para fornecer acesso ao mundo externo ao microcontrolador.
Tipicamente as portas so bidirecionais e tambm tm funes alternativas como converso
analgica digital, comunicao serial, sinal PWM, entre outras. Os microcontroladores so
tambm equipados com diferentes componentes de memria. A operao normal do
microcontrolador pode ser interrompida por um evento externo, usando pinos de interrupo.
Isto permite ao microcontrolador, responder a eventos de alta prioridade. O microcontrolador
programado por meio de um circuito de programao conectado ao computador. A base de
tempo do microcontrolador geralmente fornecida por um cristal de quartzo.

2.5.1 Conjunto de registradores:

Os microcontroladores possuem um conjunto de registradores, os quais constituem a


interface entre o usurio e os diferentes subsitemas que compem o chip. Cada registrador
consiste de uma sequncia de flip-flops.

Flip-flops so circuitos lgicos (combinao de portas lgicas) usados para armazenar


valores lgicos uns e zeros. Cada flip-flop pode armazenar somente um valor (1 ou 0).

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.

Normalmente todos os registradores do microcontrolador esto associados a algum


subsistema especfico. Dessa forma, para configurar um determinado subsistema, o projetista
deve determinar os valores apropriados de cada bit dos registradores relacionados este
subsistema. A funo de cada registrador e cada bit contido no registrador so definidas na
documentao do microcontrolador, a qual fornecida pelo fabricante.

Na Figura 2.5 esto ilustrados alguns registradores encontrados no microcontrolador


8051.

O acumulador um registrador utilizado como operando em vrias instrues do


microcontrolador. tambm onde fica armazenado o resultado de vrias operaes realizadas.
Exemplos de algumas instrues que usam este registrador:

add A,Rn: soma o contedo do registrador Rn ao contedo do acumulador. O


resultado fica no acumulador;

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.

O registrador P0 espelha a situao atual dos pinos fsicos da porta P0 do


microcontrolador, ou seja, um valor lgico 1 em P0.0 indica uma tenso presente no pino de
mesma designao. Exemplos de algumas instrues que usam este registrador:

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).

O registrador de interrupo IE (Interrupt Enable) usado para habilitar as


interrupes desejadas, ou seja, ele permite que a informao de interrupo chegue ou no ao
seu destino. Exemplo da aplicao deste registrador:
mov IE,#81h: move o valor 81h para o registrado IE. Isto faz com que os
campos EA e EX0 apresentem valor lgico 1, habilitando portanto a
interrupo externa INT0. Lembre que 81h = (10000001)2.

importante mencionar que os compiladores fornecem um conjunto de arquivos de


cabeario (header files), os quais fornecem a ligao entre o nome especfico do registrador,
juntamente com seus campos, e a sua localizao (endereo) dentro do mapa de memria do
sistema. Desse modo, as intrues podem ser escritas com os prprios nomes dos
registradores, ao invs de se utilizar os endereos fsicos de tais registradores.

2.5.2 Estrutura de barramento

Diferentes subsistemas dentro do microcontrolador so conectados por meio de


diferentes barramentos. Um barramento uma coleo de condutores paralelos que possuem
uma funo similar. Os barramentos presentes na maioria dos microcontroladores so:
barramento de endereos, barramento de dados e barramento de controle.

Barramento de Endereos

O barramento de endereos fornece a conexo entre a unidade central de


processamento (CPU) e os elementos de memria presentes no microcontrolador. O nmero
de condutores deste barramento est relacionado com a quantidade de posies de memria
que podem ser endereadas pelo microcontrolador. O primeiro endereo do subsitema de
memria corresponder todas as linhas de endereo iguais ao valor lgico zero, enquanto o
endereo final corresponder todas as linhas com o valor lgico um. O nmero de posies
endereveis de memria pode ser determinado por

2linhas de endereo posies endereveis de memria.

Por exemplo, um microcontrolador que possui 16 bits de endereos capaz de


enderear 65 536 (64 kB) posies de memria. O primeiro endereo da memria (0000)16
enquanto o ltimo ser (FFFF)16.

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).

Vale lembrar que nem sempre um microcontrolador com um barramento de dados


maior a melhor opo. A escolha deve sempre estar relacionada com as necessidades reais
do sistema ao qual este microcontrolador se destina. O projetista deve sempre escolher a
opo mais econmica e que satisfaa aos requisitos do projeto. Por exemplo, um
microcontrolador de 4 bits pode ser a escolha ideal para executar um algoritmo de controle
para irrigar um gramado, enquanto que para gerenciar os recursos de um celular moderno, um
microcontrolador de 32 bits a melhor opo.

Barramento de Controle

Os microcontroladores possuem condutores metlicos usados para enviar e receber


uma coleo de sinais de controle. Eles so chamados de barramento de controle e carregam
os sinais de controle para os diferentes subsistemas que fazem parte do microcontrolador. A
maioria dos sinais de controle so internos ao microcontrolador, entretanto, h alguns sinais
usados pelas portas do microcontrolador para conectar alguns elementos externos ao chip.

Os sinais de controle so normalmente distribudos pela CPU para garantir que as


instrues sejam adequadamente executadas.

2.5.3 Memrias

Conforme mencionado anteriormente, o nmero de posies unicamente endereveis


em um microcontrolador determinado pela largura do barramento de endereos. Essa
quantidade de posies normalmente contm diferentes tipo de memria tais como: RAM
esttica (SRAM), EEPROM e flash EEPROM. Vale ressaltar que esses elementos de memria
encontram-se localizados dentro do chip do microcontrolador e no externos a ele.

Para manter as informaes sobre as posies de memria em uso e em qual tipo de


memria, uma ferramenta visiual chamada mapa de memria utilizada. O mapa de memria
fornece o tamanho, em bytes, de cada memria e seus endereos de incio e fim. Um exemplo
de mapa de memria fornecido na Figura 2.6. Perceba que h pores de memria que no
esto em uso. Tais espaos livres so destinados expanso do sistema.
Figura 2.6 Mapa de memria mostrando os endereos disponveis e o tipo de memria presente.

Os tipos de memria ilustrados na Figura 2.6 so comuns maioria dos


micrcontroladores:

RAM: memria voltil do sistema usada durante a execuo de um programa


para armazenar variveis globais, para alocao dinmica de variveis e fornecer
espao para a pilha (elemento que ser comentado mais adiante);

EEPROM: tipo de memria usada para armazenar permanentemente as variveis


durante a execuo de um programa. Esta memria til para o armazenamento
de dados que devem ser mantidos durante uma falha de energia, mas podem ser
modificados periodicamente. Exemplos de aplicaes deste tipo de memria
podem ser geralmente econtrados em sistemas de trava eletrnica (carros que s
ligam mediante o fornecimento de um password, portes automticos, etc.);

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

J foi comentado anteriormente que a CPU um circuito sequencial complexo que


reage s instrues (firmware) em uma sequncia de busca-decodificao-execuo. A
velocidade na qual as sequncias ocorrem controlada por uma base de tempo externa 1. Tal
base de tempo geralmente fornecida por um cristal de quartzo, um oscilador programvel ou
um resoador cermico. Alguns microcontroladores so projetados para operarem em uma
frequncia fixa, como por exemplo 8 MHz, enquanto outros so projetados para trabalhar em
uma ampla faixa de frequncias. A maioria dos microcontroladores so empregados para
controlar um sistema mecnico relativamente lento, sendo necessrio portanto uma base de
tempo mais lenta.

Subsistemas de tempo

A maioria dos microcontroladores possuem subsistemas que manipulam dados e sinais


relacionados com a varivel tempo. Estes subsistemas so designados subsistemas de tempo.

Para entender melhor as caractersticas deste subsistema, iremos revisar a terminologia


comum associada aos sinais relacionados com o tempo:

Frequncia: o nmero de ciclos por segundo completado por um sinal


repetitivo (sinal peridico). Esta grandeza expressa em Hertz (Hz);

Perodo: o intervalo de tempo, em segundos, necessrio para um sinal


peridico completar um nico ciclo. O perodo pode ser expresso como o
inverso da frequncia (T = 1/f);

Ciclo de trabalho (Duty Cycle): o percentual de tempo no qual o sinal est


ativo (nvel alto) durante um nico ciclo. Na Figura 2.7 esto apresentadas
algumas relaes entre o ciclo de trabalho e outras variveis associadas com o
tempo;

Modulao por largura de pulso (PWM): tcnica frequentemente utilizada para


controlar a velocidade de motores, na qual o ciclo de trabalho usado para
alterar o valor efetivo de tenso CC. Nesta tcnica, quanto maior for a relao
entre o intervalo de tempo no qual o sinal est ativo e o perodo total do sinal,

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.

Figura 2.7 Aspectos dos sinais peridicos.

As principais funes destes subsistemas de tempo so:

Medir os parmetros dos sinais de entrada, tais como perodo e ciclo de trabalho;

Gerar sinais peridicos de sada;

Contar pulsos presentes em um sinal de entrada;

Gerar sinais PWM.

2.5.5 Portas de entrada/sada

Os microcontroladores so equipados com uma srie de portas, responsveis pelo


acesso ao mundo externo fora do chip. Estas portas so geralmente organizadas como portas
de entrada/sada de oito bits conforme mostrado na Figura 2.4. Normalmente os
microcontroladores possuem registradores usados para definir a direo de acesso (entrada ou
sada) em cada um dos pinos da porta.

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.

Na Figura 1.5 est ilustrado o diagrama do microcontrolador PIC16F628A. Ele possui


duas portas de oito bits: a Porta A e a Porta B. Os pinos de acesso porta A so: RA0, RA1,
RA2, RA3, RA4, RA5, RA6 e RA7. J os pinos de acesso porta B so: RB0, RB1, RB2,
RB3, RB4, RB5, RB6 e RB7.

Figura 2.8 Microcontrolador PIC 16F628A.

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

Muitos microcontroladores so equipados com subsistemas para a converso


analgico-digital. Tais subsistemas convertem sinais analgicos (sinais que variam
continuamente com o tempo) provenientes do mundo exterior ao microcontrolador em uma
representao binria que possa ser usada pelo microcontrolador. O sinal digital convertido
diretamente proporcional magnitude do sinal analgico.

H uma variedade de microcontroladores com conversores A/D de resoluo variando


entre 6 a 24 bits. Quanto maior a quantidade de bits, maior a resoluo do conversor. Pode-se
associar a quantidade de bits de um conversor com a quantidade de pixels de uma TV (ou
outro aparelho de reproduo de imagens). Quanto maior for a quantidade de pixels, mais
detalhes das imagens podero ser reproduzidos. Da mesma maneira, quanto maior a
quantidade de bits, maiores detalhes dos sinais analgicos podero ser capturados pelo
conversor.

A principal aplicao dos conversores A/D est relacionada com o processamento de


sinais digitais, onde um sinal analgico deve ser processado, armazenado ou transportado em
formato digital. Como exemplo de dispositivos que usam conversores A/D podemos citar:
osciloscpios digitais, placas de captura de sinais de TV, etc.

2.5.7 Sistemas de comunicao

Basicamente as comunicaes entre dois subsistemas podem ser divididas em


comunicaes paralelas e seriais. Na comunicao paralela, mltiplos canais, fios condutores,
so utilizados para enviar e receber dados simultaneamente, enquanto que na comunicao
serial, um nico canal utilizado para enviar e receber dados, um de cada vez.

A maior vantagem da comunicao paralela sobre a comunicao serial a velocidade


de transferncia de dados (desde que a taxa de comunicao seja igual). Usando um nmero
maior de conexes paralelas, a mesma quantidade de dados pode ser enviada e recebida mais
rapidamente, proporcional ao nmero de conexes, do que por meio de uma nica conexo,
como a usada na comunicao serial. A desvantagem da comunicao paralela com relao
comunicao serial o comprimento do cabo usado na conexo. Os condutores paralelos
causam interferncia entre um e outro, piorando a qualidade da comunicao. Isto coloca um
limite para o comprimento da conexo paralela, geralmente bem menor que o da conexo
serial.

A comunicao paralela normalmente utilizada entre pequenas distncias, dentro e


fora do microcontrolador. Para longas distncias, a comunicao serial a mais indicada para
a transferncia de dados.

Na Figura 2.9 esto ilustrados os dois tipos de comunicao.

Figura 2.9 Diagramas de conexo paralela e serial.

Podemos citar como exemplos de comunicao paralela: os barramentos ATA, PCI


(Peripheral Component Interconnect) e FSB (Front Side Bus). J como exemplos de
comunicao serial: RS-232 (Recommended Standard 232), SPI (Serial Peripheral Interface),
USB (Universal Serial Bus), FireWire, Ethernet, Serial ATA, PCI Express, entre outras.
Comunicaes seriais

O principal desafio da comunicao serial manter o sincronismo entre transmissor e


receptor. H dois tipos diferentes de comunicaes seriais disponveis: a sncrona e a
assncrona.

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).

Na comunicao assncrona a transmisso de dados tem incio com um bit de start,


cujo valor lgico zero. Em seguida so enviados os bits de dados (normalmente 8 bits).
Por fim, um ou mais bits de stop, cujo valor lgico um, so enviados ao receptor. No lado
do receptor, a chegada de um sinal lgico zero indica que um novo caractere est sendo
enviado; os prximos oito bits representam o caractere; seguindo os bits de dados haver um
ou mais bits de valor lgico um usados para determinar o fim da transmisso de um
caractere. Na Figura 2.10 h um diagrama representando este tipo de comunicao.

J a comunicao serial sncrona usa um sinal de clock sincronizado para enviar e


receber cada bit. Alm dos dados, o transmissor deve enviar um sinal de clock para o receptor
de forma a garantir o sincronismo durante a transmisso. A desvantagem da comunicao
sncrona, comparada com a assncrona, a necessidade de sincronismo entre transmissor e
receptor, o que realizado por meio de um sinal de clock ligando um ao outro. Na Figura 2.10
um diagrama ilustra o esquema de comunicao sncrona. Os subsistemas que usam este tipo
de comunicao so normalmente referenciados como SPI (Serial Peripheral 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 simplex: modo de comunicao serial no qual a direo de transmisso


dos dados ocorre somente em um sentido de cada vez, ou seja, s possvel
transmitir ou receber dados num certo intervalo de tempo, nunca os dois ao
mesmo tempo;

Modo duplex: modo de comunicao serial que permite que os dados sejam
transmitidos e recebidos ao mesmo tempo;

BAUD: representa a quantidade de bits enviada ou recebida por segundo;

Cdigo ASCII (American Standard Code for Information Interchange): um


cdigo padro americano para troca de informaes, usado para codificar as
letras do alfabeto, nmeros, pontuao e caracteres de controle usando uma
representao de 7 bits;

Tempo de bit: tempo necessrio para transmitir ou receber um nico bit;

Mecanismos de Handshake

So tcnicas empregadas para garantir que a comunicao serial ocorra com um


mnimo de erros.

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.

Tabela 2.1 Esquema de codificao de paridade.


7 bits de dados 8 bits incluindo o bit de paridade
(nmero de bits 1) Paridade par Paridade mpar
0000000 (0) 00000000 10000000
1010001 (3) 11010001 01010001
1101001 (4) 01101001 11101001
1111111 (7) 11111111 01111111
2.5.8 Sistemas de Interrupo

Um programa consiste de um certo nmero de passos que so executados em


sequncia. A execuo normal de um programa segue os passos de busca, decodificao e
execuo, conforme ilustrado na Figura 2.11. Em algumas situaes esta sequncia normal de
operao deve ser interrompida para dar resposta eventos de alta prioridade, dentro e fora do
microcontrolador.

Quando estes eventos de alta prioridade ocorrem, o microcontrolador deve


temporariamente suspender a operao normal e executar aes especficas do evento que
provocou a interrupo. Essa aes so realizadas por meio de um rotina de interrupo 3.
Uma vez que o evento de alta prioridade tenha sido servido (ou seja, a rotina de interrupo
tenha sido executada), o microcontrolador continua a processar o programa do ponto onde ele
havia sido interrompido. Para que o microcontrolador possa retornar e continuar a executar o
programa do ponto onde parou, uma pilha (stack) deve ser utilizada. Uma pilha um local de
armazenamento temporrio de dados reservado na memria RAM.

Figura 2.11 Diagrama de atendimento uma interrupo.

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.

H uma ampla variedade de interrupes disponveis em muitos microcontroladores.


Estas podem ser geradas por mal funcionamento de hardware ou software. Duas interrupes
muito teis so a interrupo em tempo real (Real Time Interrupt RTI) e a interrupo
externa (Interrupt Request IRQ).

A interrupo RTI permite uma interrupo peridica no fluxo do programa principal.


Isto pode ser til para atualizar o relgio de tempo real ou checar a condio de itens crticos
do sistema, como por exemplo o nvel de carga da bateria.

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.

2.6 CONJUNTO DE INSTRUES DO MICROCONTROLADOR

Um microprocessador/microcontrolador possui um grupo de instrues que o


fabricante criou para ele. Tal grupo geralmente composto por instrues do tipo:

Aritmticas (, , , ) ;

Lgicas (AND, OR, EXOR, operando com byte);

De transferncia de dados (MOV);


Booleanas (AND, OR, EXOR, operando com bit);

De ramificao (deciso e/ou desvio), exemplo: CJMP = compare e jump.

Cada instruo tem um smbolo que uma palavra que pode ser memorizada
facilmente. Este smbolo normalmente conhecido como mnemnico. Por exemplo:

dec A = decrementa o registrador A (A = A 1);

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.

Exemplo: observe o programa a seguir

mov A, #5
cjne A, #10, 1000
clear A
1000: mov B, #20

Neste programa, carrega-se inicialmente o registrador A com o valor 5 e em seguida


compara o seu contedo com o valor 10; se os valores forem iguais o programa executa a
prxima instruo que clear A; se por outro lado, os valores forem diferentes, o programa
desvia para o endereo 1000, onde a instruo mov B,#20 ser executada.

2.7 PRINCIPAIS FAMLIAS DE MICROCONTROLADORES

Atualmente h um grande nmero de fabricantes de microcontroladores, cada um


deles oferecendo uma lista variada de produtos, os quais devem ser escolhidos pelo projetista
de acordo com as necessidades do projeto. Dentre as possveis escolhas h algumas famlias
de microcontroladores que se destacam pela sua popularidade:
ARM

ARM (Advanced RISC Machine Mquina RISC Avanada) a arquitetura mais


utilizada atualmente em termos de quantidades produzidas. Ela usada em muitos
microcontroladores populares da Atmel, Texas Instruments, NXP e muitas outras. Quase
todos os telefones mveis, smart phones, ipads e muitos outros dispositivos portteis usam
um ncleo de processamento baseado em arquitetura ARM. Ele tem um poderoso conjunto de
instrues, baixo consumo de energia, oferece uma integrao fcil com outros elementos e
possui muitas ferramentas de desenvolvimento, o que facilita sua disseminao entre os
projetistas. Na Figura 2.12 h um exemplo de ncleo ARM usado em muitos dispositivos
eletrnicos.

Figura 2.12 Ncleo de processamento ARM da Conexant usado em muitos roteadores.

AVR

Esta uma das mais populares famlias de microcontroladores da Atmel. muito


popular entre hobistas e usado em muitos projetos desde simples controladores LED at
dispositivos de comunicao complexos. A arquitetura RISC oferece uma execuo rpida e
um baixo consumo de energia, enquanto as ferramentas de desenvolvimento gratuitas
proporcionam um enorme atrativo para os entusiastas de eletrnica. AVR o competidor
direto com os PICs da Microchip. Na Figura 2.13 h uma aplicao deste tipo de
micrcocontrolador AVR.

Figura 2.13 - Microcontrolador AVR Atmega328 da Atmel usado em uma placa Arduino.
PIC

Esta a principal famlia de microcontroladores da Microchip e possuem arquiteturas


RISC e Harvard. PICs esto disponveis tanto em pequenas unidades de 8 bits, com apenas
algumas pinos, quanto em poderosas unidades de 32 bits, com muitos mdulos perifricos e
pinos de entrada/sada. Assim como os AVRs este tipo de microcontrolador muito popular
entre hobistas e estusiastas de eletrnica. As razes de tamanha popularidade est em seu
relativo baixo custo, ampla disponibilidade de modelos, grande coleo de manuais e notas de
aplicao e a ampla disponibilidade de ferramentas de desenvolvimento de baixo custo ou
mesmo gratuitas. Na Figura 2.14 est ilustrada uma aplicao do microcontrolador PIC.

Figura 2.14 Projeto de uma campainha usando o PIC16F84.

8051

um microcontrolador de arquiteturas CISC e Harvard que foi desenvolvido pela Intel


em 1980 para uso em sistemas embarcados (calculadoras, relgios, brinquedos, etc.).
Excelentes microcontroladores, muitos cdigos-exemplo e ferramentas de desenvolvimento
de fcil manuseio contriburam para a popularidade desta famlia por muitos anos. O seu
ncleo de processamento ainda usado em muitos microcontroladores modernos da Silabs,
NXP, Atmel, Analog Devices e muitos outros. claro que a maioria dos novos projetos iro
provavelmente usar ARM ou outra arquitetura mais avanada, mas devido popularidade do
8051 no passado e disponibilidade de boas ferramentas de desenvolvimento, ele ainda
muito utilizado em muitas aplicaes atuais. Na Figura 2.15 est um exemplo de um
microcontrolador baseado na famlia 8051. Este tipo de microcontrolador (ADUC814)
muito utilizado em instituies de pesquisa para o desenvolvimento de sistemas de
processamento e aquisio de dados.

Figura 2.15 Microcontrolador ADUC814 usado em um prottipo para a aquisio de dados.

As famlias de microcontroladores apresentadas anteriormente so consideradas


populares devido ao baixo preo dos dispositivos e disponibilidade de boas ferramentas de
desenvolvimento acessveis grande maioria dos projetistas e estusiastas de eletrnica.
muito provvel que o primeiro contato de algum hobista ou projetista eletrnico comece por
um destes dispositivos, e que eles continuem a ser usados em projetos profissionais
posteriores.

Enquanto os microcontroladores PIC e AVR so bastante comuns entre os hobistas, o


microcontrolador ARM tem dominado a mente dos projetistas profissionais de sistemas
embarcados. Essa diferena explicada principalmente pelo fato de o ARM possuir uma
poderosa capacidade de processamento e um baixo consumo de energia, caractersticas
importantes para a maioria dos sistemas eletrnicos modernos.

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.

O hardware consiste de uma placa arduino com um microcontrolador AVR da Atmel e


componentes responsveis pelas funes de entrada/sada. Os arduinos oficiais4 tm usado os

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.

O hardware arduino programado usando uma linguagem similar C/C++, com


algumas simplificaes e modificaes, e um aplicativo IDE (Integrated Development
Environment Ambiente de Desenvolvimento Integrado), que inclui um editor de cdigo e
outros pacotes de software usados para a compilao e o download de programas (firmwares)
para o hardware. Este pacote de softwares de desenvolvimento pode ser baixado
gratuitamente no site oficial da marca juntamente com muitos cdigos-exemplo, que podem
ser facilmente adaptados para um projeto em particular.

Deve-se ressaltar tambm que no so apenas os pacotes de software e cdigos-


exemplo que esto disponveis para download, mas tambm os projetos de hardware da placa
arduino, ou seja, os arquivos (arquivos CAD) usados pelas ferramentas para confeco de
placas de circuito impresso, tais como: EAGLE, Proteus, Altium, etc. Tais projetos tambm
podem ser adaptados de acordo com as suas necessidades individuais de cada projeto. Desse
modo voc tem a liberdade de comprar uma placa arduino pr-fabricada ou ento
desenvolver e construir a placa com suas prprias mos.

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.

2.9 PRINCIPAIS ENCAPSULAMENTOS PARA CIRCUITOS INTEGRADOS

O encapsulamento uma das ltimas etapas do processo de fabricao dos circuitos


integrados (CIs), e consiste em empacotar o pequeno circuito eletrnico, de forma a
impedir que elementos externos, tais como sujeira, umidade, choques mecnicos, etc., possam
danific-lo. Ele tambm tem a funo de facilitar o manuseio por parte do usurio no
momento de coloc-lo numa placa de circuito impresso.

Na Figura 2.18 est representada graficamente um pouco sobre a histria e as


tendncias para o encapsulamento de circuitos integrados.

Figura 2.18 Histria e tendncias para o encapsulamento de CIs.


A tendncia na diminuio do tamanho dos circuitos integrados movimentada pela
demanda contnua de produtos menores, mais leves e mais baratos, enquanto a tendncia no
aumento da quantidade de pinos impulsionada pela necessidade de produtos que realizem
funes cada vez mais diversificadas e complexas.

Nas sees seguintes sero apresentados alguns dos pricipais tipos de encapsulamentos
encontrados comercialmente..

DIP (dual in-line package)

Consiste de um encapsulamento retangular composto de duas linhas paralelas de pinos


para conexo eltrica. Os pinos so todos paralelos e possuem, cada um, comprimento
suficiente para atravessar os buracos de um placa de circuito impresso e serem soldados do
outro lado. Alguns deles so encapsulados usando um material cermico, enquanto a imensa
maioria (acima de 95%) encapsulada usando um material plstico5. Na Figura 2.19 esto
representados dois cicuitos integrados do tipo DIP.

Figura 2.19 Encapsulametos DIP cermico e plstico, respectivamente.

Estes CIs so normalmente referenciados como DIPn, onde n a quantidade de pinos.


Assim um circuito integrado com 14 pinos chamado DIP14.

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.

Figura 2.20 Encapsulamentos e soquetes DIP.

Dentro do encapsulamento, a metade de baixo do DIP contem os pinos e o centro um


espao retangular no qual o die (circuito eletrnico propriamente dito) deve ser fixado. Fios
ultrafinos so usados para fazer a conexo entre os pinos e os microcircuitos do die. Na Figura
2.21 pode-se visualizar a vista lateral de um CI tipo DIP e na Figura 2.22 pode-se visualizar o
exemplo de um die.

Figura 2.21 Vista lateral de um circuito integrado DIP.


Figura 2.22 Ilustrao de um die um processador.

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.

Figura 2.23 Numerao de CIs do tipo DIP.

SOP (small outline package)

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.

Outras verses mais populares deste tipo de encapsulamento so o SOIC (Small


Outline IC), que se apresenta em dimenses menores que seu antecessor SOP, e o TSOP
(Thin Small Outline Package), que se apresenta verses mais finas. Na Figura 2.24 esto
ilustrados alguns exemplos destes tipos de encapsulamento.

Figura 2.24 Encapsulamentos do tipo SOIC e TSOP.

Estes tipos de encapsulamento so frequentemente usados na fabricao de memrias


RAM e Flash, em virtude da alta quantidade de pinos e pequeno volume ocupado.

A numerao dos pinos deste tipo de encapsulamento segue o mesmo princpio


daquela adotada no CI tipo DIP.

Este tipo de encapsulamento representou uma mudana de paradigma na tecnologia de


montagem de placas de circuito impresso e abriu as portas para o surgimento dos SMD
(Surface Mount Devices), dispositivos eletrnicos que so soldados sobre a superfcie das
placas.

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 aumento ainda maior na quantidade de entradas/sadas resultou na introduo do


encapsulamento QFP, que possui terminais que se estendem de cada um dos quatro lados de
sua estrutura. Ele tambm s permite que o CI seja soldado sobre a superfcie da placa de
circuito impresso, sem o uso de soquetes ou furos. Este tipo de encapsulamento est
disponvel em cermica e plstico7. Na Figura 2.25 esto ilustrados dois exemplos deste tipo
de encapsulamento.

Figura 2.25 Variantes do encapsulamento QFP: SQFP e TQFP, respectivamente.

Outras variantes frequentemente encontradas deste tipo de encapsulamento so: SQFP


(Small Quad Flat Package), que se apresentam em dimenses menores, e TQFP (Thin Quad
Flat Package), que so mais finos que o QFP.

Este tipo de encapsulamento pode ser encontrado em algumas memrias Flash e em


outros componentes programveis, como microcontroladores.

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.

QFN (Quad Flap No leads)

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.

Figura 2.26 Encapsulamento do tipo QFN.

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.

Entretanto, este tipo de encapsulamento oferece maiores dificuldades na execuo de


trabalhos realizados com ferros de solda, uma vez que no h pinos para acesso externo,
somente pads abaixo do corpo do circuito integrado. Este tipo de encapsulamento exige
portanto, uma estao de retrabalho8 para execuo de trabalhos de soldagem de dessoldagem
dos CIs.

O encapsulamento QFN pode ser visto mais facilmente em alguns microcontroladores


e em chips de BIOS de algumas placas me.

PGA (Pin Grid Array) e BGA (Ball Grid Array)

O uso de terminais somente na periferia do corpo do circuito integrado (como o que


ocorre com os CIs DIP, SOP e QFP) significava que quanto maior fosse a quantidade de
entradas/sadas, maior deveria ser o tamanho do corpo do CI. Para superar este empecilho
surgiram os conhecidos PGA e BGA.

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.

Figura 2.27 Encapsulamento PGA de um processador Intel.

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.

J o encapsulamento BGA consiste de uma matriz de bolas de solda localizadas na


parte inferior do corpo do circuito integrado, substituindo portanto os tradicionais pinos. Isto
permitiu uma conexo na superfcie da placa sem a necessidade de furos. O CI posicionado
sobre as trilhas de cobre, que devem possuir o mesmo formato da matriz de bolas de solda.
Em seguida, o conjunto aquecido at que as esferas de solda derretam, fazendo com que o
conjunto fique preso placa aps o resfriamento e endurecimento de tais esferas de solda. Na
Figura 2.28 est ilustrado um exemplo deste tipo de encapsulamento.

Figura 2.28 Exemplo de encapsulamento BGA.


Dentre as variantes deste tipo de encapsulamento podemos citar: PBGA (Plastic Ball
Grid Array) com encapsulamento de material plstico e CBGA (Ceramic Ball Grid Array)
com encapsulamento de material cermico.

Estes dois tipos de encapsulamento se tornaram padro em circuitos integrados com


grande nmero de terminais (tais como em alguns processadores) pois tinham a vantagem de
acomodar uma grande quantidade pinos numa rea pequena, o que resultava num menor
espao ocupado na placa de circuito impresso.

LGA (Land Grid Array)

LGA um tipo de encapsulamento de circuito integrado surgido mais recentemente e


que no possui pinos em seu corpo. Em seu lugar h um conjunto de pads (geralmente de
ouro) cobrindo o lado inferior do chip. O CI pode ser soldado diretamente na placa ou
conectado eletricamente por meio de um soquete, sendo esta ltima opo a mais comum. Na
Figura 2.29 esto ilustrados exemplos de encapsulamento LGA.

Figura 2.29 Encapsulamentos LGA 775 e LGA 1366, respectivamente.

Os soquetes ganharam uso generalizado aps a Intel introduzir a plataforma LGA em


seus projetos. Os tipos mais comuns de soquetes LGA so: o LGA 775 (soquete T), usado em
alguns processadores, tais como o Pentium 4, o Xeon e o Core 2; o LGA 1156 (soquete H),
usado nos primeiros processadores das sries Core i3, i5 e i7; e o LGA 1366 (soquete B),
usado nos processadores mais recentes da srie Core i7. A numerao indicada no nome do
soquete refere-se quantidade de pontos de contato eltrico entre o chip e a placa me, ou
seja, o LGA775 possui 775 pontos de contato. Na Figura 2.30 esto ilustrados alguns soquetes
LGA.
Figura 2.30 Soquetes LGA 775 e LGA 1366, respectivamente.

O encapsulamento LGA tem a vantagem de fornecer uma alta densidade de contatos


eltricos entre CI e placa e, alm disso, ele substituiu a localizao dos pinos, que passaram a
ser localizados na placa ao invs de no corpo do chip. Com isto, se algum pino danificado, a
placa me pode ser substituda ao invs do processador (para o caso de um encapsulamento
PGA). Esta alternativa normalmente mais vivel, uma vez que o preo de um processador
geralmente maior que o preo da placa me.
3. MICROCONTROLADOR PIC16F628A

Todos os microcontroladores PIC possuem arquitetura Harvard, o que significa que as


instrues (firmware) trafegam por um barramento exclusivo, enquanto os dados trafegam por
outro barramento. Dependedo do modelo do microcontrolador, o barramento de instrues
pode ter uma largura de 12, 14 e 16 bits. J o barramento de dados possui uma largura de 8
bits, na maioria dos casos, exceto para alguns microcontroladores de alto desempenho que
possuem um barramento de dados de 16 bits.

O PIC16F628A possui um barramento de dados de 8 bits e um barramento de


instrues de 14 bits. Esta arquitetura permite que, enquanto uma instruo executada, outra
pode ser buscada da memria, o que torna o processamento mais rpido.

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.

Eles encontram-se comumente disponveis em encapsulamentos de 18 pinos (DIP e


SOIC), de 20 pinos (SSOP) e de 28 pinos (QFN) conforme ilustrado na Figura 3.1.

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.

3.1 ARQUITETURA INTERNA

Nesta seo ser descrita brevemente a arquitetura interna do PIC16F628A. Maiores


detalhes sero fornecidos ao longo desta apostila.

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 figura acima possvel perceber a arquitetura harvard presente neste tipo de


microcontrolador: a unidade de memria Flash Program Memory, destinada ao firmware, est
separada das unidades de memria RAM File Registers e Data EEPROM, destinadas ao
conjunto de dados, e cada uma destas unidades est conectada ao restante do sistema por meio
de barramentos distintos: um barramento de instrues e um barramento de dados.

O barramento de instrues (Program Bus) conecta a memria de programa ao


registrador de instruo (Instruction Reg), um registrador que faz parte do ncleo da CPU e
armazena o cdigo da instruo que dever ser executada em seguida. Este barramento
destinado ao transporte dos cdigos relacionados s instrues gravadas na memria de
programa e tem uma largura de 14 bits.
J o barramento de dados (Data Bus) conecta as memrias de dados unidade lgica
aritmtica (ALU, em ingls) e a outros elementos do sistema. Este barramento responsvel
pelo transporte dos dados dentro do microcontrolador e possui uma largura de 8 bits.

Pode-se observar tambm a ULA diretamente ligada ao acumulador (registrador W) e


do lado direito est as portas com todos os seus pinos de E/S (entrada/sada). A ULA
responsvel pelas operaes lgicas e aritmticas entre os dados no registrador W e os dados
em qualquer outro registrador ou posio de memria.

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).

H dois tipos de memria de dados: uma memria de dados no voltil (EEPROM), na


qual os dados no so perdidos quando a alimentao removida e pode ser usada para
armazenar, senhas, valores de calibrao, etc.; e uma memria de dados voltil (RAM), na
qual os dados so perdidos quando a energia retirada e usada para armazenamento
temporrio durante a operao normal do microcontrolador.

Ao centro do diagrama temos o registrador de status (Status Reg), responsvel por


armazenar algumas informaes importantes sobre as operaes aritmticas da ULA, tais
como, valor negativo, valor nulo, entre outras.

Tambm se encontra ao centro do diagrama os circuitos internos de reset, osciladores,


Watchdog Timer, Power-up e Brown-out. Estes circuitos sero melhor detalhados ao longo
desta apostila.

3.2 O CICLO DE MQUINA

Conforme mencionado anteriormente, as instrues so executadas pela CPU de forma


sequencial e durante um certo intervalo de tempo. O ciclo de mquina justamente o
intervalo de tempo necessrio para que uma instruo seja buscada e executada (fetch and
execute, em ingls).
Nos microcontroladores PIC, o clock11 de entrada (pino RA7/OSC1/CLKIN)
internamente dividido por 4. Essa diviso gera 4 sinais de clock internos denominados Q1,
Q2, Q3 e Q4, cada um fornecendo sincronismo a determinados circuitos. Por exemplo,
durante o ciclo Q1 o contador de programa (Program Counter - PC) automaticamente
incrementado, enquanto durante o ciclo Q4 uma instruo buscada da memria de programa
e armazenada no registrador de instruo. Esta instruo ento decodificada e executada
durante os prximos 4 ciclos (de Q1 at Q4).

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.

Figura 3.3 Esquema dos ciclos de mquina.

11
Sinal que fornece o marcapasso necessrio para as operaes sequenciais de todo microcontrolador.
Figura 3.4 Esquema pipeline de execuo das instrues.

Percebe-se na figura acima que as instrues so buscadas em um ciclo de mquina e


executadas no prximo ciclo e enquanto uma instruo est sendo buscada a instruo anterior
est sendo executada. Esta caracterstica permite que em todo ciclo de mquina haja uma
instruo sendo executada. A exceo ocorre quando h uma intruo de desvio (como a
instruo 3). Durante a execuo da instruo 3 (instruo de desvio) a instruo 4 buscada,
entretanto como um desvio, a instruo 4 no pode ser executada no prximo ciclo, mas sim
o desvio para a instruo referente ao desvio (SUB_1), por isso o pipeline limpo, Flush,
onde deveria estar a execuo da instruo 4.

You might also like