Você está na página 1de 61

Processadores e Microcontroladores utilizados em Sistemas Embarcados

Rodrigo Alves Costa

Roteiro
Introduo a Sistemas Embarcados Microprocessadores Conceitos e Histrico Detalhamento Diagrama de Blocos Conjunto de Instrues O Futuro Microcontroladores Conceitos e Histrico Microprocessadores x Microcontroladores Elementos Bsicos de um Microcontrolador Exemplos em S.E.

Sistemas Embarcados?

Definio
Sistema Embarcado Computador especfico usado dentro de um dispositivo.

Enfim...

Possui um SE, mas um microondas! Entradas no painel Controla o Display Liga e Desliga os elementos para aquecimento

Definio
Wikipedia: Um S.E. qualquer dispositivos controlado por instrues armazenadas em um chip. So normalmente controlados por um microprocessador que executa instrues armazenadas em um chip ROM. Gupta labs UCI: An embedded system employs a combination of hardware and software to perform specific function; it is part of a larger system that may not be a computer. H outras definies...

Definio
Todas concordam que S.E so:
Incorporado a outros sistemas. Precisam conviver com restries: temporais, consumo de energia etc. Funcionalidade especfica. So invisveis. So baseados em (micro)processadores
mais 90% dos microprocessadores atuais so utilizados em sistemas embarcados!

Microprocessadores
Elemento chave de todo sistema computacional.
Responsvel por clculos matemticos e tomada de deciso.

Os microprocessadores atuais contm circuitos complexos consistindo de dezenas de milhes de transistores. Operam em velocidades extramente rpidas
Computam bilhes de instrues por segundo.

So feitos de Silcio.

Histrico
O primeiro: Intel 4004 (1971)
2.250 transistores. Clock: 108 kHz (60.000 operaes por segundo). 16 pinos.

To poderoso quanto o Eniac. Custava menos de 100 dlares...

Como a Intel teve a ideia?


Contrato com Busicom
16 CIs para uma nova linha de calculadoras.

A Intel, que naquele ponto:


Conhecida como uma fabricante de memrias. No tinha recursos para fazer todos os 16 chips.

Ideia: fazer todos os 16 circuitos em um nico chip. Mais tarde, a Intel concluiria que o 4004 poderia ser usado para ainda mais coisas...

Geraes Seguintes...
1 gerao
Intel 8086 (1978) Arquitetura de 16-bit, 29.000 transistores Em 1981, a IBM apresenta o PC (barramento de 8-bit)

2 gerao
Motorola 68000 (1979) Arquitetura de 32-bit, 68.000 transistores, MIPS Usado no Apple Mac, Silicon Graphics etc.

3 gerao
MIPS R2000 (1985) Primeiro microprocessador RISC comercial 125.000 transistores, 5~8 MIPS, Pipeline

4 gerao
MIPS R4000 (1991) Arquitetura de 64-bit, cache secundria. 1,4M transistores Uso: traduo de instrues x86 e Pentium X em RISC internamente

Mais recentemente...
Intel Pentium 4 (2.2 GHz)
Apresentado em Dezembro de 2001. 55 milhes de transistores. Palavras de 32-bits de tamanho. 2 ULAs, cada uma trabalhando a 4.4 GHz. UPF de 128-bits. Uso principal: PCs e estaes de trabalho. Custo: por volta de 600 dlares.

Lei de Moore
Em 1965, por, Gordon Moore
Nmero de transistores em um CI (capacidade do microprocessador) vai dobrar todos os anos. Depois ele modificou a previso para de 18 a 24 meses.

Sua previso ainda permanece verdadeira.


Na verdade, o tempo necessrio para duplicar est retornando para previso inicial.

Evoluo dos uP da Intel


4004 8008 8080 8086 286 386 486 Pentium Pentium 2 Pentium 3 Pentium 4 100,000,000 10,000,000 1,000,000 100,000 10,000 1,000 1970

1975

1980

1985

1990

1995

2000

2005

Como melhorar a capacidade de um microprocessador?


A capacidade de processamento pode ser melhorada de formas diferentes:
Aumento do clock. Aumento do tamanho da palavra. Atravs de um algoritmo de caching mais eficiente associado ao tamanho de cache adequado. Adicionando mais unidades funcionais (ULAs, UPFs, unidades de Vector/SIMD etc.) Melhorando a arquitetura de maneira geral.

Qual a estrutura interna de um microprocessador?

Microprocessador
Cache de Dados
Barramento de Memria

RAM

Unidade de Barramento E/S Interface Decodificador de Barramento de Instrues


Sistema

Control Unit

Unidade Lgica Aritmtica Registers Unidade de Ponto Flutuante Registers

Cache de Instrues

Unidade de Barramento de Interface


