Você está na página 1de 61

ENG 04475 Microprocessadores I

Prof. Marcelo Gtz Departamento de Engenharia Eltrica UFRGS

Arquitetura de um Microcontrolador: blocos bsicos

Blocos Bsicos

Organizao da Memria
Qualquer dispositivo (memrias, perifricos, etc) acessado pela CPU atravs dos barramentos; Em vrias arquiteturas, os registradores tambm so acessados via endereos de memria; Dependendo do endereo, a CPU pode acessar:
Memria dados (p.ex: RAM); Memria de programa (ROM/FLASH); Registradores Perifricos internos; Perifricos externos;

Mapa de Memria
Mapas de memria: Mapa que identifica quais endereos so utilizados pelos diversos tipos de dispositivos, memria de programa, memria de dados, e que endereos esto livres; Decodificador de Endereos: Circuito digital que aciona o dispositivo, dependendo do endereo definido pela CPU;
Para dispositivos internos, o decodificador j est integrado ao microcontrolador; Para dispositivos externos, o decodificador deve ser includo;

Mapa de Memria Exemplo genrico: mapa nico

Mapa de Memria Exemplo genrico: mapas separados

Mapa de Memria: ARM Cortex M3

Acessa at 4 GB; Arquitetura Harvard;

Modos de Endereamento

Modos de Endereamento
So as diferentes maneiras que uma operao acessa os operandos; Os operandos se podem estar na memria de programa, na memria RAM, registradores, etc.. Podem aumentar a eficincia das operaes da UCP;
reduzindo o nmero de bits de codificao das instrues, ou: aumentando a velocidade de execuo das instrues, ou: ambos.

Terminologia
Endereo fsico - endereo real que deve ser provido memria; Endereo de segmento - fornece o endereo de um bloco de memria menor que a totalidade da memria fsica; Endereo de offset - endereo relativo ao incio de um segmento de memria; Endereo lgico - endereo incompleto, mas suficiente para que uma determinada instruo calcule o endereo fsico;

Terminologia (cont.)

Endereo efetivo - endereo calculado pelo processador; Auto-incremento e auto-decremento - capacidade de incrementar e decrementar automaticamente registradores que guardam endereos de memria;

Endereamento a Registrador
Os operandos so registradores. Na maioria dos casos o cdigo da instruo j contm o cdigo do registrador a ser utilizado. - Exemplos: ADD A,R0 ( uC 8051) Soma A e R0, com resultado em R0 R10,R30 (uC AVR) Soma R10 e R30, com resultado em R10

ADD

Endereamento Imediato
O operando, de valor constante, segue o cdigo da instruo;

Endereamento Imediato
O operando, de valor constante, segue o cdigo da instruo; - Exemplos: ADD A,#0Fh (uC 8051) Soma a constante 0Fh ao registrador A ADIWR31:R30,0Fh (uC AVR) Soma 0F ao valor da word representada pelos registradores R31 e R30

Endereamento Direto
O endereo do operando segue o cdigo da instruo;

Endereamento Direto
O endereo do operando segue o cdigo da instruo; Exemplos: MOV A,05h (uC 8051) Move o contedo da posio de memria 05h para o registrador A LDS R2,$FF00 (uC AVR) Move o contedo da posio de memria FF00 para o registrador R2

Endereamento Indireto
Mecanismo de endereamento em dois nveis;
No primeiro nvel a instruo fornece a localizao do endereo do dado; No segundo nvel ento especifica a localizao do dado;

Existem dois tipos:


Indireto de registrador: registradores especiais (pointer registers) na CPU so utilizados para indicar o endereo do dado; Indireto de memria: O endereo do local onde se encontra o endereo do dado segue o cdigo da instruo;

Endereamento Indireto a Registrador


MOV A,@R0 (uC 8051) O registrador R0 contm um valor que o endereo na memria onde o valor se encontra;

Endereamento Indireto a Registrador


LD R1,X (uC AVR) O registrador X (R27:R26) contm um valor que o endereo na memria onde o valor se encontra;

