Você está na página 1de 6

Sistema embarcado

Um sistema embarcado (ou sistema embutido) é um sistema microprocessado


no qual o computador é completamente encapsulado ou dedicado ao dispositivo ou
sistema que ele controla. Diferente de computadores de propósito geral, como o
computador pessoal, um sistema embarcado realiza um conjunto de tarefas
predefinidas, geralmente com requisitos específicos. Já que o sistema é dedicado a
tarefas específicas, através de engenharia pode-se otimizar o projeto reduzindo
tamanho, recursos computacionais e custo do produto.Sistemas como PDAs são
geralmente considerados sistemas embarcados pela natureza de seu hardware,
apesar de serem muito mais flexíveis em termos de software. Fisicamente, os
sistemas embarcados passam desde MP3 players à semáforos.
História
Nos primeiros anos dos computadores digitais na década de 1940, os computadores
eram por vezes dedicados a uma única tarefa. Eram, entretanto, muito grandes
para serem considerados embarcados. O conceito de controlador programável foi
desenvolvido algum tempo depois.
O primeiro sistema embarcado reconhecido foi o Apollo Guidance Computer,
desenvolvido por Charles Stark Draper no MIT. O computador de guia, que operava
em tempo real, era considerado o item mais arriscado do projeto Apollo. O uso de
circuitos integrados monolíticos para reduzir o tamanho e peso do equipamento
aumentou tal risco.
O primeiro sistema embarcado de produção em massa foi o computador guia do
míssil nuclear LGM-30 Míssil Minuteman, lançado em 1961. Ele possuía um disco
rígido para a memória principal. Quando a segunda versão do míssil entrou em
produção em 1966, o computador guia foi substituído por um novo, que constituiu o
primeiro uso em grande volume de circuitos integrados. A tecnologia desse projeto
reduziu o preço de circuitos integrados como o NAND de mil para três dólares
americanos cada, permitindo seu uso em sistemas comerciais.
Desde suas primeiras aplicações na década de 1960, os sistemas embarcados vêm
reduzindo seu preço. Também tem havido um aumento no poder de processamento
e funcionalidade. Em 1978 foi lançada pela National Engineering Manufacturers
Association a norma para microcontroladores programáveis.
Em meados da década de 1980, vários componentes externos foram integrados no
mesmo chip do processador, o que resultou em circuitos integrados chamados
microcontroladores e na difusão dos sistemas embarcados.
Com o custo de microcontroladores menor que um dólar americano, tornou-se
viável substituir componentes analógicos caros como potenciômetros e capacitores
por eletrônica digital controlada por pequenos microcontroladores. No final da
década de 1980, os sistemas embarcados já eram a norma ao invés da exceção em
dispositivos eletrônicos.
Sistemas embarcados são desenvolvidos para uma tarefa específica. Por questões
como segurança e usabilidade, alguns inclusive possuem restrições para
computação em tempo real. O software escrito para sistemas embarcados é muitas
vezes chamado firmware, e armazenado em uma memória ROM ou memória flash
ao invés de um disco rígido. Por vezes o sistema também é executado com recursos
computacionais limitados: sem teclado, sem tela e com pouca memória.
Sistemas embarcados podem possuir desde nenhuma interface do utilizador
(dedicados somente a uma tarefa) a uma interface de utilizador completa, similar à
dos sistemas operacionais desktop (em sistemas como PDAs). Sistemas mais
simples utilizam botões, LEDs ou telas bastante limitadas, geralmente mostrando
somente números ou uma fila pequena de caracteres.
Sistemas mais complexos utilizam uma tela gráfica completa, usando tecnologias
como ecrã táctil ou aquela em que o significado dos botões depende do contexto da
tela. Computadores de mão também oferecem joysticks para apontar. O surgimento
da World Wide Web forneceu aos desenvolvedores de sistemas embarcados a
possibilidade de fornecer uma interface Web através de uma conexão por rede. Isso
evita o custo de uma tela sofisticada, ainda que seja fornecida uma interface
complexa e completa a ser acessada em outro computador. De modo geral,
roteadores usam tal habilidade.
Processadores embarcados podem ser separados em duas categorias:
microprocessador e microcontrolador. Existem diferentes arquiteturas disponíveis
tais como ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR, Renesas
H8, SH, V850, FR-V, M32R, Z80 e Z8. Isso contrasta com o mercado de computador
pessoal, limitado a somente algumas arquiteturas.
Os sistemas embarcados comunicam-se com o meio externo através de periféricos,
tais como:
• Interface serial - (Por exemplo a RS 232)
• Universal Serial Bus - (USB)
• TCP/IP
• Phase-locked loop
• GPIO
Sistemas embarcados geralmente residem em máquinas que, espera-se, possam
trabalhar continuamente por anos sem erros, e que possam por vezes recuperarem-
se sozinhas após erros.[1] Portanto, o software é geralmente desenvolvido e testado
mais cuidadosamente de que em computadores pessoais. A recuperação de erros
pode ser atingida com técnicas como o watchdog timer, que reinicia o sistema a
menos que o software notifique periodicamente um identificador.

Alguns exemplos de onde são usados sistemas embarcados


• Aviônicos, como sistemas de controle inercial, controle de vôo e outros
sistemas integrados nas aeronaves, como sistemas de orientação de
mísseis.
• Telefones celulares e centrais telefônicas.
• Equipamentos de redes de computadores, como roteadores, hubs, switches
e firewalls
• Impressoras.
• Dispositivos de armazenamento (discos rígidos e disquetes).
• Controladores da tracção, do motor e do antibloqueio em automóveis: freios
ABS e controle de tração.
• Calculadoras.
• Eletrodomésticos, como fornos microondas, máquinas de lavar, aparelhos de
TV, DVD players.
• Equipamentos médicos.
• Videogames.
• PDAs.
• Tratores e implementos agrícolas.

*******o contrário de um PC, que pode executar os mais diversos programas e alternar entre
eles, desempenhando as mais diversas funções, os sistemas embarcados são
dispositivos "invisíveis", que se fundem no nosso cotidiano, de forma que muitas
vezes sequer percebemos que eles estão lá. Eles são formados por
fundamentalmente os mesmos componentes de um PC: processador, memória,
algum dispositivo de armazenamento, interfaces e assim por diante. A principal
diferença é que, ao contrário de um PC, eles se limitam a executar bem uma única
tarefa, de maneira contínua e, na maioria das vezes, sem travamentos e panes.
O fato de ser um sistema embarcado, não diz muito sobre o tamanho ou a
importância do sistema, pode ser desde um furby, até uma máquina com centenas
de processadores, destinada a criar previsões sobre mercados de captais, ou
controlar o tráfego aéreo. Basicamente, qualquer equipamento autônomo que não é
um PC, Mac ou outro tipo de computador pessoal, acaba caindo nesta categoria.

É graças aos sistemas embarcados que o Z80 (em suas inúmeras variações) é até
hoje o processador mais produzido. Por ser um processador muito simples, de 8
bits, ele é incrivelmente barato e possui um baixíssimo consumo elétrico. Não seria
possível incluir um Core Duo ou Athlon num controle remoto, por exemplo, mas um
Z80 () cumpre bem a função. Lembra do game boy? Ele era justamente baseado
num Z80, acompanhado de um controlador de áudio externo e outros circuitos.
Outro exemplo são os S1 Mp3 players, aqueles Mp3 players genéricos em formato
de pendrive, fabricados em massa pelos mais diversos fabricantes.

Outro processador muito usado é o Motorola 68000, o mesmo chip de 32 bits


utilizado nos primeiros Macintoshs. Naturalmente, não estamos falando de
exatamente o mesmo chip introduzido em 1979, mas sim de versões
"modernizadas" dele, que conservam o mesmo design básico, mas são produzidas
usando tecnologia atual e operam a frequências mais altas. Um exemplo é o chip
DragonBall usado nos primeiros Palms, que incluía um processador 68000,
controlador de vídeo e outros componentes, tudo no mesmo wafer de silício.

Para dispositivos que precisam de mais processamento, temos as diversas famílias


de processadores ARM, chips RISC de 32 bits, produzidos por diversos fabricantes,
que vão da Samsung à Intel. Embora possuam um design bastante simples, se
comparado ao processadores x86, os chips ARM conservam um bom desempenho.
Um Treo 650, por exemplo, que é baseado num Intel Xscale de 312 MHz, consegue
exibir vídeos em Divx com resolução de 320x240 sem falhas, tarefa que mesmo um
Pentium II 266 tem dificuldades para realizar.

Usando um processador ARM e pelo menos 4 MB de memória, seu sistema


embarcado pode rodar Linux, o que abre grandes possibilidades em termos de
softwares e ferramentas de desenvolvimento. Adicionando um pouco mais de
memória, é possível rodar o Windows Mobile ou o Symbian.

Embora operem a frequências relativamente baixas se comparados aos


processadores x86 (na maioria dos casos apenas 300, 400 ou 500 MHz), os chips
ARM são baratos e possuem um baixo consumo elétrico, por isso são extremamente
populares em celulares, PDAs, pontos de acesso, modems ADSL, centrais
telefônicas, sistemas de automatização em geral, video-games (como o GameBoy
Advance) e assim por diante. Cerca de 75% de todos os processadores de 32 bits
usados em sistemas embarcados são processadores ARM.

Além da família ARM e Z80, existem inúmeras outras famílias de chips e


controladores. Cada uma conta com um conjunto próprio de ferramentas de
desenvolvimento (SDK), que incluem compiladores, debuggers, documentação e
ferramentas úteis. Em alguns casos o SDK é distribuído gratuitamente, mas em
outras precisa ser comprado ou licenciado, o que encarece o projeto.

Normalmente, você roda as ferramentas de desenvolvimento num PC e transfere o


software para o sistema que está desenvolvendo apenas nos estágios finais do
desenvolvimento. Em alguns casos isso é feito através da porta USB (ou de uma
porta serial), mas em outros é necessário gravar um chip de EPROM ou memória
flash com a ajuda do gravador apropriado e transferir o chip para o sistema
embarcado para poder testar o software :).

Um bom exemplo de sistema embarcado é este MP4 player sobre o qual escrevi
outro dia. Ele utiliza apenas três chips, sendo um o controlador principal, outro um
chip de memória flash (usado para armazenamento) e o terceiro um sintonizador de
rádio AM/FM, que poderia muito bem ser retirado do projeto sem prejuízo para as
demais funções do aparelho:

Isto é possível por que o chip principal (um Sigmatel STMP3510) é um


microcontrolador que desempenha sozinho todas as funções do aparelho, incluindo
controladores para as diversas funções disponíveis e até mesmo uma pequena
quantidade de memória RAM:

É este tipo de microcontrolador que permite que modems ADSL, MP3 players,
celulares e outros aparelhos que usamos no dia a dia sejam tão baratos em relação
ao que custavam a alguns anos atrás. Com menos chips, o custo cai
proporcionalmente.

Existem no mercado os mais diversos tipos de microcontroladores, cada um com


um conjunto próprio de periféricos e funções. Ao invés de desenvolver e fabricar
seus próprios chips, as empresas passaram a cada vez mais utilizar componentes
disponíveis no mercado, que são fabricados em massa e vendidos a preços
incrivelmente baixos. Para você ter uma idéia, o STMP3510 custa apenas 6 dólares
se comprado em quantidade. Microcontroladores mais simples podem custar menos
de 1 dólar, enquanto chips menores chegam a custar apenas alguns centavos.

A maior parte do custo de um processador ou chip qualquer está em seu


desenvolvimento. Mesmo um microcontrolador relativamente simples pode
consumir vários milhões para ser desenvolvido. Entretanto, o custo de produção é
relativamente baixo, de forma que os chips mais vendidos acabam tendo o custo
inicial amortizado e passam a ser cada vez mais baratos.

Muitos microcontroladores podem ser conectados a dispositivos analógicos,


permitindo o uso de sensores diversos. Isso permite a criação de dispositivos
simples, que monitoram temperatura, umidade, intensidade da luz, aceleração,
campos magnéticos e assim por diante, executando ações pré-definidas em caso de
mudanças, como ligar o ar condicionado, abrir ou fechar as persianas, ou mesmo
disparar o air-bag do seu carro em caso de colisão.

Para aplicações onde um chip personalizado é essencial, existe ainda a opção de


usar chips programáveis, chamados de FPGAs (field-programmable gate arrays) ou,
mais raramente, de LCAs (logic-cell arrays). Como o nome sugere, eles são chips
compostos por um enorme número de chaves programáveis, que podem ser
configurados para simular o comportamento de qualquer outro circuito.

Um único FPGA pode simular não apenas um processador simples, mas também
outros circuitos de apoio, como o controlador de vídeo, interface serial e assim por
diante. Os modelos recentes incluem inclusive uma pequena quantidade de
memória RAM e circuitos de apoio, de forma que você pode ter um sistema
completo usando apenas um chip FPGA previamente programado, um chip de
memória EPROM (ou memória flash) com o software, a placa de circuito com as
trilhas e conectores e uma bateria ou outra fonte de energia.

Os FPGAs são naturalmente muito mais caros que chips produzidos em série, mas
são uma opção em situações onde são necessários apenas algumas centenas de
unidades de um design exclusivo. Imagine o caso do ramo da automação industrial,
por exemplo.

Eles são também o caminho para projetos artesanais, que são a nova onda entre
quem gosta de eletrônica ou está cursando engenharia da computação. Um bom
site dedicado ao assunto é o http://www.fpga.ch/, que disponibiliza softwares,
layouts de placas e até mesmo projetos prontos, como este que reproduz uma
máquina de arcade antiga, rodando Pac-Man ou Galaga:
Outro bom site é o http://www.fpga4fun.com, que inclui uma grande quantidade de
informações e alguns projetos de exemplo. Os componentes necessários para
construir os projetos podem ser comprados facilmente pela web, basta ter um
cartão internacional ou uma conta no PayPal.

Uma questão interessante nos sistemas embarcados é a memória flash. Com a


queda no preço, mesmo aparelhos que tradicionalmente usavam memória SRAM
(muito mais cara) como forma de armazenamento, como os palmtops e celulares,
passaram a utilizar memória flash. O problema é que a memória flash funciona
apenas como espaço de armazenamento e não como memória de trabalho. Numa
analogia com um PC, a memória flash seria similar a um HD, que serve para
armazenar arquivos, mas que não elimina a necessidade de usar memória RAM.
Isso significa que mesmo dispositivos com grandes quantidades de memória flash
ainda precisam de uma cerca quantidade de memória RAM ou SRAM, seja
incorporada ao próprio microcontrolador, seja na forma de um chip separado.

Nos primeiros Palms, por exemplo, tínhamos um chip de memória flash, que
armazenava os softwares e chips adicionais de memória SRAM, que serviam tanto
como memória de trabalho, quanto como espaço para armazenar dados e
programas. A partir do Treo 650, todos os programas e arquivos passaram a ser
armazenados em memória flash (você pode remover a bateria, sem medo de
perder dados) e foi adicionado um chip de memória SRAM que serve como memória
de trabalho :). A grande questão é que memória SRAM é muito mais cara que
memória flash, de forma que vale mais a pena utilizar uma pequena quantidade de
SRAM e uma grande quantidade de memória flash, do que o oposto.

Temos ainda a questão do fornecimento elétrico. A maioria dos circuitos trabalham


com tensão de 5v ou 3.3v, mas é possível usar praticamente qualquer bateria ou
fonte de energia, usando fontes de alimentação ou os circuitos apropriados. Um
resistor, acompanhado por um regulador de tensão e um fusível é geralmente o
suficiente para que ele possa ser ligado diretamente numa bateria de carro, por
exemplo. No caso de dispositivos ligados a um PC, é possível utilizar diretamente a
energia fornecida pela porta USB.

Também é possível utilizar placas solares ou outras fontes alternativas de energia,


permitindo a criação de sistemas embarcados capazes de operar de forma
autônoma. Um exemplo são os pontos de acesso repetidores usados por alguns
provedores de acesso, que utilizam painéis solares e baterias, de forma que podem
ser instalados num poste ou no topo de um prédio sem precisarem de qualquer
cabeamento.

O uso de redes sem fio também abre algumas possibilidades interessantes na área
publicitária. Imagine o caso de letreiros eletrônicos ou telões publicitários. Se os
anúncios pudessem ser atualizados remotamente, a instalação seria muito mais
simples, já que bastaria ligá-los na eletricidade. Um sistema embarcado, contendo
um transmissor wireless, memória e o software adequado, poderia ser acessado
remotamente e programado com os anúncios a exibir.

Enfim, embora os PCs normalmente roubem a cena, os sistemas embarcados são


muito mais numerosos e são responsáveis por toda a estrutura que utilizamos no
dia a dia. Eles são também uma das áreas mais promissoras dentro da área de
tecnologia, já que um simples FPGA pode ser programado para desempenhar
praticamente qualquer função.
O que é um sistema embarcado

Um sistema embarcado (ou sistema embutido) é um sistema microprocessado no qual o computador é


completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Diferente de
computadores de propósito geral, como o computador pessoal, um sistema embarcado realiza um
conjunto de tarefas predefinidas, geralmente com requisitos específicos. Já que o sistema é dedicado a
tarefas específicas, através de engenharia pode-se otimizar o projeto reduzindo tamanho, recursos
computacionais e custo do produto.
Sistemas como PDAs são geralmente considerados sistemas embarcados pela natureza de seu hardware,
apesar de serem muito mais flexíveis em termos de software. Fisicamente, os sistemas embarcados
passam desde MP3 players à semáforos.
EXEMPLOS DE SISTEMAS
EMBARCADOS
-Computadores de bordo automotivos
- Smartphones e PDAs
- Sistemas de controle de acesso biométrico
- Controle de temperatura de ar-condicionado
- MP3 players
- Impressoras
- Equipamentos de rede
- Equipamentos portáteis de medição
- Sistemas de monitoramento médico

CARACTERÍSTICAS DE SISTEMAS
EMBARCADOS
Sistemas embarcados são desenvolvidos para uma tarefa específica. Por questões como segurança e
usabilidade, alguns inclusive possuem restrições para computação em tempo real. O software escrito para
sistemas embarcados é muitas vezes chamado firmware, e armazenado em uma memória ROM ou
memória flash ao invés de um disco rígido. Por vezes o sistema também é executado com recursos
computacionais limitados: sem teclado, sem tela e com pouca memória.
Todos estes fatores também podem ser traduzidos em custo reduzido. Processadores utilizados em alguns
sistemas embarcados podem ter preços menores que US$1.

ARQUITETURAS DE
PROCESSADORES
Sistemas embarcados utilizam vários tipos de processadores: DSPs(digital signal processors -
processadores digitais de sinais), micro-controladores, micro-processadores. Ao contrrário do mercado de
computadores pessoais, que é basicamente dominado pelos processadores de arquitetura x86 da
Intel/AMD, sistemas embarcados utilizam amplamente as arquiteturas ARM, PowerPC, PIC, AVR, 8051,
Coldfire, TMS320, blackfin.
Apesar de serem bem mais conhecidos pela população em geral, estima-se que os processadores de
computadores pessoais representam menos de XX% do mercado de processadores no mundo.

SISTEMAS
OPERACIONAIS

Sistemas embarcados, que geralmente contam com uma quantidade reduzida de recursos como memória,
poder de processamento e outros requisitos como processamento em tempo real, não são projetados para
utilizar sistemas operacionais destinados aos computadores pessoais.
Sistemas embarcados geralmente utilizam sistemas operacionais de tempo real especiais que além de
consumirem muito menos memória e processamento, são muito mais estáveis e confiáveis.
Imaginem se acontece uma famosa "tela azul" em um sistema médico que controla a vida de uma pessoa,
ou em um sistema de controle de uma aeronave em pleno vôo.

Você também pode gostar