01 Microcontroladores Arquitetura Básica

Embed Size (px)

Citation preview

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    1/20

    1

    Microprocessadores

    Prof. Arthur Braga

    Tópicosn   Microcontroladores

    n   O PIC16F628A

    ¨   Características Gerais

    ¨   Memória de Programa

    ¨

     Memória EEPROM¨  Memória RAM

    n  Endereçamento Direto

    n   Endereçamento Indireto

    ¨  Linguagem de Máquina e Linguagem Montadora

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    2/20

    2

    Microcontroladores PICOs   PIC (Peripheral Integrated Controler)   são uma família de

    microcontroladores fabricados pela   Microchip TechnologyTM, que

     processam dados de 8 e 16 bits com extensa variedade de modelos e

     periféricos internos, com   arquitetura Harvard   e conjunto de instruções

    RISC   (sets de 35 instruções e de 76 instruções), com recursos de

     programação por memória FLASH, EEPROM e OTP.

    Os  microcontroladores PIC   são divididos em grupos diferenciados pela

    capacidade de armazenamento em cada localidade de sua   memória de

    programa: 12 bits, 14 bits e 16 bits. As CPUs  da família PIC trabalham em

    frequências de até 40 MHz. Há o reconhecimento de interrupções tantoexternas como de periféricos internos. Funcionam com tensões de

    alimentação de 2 a 6V e os modelos possuem encapsulamento de 6 a 100

     pinos em diversos formatos (SOT23, DIP, SOIC, TQFP, etc).

    Memória de Programa

    Memória de Dados8-Bits

    12/14/16-Bits

    Harvard

    Memória de Dados

    e Programa

    Von Neumann

    8-Bits

    Microcontroladores PIC

    PIC

    PIC 16F628A

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    3/20

    3

    Microcontroladores PIC

    Evolução da família

    PIC

    Microcontroladores PICPara as famílias de microcontroladores de 8 bits no barramento de dados,

    a MICROCHIP adota as seguintes classificações:

    • PIC 10:  Linha de performance básica, dispositivos de baixo custo,

    utilizam 33 instruções de 12 bits de tamanho, possuem oscilador 

    interno.

    • PIC 12: Linha de performances básica e média, 33 instruções, quatro

    opções podem ser selecionadas para o oscilador, maior memória RAM.

    • PIC 14:  Linha de performances básica, o único membro desta família

    é o PIC14000, produzido para operar em um  range   de temperaturas

    compatível com o ambiente industrial.

    • PIC 16:   Linha de performances básica e média, nos de performance

    média as palavras de programa são de 14 bits, alguns membros

     possuem USB, I2C, LCD, USART e conversores A/D.

    • PIC 18:   Topo de Linha, utilizam palavras de programa de 16 bits,

     possuem conversor A/D integrado.

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    4/20

    4

    PIC 16F628A

    PIC 16F628A

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    5/20

    5

    PIC 16F628A

    Arquitetura

    Interna do PIC16F628A

    PIC 16F628A

    Como funciona ?

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    6/20

    6

    Contador de Programa - PCO contador de programa (PC – Program Counter) é o responsável pelo controle da

    sequência de execução das instruções no PIC. O registrador aponta sempre para a

     próxima instrução a ser executada pela CPU, desta forma, para alterar o fluxo do

     programa, o conteúdo do PC deve ser alterado.

     Nos PICs da série 16, o contador de programa possui largura de 13 bits, o que implica

    dizer que é possível acessar até 213 ou 8.192 instruções.

    EXEMPLO:

    PCPCPCPC

    PCPC

    Contador de Programa - PCO contador de programa (PC – Program Counter) é o responsável pelo controle da

    sequência de execução das instruções no PIC. O registrador aponta sempre para a

     próxima instrução a ser executada pela CPU, desta forma, para alterar o fluxo do

     programa, o conteúdo do PC deve ser alterado.

     No entanto, ao contrário de outros MCUs e MPUs, nos PICs não é possível ao usuário

    acessar diretamente o conteúdo do PC.

     Nos PICs da série 16, o contador de programa possui largura de 13 bits, o que implica

    dizer que é possível acessar até 213 ou 8.192 instruções.

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    7/20

    7

    Contador de Programa - PC

    Pilha (Stack)Outra estrutura encontrada no interior dos PICs é a pilha, cuja principal função é

    armazenar endereços de retorno para sub-rotinas.

     Nos PICs, a pilha não está localizada na área de memória RAM, mas em uma

    região separada (inacessível diretamente ao usuário) que é dedicada apenas a ela.

    O tamanho total dessa área é de oito posições (para os PICS de 14 bits), cada uma

    com 13 bits de capacidade (porque cada posição precisa ter capacidade suficiente

     para armazenar o valor do PC).

     Não há instruções para manipular diretamente a pilha. Isto é feito indiretamente por 

    meio de instruções como CALL, RETURN, RETLW e RETFIE, além do evento de

    interrupção (que podemos considerar como um CALL).

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    8/20

    8

    Arquitetura

    Interna do PIC

    16F628A

    PIC 16F628A

    Registrador W

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    9/20

    9

    Arquitetura

    Interna do PIC

    16F628A

    PIC 16F628A

    Arquitetura

    Interna do PIC16F628A

    PIC 16F628A

    Como funciona ?

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    10/20

    10

    Memórias no PIC

    (Programa, EEPROM, RAM)

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    11/20

    11

    Memória EEPROMO PIC16F628A possui 128 posições de memória EEPROM, com capacidade de

    armazenamento de 1 byte em cada posição. A faixa de endereços usada para acesso a

    essa memória é 00h – 7Fh.

    Esta é uma memória não-volátil, o que significa que os dados continuam

    armazenados em suas localidades mesmo sem alimentação.

    O acesso a essa memória é feito por meio de alguns registradores especiais:

    •EECON1

    • EECON2

    • EEDATA

    • EEADR 

    Memória RAMA memória RAM é dividida em

    quatro bancos, e é compartilhada

     pelos Registradores de Propósito

    Geral   (GPRs)   e pelos

    Registradores com Finalidades

    Específicas (SFRs).

    Registradores de PropósitoGeral   (GPRs)   – são utilizados

     para o armazenamento temporário

    d e dad os e i nfor ma çõ es do

     programa do usuário.

    Registradores com Finalidades

    Específicas   (SFRs)   – são

    utilizados para controlar os

     periféricos e dispositivos internos,

     flags   de estado do processador,

    entre outras funções.

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    12/20

    12

    Endereçamento

    Direto

    Utilização dos Registradores GPRO PIC implementa um conjunto de 128 registradores GPR (Registradores dePropósito Geral) na memória RAM disponível para o usuário. A utilizaçãodos registradores GPR ocorre da mesma forma que os registradores SFR,ou seja: podemos acessar um registrador tanto pelo seu nome definido noprograma, como pelo seu Endereço na RAM.

    No caso dos registradores GPR, é possível atribuir nomes a cada um delesde forma a facilitar a escrita e entendimento do programa. Uma forma de

    realizar a atribuição de nomes a um registrador é atravésda diretiva EQU.

    EXEMPLO

    TESTE EQU 0x20

    Valor que s erá assoc iado ao nom e TESTE

    (pode ser usad o como Ender eço na RAM) 

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    13/20

    13

    Utilização dos Registradores GPRO PIC implementa um conjunto de 128 registradores GPR (Registradores dePropósito Geral) na memória RAM disponível para o usuário. A utilizaçãodos registradores GPR ocorre da mesma forma que os registradores SFR,ou seja: podemos acessar um registrador tanto pelo seu nome definido noprograma, como pelo seu Endereço na RAM.

    No caso dos registradores GPR, é possível atribuir nomes a cada um delesde forma a facilitar a escrita e entendimento do programa. Uma forma derealizar a atribuição de nomes a um registrador é atravésda diretiva EQU.

    EXEMPLO

    TESTE

    E os Registradores com Finalidades Específicas (SFR) ?

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    14/20

    14

    Registradores SFR

    A grande maioria dos registradores SFR estão associados a módulos

    (periféricos) do PIC16F628A !

    Mas alguns, como o Registrador STATUS, está relacionado ao

    processador do PIC.

    Registradores SFR

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    15/20

    15

    Registradores SFR

    Registradores SFR

    Os outros registradores SFR serão detalhados conforme a

    apresentação dos módulos do PIC16F628A !

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    16/20

    16

    Endereçamento

    Indireto

    Até o momento os registradores utilizados foram acessados por 

    Endereçamento Direto  – o endereço do registrador na memória RAM

    aparece na instrução (ou como o endereço propriamente dito, ou como

    um rótulo que o montador associa especificamentecom um endereço).

    Endereçamento Indireto

    Porém, é possível no PIC16F628A passar indiretamente um

    dado para um endereço (REGISTRADOR) !

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    17/20

    17

    O acesso a um REGISTRADOR via Endereçamento Indireto é feito por meio dos registradores FSR e INDF.

    Endereçamento Indireto

    O conteúdo do registrador  FSR   aponta para o endereço de memóriadesejado.

    O valor contido em INDF é o valor armazenado no endereço apontado por FSR.

    Linguagem de Máquina e

    Linguagem Montadora

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    18/20

    18

    Linguagem de Máquina e Linguagem Montadora

    Arquivo fonte em Assembly (.ASM)

    Montador (Assembler)

    +

    LINKER

    Linguagem Montadora

     Assembly e Assembler (LINGUAGEM) (PROGRAMA)

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    19/20

    19

    Linguagem Montadora

    Linguagem Montadora

  • 8/19/2019 01 Microcontroladores Arquitetura Básica

    20/20

    20

    Bibliografia Básica

    n Zanco, Wagner da Silva.  Microcontroladores PIC16F628A/648A – uma abordagem prática e objetiva,Editora Érica, 2005.

    n   Datasheet  do PIC16F628A/648A

    Material da DisciplinaPlataforma SIGAA/UFC