Microcontrolador
O primeiro microcontrolador foi lançado pela Intel em 1978 e recebeu a sigla 8048, que depois evoluiu, dando origem à família 8051, em 1983. A Intel ainda oferece a família 8096, que trabalha em 16 bits, possibilitando maior capacidade de processamento.
Hoje em dia, uma grande quantidade de fábricas de semicondutores oferece microcontroladores. Dentre elas, citamos a Zilog com sua família Z8, a National com o COP8, a Motorola com o 6811 e a Microchip com seus PICs.
Devido à sua grande aceitação, a família do microcontrolador 8051 passou a ser produzida por outros fabricantes e, é claro, cada um deles introduziu inovações. Por isso, atualmente a família 8051 é a que oferece a maior variedade de opções.
Os microcontroladores tipicamente integram RAM, ROM e I/O, assim como, a CPU no mesmo circuito integrado. Por outro lado, o espaço para armazenamento de programas é limitado (comparando com os microprocessadores) e normalmente o conjunto de instruções é desenvolvido em número inferior aos microprocessadores.
Na figura abaixo veremos em detalhes a composição interna da CPU juntamente com suas funções.
Unidade Lógica/Aritmética (ULA): A ULA e utilizada para realizar operações lógicas e
aritméticas definidas no conjunto de instruções da CPU. Vários circuitos implementam as operações aritméticas binárias decodificas pelas instruções e fornecem dados para a execução da operação na ULA. A maioria das operações aritméticas binárias são baseadas em algoritmos de adição e subtração (adição com o valor negativo). A multiplicação e realizada através de uma serie de adições e deslocamentos com a ULA sob controle lógico da CPU.
Controle da CPU: O circuito de controle da CPU implementa o seqüenciamento de elementos
lógicos necessários para a ULA realizar as operações requisitadas durante a execução do programa. O elemento central da seção de controle da CPU é o decodificador de instruções.
Registradores da CPU: A CPU08 contem 5 registradores como apresentado na figura anterior.
Os registradores da CPU são memórias especiais que não fazem parte do mapa de memória.
O registrador Program Counter (PC) e usado pela CPU para controlar e conduzir ordenadamente a busca do endereço da próxima instrução a ser executada. Quando a CPU e energizada ou passa por um processo de reset, o PC e carregado com o conteúdo de um par de endereços específicos denominados vetor de reset (reset vector).
Processador
Os próximos parágrafos procuram dar uma idéia da nomenclatura utilizada no restante deste documento e introduzir os componentes principais da arquitetura de microcomputadores ou de circuitos controlados a microprocessador.
HARDWARE: consiste de circuitos eletrônicos responsáveis pela execução direta de instruções em linguagem de máquina: CIs, placa impressa, cabos, fontes de alimentação, etc.
SOFTWARE: consiste de algoritmos e suas representações no computador (programas).
FIRMWARE: consiste de um software embutido em circuitos eletrônicos.
É comum dizer que qualquer operação feita por software pode também ser construída por hardware e qualquer instrução executada pelo hardware pode também ser simulada por software.
Um sistema de microcomputador típico é mostrado na figura 1. Basicamente, são três os componentes de qualquer sistema controlado por microprocessador ou mesmo de um sistema de computação: Unidade Central de Processamento (CPU), Memória e Dispositivos de Entrada/Saída (I/O).
A CPU tem finalidade óbvia, a de controlar o sistema como um todo. A memória serve para armazenar os dados que serão manipulados e os dispositivos de E/S para a comunicação da máquina com o mundo exterior (usuário).
Os vários tipos de Memória são definidos a seguir: RAM - "Random Access Memory": memória de leitura/escrita, volátil, para armazenamento temporário de programas e dados; RAM Estática - RAM com menor densidade e mais rápida que a RAM dinâmica. Não necessita de circuitos adicionais em um microcomputador.
RAM Dinâmica - RAM com maior densidade e mais lenta que a RAM estática. Necessita de circuitos adicionais de controle em um microcomputador.
ROM - "Read Only Memory": memória programada quando a pastilha é fabricada, não podendo ser modificada. É usada para armazenamento permanente de programas e dados;
PROM - "Programmable ROM": memória programada por um dispositivo programador de PROM. Programável uma única vez;
EPROM - "Erasable PROM": memória que pode ser apagada e reprogramada várias vezes. Apagável pela incidência de raios ultra-violeta e programável por um dispositivo programador de EPROM;
próxima seção.
Figura 1 – Sistema de Microcomputador Típico e suas Interfaces
SISTEMA DE BARRAMENTOS
Um sistema de barramentos é definido como um conjunto físico de linhas de sinal que possuem funções específicas dentro do sistema.
O sistema de barramentos de um microcomputador é composto de 3 barramentos (ver figura 1) independentes em suas funções elétricas: o barramento de endereços, o barramento de dados e o barramento de controle.
O Barramento de Dados é bidirecional, sendo o meio de comunicação entre os componentes do sistema. Na saída de dados da CPU, estes são gerados pelo microprocessador (CPU) e enviados à uma unidade que é selecionada pelo barramento de endereços. Na entrada de dados, estes são gerados por uma unidade particular e enviados ao microprocessador.
O Barramento de Controle, como o próprio nome indica, envia e recebe os sinais de controle necessários à transferência de dados no sistema. Este barramento é composto, basicamente, de 4 tipos de sinais: leitura de memória ativa, escrita de memória ativa, entrada através de dispositivo externo ativo e saída através de dispositivo externo ativo.
ARQUITETURA PADRÃO DE UM MICROPROCESSADOR
Depois de se examinar um sistema de microcomputador de forma global, nesta seção será apresentada a arquitetura padrão de um microprocessador, exibida na figura 2.
Destacam-se os seguintes blocos:
Registrador de Instrução (RI) - registrador que armazena a instrução sendo executada;
Contador de programa ("Program Counter - PC") - registrador que armazena o endereço de
memória da próxima instrução a ser executada;
Acumulador - registrador que contém o dado a ser processado;
Apontador de pilha ("Stack Pointer - SP") - registrador que aponta para o endereço de retorno
de subrotina, sendo este último armazenado em uma pilha na memória;
Unidade Lógica e Aritmética (ULA) - circuito combinacional utilizado para operações lógicas e
aritméticas envolvendo dois operandos;
Decodificador de instruções - circuito combinacional utilizado para determinar qual a próxima
instrução a ser executada. Isto é feito a partir do código de operação armazenado previamente no Registrador de Instrução;
Unidade de controle - circuito seqüencial interno ao microprocessador utilizado para gerar os
sinais de controle necessários à execução da instrução previamente decodificada;
Registradores auxiliares - conjunto de registradores de rascunho que podem ser usados em
conjunto ou separadamente para operações intermediárias, sem que seja necessário o acesso sistemático à memória;
Flags – conjunto de Flip-Flops destinados a guardar as condições resultantes da execução de
Figura 2 – Arquitetura Padrão de um Microprocessador
CICLO DE BUSCA E CICLO DE EXECUÇÃO
O microcomputador/microcontrolador é uma máquina eletrônica capaz de buscar e executar instruções de programas alocados em memória;
Após a energização de um microcomputador/microcontrolador, é gerado um sinal de reset que zera o Program Counter (PC), ou seja, posiciona o Contador de Programa no endereço inicial. O programa é executado a partir de seu início;
Para buscar uma instrução na Memória, o microprocessador/microcontrolador gasta um determinado tempo chamado de Ciclo de Busca. Para executar a instrução buscada, requer um outro tempo determinado chamado de Ciclo de Execução.
Ciclo de Busca: operação de leitura de uma instrução a partir da posição de memória cujo
endereço é definido pelo conteúdo do PC. Nesse ciclo o conteúdo do PC é incrementado de uma, duas ou três unidades. Isso depende do tamanho da instrução;
Ciclo de Execução: executa a instrução (operações de movimentação de informação,
operações aritméticas e lógicas, etc.).
Fluxo da Instrução
Fonte: