O que é um Sistema Embarcado?

Publicado: 26/12/2015 em Sistemas embarcados
Tags:, ,

Tenho atuado com sistemas embarcados, também conhecido como “Sistemas Embutidos” (tradução mais direta de “Embedded Systems” e, na minha opinião, mais correta), há mais de 10 anos, e sinto que esse termo é muito confuso para os jovens profissionais e recrutadores em geral.

Gostaria de ajudar com este post no esclarecimento dessas dúvidas.

Existe uma categoria geral de produtos/aplicações eletrônicos, sendo no grosso modo composto por qualquer dispositivo que deve ser ligado numa tomada ou que precisa de uma bateria para funcionar. Um sistema embarcado é uma subcategoria desse grupo. São aqueles dispositivos que possuem um sistema computadorizado inteligente internamente, que o auxilia a executar tarefas específicas e bem determinadas, capaz de retirá-lo sozinho de uma situação de erro, sem intervenção do usuário. Dessa forma o diferenciamos de um PC ou de qualquer computador de uso geral, que possuem sistemas computacionais generalizados em sua arquitetura.

Esse sistema computadorizado encontrado em sistemas embarcados é composto geralmente por microcontroladores/microprocessadores (8, 16, 32 ou 64 bits), periféricos de entrada e saída, memórias (RAM, SRAM, DDR, Flash, eMMC, SD-Card), lógica programável (FPGA, CPLD), ASICs, SoCs, etc. Dificilmente encontramos somente circuitos de lógica combinacional para tal função, mas seria teoricamente possível fazê-lo.

Dadas essas condições, posso começar a fazer comparações.

O quão diferente é programar para sistemas embarcados e desenvolver aplicativos para ambiente Desktop? No que se refere à linguagem em si, seja ela qual for, não existe diferença sintática. No entanto, o comportamento e restrições apresentados nesses ambientes podem ser ligeiramente ou consideravelmente distintos.

Um sistema embarcado apresenta restrições de hardware, seja de memória (volátil e não-volátil), seja de processamento, o que faz com que o programador precise se preocupar com o binário/bytecode gerado, de modo a utilizar o hardware de forma mais eficiente. Ao passo que num sistema Desktop tem-se  a sensação de que os recursos são “ilimitados”.

Podemos voltar no tempo e tentar encontrar o primeiro sistema embarcado que se tem notícia. Encontramos o AGC (Apollo Guidance Computer), um computador responsável pelo total controle das espaçonaves Apollo, contruídas com o objetivo de levar o homem à Lua durante os anos 60 e 70. Um detalhe muito interessante é que, embora não tivesse um microprocessador/microcontrolador internamente, tinha uma unidade computacional composta somente por lógica combinacional (portas NOR).

Um rastreador instalado no carro é um sistema embarcado? Sim! Porque possui um sistema interno computacional que executa tarefas de geolocalização, por exemplo, e outras bem definidas. Além disso faz parte de um sistema maior, o automóvel.

E um smartphone, é um sistema embarcado? Eu não o considero, o imagino como um produto eletrônico composto por diversos sistemas embarcados, tais como LCD, GPS, GPRS, Wi-Fi, etc. Enfim, uma plataforma de desenvolvimento praticamente, pois suas tarefas são extensíveis pelo usuário, simplesmente instalando novas aplicações ou imagens customizadas. Por padrão, umas das suas funções é receber e realizar chamadas.

Já trabalhei com diversos produtos eletrônicos, tais como equipamentos de controle de acesso, módulos de elevadores, computadores de bordo, rádios automotivos, terminais de consulta, relógio de ponto, etc. Todos esses são sistemas embarcados dado que possuem funções muito bem definidas e são autônomos, não necessitando de uma intervenção do usuário em caso de erro.

Vejam a definição de sistema embarcado elaborada pelo site Embarcados aqui, do qual sou um dos seus administradores. Inspirei-me muito nesse texto.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s