2 Comentários

Curso Básico - Microcontrolador PIC - Parte 1

Arquiteturas Von Newmann X Arquiteturas Harvard

Von Newmann

Exemplo de funcionamento de uma arquitetura Von Newmann: SOMAR DOIS NÚMEROS QUE SÃO INSERIDOS NA ENTRADA E COLOCAR O RESULTADO NA SAÍDA.

  1. Colocar o primeiro número a ser somando na porta de entrada do uC.

  2. Dar um pulso de clock no BUFFER. O primeiro número passa a ocupar o barramento de dados e fica armazenado no BUFFER.

  3. Dar um pulso de clock no Registrador A. O primeiro número passa a ocupar o barramento interno, fica armazenado no Registrador A e está na entrada da ULA.

  4. Colocar o segundo número a ser somado na porta de entrada do uC. Enquanto não for aplicado no BUFFER um pulso de clock, em sua entrada terá o segundo número e em sua saída terá o primeiro número.

  5. Dar um pulso de clock no BUFFER. Ao fazer isso, o primeiro número é apagado da saída do BUFFER, que passa a ser ocupado pelo segundo número. Caso o primeiro número não tenha sido armazenado em algum Registrador, ele será perdido.

  6. Dar um pulso de clock no Registrador B. O segundo número passa a ocupar o barramento interno, fica armazenado no Registrador B e está na entrada da ULA.

  7. Colocar nos bits de comando da ULA a informação X0 = 0 e X1 = 0. Ao fazer isso, a ULA calculará a soma dos dados que estejam presentes em suas entradas. Se não houver dados na entrada, ela somará zero com zero. Automaticamente, o resultado é colocado na saída da ULA.

  8. Dar um pulso de clock no Gate da ULA (GULA). Ao fazer isso o segundo número é apagado do barramento de dados, que passa a ser ocupado pelo resultado da soma dos dois números.

  9. Dar um pulso de clock no LATCH. O resultado da soma é colocado na porta de saída.

Harvard

Família PIC e detalhamento do hardware

Clock e ciclo de máquina

Estrutura de memórias: RAM, ROM E EEPROM

Memórias no PIC

Para estudar as memórias do PIC vamos utilizar inicialmente este trecho do diagrama interno retirado do datasheet do PIC16F628A, onde podemos verificar os seguintes detalhes:

Memórias de programa (ROM)

  • O barramento de dados (data bus) é de 8 bits (byte). Mas o barramento de programa (program bus) é de 14 bits (word). Característica da estrutura Harvard.

  • O contador de programa (program counter - PC) tem 13 bits. Isto lhe permite a seguinte capacidade de endereçamento:

213 = 8192 words = 8K words

Para esta família de uC o limite de memória de programa está no tamanho dos bits do PC. Mas devido à limitação da tecnologia RISC (Reduced Instruction Set Code), só é possível acessar 2 Kbytes de memória. Para resolver este problema foi feita a divisão dos endereços de memória em bancos, como mostra a tabela a seguir.

Memórias de dados temporários (RAM)

A memória de RAM é composta por dois tipos de registradores:

  • SFR (Special Function Register): registradores de funções especiais. Fazem o controle de todo o funcionamento do uC;
  • GPR (General Purpose Register): registradores de propósito geral. Podem ser utilizados para armazenamento temporário de dados e informações do programa do usuário. Estes registradores é que compõe realmente a memória RAM do uC.

Para acessar os endereços destes dois tipos de registradores, estão disponíveis apenas 7 bits. Por isso o limite de 128 endereços. Para aumentar esta capacidade, foi criado o sistema de bancos de memória. O controle de qual banco está sendo acionado é feito pelos bits RP0 e RP1 localizados no SFR STATUS, que é espelhado em todos os bancos, ou seja, existe em qualquer um dos 4 bancos de memória.

Outros registradores também são espelhados, de modo a facilitar a vida do programador, podendo ser utilizado em qualquer um dos bancos, sem se preocupar em qual local se está.

Isto se aplica tanto aos SFR como aos últimos 16 GPR de cada banco de memória. Ao se somar todos os espaços possíveis, descontando os locais reservados e os espelhados, chega-se ao valor de 224 bytes de memória RAM disponível nos GPR.

Mapa da memória RAM

Mapa detalhado do BANCO 0 da memória RAM

Mapa detalhado do BANCO 1 da memória RAM

Mapa detalhado do BANCO 2 da memória RAM

Mapa detalhado do BANCO 3 da memória RAM

Memórias de dados permanentes (EEPROM)

O PIC16F628A tem uma memória EEPROM de 128 bytes (endereço 0x000 até 0x07F) para dados que devem ser mantidos e armazenados mesmo que o uC seja desenergizado. O processo de gravação e leitura será visto em momento oportuno e é realizado pelos SFRs abaixo:

No próximo artigo aprenderemos o conjunto de instruções RISC do PIC. Aguardem!

Saiba mais

Curso de C com microcontroladores MCF51QE128 e MC9S08QE128 - Parte 1

PIC na IoT com ESP8266 e ThingSpeak

Microchip - Microcontroladores PIC de 8 bits

Outros artigos da série

Curso Básico - Microcontrolador PIC - Parte 2 >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Hardware » Curso Básico - Microcontrolador PIC - Parte 1
Talvez você goste:
Comentários:

2
Deixe um comentário

avatar
1 Comentários
1 Respostas
1 Seguidores
 
Discussão de maior alcance
Discussão mais quente
2 Autores de comentários
Alessandro CunhaMarlene Comentários recentes
  Notificações  
recentes antigos mais votados
Notificar
Marlene
Visitante
Marlene

Este curso não poderia ser considerado básico, não entendi nada. Na primeira parte já é colocado um monte de tabela e informação sem nenhuma conexão aparente, sem nenhuma explicação.

Séries



Outros da Série

Menu