Sistemas Embarcados

0
5004

Entenda o que é um Sistema Embarcado (ou Sistema Embutido), exemplos, características, arquiteturas de processadores (ARM, PowerPC, PIC, AVR, 8051, Coldfire, TMS320, blackfin), a diferença entre Microprocessador e Microcontrolador, sistemas operacionais (tempo real) e as linguagens de programação (Assembly, C, C++, Java, Python).

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.

Exemplos de Sistema Embarcado
– Sistemas de monitoramento médico
– 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
– Computadores de bordo automotivos

Características
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.

Arquitetura 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.

Diferença entre Microprocessador e Microcontrolador
Ambos realizam algumas operações que são, buscar as instruções da memória e executar estas instruções (operações aritméticas ou lógicas) e o resultado dessas execuções são usados ​​para servir a dispositivos de saída. As instruções eletrônicas representados por um grupo de bits são sempre obtido a partir de sua área de armazenamento, que chamamos de memória.
O  microprocessador é um circuito integrado responsável pelo processamento de dados, como uma  unidade lógica e aritmética, com diversos registradores especiais, mas precisa receber ordens externas e ter outros componentes externos para funcionar.
Já o microcontrolador é um microprocessador, memória RAM, memória ROM, temporizadores, contadores, porta serial, conversores e portas de I/O em um só circuito integrado, ou seja, um microcomputador-de-um-só-chip.

Sistemas operacionais embarcados
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. 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.

Linguagens de programação em sistemas embarcados
– Assembly
– C
– C++
– Java
– Python

É incontestável que o uso de C dentre as linguagens para Sistemas Embarcados é predominante e que tem seu espaço garantido por muito tempo, dadas as características e requisitos exigidos pela maioria dos projetos eletrônicos atuais. Além disso, tem sido utilizada para se criar novas linguagens.