Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 7 – 25/02/2021
Microcontroladores (uC) e Sistemas Embarcados
O Microcontrolador é um computador ou
sistema completo em um chip ou do inglês
“System on Chip” (SoC). Esse chip possui pelo
menos um processador, uma unidade de memória
e um canal de entrada e/ou saída, mas
comumente possuem periféricos adicionais de
comunicação (Serial, I2C, SPI, UART/USART,
etc), temporização, entre outros.
Porém a lei de Moore está prestes a ser aposentada, devido a inviabilidade custo versus
desempenho para diminuir-se ainda mais os 7nm (atual menor transistor) dos processadores
atuais. Procuram se novas alternativas como: sistemas que exijam menos dos processadores e
verticalização dos transistores (várias camadas).
Microcontroladores: Lei de Moore e Transistors
59.400.000.000
Microcontroladores: Arquiteturas de Processadores
Von Neumann Harvard
Dados Endereços
CPU CPU
Endereços Endereços
Dados de Instrução de Variáveis
Entrada/Saída Entrada/Saída
Microcontroladores: Arquiteturas
Von Neumann Harvard
1CISC - Complex Instruction Set Computer, ou, em uma tradução literal, "Computador com um Conjunto Complexo de Instruções“
2RISC - Reduced Instruction Set Computer; em português, "Computador com um conjunto reduzido de instruções“
3Pipelining – Execução de instruções em série
Microcontroladores: Processador ou CPU1
• A função da CPU é interpretar as instruções de programa.
CPU
• Unidade lógica e aritmética (ULA ou ALU): executa operações
lógicas e aritméticas; UC
• Unidade de controle (UC): decodifica instruções, busca
operandos, controla o ponto de execução e desvios; ULA
• Memória/Registradores/Cache: armazenar dados para o
processamento. MEM
Resistiva
Microcontroladores: Memória Não Volátil
• ROM OU PROM - Pode ser gravado apenas uma vez
• EPROM – Memória ROM capaz de ser apagada através de luz
UV.
• EEPROM – Memória ROM que pode ser eletricamente apagada.
(pronúncia E2PROM).
• EAROM – As informações podem ser parcialmente alteradas
eletricamente.
• FLASH– Memória de armazenamento dos Programas. Tipo
particular de memória EEPROM. Diferentemente da EEPROM
que apaga as informações ao reescrever os dados ao mesmo
tempo, a memória Flash tem a capacidade de apagar os dados
em blocos, o que torna mais viável para aplicações que requerem
atualização mais frequente dos dados.
• CD-ROM, DVD-ROM
ROM – “Read-Only Memory” ou Memória Somente Leitura
EPROM – “Erasable Programable Read-Only Memory” ou Memória Programável Apagável Somente Leitura.
EPROM – “Electrically Erasable Programable Read-Only Memory” ou Memória Eletricamente Programável
Apagável Somente Leitura.
EAROM – “Electrically Alterable Programable Read-Only Memory” ou Memória ou Memória Programável
Alterável Somente Leitura. Programável Apagável Somente Leitura.
Microcontroladores: Entradas e Saídas (I/O1)
• Apesar de Port ser
• Portas ou “Ports” são os meios de
traduzido como porta
comunicação do CPU com o mundo externo.
ele tem o sentido de
Também são conhecidas com GPIOs ou
Porto, ou seja, que
Portas de Entrada e Saída de Proposito Geral.
liga o país/cidade
com o mundo afora.
• As portas podem funcionar como Portas de
Entrada e Saídas Digital ou alternar para
portas com Função.
(Atmega328P – pag.85)
(Atmega328P – pag.89)
Microcontroladores: I/O Funções Alternativas
• A maioria dos pinos de um microcontrolador possuem funções adicionais além da I/O
geral.
Microcontroladores: Projeto de Sistemas Embarcados
Um projeto que envolve Sistemas Microprocessados pode ser dividido em duas
principais linhas, uma relacionada com o circuito eletrônico (Hardware) e outra
relacionada com a programação (Software).
• Descrição do Funcional: Definir as interações que o sistema terá com o mundo
externo (ex. sensores, atuadores, etc) e os controles/monitoramentos (PID, buffers,
PWM, etc) necessários (Resumo solicitado).
• Descrição do Comportamento: Descrever/detalhar as funcionalidades,
configurabilidade, eventos e tratamentos do sistemas.
• Funcionalidades: Tarefas (funções) que serão executadas (ex. Ler sensor, ascender
Led, atuar motor, etc).
• Configurabilidade: Tudo que terá que ser configurável, desde inicialização até
parâmetros das funções e Classes. (ex. inicializar serial, função do motor tem que ter
variação de velocidade, definir pinos dos leds, etc.)
• Eventos: refere-se mais ao tempo em que as coisas ocorrerão. (ex. a função de ler
sensor deve acontecer a cada 10 segundos, a cada 1 segundo o led ascende e
apaga, etc).
• Tratamentos: o que precisa ser feito após os eventos acontecerem (ex. converter
sensor de mV para metros, converter rotação em mV PWM para o motor, etc.)
Microcontroladores: Projeto de Sistemas Embarcados
Um projeto que envolve Sistemas Microprocessados pode ser dividido em duas
principais linhas, uma relacionada com o circuito eletrônico (Hardware) e outra
relacionada com a programação (Software).
• Descrição Estrutural do Sistema: Descrever como será a estrutura do sistema.
• Blocos Funcionais: Criar blocos que descrevam cada função do sistema.
Normalmente utiliza-se blocos retangulares.
• Relacionamento: Através de setas indicar as e como os blocos se interconectam.
Potenciômetro
Conversor
Ler Entrada
mV para
Analógica Ângulo Conversor
Envia
mV para
Display
Ângulo
Atuar
Motor
Motor
Externo Interno uC
Microcontroladores: Projeto de Sistemas Embarcados
Um projeto que envolve Sistemas Microprocessados pode ser dividido em duas
principais linhas, uma relacionada com o circuito eletrônico (Hardware) e outra
relacionada com a programação (Software).
• Especificação: Descrever todas as funcionalidade e restrições do seu sistema.
Pensando no meio comercial, seria onde você disponibilizaria ao seu cliente todas as
informações sobre seu produto para que o mesmo possa implementá-lo em seu
ambiente. No caso dos Microcontroladores todos os fabricantes disponibilizam o
DataSheet (folha de dados) dos seus produtos.
• Especificação de Algoritmos: Descreve o fluxograma de funcionamento do seu
sistema, com seus estados e ações.
• Especificação de Estrutural: Descrever todo os dispositivos físicos utilizados
(atuadores, sensores, outros), assim como a temporização de cada e suas
características elétricas.
Microcontroladores: Projeto de Sistemas Embarcados
Um projeto que envolve Sistemas Microprocessados pode ser dividido em duas
principais linhas, uma relacionada com o circuito eletrônico (Hardware) e outra
relacionada com a programação (Software).
• Desenvolvimento: Por em prática todo o planejamento de Software e Hardware
descritos anteriormente.
• Captura do Projeto: Projeto do esquemático da parte elétrica, com lista de peças e
conexões. Seguir regras de simbologia.
• Programação: Construção do programa para execução das tarefas. O
desenvolvimento ideal de um algoritmo visa implementar as funções/tarefas/blocos e
testá-las separadamente para então uni-las em um código principal.
• Validação: Testar o sistema nas condições descritas nas especificações e verificar
se o mesmo “funciona” sob diferentes condições.
Microcontroladores: O “DataSheet”
O Datasheet é o material disponibilizado pela fabricante que contém
todas as informações sobre o Microcontrolador e suas
funcionalidades. É possível encontrar o datasheet de um
determinado Microcontrolador no site do seu fabricante.
Datasheet Atmega328P (Utilizado no Arduino UNO)
ATmega328P - 8-bit Microcontrollers (microchip.com)
Microcontroladores: Registradores
Espaço na memória da CPU de n bits de acesso rápido responsável por armazenar a
configuração e o estado de funções. Existem os Registradores de Proposito Geral e os
Registradores de Funções Especiais (SFR).
• Registradores de Proposito Geral são registradores cuja função são determinados pelas
instruções do sistema. (Direção das Portas e/ou Funções Alternativas, configuração de
Clock, etc).
• A lista de registradores é descrita ao longo de todo o datasheet porém existe uma lista
completa sempre ao final do documento. (ex. Atmega328P Register Summary pag. 621).
Microcontroladores: Tamanho de Registradores
Coleção de células individuais chamadas de bits.
O número de bits de um microcontrolador indicam o tamanho das células de um registrador.
Por exemplo: Microcontroladores 8 bits possuem registradores de 8 células. Onde cada célula é
numerada de 0 à 7 da direita para esquerda.
b7 b6 b5 b4 b3 b2 b1 b0
8 bits 1 1 1 1 1 1 1 1 => 255 (unsigned)
b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
16 bits
MSB1 LSB2
PORTB = PORTB|0b00100000;
PORTB | = 0b00100000;
b7 b6 b5 b4 b3 b2 b1 b0
8 bits 1 0 0 0 1 1 1 1 ATUAL
0 0 1 0 0 0 0 0 MÁSCARA
1 0 1 0 1 1 1 1 RESULTADO
Microcontroladores: Operação com Bits
Operação com Bits ou Lógica Binária trata-se da operação em mais baixo nível, os bits.
AND ou Conjunção Binária: E. Utiliza-se símbolos & (binário) e & & (booleano)
• Retorna 1 se apenas os dois bits forem verdadeiros (1).
b7 b6 b5 b4 b3 b2 b1 b0
8 bits 1 0 0 0 1 1 1 1 ATUAL
1 1 0 1 1 1 1 1 MÁSCARA
1 0 0 0 1 1 1 1 RESULTADO
Microcontroladores: Operação com Bits
Operação com Bits ou Lógica Binária trata-se da operação em mais baixo nível, os bits.
b7 b6 b5 b4 b3 b2 b1 b0
8 bits 1 0 1 0 1 1 1 1 ATUAL
0 0 1 0 0 0 0 0 MÁSCARA
1 0 0 0 1 1 1 1 RESULTADO
Microcontroladores: Deslocamento de Bits1
Mudança de posição dos bits.
1 0 1 0 1 1 1 1 RESULTADO
1Também conhecido como “Bit Shifting”
2Também conhecido como “Shift Right”
Microcontroladores: Deslocamento de Bits1
Mudança de posição dos bits.
1 0 1 0 1 1 1 1 RESULTADO
1Também conhecido como “Bit Shifting”
2Também conhecido como “Shift Left”
Microcontroladores: Lógica Binária em uC
É muito comum aplicar Lógica Binária a programação de uC.
(Atmega328P – pag.37)
(5) TIPOS DE CLOCK | Curso de PIC #018 – YouTube (vídeo com mais informações e simulação no Youtube).
Microcontroladores: Processador e “Clock”
Tipos de Circuito Clock para Microcontroladores:
• Oscilador RC calibrado Interno
• Cristal Oscilador / Baixa Frequência / Baixo Consumo
• Clock Externo CLKIN (RC, Schmitt trigger, 555)
(Atmega328P – pag.43)
Microcontroladores: Processador e “Clock”
Tipos de Circuito Clock para Microcontroladores:
• Oscilador RC calibrado Interno
• Cristal Oscilador / Baixa Frequência / Baixo Consumo
• Clock Externo CLKIN (RC, Schmitt trigger, 555)
(Atmega328P – pag.38)
(Atmega328P – pag.40)
(Atmega328P – pag.39)
Microcontroladores: Processador e “Clock”
Tipos de Circuito Clock para Microcontroladores:
• Oscilador RC calibrado Interno
• Cristal Oscilador / Baixa Frequência / Baixo Consumo
• Clock Externo CLKIN (RC, Schmitt trigger, 555)
(Atmega328P – pag.42)
Microcontroladores: Processador e “Clock”
Tipos de Circuito Clock para Microcontroladores:
• Oscilador RC calibrado Interno
• Cristal Oscilador / Baixa Frequência / Baixo Consumo
• Clock Externo CLKIN (RC, Schmitt trigger, 555)
(Atmega328P – pag.44)