Recebe instrues e dados da memria principal. As instrues so ento enviadas para o Cache de Instrues Dados para o Cache de Dados. Tambm recebe dados processados e os envia para a memria principal.

Microprocessador
Cache de Dados
Barramento de Memria

RAM

Unidade de Barramento E/S Interface Decodificador de Barramento de Instrues


Sistema

Control Unit

Unidade Lgica Aritmtica Registers Unidade de Ponto Flutuante Registers

Cache de Instrues

Decodificador de Instrues
Recebe as instrues do programa e as decodifica.
Formato compreensvel pelas unidades de processamento.

Depois, repassa a instruo decodificada para a ULA ou para a UPF.

Unidade Lgica Aritmtica (ULA)


Tambm conhecida como a unidade integradora. Realiza:
Clculos matemticos (subtrao, multiplicao, diviso etc.) Comparaes (maior que, menor que etc.) Operaes lgicas (NOT, OR, AND etc.)

A nova safra de microprocessadores no possuem apenas um, mas duas ou mais ULAs idnticas
Clculos simultneos, multiplicando a capacidade.

Unidade de Ponto Flutuante


Tambm conhecida como a unidade numrica. Realiza clculos que envolvem nmeros representados em notao cientfica (pontos flutuantes).
Forma de representar nmeros extremamente pequenos e grandes de forma compacta.

Clculos mais complexos


Simulaes cientficas. Grficos de alta preciso. Clculos de Engenharia Pesada.

Poderia ser realizado pela ULA?

Microprocessador
Cache de Dados
Barramento de Memria

RAM

Unidade de Barramento E/S Interface Decodificador de Barramento de Instrues


Sistema

Control Unit

Unidade Lgica Aritmtica Registers Unidade de Ponto Flutuante Registers

Cache de Instrues

Registradores
Quantidade pequena de memria particular
Para uso exclusivo da ULA e da UPF Encontram-se fisicamente prximos a essas unidades.

A ULA e a UPF armazenam nos registradores resultados finais (processados) e temporrios (intermedirios) dos seus clculos.
Dados processados retornam ao Cache de Dados e posteriormente, iro para a memria principal.

Unidade de Controle
O crebro do microprocessador. Gerencia o microprocessador inteiramente. Suas responsabilidades (tarefas) incluem:
Recuperao de instrues e dados (FETCH). Armazenamento de dados. Gerenciamento de perifricos de entrada e sada.

Microprocessador
Cache de Dados
Barramento de Memria

RAM

Unidade de Barramento E/S Interface Decodificador de Barramento de Instrues


Sistema

Control Unit

Unidade Lgica Aritmtica Registers Unidade de Ponto Flutuante Registers

Cache de Instrues

Esta foi a estrutura, vamos falar agora sobre a linguagem de um microprocessador... ... e depois do futuro!

Conjunto de Instrues
O conjunto de instrues de mquina que um microprocessador reconhece e pode executar
a linguagem que o microprocessador conhece.

Inclui instrues de baixo nvel, representando um passo por vez


adio, subtrao, multiplicao e diviso.

Cada famlia de microprocessadores possui seu conjunto de instrues particular e nico.


Quanto maior o conjunto de instrues, mais complexos so os chips. Permitiro tambm programas menores.

O Futuro dos Processadores


Cluster On a Chip (CoC)
Uso de muitos processadores simples num nico chip.
A performance aumenta linearmente ao nmero de transistores. Menor time-to-market por causa de reuso.

Inspirao: Google
Cluster de PCs hoje com 8000 computadores e 16000 HDs.

MPU de 32-bit como um grande transistor.


Cluster on a chip de at 1000 processadores. Razo MIPS/$ e MIPS/watt otimizada .

O Futuro dos Processadores


VIRAM-1
Processador / Memria integrados Vetor de processamento de 256-bit 14 MBytes DRAM 3,2 bilhes de operaes por segundo Mais de 100 milhes de transistores. Implementada por 6 estudantes de graduao de Berkeley

E os Sistemas Embarcados? E os Microcontroladores?

Sistemas microprocessados
Microprocessadores so peas de hardware poderosas, mas no so muito teis sozinhos... Sistema microprocessado
microprocessador + componentes que so necessrios para realizar uma dada tarefa.

Sistema microprocessado arquitetura bsica

CPU de controle RAM Pilha e dados ROM Programa de controle Porta Serial Comunicao Porta Paralela Perifricos de E/S Conversores Entre sinais digitais e analgicos Timers Temporizao

Custo, microprocessados e microcontroladores


Custo total como funo do preo da CPU e dos perifricos. Para reduzir custos, surgiu a ideia de colocar todos estes perifricos dentro do chip da CPU.
Embora o custo do chip isoladamente aumentasse, o custo geral da soluo seria reduzido.

Primeiro microcontrolador: TMS 1000 (1974)


Processador + clock + memrias read-only e read-write. Como resposta ao TMS 1000, a Intel lanou em 1977 o Intel 8048
Considerado ainda hoje um dos projetos mais bem sucedidos da histria da empresa.

Microcontroladores
Surgiram do barateamento dos CIs e da necessidade de microprocessadores para executar tarefas dedicadas
Tarefas dedicadas

CPUs mais simples

Controle de impressora Reguladores de velocidade Acionadores de motor de passo Elevadores

Controle geral implica em um circuito muito grande, encarecendo o custo do controlador.

Designs Orientados a Propsito


Um microprocessador um sistema de propsito geral. Microcontroladores, encapsulam um microprocessador a equipamentos perifricos.
Na verdade, eles implementam o conceito de computador em um chip.

Microcontroladores so orientados a funes especficas embarcados no interior de outro dispositivo.


Superdimensionamento pode ser encarado como um erro.

Microcontroladores - propsito
Deciso do tamanho do sistema determinado pelo projeto
CPU dedicada a propsito precisa ser adequada... para o propsito! Podem at estar presentes em um PC, mas apenas para controlar perifricos.

O design reduzido tambm permite a operao em clocks reduzidos consumo reduzido de energia.
Simplificao
Design adequado a propsito. Operao de baixo consumo (na casa dos miliwatts). Funo sleep and wait (modo de espera).

Microprocessador x Microcontrolador
Barramento de Dados

CPU
uP de propsito geral

RAM

ROM

Porta E/S

Timer

Porta Serial

Barramento de Endereos

CPU RAM ROM Chip nico Porta Porta Timer E/S Serial

Microprocessador x Microcontrolador
Microprocessador
CPU stand-alone. RAM, ROM, I/O, timer todos separados. Expansvel e verstil. Propsito geral.

Microcontrolador
CPU, RAM, ROM, I/O e timer em um nico chip. Para solues nas quais custo, consumo e espao so crticos. Propsito especfico.

Elementos Bsicos e Ligaes Internas

Unidade de Memria
Armazenamento de Dados

Unidade Central de Processamento


Microprocessador
Operaes lgicas e aritmticas Registradores

Barramentos
Dados
Possui tantos fios quantos necessrios para transporte de dados. Conecta todos os circuitos do microcontrolador.

Endereos
Usado para o endereamento de memria. Transfere um endereo da CPU para a memria.

Unidade de Entrada/Sada

Unidade de Temporizao
Timers e contadores
Normalmente usam cristal de Quartzo para operao.
Frequncia precisa e estvel.

Mede o tempo entre dois eventos. Um microcontrolador pode usar vrios timers.

Watchdog
Contador contnuo que zerado sempre que um programa executado corretamente Garante que o microcontrolador no se encontre travado.

Conversor Analgico/Digital
Circuito eletrnico que converte sinais contnuos em nmeros discretos digitais:
Converso de uma informao de valor analgico para um nmero binrio. Depois da converso, direcionada para a CPU para processamento adicional.

Funcionalidades
Interrupes
uC devem prover respostas em tempo real (previsveis) para os eventos do sistema que controlam. ISR (interrupt service routine)
rotina utilizada pelo uC para suspender o processamento no uP na ocorrncia de determinado evento.

Fontes de ISR tpicas


estouro de tempo de resposta dados recebidos em um link de comunicao.

Programas
Devem caber na memria disponvel no chip. Compiladores e assemblers convertem programas em cdigo de mquina. Dependendo do equipamento, o programa pode ser permanente ou atualizvel (field-alterable flash ou EPROM).

Outras funcionalidades
Conversor Digital Analgico (ADC) muitos SE precisam ler sensores que produzem sinais analgicos. Programmable Timer Interval (PIT) teis para aparelhos como termostatos que testam a temperatura periodicamente. Timer Processing Unit (TPU) temporizador sofisticado, usado para detectar eventos de input, gerar eventos de output. Universal Asynchronous Receiver/Transmitter (UART) recebe e transmite dados em uma linha serial usando poucos recursos de CPU. Permite comunicao entre os devices.

Microcontroladores e Memria
Desde o advento dos microcontroladores, diversas tecnologias de memria tm sido usadas. Quase todos os microcontroladores tm dois tipos diferentes de memria:
Uma voltil, de leitura e escrita.
SRAM de seis transistores foram a mais usadas. Advento da MRAM pode substituir (at 10 vezes mais densa).

Outra no voltil (armazena firmware)


Inicialmente, programas em ROM. EPROM erasable programmable read only memory.
Utilizava-se luz ultravioleta para reprogramar a EPROM

MRAM pode ser utilizada para armazenar firmware!

