01 Microcontroladores Arquitetura Básica
Short Description
microssss...
Description
Microprocessadores Prof. Arthur Braga
Tópicos n n
Microcontroladores O PIC16F628A ¨
Caracterís Características ticas Gerais Gerais
¨
Memória de Programa Programa
¨
Memória EEPROM
¨
Memória RAM
¨
n
Endereçamento Direto
n
Endereçamento Indireto
Linguagem de Máquina e Linguagem Montadora
1
Microcontroladores PIC PIC (Pe (Perip ripher heral al In Integ tegrat rated ed Co Contr ntrole oler) r) são Os PIC são uma famíl amília ia de TM Microchip Techn echnolo ology gy , que microc microcont ontrol rolado adores res fabrica fabricados dos pela pela Microchip processam dados de 8 e 16 bits com extensa variedade de modelos e arquitetura Harvard e conju periféricos internos, com arquitetura conjunto nto de instr instruçõ uções es RISC (set (setss de 35 ins instruç truçõe õess e de 76 inst instru ruçõ ções es), ), com recu recurs rsos os de programação por memória FLASH, EEPROM EE PROM e OTP. OTP. microcontroladores PIC são divididos em grupos Os microcontroladores grupos diferenci diferenciados ados pela memória de capaci capacidad dadee de armaz armazena enamen mento to em cada cada localid localidade ade de sua sua memória programa: 12 bits, 14 bits e 16 bits. bits . As CPUs da família PIC trabalham em frequê frequência nciass de até 40 MHz. MHz. Há o reconhe reconhecim cimen ento to de interru interrupçõ pções es tanto exte extern rnas as como como de perif perifér éric icos os inte internos. rnos. Funci Funcio onam com tensõ tensões es de alimentação de 2 a 6V e os modelos possuem encapsulamento de 6 a 100 pinos em diversos formatos (SOT23, DIP, DIP, SOIC, TQFP T QFP,, etc).
Microcontroladores PIC Von Neumann
8-Bits Memória de Dados e Programa
Harvard
PIC 8-Bits
Memória de Dados
12/14/16-Bits Memória de Programa PIC 16F628A
2
Microcontroladores PIC Evolução da família PIC
Microcontroladores PIC Para 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 integrad o.
3
PIC 16F628A
PIC 16F628A
4
PIC 16F628A
PIC 16F628A
Arquitetura Interna do PIC 16F628A
Como funciona ?
5
Contador de Programa - PC O 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é 2 13 ou 8.192 instruções.
EXEMPLO: PC PC PC PC PC PC
Contador de Programa - PC O 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é 2 13 ou 8.192 instruções.
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.
6
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).
7
PIC 16F628A
Arquitetura Interna do PIC 16F628A
Registrador W
8
PIC 16F628A
Arquitetura Interna do PIC 16F628A
PIC 16F628A
Arquitetura Interna do PIC 16F628A
Como funciona ?
9
Memórias no PIC (Programa, EEPROM, RAM)
10
Memória EEPROM O 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 RAM A 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ósito Geral (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 são Específicas (SFRs) – utilizados para controlar os periféricos e dispositivos internos, flags de estado do processador, entre outras funções.
11
Endereçamento Direto
Utilização dos Registradores GPR O PIC implementa um conjunto de 128 registradores GPR (Registradores de Propósito Geral) na memória RAM disponível para o usuário. A utilização dos registradores GPR ocorre da mesma forma que os registradores SFR, ou seja: podemos acessar um registrador tanto pelo seu nome definido no programa, como pelo seu Endereço na RAM. No caso dos registradores GPR, é possível atribuir nomes a cada um deles de forma a facilitar a escrita e entendimento do programa. Uma forma de realizar a atribuição de nomes a um registrador é através da diretiva EQU. EXEMPLO TESTE
EQU
0x20
Valor que s eráassoc iado ao nom e TESTE (pode ser usad o c om o Ender eço na RAM)
12
Utilização dos Registradores GPR O PIC implementa um conjunto de 128 registradores GPR (Registradores de Propósito Geral) na memória RAM disponível para o usuário. A utilização dos registradores GPR ocorre da mesma forma que os registradores SFR, ou seja: podemos acessar um registrador tanto pelo seu nome definido no programa, como pelo seu Endereço na RAM. No caso dos registradores GPR, é possível atribuir nomes a cada um deles de forma a facilitar a escrita e entendimento do programa. Uma forma de realizar a atribuição de nomes a um registrador é através da diretiva EQU. EXEMPLO
TESTE
E os Registradore s com Finalidades Específicas (SFR) ?
13
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
14
Registradores SFR
Registradores SFR
Os outros registradores SFR serão detalhados conforme a apresentação dos módulos do PI C16F628A !
15
Endereçamento Indireto
Endereçamento Indireto Até o momento os registradores utili zados 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).
Porém, é possível no PIC16F628A passar indiretamente um dado para um endereço (REGISTRADOR) !
16
Endereçamento Indireto O acesso a um REGISTRADOR via Endereçamento Indireto é feito por meio dos registradores FSR e INDF. O conteúdo do registrador FSR aponta para o endereço de memória desejado. O valor contido em INDF é o valor armazenado no endereço apontado por FSR.
Linguagem de Máquina e Linguagem Montadora
17
Linguagem de Máquina e Linguagem Montadora Arquivo fonte em Assembly (.ASM)
Montador (Assembler) + LINKER
Linguagem Montadora
Assembly e Assembler (LINGUAGEM)
(PROGRAMA)
18
Linguagem Montadora
Linguagem Montadora
19
Bibliografia Básica n
n
Zanco, Wagner da Silva. Microcontroladores PIC
16F628A/648A – uma abordagem prática e objetiva, Editora Érica, 2005. Datasheet do PIC16F628A/648A
Material da Disciplina Plataforma SIGAA/UFC
20
View more...
Comments