Internamente, um microcontrolador possui diversos módulos. Assim como um computador, cada módulo possui uma função específica. Em geral, apresentam uma unidade de processamento simples, memória e dispositivos de entrada e saída [8]. Em uma visão superficial, o sistema pode ser apresentado conforme o diagrama.
Nesse diagrama estão os principais elementos de um microcontrolador. O núcleo (Core) é o processador que coordena a operação do sistema. Na memória são colocadas informações que coordenarão a operação do processador, isto é, as instruções que o processador executará. Para interagir com o meio externo são usados periféricos, representado pelo módulo de entradas e saídas. Cabe destacar os terminais, ou pinos, que fazem a interface entre o microcontrolador e o meio externo.
Microcontroladores apresentam diversos terminais com funções variadas:
Alimentação – Para que o microcontrolador funcione é preciso uma fonte de tensão contínua que atenda aos requisitos elétricos do dispositivo. Dependendo do encapsulamento do chip, e das características do microcontrolador, um ou mais terminais devem ser conectados na fonte.
Reset – A função principal desse pino é reiniciar o microcontrolador, isto é, definir um estado conhecido – lembre-se que é circuito digital sequencial – para iniciar a execução do programa armazenado na memória. Esse pino também é utilizado para funções de programação do dispositivo.
Controlados por periféricos – Podem ser usados como entradas e saídas de propósito geral. Ou ainda, exercer uma função específica em um periférico do microcontrolador. Diversos microcontroladores apresentam terminais com funções multiplexadas e podem assumir diferentes funções dependendo da configuração realizada.
Analógicos – Alguns periféricos do microcontrolador atuam com sinais analógicos. Por exemplo, comparadores analógicos e conversores de sinais (A/D ou D/A).
Clock – As operações executadas pelo processador são governadas por um sinal de sincronismo, denominado clock [1]. O sinal de sincronismo pode ser gerado internamente ou externamente. Externamente, o modo mais comum de gerar esse sinal é com a utilização de circuitos eletrônicos em conjunto com elementos piezoelétricos, formando um sistema chamado de oscilador Pierce [11, 12]. Em geral, tais sistemas utilizam cristal de quartzo ou ressonador cerâmico como oscilador [11, 12].
Internamente, alguns microcontroladores apresentam circuitos osciladores RC. Independente da fonte, cabe ressaltar que velocidade do processador é ditada pela frequência do sinal de clock [1], que corresponde a taxa de pulsos por segundo. Além disso, o tempo necessário para executar uma instrução é medido com relação a quantidade de ciclos do sinal de clock [1, 8].
Todo microcontrolador possui internamente uma seleção de periféricos que podem variar em quantidade e complexidade [6]:
Complexidade: Nível Baixo
Conversor de sinal (D/A e A/D);
Comparador analógico;
Barramentos: I2C, SPI, CAN;
Temporizadores e contadores;
Watchdog;
Interface serial assíncrona e síncrona.
Complexidade: Nível Médio
USB;
IrDA cde alta velocidade;
Ethernet;
Controlador de memória: SRAM externa.
Complexidade: Nível Alto
Unidade de gerenciamento de memória (MMU);
Barramento PCI e PCIe;
Codificadores e decodificadores de vídeo;
Controlador de memória: DRAM/SDRAM externa.
Para manter o programa armazenado, microcontroladores possuem memória não volátil do tipo Flash [6]. Alguns ainda integram uma EEPROM, sendo é usada para manter dados de configuração da aplicação, por exemplo, dados de calibração. Já os dados são carregados em memória volátil do tipo SRAM [6] durante a inicialização do programa. Volatilidade: refere-se à retenção do conteúdo na memória, sendo voláteis ou não-voláteis. Isto é, a informação é perdida ou mantida na ausência de energia elétrica.