You are on page 1of 51

Engenharia da

Computao

Microcontroladores
e DSP
Prof. Dr. Geovani Rodrigo Scolaro
geovani.scolaro@unoesc.edu.br

Introduo

Microcontroladores

Microcontroladores x Microprocessadores
Introduo
Microprocessadores x Microcontroladores

Microprocessador
Microcontrola
dor
Microcontroladores

Microcontroladores x Microprocessadores
Os microprocessadores possuem:
Largura de barramento de endereos elevada;
Desde meados da dcada de 1980 a 1990 que essa largura de
barramento de endereos se estabilizou em 32 bits, chegando 64
bits hoje.
Unidade de gerenciamento de memria integrada ou on-chip;
Tratamento de dados com representao binria de 8, 16, 32,
64 e at mesmo de 80 bits;
Unidade de clculo de matemtica em ponto flutuante on-chip
com suporte a operaes numricas bastante complexas com
nmeros reais.
Apresentam alto custo e alto consumo de energia.

Microcontroladores

Microcontroladores x Microprocessadores
Os microcontroladores apresentam:
Memria e unidades perifricas on-chip.
Barramento de endereos com poucos bits, s permitindo o
gerenciamento de pequena quantidade de memria. Algumas
larguras tpicas variam de 10 a 14 bits e, nesses casos, limitando seu
acesso memria variando de 1 Kbyte a 8 Kbytes.
Tratamento de dados restrito aos inteiros com representao
binria de 8 bits. Atualmente, algumas famlias permitem o
tratamento de inteiros de 8 e de 16 bits.
Ausncia de unidades aritmticas de ponto flutuante.
Em contrapartida, so de baixo custo, apresentam baixo
consumo.

Microcontroladores

Microcontroladores x Microprocessadores
Estrutura fsica de um microcontrolador

Microcontroladores

Microcontroladores x Microprocessadores
Estrutura fsica de um microcontrolador

Microcontroladores

Microcontroladores
Arquiteturas
Pela escolha do modelo que ser usado para acesso a dados e
programas, podemos ter computadores com arquitetura projetada
segundo o modelo proposto pelo Instituto de Estudos Avanados de
Princeton (atribudo a Von Neumann) - Mquina de Von Neumann ou
computadores projetados com a arquitetura segundo o modelo proposto
pela universidade de Harvard Mquina de Harvard.
Todos os microcontroladores modernos utilizam uma dessas duas
arquiteturas:
Harvard
Von-Neumann*

Microcontroladores

Microcontroladores
Arquiteturas

Utilizao de dois espaos

separados para as instrues

espao

de programa e de dados.

programa e de dados.

Largura

de

banda

melhorada.

Permite

tamanhos
Microcontroladores

Utilizao

Limitao

banda
utilizao
diferentes

de
de

para

para

informaes.

de

um

nico

memria
na
a

de

largura

de

troca

de

Microcontroladores
Arquiteturas RISC e CISC
RISC (Reduced Instruction Set Computer)
Neste caso, o microcontrolador reconhece e executa somente
operaes bsicas (adio, subtrao, etc). Outras operaes mais
complexas so realizadas atravs da combinao das mesmas. Por
exemplo, a multiplicao realizada atravs da realizao de sucessivas
somas.
Ex: PIC, ATMEGA328, Microcontroladores ARM.
CISC (Complex Instruction Set Computer)
Microcontroladores destinados a reconhecer mais de 200 diferentes
instrues, podendo realizar muitas tarefas em alta velocidade.
Ex: Motorola 68HC11.
Microcontroladores

Microcontroladores
Arquiteturas RISC e CISC

Microcontroladores

Microcontroladores
Arquiteturas RISC e CISC

Microcontroladores

Microcontroladores
Arquiteturas RISC e CISC
SISC (Specific Instruction Set Computer)
Computador com um conjunto especfico de instrues. Esta
arquitetura difere das anteriores por apresentar um conjunto de
instrues especialmente fabricadas para um conjunto muito restrito de
aplicaes, normalmente de dicadas implementao de tarefas
especficas.
Ex: Avinica, Equipamentos Mdicos, etc.

Microcontroladores

Microcontroladores
Microcontrolador Genrico

escolha

microcontrolador
caractersticas

de

um

depende

das

econmicas

complexidade do projeto

Existem

desde

microcontroladores de 4 bits com


funes limitadas at modernos
de 32 bits e clocks elevados.

Microcontroladores

Microcontroladores
Microcontrolador Genrico
CPU, Memrias e Dispositivos
de I/O
A