Endereamento Indireto a Registrador


uC 8051 possui:
Registrador DPTR para acesso indireto memria RAM externa; R0 e R1 para acesso indireto memria RAM interna;

AVR possui;
Registradores X, Y e Z para acesso indireto memria; X, Y e Z podem ser ps-incrementado ou pr-decrementado; LD R1,X+ LD R1,-X X, Y e Z so na realidade R26 a R31

Endereamento Indireto a Memria, sem Registradores

No to comum para microcontroladores;

Endereamento Relativo
O endereo efetivo dado pela soma de um offset ao contador de programa

Endereamento Relativo
JC 07h (uC 8051) O valor do endereo do desvio calculado pela soma de 07 ao registrador PC.

Endereamento Relativo
BRCS 23h (uC AVR) O valor do endereo do desvio calculado pela soma de 23h ao registrador PC.

Endereamento Relativo
O valor de offset pode ser positivo ou negativo (complemento de 2); Exemplo: JC FAh

(uC 8051) FAh = - 06h

Outros modos de endereamento


Nem todos processadores oferecem todos os modos; Alguns apresentam uma combinao destes modos bsicos; Exemplos:
LDD R4,z+2 ; indireto com deslocamento; MOVC @A+PC ; indireto e relativo; IJMP ; desvio indireto pelo registrador Z;

Arquiteturas de microcontroladores reais


MCS 51 (vrios) AVR (Atmel) PIC (Microchip)

Apresentao do Microcontrolador 8051

MCS 51: Famlia 8051


Lanada pela Intel em 1980; Produzido por vrios fabricantes (>20)
Atmel, Dallas, Maxim, Infineon, ST, Philips, ....

Cada fabricante realizou algumas modificaes como melhoramentos


adicionou perifricos, registradores, contadores, aumentou memria, etc...

Porm o ncleo central do 8051 permanece o mesmo;

Organizao da memria
8051 possui espao de endereamento separado para:
Memria de Programa: at 64 Kbytes; Memria de Dados Externa: at 64 Kbytes;

Mas apenas um barramento para acessar ambas as memrias !!!

Alm disto, memria de dados interna (RAM interna) de:


128 bytes (8051); 256 bytes (8052);

Todos os registradores da CPU fazem parte da RAM Interna;

Memria de Programa (1)


Tamanho mximo: 64 KBytes;
0000h at FFFFh (mximo);

Diferentes configuraes:
Memria externa CPU; Memria interna; Cominao de ambas (Interna + Externa 64 Kbytes);

AT89S52 possui 8 KBytes de memria de programa interna (Flash);


0000h a 1FFFh;

Memria de Programa (2)

Dois Exemplos: - Memria totalmente externa; - Memria interna e com possvel expanso;

Memria de Dados (1)


Memrias de Dados Interna e Externa;
Espaos independentes;

Interna:
Tamanho depende do fabricante Mximo: 256 Bytes;

Externa:
Tamanho mximo: 64 KBytes;

Instruo MOV: memria interna; Instruo MOVX: memria externa;

Memria de Dados (2)


- Tamanho mximo:
- 64 KBytes Externo; + - 256 Bytes Interno;

- Mem. Interna:
- Dados e Registradores;

- Mem. Externa:
- Dados e perifricos externos;

Memria RAM Interna

Apenas nos C: 8X52

Registradores R0 a R7 e memria de uso geral

SFR Inclui os Registradores A, B, PSW, ...

Microcontrolador: AT89S52
Processador utilizado em laboratrio;
Quais as caractersticas do AT89S52?
Memria Flash de 8 Kbytes; Memria RAM de 256 bytes; Contador de 16 bits adicional: Timer 2;
Alm dos originais Timer 0 e Timer 1

Registrador DPTR duplo (registrador de 16 bits utilizado em instrues especficas);

Outras mais especficas...

