Sistemas
Sistemas
Microcontrolados
Microcontrolados
Aula 2: Arquitetura de Sistemas uC
Marco Jose da Silva
[email protected]
Sistemas Embarcados: Definição
• Sistemas embarcados =
– Sistemas de processamento de informações
embarcados em um produto maior
– Peter Marwedel (TU Dortmund)
• Dois tipos de computação
– Desktop – produção milhões/ano
– Embarcado – bilhões/ano
• Sistemas não embarcados
– PCs, servidores, e notebooks
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 3
• Controle automotivo:
– motor, freios …
• Aviões
– motor, controles de vôo …
• Forno de microondas
• Câmera digital
• Telefone celular
• Smart phones
• Sensores inteligentes
• ...
Exemplos sistemas embarcados
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 4
Diagrama em Bloco de uma Câmera Digital
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 5
Analógico
Digital
Analógico
Memória
Coprocessadores
Controladores
Conversores
Processador
Interface
Software
(Aplicação)ASIC
Componentes de um Sistema Embarcado
• Componentes Analógicos
– Sensores, atuadores, …
• Componentes Digitais
– Processadores, coprocessadores, memórias, barramentos
– Controladores, hardware de aplicação específica
• Conversores
– Conversor Analógico-Digital (ADC), DAC …
• Software
– Sistema Operacional
– Aplicações (ex. interface com usuário)
– Firmware (programação em baixo nivel)
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 7
• Aplicação Específica
– Aplicações são conhecidas a priori
– Otimização para custo, área, potência, e desempenho
• Processamento Digital de Sinais
– Sinais são representados digitalmente
• Sistemas Reativos
– Reage a mudanças no ambiente do sistema
• Tempo Real
– Tarefas devem ser computadas antes de um deadline
• Distribuído, em Rede, …
Características dos Sistemas Embarcados
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 8
• Sistema embarcado: sistema que possui
um processador mas não é um
computador de propósito geral
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 9
Histórico e Evolução
Histórico
Transistor
(1947)
Circuito integrado
(1958)
4004 e
TMS1000
(1971)
1o. uC e uP
4 bits
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 11
Lei de Moore (Gordon Moore – cofundador da Intel)
Número de transistores em um chip dobrará a cada ano.
Desde 1970, isso diminuiu um pouco.
Número de transistores dobra a cada 18 meses.
Custo de um chip permaneceu quase inalterado.
Maior densidade de empacotamento significa caminhos elétricos mais
curtos, gerando maior desempenho.
Menor tamanho dos chips --> computadores menores --> maior
flexibilidade.
Redução nos requisitos de consumo e resfriamento.
Menos interconexões aumenta a confiabilidade.
Evolução de computadores
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 12
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 13
Todo sistema eletrônico complexo, incluindo o
computador, possui uma hierarquia.
Constituído de um conjunto de subsistemas
inter-relacionados, cada qual também podendo ser
hierárquico.
Projetista lida com um nível particular do sistema.
Estrutura é o modo como os componentes são
inter-relacionados.
Função é a operação individual de cada componente
como parte da estrutura.
Estrutura e função
Processamento, armazenamento e transferência
(movimentação) de dados.
Controle destas 3 funções.
*** Figuras retiradas do livro Arquitetura e Organização de Computadores - William Stallings.
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 15
a) Movimentação de Dados:
ex: teclado para Display
b) Armazenagem:
ex: internet para disco
c) Processamento de/para
memória:
ex: atualizar dados
bancários
d) Processamento da memória
para E/S:
ex: imprimir dados bancários
Funções - operações
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 16
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 17
Primeira geração 1945 - 1957
Válvulas eletrônicas.
Sem SO.
Programadores submetiam seus programas em linguagem de
máquinas, 1 bit por vez.
ENIAC (Electronic Numerical Integrator Computer) - 1946
30 toneladas e área de 140 m
2.
18 mil válvulas e consumo de 140KW.
Máquina decimal e não binária.
5 mil adições ou 360 multiplicações por segundo.
Programado manualmente por chaves.
Evolução dos computadores
Segunda geração - 1958 - 1964
Transistores no lugar de válvulas (menor, mais barato e dissipa menos
calor).
Primeiros sistemas em lotes (Assembly)
Programa inteiro era carregado na memória.
Dias para execução completa de um programa.
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 19
Terceira geração 1965
-1971
Hardware
Circuitos Integrados.
Portas lógicas e/ou
células de memória.
Sistemas Operacionais
Multiprogramação.
Uso do processador
maximizado.
Evolução de computadores
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 20
A partir da 3
a
geração, menor consenso sobre a
definição das gerações restante.
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 21
Evolução de computadores
Processadores de propósito geral
• Um sistema construído com um microprocessador
requer memória, entradas e saídas externas
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 23
Arquitetura
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 24
CPU
CPU
Baseia a estrutura de quase todos os computadores,
desde o smartphone até o mainframe.
Barramento
Mem
Memó
ó
ria
ria
UC
UC
ULA
ULA
I/O
I/O
Arquitetura de Von Neumann
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 25
A UC, ULA e memória comunicam-se usando o
barramento.
A memória é dividida em endereços que representam
bytes.
Endereços de memória possuem instruções ou dados.
Exemplo: "leia o byte que está na posição 2 da memória, some com
aquele que está na posição 3 e guarde na posição 4".
Operações lógicas e aritméticas são feitas na ULA.
E quem comanda esse processo de transferir dados
entre a memória e a ULA é a UC.
A UC possui um ciclo infinito de buscar a instrução na
memória, decodificá-la e executá-la.
Arquitetura de Von Neumann
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 27
Execução repetida de um ciclo de instruções (fetch, decode e
execute).
Ciclo de instruções
Buscar instrução
Decodificar
instrução
Executar
ação
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 28
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 29
O que é um microcontrolador ?
Microprocessador + Memória de programa + Memória de dados + Periféricos
http://www.mikroe.com/eng/products/view/11/book-pic-microcontrollers/
Estrutura básica de um uC
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 31
Arquitetura interna de um uC
Arquitetura von-Neumann
Arquitetura Harvard
Microprocessadores
DSP, Microcontroladores
Único barramento para memórias e
Entrada-Saída
(possibilidade execução de
Barramentos separados
atividade em paralelo)
CPU CPU Mem
Memóóriaria UCUC ULA ULA
I/O I/O
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 32
Memórias
Endereço = posição de mem.
Conteúdo = informação no end.
Tipos:
• Leitura/escrita. (Volátil)
Ex: RAM (Random Access Memory)
• Somente leitura. (Não-volátil)
Ex: ROM (Read-Only Memory)
UV-ROM
• Leitura/escrita. (Não-volátil)
Ex: EEPROM, FLASH
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 33
CPU - Central Processor Unit
Unidade central de processamento (UCP)
• Acumulador: registrador especial, sempre um dos operandos da ULA
• Decodificador de instruções: interpreta as instruções (microcódigo)
• Unidade lógica e aritmética (ULA): executa funções AND, OR, +, *, ...
• Status Register (PSW): registrador especial com flags
Instruções
Instrução de Máquina
Um comando codificado como uma sequência de bits compreensível
para a unidade de controle.
• Linguagem de Máquina
–
Conjunto das instruções reconhecidas pela unidade de controle
• Tipos de Instruções:
–
Transferência: copia dados de uma localização para outra
–
Aritmética/Lógica: Comanda operações na ULA
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 35
Conjunto de instruções – Instruction Set
Divisão de valores armazenados na memória (x=y÷z)
1. Carrega y em R1
2. Carrega z em R2
3. Se R2 = 0, PULE para instrução 6
4. Comande a ULA para dividir R1 e R2 e armazenar o resultado em R3
5. Armazena R3 em x
6. PARE
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 3636
RISC
(Reduced Instruction Set Computing)
Poucas instruções.
Simples e rápidas.
Ex: PowerPC, SPARC.
• CISC
(Complex Instruction Set Computing)
–
Muitas instruções.
–
Mais complexas e convenientes
–
Ex: Intel, AMD.
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 37
Registradores
Posição de memória – p.ex. variável de um programa
SFR - Special Function Register
(Registrador de Função Especial)
Tem alguma função no uC: Flags,
controlar periférico, etc.
Portas
(SFR)
Mapeiam Dados para pinos do uC
TTL/CMOS 5V
1 = 5V, 0 = 0V
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 39
Alguns exemplos básicos
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 40
Exemplo: Microcontrolador PIC 16F628A
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 41
Program written in C
Compiled Program (Assembly)
HEX (PIC Executable)
Etapas de gravação no uC
PIC
PORTB
V
LED 2V
V
HIGH= 5V
V
HIGHV
LEDR
I
I = 20mA
R = 150Ω
…
Exemplo: LED
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 43
void main()
{
INTCON=0;
OPTION_REG=0;
TRISB=0;
PORTB=0;
while(1)
{
delay_ms(500);
PORTB=~PORTB;
}
}
Programa em C – Pisca LED
http://www.mikroe.com/mikroc/pic/
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 44
void main()
{
INTCON=0;
OPTION_REG=0;
TRISB=0;
PORTB=1;
while(1)
{
delay_ms(500);
PORTB=PORTB<<1;
if(PORTB==0) PORTB=1;
}
}
Sistemas Embarcados Marco Jose Da Silva [email protected] Slide 45