CPU

executa

controlando

os

programas

sistema,

sendo

composta por trs mdulos:

ALU:

Realiza

operaes

aritmticas e lgicas.

Registradores:

dados

Armazenam

temporrios.

microcontroladores

esses

Nos
so

divididos em registradores de uso


geral e especfico.
Unidade de Controle: Decodifica
Microcontroladores

a instruo e envia sinais de

Microcontroladores
Microcontrolador Genrico
Barramentos
de
Endereo e Controle
A

CPU

se

comunica

Dados,
com

os

dispositivos de I/O ou as memrias


via comunicao paralela.
A CPU s se comunica atravs de
duas operaes: leitura e escrita.
Esse

duto

de

comunicao

chamado barramento.

Microcontroladores

Microcontroladores
Microcontrolador Genrico
Barramentos
de
Endereo e Controle

Dados,

Existem trs tipos de barramento:


endereo, controle e dados.
Barramento de Endereos:
uma via apenas de sada. usado
para

enderear

dispositivo

(memrias, I/O) para realizar uma


operao.
Barramento de Dados: uma
via bidirecional por onde trafegam
os dados.

Microcontroladores

Barramento

de

Controle:

Determina se a operao leitura

Microcontroladores x Microprocessadores
Microcontrolador Genrico
Memria de Programa
A memria de programa onde fica armazenado o firmware do
sistema embarcado, geralmente uma memria FLASH (programvel e
apagvel) no-voltil, que fornece ao programador a possibilidade de
gravar muitas vezes o seu software embarcado.

Memria de Dados
Compreende a parte onde sero alocados os registros, as variveis e
todos

os

espaos

reservados

para

semelhante memria RAM de um PC.

Microcontroladores e Microprocessadores

processamento

temporrio,

Microcontroladores x Microprocessadores
Microcontrolador Genrico
Memria de Armazenamento
Memria no-voltil presente no prprio microcontrolador ou pode
ser acoplada externamente a ele, para o armazenamento de dados de
forma segura. Ex: Memrias EEPROM (Eletrically Programmable Read
Only Memory).

Registradores
So pequenas unidades de memria para alocao temporria de
dados.

Trabalhan

diretamente

com

processador,

resultados de suas operaes lgicas e aritmticas.

Microcontroladores e Microprocessadores

armazenando

Microcontroladores x Microprocessadores
Microcontrolador Genrico
Clock
O clock fornece a sensibilidade de tempo para o processador, ou
seja, ele fornece um sinal em forma de onda quadrada, sendo chamado
de oscilador. A cada nvel alto, no mnimo uma instruo executada.
Um ciclo de clock consiste na diferena de tempo entre dois nveis altos
dessa onda.

Contador de Instruo
Registrador encarregado de armazenar o endereo da prxima
Microcontroladores e Microprocessadores

Microcontrolador PIC16F877A
Microcontrolador PIC16F877A
O nome original deste microcontrolador PIC (Peripheral Controller
Interface), mas mais conhecido como PIC. Seu ancestral, o chamado
PIC1650, foi projetado em 1975 pelo General Instruments.

Microcontroladores

Estrutura Bsica de Funcionamento


Microcontrolador PIC16F877A

Microcontroladores

Microcontrolador PIC16F877A
Pinagem

Microcontroladores

Microcontrolador PIC16F877A
Estrutura Interna

Microcontroladores

Microcontrolador PIC16F877A
Ciclo de Mquina
Tambm chamado de ciclo de busca e execuo. A instruo
buscada, decodificada, executada e armazenada.

Ex: Oscilador de 4 MHz ir gerar um clock interno de 1 MHz e ciclo de


mquina de 1us.

Microcontroladores

Microcontrolador PIC16F877A
Pipeline
No caso dos microcontroladores PIC pode-se visualizar a execuo das
instrues como sendo dividida em dois estgios: busca (fetch) e
execuo (execute), onde cada estgio gasta 4 ciclos de clock.

Microcontroladores

Microcontrolador PIC16F877A
Pipeline
Pipeline uma tcnica utilizada pelos processadores mais modernos e
consiste em dividir a execuo das instrues em partes e cada uma
destas partes pode ser executada em paralelo em um formato
semelhante a uma linha de montagem de carros.

Microcontroladores

Microcontrolador PIC16F877A
Interrupes

Microcontroladores

Microcontrolador PIC16F877A

Microcontroladores

Microcontrolador PIC16F877A
Mapa de Registradores