Microcontroladores e Memria
Arquiteturas
Em geral implementa-se um dos modelos bsicos de design:
von Neumann
Instrues e dados compartilham a mesma unidade fsica de memria.

Harvard
Instrues e dados so armazenados em memrias diferentes.

Arquitetura

von Neumann
Apenas um bloco de memria e um barramento de 8-bit de dados Comunicao lenta: o barramento sobrecarregado
A CPU ou l a instruo, ou l ou escreve dados na memria. Ex: se um programa l uma linha que incrementa o valor de um registrador SUM:
1. 2. Ler a parte do programa que diz o que deve ser feito (funo incf) Ler a outra parte da mesma instruo especificando que dado deve ser realizado (nesse caso, o registrador SUM) Aps incrementado, o contedo do registrado deve ser armazenado no registrador de onde foi lido (endereo de SUM).

3.

Arquitetura
Harvard Dois diferentes barramentos de dados. Um de 8 bits (CPU ~ RAM), outro de 12, 14 ou 16 bits (CPU ~ ROM). Durante o processo de escrita, apenas os dados de 8-bits so includos. Programas armazenados na ROM interna do uC. Vantagens CPU pode executar duas instrues ao mesmo tempo. Dados no programa de 8-bits. Instrues so de ciclo nico, com a exceo de jump. Na Harvard, o barramento de programas maior que um byte cada palavra consiste de instruo e dados.

Conjunto de Instrues
Todas as instrues reconhecidas pelo uC so denominadas Conjunto de Instrues.
Restrio: nmero de instrues disponveis.

RISC Reduced Instruction Set Computing


Nmero reduzido de instrues disponvel. Simplifica decodificao de instrues.

CISC Complex Instruction Set Computing


Nmero de instrues extremamente grande e complexo. Uma nica instruo CISC pode equivaler a vrias instrues RISC. Minimiza o nmero de acessos memria.

RISC x CISC
Vantagens CISC
Oferece um nmero de instrues (ferramentas) maior ao programador Assembly. Menor quantidade de instrues necessrias para desenvolver um programa (programas menores).

Vantagens RISC
Etapa de decodificao muito simples pode ser at eliminada em alguns casos. Como o nmero de instrues pequeno, alguns parmetros podem ser agregados no opcode, simplificando o FETCH. Simplificao dos circuitos eletrnicos.

Exemplos!

Exemplos em S.E.
PIC (Microchip)
Considerado o Microcontrolador mais acessvel localmente. O dispositivo em si um microcontrolador de 8 bits relativamente simples. Famlia PIC: 12, 14 e 16 bits
Implementa a arquitetura Harvard.
PIC 16F877A

Exemplos em S.E.
PIC (Microchip)
Microprocessador funcionando como um sistema sequencial sncrono a cada pulso, uma instruo executada. PIC utiliza 12 MHz de clock
Tempo de execuo de instruo de at 4 micro-s.

Microcontrolador de 18 pinos, 2 osciladores internos, 10 interrupes disponveis. Programao com 14 bits e 35 instrues.

Outros exemplos
Altera
Nios II (32 bits) Nios (16 bits)

Atmel
AVR32 (32 bits)

Philips Semiconductors
LPC2000

Dallas Semiconductor
8051

Aplicaes de S.E
Inmeras! Sade, entretenimento, alimentao, fotografia etc... Destacamos: automveis
Desde os anos 80 utilizam uC para controlar:
Mistura de gasolina Temporizao do motor Mltiplos modos de operao: arranque, subida, cruzeiro...

Carros hoje podem ter mais de 100 microprocessadores:


Microcontrolador de 4-bit para verificar cinto de segurana Dispositivos de painel Motor (controlado por microprocessadores de 16/32-bit) Sistemas de freio e estabilidade...

Referncias
Frank Vahid; Sistemas Digitais Projeto, otimizao e HDLs, Editora Bookman, 2008. Heath, Steve (2003). Embedded systems design. EDN series for design engineers (2 ed.). Newnes. pp. 1112. http://archive.computerhistory.org/resources/access/text/Oral_History/10 2658328.05.01.acc.pdf Oral History Panel on the Development and Promotion of the Intel 8048 Microcontroller, Computer History Museum oral history,2008 Mack, Pamela E. (30 November 2005). "The Microcomputer Revolution". Acesso em 2009-12-23. Moore, Gordon (19 April 1965). "Cramming more components onto integrated circuits" (PDF). Electronics 38 (8). Acesso em 2009-12-23. PICmicro Family Tree", PIC16F Seminar Presentation http://www.microchip.com.tw/PDF/2004_spring/PIC16F%20 seminar%20presentation.pdf Tocci, R. j., Widmer, N. S., Moss, G. L.; Sistemas Digitais - Princpios e Aplicaes - 10 Ed, Editora Pearson, 2007.