Temporizao da CPU
Cada ciclo de mquina dividido em 6 estados (States): S1, S2, S3, S4, S5 e S6; Cada estado so 2 pulsos de clock, chamados de fases (Phase): P1 e P2; Tipicamente:
Phase 1: microinstrues aritmticas; Phase 2: microinstrues RTL (transferncia entre
registradores);

Ciclos de mquina e Instrues


Ciclo de mquina (cm) = 12 pulsos de clock; As instrues podem demandar 1 ou 2 ciclos de mquina; Apenas as instrues DIV e MUL demandam 4 ciclos de mquina; Em um ciclo de mquina, at dois bytes de cdigo podem ser lidos da memria de programa;

Temporizao 1 byte opcode e 1 ciclo

Temporizao 2 bytes: opcode e operando

Temporizao 1 byte opcode e dois ciclos

Temporizao 1 byte opcode e acesso memria externa

Apresentao do Microcontrolador AVR

Viso Geral
Processadores de 8bits 32 bits, RISC Dividido em famlias
tinyAVR Srie ATtiny
Perifricos limitados;

megaAVR Srie ATmega


Instrues e perifricos estendidos;

XMEGA Srie ATxmega


Performance estendida com DMA, criptografia, e outros perifricos;

AVR para aplicaes especficas


Linha da famlia megaAVR com perifricos especificos embutidos, como controlador de LCD, CAN bus, PWM avanado, entre outros;

AVR32 Srie de 32 bits;

Arquitetura AVR

Conjunto de Registradores AVR


32 registradores de 8 bits de uso geral;
Mapeados no espao de dados (RAM) de endereo 0000 a 001F;

ltimos 3 pares de registradores podem ser usados como 3 de 16 bits (registradores R26 a R31, que recebem o nome de X, Y e Z); 64 registradores de funes especiais;
Perifricos internos; Controles; Mapeados no espao de dados (RAM) de endereo 0020 a 005F;

Alguns possuem uma extenso de mais 160 registradores de funes especiais, mapeados na RAM de 0060h a 00FFh; Maioria das instrues pode acessar qualquer registrador em um ciclo;

Memria de dados: SRAM

Memoria de Programa: FLASH

Cada posio armazena 16 bits


Tamanho usual da instruo;

No permite expanso;

Temporizao das Instrues


Registrador para registrador: 1 ciclo; Registrador para memria: 2 ciclos; Saltos: 1 a 2 ciclos; Chamadas e retorno de subrotinas: 2 a 5 ciclos; Algumas operaes podem ser mais longas quando acesso a memria externa;

Temporizao: Tempo de uma instruo

Em um ciclo, para operaes em registradores: realiza a feita a leitura dos operandos; executa a operao na ULA (ALU); escreve o resultado no operando destino;

Temporizao: Tempo de uma instruo

Em dois ciclos para acesso de leitura/escrita na RAM interna: Calcula o endereo do acesso; Acessa a memria;

Temporizao: Pipelining

Pipelining: Permite a execuo de atividades em paralelo;


Enquanto executa a instruo n, a instruo n+1 buscada na memria;

Apresentao do Microcontrolador PIC

Viso Geral
Fabricante: Microchip Technology; PIC Peripheral Interface Controller Arquitetura Harvard (exceto linha PIC32, que baseado no MIPS);
Barramento separado para leitura do cdigo (instrues);
Tamanho das instrues: 12 bits, 14 bits e 16 bits;

Barramento separado para leitura/escrita dos dados;


Tamanho dos dados: 8 bits, 16 bits e 32 bits;

Arquitetura RISC;
Conjunto reduzido de instrues;

Famlia Processadores PIC

PIC16 - Arquitetura

Perifricos

Memoria de Programa

Tamanho depende de cada microcontrolador; No permite expanso; Tipicamente Flash;

Memoria de Dados
Possui bancos de 128 registradores; Cada banco possui registradores especiais e registradores de uso geral; Existe um conjunto de 16 registradores que so acessados em qualquer banco de registradores; No permite expanso de memria de dados;

Temporizao e Pipelining