Microcontroladores

Microcontrolador PIC16F877A
Registradores
Um registrador memoriza o estado de um byte.

Microcontroladores

Microcontroladores x Microprocessadores
Estrutura fsica de um microcontrolador

Microcontroladores

Microcontroladores x Microprocessadores
Estrutura fsica de um microcontrolador

Microcontroladores

Microcontrolador PIC16F877A
Registradores de Funes Especiais (SFR)
Registradores que possuem funes especiais determinadas pelo
fabricante. Esses bits so conectados literalmente a circuitos internos do
microcontrolador, como timers, conversor A/D, osciladores, etc.

Microcontroladores

Microcontrolador PIC16F877A
Registradores PORT (Portas de Entrada e Sada)
Registradores conectados aos pinos de I/O do microcontrolador.
Fornecem corrente entre 10 e 20 mA, suficiente para ativar um LED.
Necessitam de configuraes especiais em registradores SFR.

Microcontroladores

Microcontrolador PIC16F877A
Registradores PORT (Portas de Entrada e Sada)
O PIC possui portas de I/O chamadas de PORTs. Possui tambm um
registrador chamado TRIS, responsvel por configurar os pinos como
entradas (bit=1) e sadas (bit=0).
Registrador que determina
quando um pino vai ser de
entrada ou de sada.
Inicializa o estado da porta
ou dos pinos individuais no
momento que o
microcontrolador iniciar.

Microcontroladores

Microcontrolador PIC16F877A
Estrutura interna da PORTA do PIC.

Microcontroladores

Microcontrolador PIC16F877A
Estrutura interna da PORTA do PIC.

Descrio da pinagem
do
PIC16F877A
Cada pino pode assumir
mais do que uma funo.

Ex: pino 2 RA0/AN0


- Entrada/Sada Digital RA0:
podem ser conectados LEDS ou
botes.
-

Entrada

Analgica

AN0:

podem ser ligados sensores que


enviam tenses referentes
Microcontroladores

medio

de

uma

grandeza

Microcontrolador PIC16F877A
Estrutura interna da PORTA do PIC.

Microcontroladores

Microcontrolador PIC16F877A
Conversor Analgico/Digital (ou conversor A/D)
Circuito responsvel por converter sinais contnuos em valores
discretos digitais. Em outras palavras, este circuito converte uma
grandeza fsica analgica em um nmero binrio equivalente, permitindo
com que o microcontrolador consiga interpretar esse tipo de informao.

Microcontroladores

Microcontrolador PIC16F877A
Estrutura interna da PORTB do PIC.

Microcontroladores

Microcontrolador PIC16F877A
Estrutura interna da PORTB do PIC.

Microcontroladores

Microcontrolador PIC16F877A
Estrutura interna da PORTB do PIC.

Microcontroladores

Microcontrolador PIC16F877A
Oscilador (Clock)

Microcontroladores

Microcontrolador PIC16F877A
Oscilador (Clock)

Microcontroladores

Microcontrolador PIC16F877A
Oscilador (Clock)

Microcontroladores

Microcontrolador PIC16F877A
Conexes mnimas necessrias para o funcionamento

Microcontroladores

Microcontrolador PIC16F877A
Conexes mnimas necessrias para o funcionamento

Microcontroladores

Microcontrolador PIC16F877A
Firmware
Programa que se grava no microcontrolador. desenvolvido para
realizar tarefas de controle de perifricos e processamento de dados
obtidos ou produzidos. Normalmente codificado em Assembly ou C.

Microcontroladores

Microcontrolador PIC16F877A
Firmware
Aps a codificao gerado um arquivo com extenso .HEX, que ser
gravado dentro da memria de programa do microcontrolador.

Microcontroladores

Microcontrolador PIC16F877A
Exemplo para verificar o funcionamento:
#include "xc.h"
#define _XTAL_FREQ 4000000
#pragma config FOSC = XT, WDTE = OFF, PWRTE = OFF, BOREN = OFF, LVP = OFF
#pragma config CPD = OFF, WRT = OFF, CP = OFF
int main()
{
TRISB = 0x00;
PORTB = 0x00;

// Inicializao do PORTA como sadas.


//PORTB inicializa com os pinos em nvel baixo.

while(1)
{
PORTBbits.RB0 = 1;
__delay_ms(500);
PORTBbits.RB0 = 0;
__delay_ms(500);
}
}

Microcontroladores

//Acesso a um bit da porta.


//Acesso a um bit da porta.

You might also like