Professional Documents
Culture Documents
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
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
Microcontroladores
Microcontrolador Genrico
CPU, Memrias e Dispositivos
de I/O
A
CPU
executa
controlando
os
programas
sistema,
sendo
ALU:
Realiza
operaes
aritmticas e lgicas.
Registradores:
dados
Armazenam
temporrios.
microcontroladores
esses
Nos
so
Microcontroladores
Microcontrolador Genrico
Barramentos
de
Endereo e Controle
A
CPU
se
comunica
Dados,
com
os
duto
de
comunicao
chamado barramento.
Microcontroladores
Microcontroladores
Microcontrolador Genrico
Barramentos
de
Endereo e Controle
Dados,
enderear
dispositivo
Microcontroladores
Barramento
de
Controle:
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
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,
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
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.
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.
Entrada
Analgica
AN0:
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;
while(1)
{
PORTBbits.RB0 = 1;
__delay_ms(500);
PORTBbits.RB0 = 0;
__delay_ms(500);
}
}
Microcontroladores