Como o 8032 executa o programa?

Tenho estudado o microcontrolador 8032. É mencionado que 8032 não tem ROM interna. Agora existem algumas perguntas que tenho

  • Será que precisamos de uma ROM externa para executar programas necessariamente? Não podemos usar a RAM interna de 256 bytes?

  • Suponha que eu esteja usando o microcontrolador 8032 com uma ROM externa 2732 e também usando uma trava para armazenar o endereço (ordem inferior) da porta P0. (que pode transferir endereço / dados). Agora, depois de ativar o EA e conectar o PSEN como o 8032 executa o programa? O que acontece se eu ligar o sistema? (Como o contador de programa do microcontrolador 8032 executa as intruções? De qual endereço de memória externa o programa deve ser lido?

Eu tenho leia estes manuais- Intel 8032H Keil , Atmel 80C32E .

Resposta

Se você olhar para um circuito 80 (C) 32 típico abaixo (de aqui ):

insira a descrição da imagem aqui

Você pode ver que o 8032 se comunica com EPROM, RAM e EEPROM externos por meio de um bus – dados de 8 bits e endereço de 16 bits. O último é travado e, portanto, desmultiplexado com o HCT573. Havia alguns chips com a trava embutida projetada para ser usada com o 8031/8032, mas o acima era a configuração mais comum – custam chips de memória padrão. Também existe um pouco de ” cola ” lógica para decodificar os endereços e os gêneros te os sinais apropriados para as memórias (o HCT138 e o quad NAND).

É vital que a lógica de colagem seja projetada de forma que a EPROM resida no endereço 0 porque após um reset, a execução sempre começa pelo 8032 buscando o primeiro byte da instrução desse endereço. Esta é uma função do hardware no 8032 e não pode ser alterada. Normalmente, a instrução é uma instrução LJMP de 3 bytes que vai para o início do programa. Chamamos isso de ” RESET VECTOR “. Outros vetores ocupam os bytes imediatamente acima do vetor de redefinição – para a rotina de serviço de interrupção externa e rotina de serviço de interrupção de temporizador.

Naqueles dias, a EPROM seria programada (escrita) por um programador separado fora do circuito e, em seguida, normalmente conectado a uma tomada. Não havia programação no circuito naquela época. A RAM e a EEPROM poderiam ser gravadas pelo micro, mas o programa teria que ser carregado na EPROM antes que isso fosse possível.

Comentários

  • .: Vou marcá-lo com +1. Você pode elaborar a parte glue logic. Parece que LJMP irá mover para o início do programa? Mas aqui o programa está na memória externa. Este tipo de instrução é usado aqui? Quer dizer, simples, as instruções são buscadas na memória externa e colocadas no IR, decodificadas e executadas? Onde está o caso de LJMP aqui?
  • A lógica de colagem apenas garante que ela ‘ é a EPROM que ‘ s selecionado quando o endereço é 0000. Na configuração acima, sempre que A15 = 0 a EPROM é selecionada. LJMP é uma instrução de 3 bytes que leva um endereço em qualquer lugar no espaço de memória de 16 bits do 8031, mas normalmente você pode simplesmente pular os outros vetores, de modo que os dois bytes seguintes após o LJMP conteriam um endereço próximo ao início do EPROM. Você não ‘ t normalmente mexe com os endereços diretamente – você usa um montador que os controla por meio de rótulos simbólicos.
  • ” Lógica de colagem ” é uma gíria usada para se referir às funções lógicas menores que são necessárias entre o processador e as memórias.

Resposta

Não, você não pode usar a RAM interna para armazenar o código. O 8051/8032 usa uma arquitetura Harvard, o que significa que tem uma arquitetura completamente separada espaços de memória para código e dados. As instruções são obtidas no espaço de código, mas a RAM reside no espaço de dados.

Agora, depois de habilitar o EA e conectar o PSEN, como o 8032 executa o programa?

O 8032 busca instruções do espaço do código. Como o EA é declarado, essas buscas (leituras de memória) aparecem no barramento de memória externo , com PSEN declarado. Quando PSEN NÃO é declarado em uma operação de leitura de memória externa, é uma leitura de espaço de dados.

O que acontece se eu ligar o sistema?

O 8032 começa a buscar instruções do espaço de código endereço 0.

Como o contador do programa do microcontrolador 8032 executa as intruções?

O O contador do programa é simplesmente responsável por manter o endereço da próxima instrução a ser executada. Outras partes da CPU executam as instruções.

De qual endereço de memória externa o programa deve ser lido?

Endereço 0.

Se você deseja usar interrupções em seu programa, existem outros endereços na memória de baixo espaço de código que são reservados para eles, portanto, o código que você a execução na redefinição terá que “pular” esses endereços reservados.

Comentários

  • Esta é a resposta à primeira pergunta. Vou marcar com +1. Você poderia elaborar a segunda parte da pergunta? Essa parte eu não consigo ‘ nenhuma pista.
  • Veja a edição acima.

Resposta

O 8032, que é uma variante do 8052, não possui ROM interna para armazenamento de programa. Em vez disso, uma ROM / EPROM / EEPROM externa deve ser usada para manter o programa.

Duas portas são usadas para acessar a memória externa: Porta 0 (linhas P0.0-P0.7) emite o baixo 8 bits de um endereço de 64 K de 16 bits e também servem como barramento de dados de 8 bits de leitura / gravação após o endereço ter sido bloqueado pela memória externa.

P2 (linhas P2.0-P2.7 ) são usados para emitir os 8 bits altos do endereço de 64 K de 16 bits.

Embora o 8032 tenha 256 bytes de RAM interna, isso pode ser estendido adicionando um chip de RAM ao barramento de endereço externo também .

A linha de endereço externo \ $ \ mathsf {\ small \ overline {\ text {EA}}} \ $ é mantida baixa para indicar se um acesso está sendo feito à memória externa do programa, caso contrário, externa RAM é assumida.

Para executar o código fora da memória externa, o endereço do contador do programa é enviado nas linhas de dados da Porta 0 e da Porta 2; então, durante o ciclo de leitura, o (s) byte (s) recuperado (s) da ROM são lidos na Porta 0 e executados pelo processador.

Apenas uma instrução é buscada por vez.

\ $ \ mathsf {\ small \ overline {\ text {PSEN}}} \ $ é um estroboscópio usado durante o acesso à memória externa do programa.

Comentários

  • .: Mas como ele executa programas que residem na memória externa? Olha, não estou entendendo como o PC vai se comportar quando o programa está na memória externa. Quero dizer, a cada ciclo de m / c ele busca algum número de bytes. Depois de buscá-lo, o programa é executado imediatamente ou todo o programa é obtido de uma vez > se for esse o caso, onde ele será armazenado?
  • .: Portanto, inicialmente PC=0000h. Ele começa a buscar bytes a cada ciclo de m / ce, em seguida, executa? Portanto, na ROM, sempre devemos gravar o programa do endereço 0000h, caso contrário, não poderíamos executá-lo corretamente.
  • @learner. Correto. Normalmente, haverá um salto no endereço para o ” real ” início do código.
  • .: I marcará com +1 sua resposta. Mas se o programa for executado instrução por instrução, como a referência de encaminhamento como essa será gerenciada? L1:JNZ L2 .. L2:.....
  • A instrução JNZ (e outras instruções de Jump e Branch) carregam o endereço de destino do Jump no contador do programa, de modo que o processador buscará o próximo instrução desse endereço, em vez da instrução imediatamente após o salto.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *