sexta-feira, 19 de junho de 2009

Sistemas embarcados

ct

Sistemas embarcados



Pergunte a algum amigo quantos computadores ele tem em casa. Provavelmente ele vai responder "tenho só um", ou talvez "tenho dois". Involuntariamente ele estará mentindo, pois na verdade ele tem 10, 20 ou quem sabe 50 computadores em casa. :)

Os demais estão escondidos, dentro do celular, TV, aparelho de som, modem ADSL, ponto de acesso, brinquedos, câmeras digitais, mp3 players, fornos de microondas e outros aparelhos domésticos, controles remotos e assim por diante. Até mesmo o carro que está na sua garagem inclui vários deles, na forma do sistema de injeção eletrônica, freio ABS, airbag, computador de bordo, etc. Seja bem-vindo ao fantástico mundo dos sistemas embarcados.

Ao 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, fundamentalmente, pelos 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 capitais, ou controlar o tráfego aéreo. Basicamente, qualquer equipamento autônomo que não é um PC, um Mac ou outro tipo de computador pessoal acaba se enquadrando nessa categoria.


Furby, um exemplo de sistema embarcado na forma de brinquedo

É 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 um Athlon X2 em um 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 exatamente do 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 freqüê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.


Processador Motorola DragonBall, usado nas primeiras versões do Palm

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 comparados aos 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 freqüê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, videogames (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 outros precisa ser comprado ou licenciado, o que encarece o projeto.

Normalmente, o desenvolvedor roda as ferramentas de desenvolvimento em um PC e transfere o software para o sistema embarcado 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 da foto a seguir. 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:

Isso é possível porque 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:

É esse 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 há alguns anos. 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 por unidade é 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 predefinidas 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 em que 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, uma 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.


Chip FPGA

Os FPGAs são naturalmente muito mais caros que chips produzidos em série, mas são uma opção em situações em que são necessárias 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 os 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 certa 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 a memória SRAM é muito mais cara que a 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 em uma 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.

Nenhum comentário:

Postar um comentário

FAÇA UMA DOAÇÃO PARA O NOSSO BLOG

MAKE A DONATION TO OUR BLOG/ HACER UNA DONACIÓN A NUESTRO BLOG/ FAI UNA DONAZIONE PER IL NOSTRO BLOG/ FAITES UN DON DE NOTRE BLOG/ Spenden AUF UNSERE BLOG/ บริจาคให้กับบล็อกของเรา/ 私達のブログに寄付する/

WATCHMEN – Trailer Oficial

TOP 100 GATAS


TABLE OF HOTNESS

100. Deanna Russo
99. Melissa Rycroft
98. Rebecca Mader
97. Marisa Tomei
96. Olivia Munn
95. Padma Lakshmi
94. Yvonne Strahovski
93. Michelle Obama
92. Joanna Krupa
91. Chelsea Handler
90. Roselyn Sanchez
89. Jamie Chung
88. Diane Kruger
87. Summer Glau
86. Ali Campoverdi
85. Michelle Trachtenberg
84. Minka Kelly
83. Whitney Port
82. Emma Watson
81. Heidi Montag
80. Jamie Gunns
79. Jaime King
78. Danica Patrick
77. Stacy Keibler
76. Cameron Richardson

75. Tricia Helfer
74. Amanda Bynes
73. Ashley Tisdale
72. Camilla Belle
71. Gabrielle Union
70. Maria Menounos
69. Jennifer Morrison
68. Ashley Greene
67. Emmy Rossum
66. Emma Stone
65. Amanda Righetti
64. Diora Baird
63. Milla Jovovich
62. Heidi Klum
61. Dania Ramirez
60. Carrie Underwood
59. Ana Ivanovic
58. Miranda Kerr
57. Audrina Patridge
56. Amber Heard
55. Christina Milian
54. Rachel Bilson
53. Kim Kardashian
52. Beyoncé
51. Sienna Miller

50. Taylor Swift
49. Freida Pinto
48. Arielle Kebbel
47. Katie Cassidy
46. Nicole Scherzinger
45. Fergie
44. Avril Lavigne
43. Elisha Cuthbert
42. Nikki Reed
41. Nadine Velazquez
40. Lily Allen
39. Anna Faris
38. Charlize Theron
37. Cameron Diaz
36. Hayden Panettiere
35. Anna Kournikova
34. Scarlett Johansson
33. Blake Lively
32. Ciara
31. Hilary Duff
30. Penélope Cruz
29. Zoe Saldana
28. Danneel Harris
27. Vanessa Hudgens
26. Angelina Jolie

25. Julianne Hough
24. Eva Mendes
23. Lindsay Lohan
22. Kate Beckinsale
21. AnnaLynne McCord
20. Moon Bloodgood
19. Chan Marshall
18. Marisa Miller
17. Britney Spears
16. Gina Carano
15. Katy Perry
14. Christina Aguilera
13. Jessica Alba
12. Leighton Meester
11. Jessica Biel

Click here to
see the top 10!


Gatas USA



2008
Jenna - Cuyahoga Falls, OH Shaun - Conroe, TX undefinedundefinedundefinedundefinedundefinedMegan - Parma, OH undefinedundefinedundefinedundefinedundefinedundefinedJacquelyn - Dayton, MD undefinedSarah - Baltimore, MD undefinedLucia - Burbank, CA undefinedEdnyr Marie - Orlando, FL undefinedundefinedChristina - Fresh Meadows, NY undefinedundefined
Debbie - Huntington Beach, CA
2007
2007