Sistema incorporado

Um sistema incorporado é um computador que foi construído para resolver apenas alguns problemas muito específicos e não é facilmente alterado. A palavra embedded significa que ele está embutido no sistema. Ele é uma parte permanente em um sistema maior. Normalmente não se parece com um computador, muitas vezes sem teclado, monitor ou mouse. Mas, como qualquer computador, ele tem um processador e software, entrada e saída.

Por exemplo, o controlador embutido em um elevador diz ao motor para mover o elevador para andares diferentes, com base nos botões que são pressionados. Um decodificador é embutido em um descodificador de televisão via satélite (chamado STB) para ler um sinal da parabólica e enviar algo que uma TV entende. Muitas vezes este tipo de sistema deve fazer seu trabalho em um período de tempo específico. Isto é chamado de computação em tempo real. Se um set-top box fosse interrompido para fazer outra tarefa, você veria uma imagem ruim na TV, por exemplo. Um computador de propósito geral terá frequentemente pausas curtas enquanto faz outra coisa, não é em tempo real.

Os sistemas incorporados controlam muitos dos dispositivos comuns em uso atualmente, tais como leitores de cartões em fechaduras de portas de hotéis ou várias coisas em um carro. Eles podem controlar coisas pequenas como um leitor de MP3 ou uma câmera digital, e coisas grandes como sistemas de semáforos, aviões ou linhas de montagem em uma fábrica.

Foto dos internos de um modem/router ADSL. Um exemplo moderno de um sistema incorporado. As peças etiquetadas incluem um microprocessador (4), RAM (6), e memória flash (7).Zoom
Foto dos internos de um modem/router ADSL. Um exemplo moderno de um sistema incorporado. As peças etiquetadas incluem um microprocessador (4), RAM (6), e memória flash (7).

Exemplos de sistemas embutidos

Os sistemas incorporados são usados em muitos tipos de dispositivos elétricos, inclusive:

  • Os sistemas de telecomunicações os utilizam para telefones, redes de telefonia celular e roteadores wi-fi.
  • A eletrônica de consumo inclui receptores de transmissão, MP3 players, telefones celulares, consoles de videogame, câmeras digitais, aparelhos de DVD, receptores GPS, sistemas de segurança doméstica e impressoras.
  • Aparelhos domésticos, como fornos microondas, máquinas de lavar roupa, sistemas de alarme contra roubo e máquinas de lavar louça têm sistemas embutidos.
  • O transporte utiliza sistemas incorporados para tudo, desde locomotivas para trens, aviões e automóveis.
  • A indústria utiliza motores elétricos com controladores eletrônicos, leitores de cartões e máquinas CNC que fabricam automaticamente peças metálicas.
  • Dispositivos médicos como desfibriladores, leitores de pressão arterial automatizados e bombas de insulina automatizadas.
  • Dispositivos militares, como walkie-talkies, satélites e os sistemas de orientação para mísseis.

Características comuns

  • Os sistemas incorporados são projetados para realizar uma tarefa específica, ao contrário dos computadores de uso geral.
  • Não se parece com um computador - pode não haver um monitor completo ou um teclado.
  • Muitos sistemas embutidos devem ser capazes de fazer as coisas em tempo real - em um curto espaço de tempo (quase instantaneamente do ponto de vista humano).
  • Muitos sistemas incorporados devem ser muito seguros e confiáveis, especialmente para dispositivos médicos ou aviões de controle de aviônica.
  • Começa muito rapidamente. As pessoas não querem esperar um ou dois minutos para que seu carro dê partida ou para que o equipamento de emergência dê partida.
  • Ele pode usar um sistema operacional especial (ou às vezes um sistema operacional caseiro muito pequeno) que ajuda a atender estes requisitos, chamado sistema operacional em tempo real, ou RTOS.
  • As instruções do programa escritas para sistemas embarcados são referidas como firmware, e são armazenadas em memória somente leitura ou em chips de memória flash. Eles funcionam com recursos limitados de hardware do computador: pouca memória, teclado e/ou tela pequenos ou inexistentes.

Os sistemas incorporados nem sempre são dispositivos autônomos. Às vezes são construídos como um conjunto, como as várias partes de um carro - o rádio, o controle do acelerador, o controle da poluição, etc. Às vezes eles podem se comunicar com a Internet ou com uma rede de telefonia celular e podem ter um leitor USB ou outras conexões.

Interfaces de usuário

Os sistemas incorporados variam desde nenhuma interface de usuário - apenas enviando e recebendo sinais elétricos - até uma interface gráfica completa do usuário como em um computador moderno. Muitas vezes eles terão alguns botões de pressão e um pequeno display e alguns LEDs. Um sistema mais complexo pode ter uma tela sensível ao toque, permitindo que o significado dos botões mude com cada tela, como nos telefones inteligentes.

Um exemplo de uma interface de usuário com botões e um simples display LCD.Zoom
Um exemplo de uma interface de usuário com botões e um simples display LCD.

Hardware

O hardware inclui os chips, fios, placas de circuito, botões e displays.

CPUs

O chip mais importante é a unidade central de processamento ou CPU. Esta executa as instruções do software. Pode ser um microprocessador padrão ou um microcontrolador. Os microcontroladores incluem o microprocessador, bem como equipamentos periféricos simples para que o sistema possa ser menor e mais barato. Eles têm menos flexibilidade porque essas peças não podem ser trocadas. Normalmente estas peças incluem memória Flash e suporte para portas seriais, USB, etc.

Ao contrário de um microprocessador para um computador de uso geral, maior e mais rápido nem sempre é melhor. Muitos processadores embutidos são muito pequenos. Às vezes isto é para usar menos espaço ou menos energia, às vezes é para ser mais barato. Computadores de uso geral usam microprocessadores que lêem palavras de 32 ou 64 bits e funcionam a velocidades medidas em GHz, mas os processadores embarcados são normalmente de 4 a 32 bits e funcionam a velocidades normalmente medidas em dezenas de MHz (cem vezes mais lentas). (Mas os programas também são menores e não verificam coisas que não são usadas).

Placas de computador prontas para uso

Há placas de computador "prontas" que podem ser usadas em alguns sistemas embutidos. Estas geralmente usam Windows CE, Linux, NetBSD, ou um sistema operacional embarcado em tempo real.

s vezes pode ser mais fácil usar uma placa de circuito que já está feita. Estes geralmente compartilham muitos componentes com computadores de uso geral, mas são menores que um em um computador de uso geral. Placas como a VIA EPIA podem rodar o Microsoft Windows. A vantagem é que economiza algum tempo de engenharia elétrica e pode usar as mesmas ferramentas de desenvolvimento de software usadas para o desenvolvimento de software tipo PC. Exemplos de tais dispositivos embutidos são os ATMs ou displays em cassinos. Isto funciona bem se os requisitos em tempo real não forem realmente rigorosos (não importa muito se um trabalho leva oito segundos em vez de cinco, por exemplo).

Soluções ASIC e FPGA

Se o dispositivo precisa ser muito pequeno ou será vendido em números muito grandes ("alto volume"), faz sentido fazer um chip personalizado ou especializado que faça exatamente o que é necessário. Este é um sistema em um chip (SoC) que contém um sistema completo - processador, unidade de ponto flutuante, cache de memória e interfaces em um único circuito integrado. Os SoCs podem ser feitos como um circuito integrado específico de aplicação (ASIC) ou usando uma matriz de porta programável de campo (FPGA) que é programada pelo pessoal que está construindo o sistema integrado.

Periféricos

Os sistemas incorporados conversam com o mundo exterior ou outros componentes que utilizam periféricos, como por exemplo:

  • Portos seriais: RS-232, RS-422, RS-485. Isto costumava ser bastante comum, com os conectores de 9 pinos (ou maiores).
  • Interface de Comunicação Síncrona em Série: Circuito Integrado I²C, Som Integrado I²S, SPI, MIcrowire, ...
  • Universal Serial Bus (USB).
  • Redes: Ethernet, Controller Area Network, LonWorks, ...
  • Entrada/saída discreta: Entrada/Saída de Objetivo Geral (GPIO). Este pode ser um único fio com um sinal de ligar/desligar. Pode ser usado para um pequeno teclado, ou para acender um LED.
  • Conversores analógicos para digitais/digitais para analógicos (ADC/DAC). Isto mede algo que muda de força, como um sensor de luz ou um controle de motor.
  • Depuração: JTAG, porta ICSP, para engenheiros de software.
Soekris net4801, um sistema incorporado destinado a aplicações de rede.Zoom
Soekris net4801, um sistema incorporado destinado a aplicações de rede.

Software

Sistemas operacionais

Os sistemas incorporados muitas vezes não precisam de um sistema operacional completo. Alguns utilizam sistemas operacionais pequenos e simples especialmente construídos que começam muito rapidamente, outros não precisam de nenhum sistema operacional. Os sistemas incorporados não são adaptados tão facilmente, mas são construídos para executar suas tarefas de forma muito mais confiável. Como o hardware é mais simples, muitas vezes também é mais barato construir e funciona mais rápido.

Em contraste, um computador de uso geral precisa estar pronto para novos drivers de dispositivos e software para executar hardware que ainda não conhece, como novas impressoras ou discos rígidos. Ele precisa executar diferentes programas de aplicação.

À medida que os sistemas embarcados se tornam maiores, coisas que antes eram apenas em computadores de uso geral ou mesmo mainframes estão agora se tornando comuns em sistemas embarcados. Isto inclui espaço de memória protegido e ambiente de programação aberto, incluindo Linux, NetBSD, etc.

Alguns exemplos de sistemas operacionais, do simples ao complexo:

  • Loop de controle simples - Um timer e um loop são usados para chamar repetidamente diferentes sub-rotinas. Isto é freqüentemente feito por uma pessoa para sistemas menores.
  • interrupção controlada - As tarefas são iniciadas por diferentes tipos de eventos. O evento pode ser algo temporizado (a cada dez segundos, por exemplo) ou por um aperto de botão ou por dados recebidos.
  • multitarefa não preventiva - Cada tarefa tem sua vez de ser executada, e quando termina chama um programador no sistema operacional para executar a próxima tarefa.
  • multitarefa ou multi-tarefa preventiva - Uma tarefa pode ser interrompida após algum tempo para deixar outra tarefa decorrer por algum tempo. Nenhuma tarefa pode monopolizar o sistema. Neste nível, o sistema é considerado como tendo um núcleo de "sistema operacional" e pode executar tarefas em paralelo. Este tipo de sistema operacional é normalmente comprado de uma empresa que só trabalha com sistemas operacionais embarcados.

Os sistemas operacionais em tempo real incluem produtos como MicroC/OS-II, Green Hills INTEGRITY, QNX ou VxWorks. Ao contrário do MacOS ou Windows 7, estes sistemas operacionais não são muito bem conhecidos pela maioria das pessoas. Mas eles são usados em muitos lugares onde o tempo e a segurança são muito importantes. As pessoas os usam todos os dias e não se dão conta disso.

Exemplos comuns de núcleos maiores são o Embedded Linux e o Windows CE. Embora estes não tenham os limites de tempo necessários para um sistema rígido em tempo real, eles estão se tornando mais comuns, especialmente para dispositivos mais poderosos, tais como Roteadores sem fio e GPSs. Eles permitem a reutilização de código de domínio público para Drivers de Dispositivos, Servidores Web, Firewalls, e outros códigos. Os desenvolvedores de software que se sentem mais à vontade para escrever aplicações para PCs também acharão isto mais familiar. Se necessário, uma FPGA ou outro hardware especial pode ser usado para coisas que precisam de limites de tempo apertados.

Ferramentas

Como outros softwares, os projetistas de sistemas embarcados usam compiladores, montadores e depuradores para desenvolver softwares de sistemas embarcados. Entretanto, eles também podem usar algumas ferramentas mais específicas:

  • Para sistemas que usam processamento digital de sinais, os desenvolvedores podem usar ferramentas matemáticas como MATLAB, MathCad, ou Mathematica.
  • Compiladores e ligadores personalizados podem ser usados para melhorar a otimização do hardware em particular.
  • Um sistema incorporado pode ter sua própria linguagem especial ou ferramenta de projeto, ou acrescentar melhorias a uma linguagem existente como a utilizada pelo Selo Básico.

Ferramentas de depuração:

  • Um depurador em circuito (ICD), um dispositivo de hardware que se conecta ao microprocessador através de uma interface JTAG. Isto inicia e pára o microprocessador de fora enquanto ele executa o software. Ele também permite que a memória e os registros sejam lidos, e que o programa de software seja armazenado na memória.
  • Depuração externa usando registro ou saída de porta serial para rastrear a operação usando um monitor intermitente (printfs).
  • Depuração residente interativa - se o SO suportar, este é um shell no processador incorporado que executa comandos digitados pelo desenvolvedor (Linux, por exemplo).
  • Um emulador em circuito substitui o microprocessador na placa, proporcionando controle total sobre tudo o que o microprocessador poderia fazer.
  • Um emulador completo simula todas as características do hardware, permitindo que todo ele seja controlado e modificado. O hardware não existe realmente, mas uma versão fingida dele (uma máquina "virtual") está em um PC normal.
  • Verificação de linhas externas com um analisador lógico ou multímetro.

A menos que restrito à depuração externa, o programador normalmente pode carregar e executar o software através das ferramentas, visualizar o código rodando no processador e iniciar ou parar sua operação. A visualização do código pode ser como código de montagem ou código-fonte. Alguns sistemas integrados (como o VxWorks ou Green Hills) têm características especiais, como manter o controle de quanto espaço o software ocupa enquanto roda, que tarefas estão sendo executadas e quando as coisas acontecem.

Dependendo do tipo de sistema incorporado que está sendo feito, afetará a forma como ele pode ser depurado. Por exemplo, a depuração de um único sistema de microprocessador é diferente da depuração de um sistema onde o processamento também é feito em um periférico (DSP, FPGA, co-processador).

Segurança e Confiabilidade

Os sistemas incorporados são freqüentemente em máquinas que se espera que funcionem durante anos sem erros e, em alguns casos, se recuperam por si mesmos se ocorrer um erro. Isto significa que o software é geralmente desenvolvido e testado com mais cuidado do que o de computadores pessoais, e são evitadas peças mecânicas móveis não confiáveis, como unidades de disco e ventiladores.

Lugares onde segurança e confiabilidade são importantes:

  • Alguns sistemas não podem ser desligados com segurança para reparos, ou é muito difícil de reparar. Exemplos incluem sistemas espaciais (satélites, rovers), cabos submarinos e controles de usinas de energia nuclear.
  • O sistema pode matar pessoas se falhar, tais como controles de aeronaves, controles de fábricas químicas, sinais de trem e desfibriladores cardíacos.
  • O sistema perderá grandes quantidades de dinheiro se for desligado ou se for cometido um erro: Interruptores telefônicos, controles de fábrica, caixas registradoras, caixas eletrônicos.

Maneiras de recuperar de erros - tanto erros de software como vazamentos de memória, como também erros suaves no hardware:

  • Temporizador Watchdog que reinicia o sistema incorporado se algo deixar de funcionar.
  • Peças duplicadas, onde um sistema pode assumir o controle se outro parar de funcionar.
  • Software de "modos mancos" que proporcionam uma função parcial.
  • Programação Imunidade Aware

Páginas relacionadas

Perguntas e Respostas

Q: O que é um sistema incorporado?


R: Um sistema incorporado é um computador criado para resolver problemas específicos e não é fácil de ser alterado.

P: Qual é a diferença entre um sistema incorporado e um computador de uso geral?


R: Um sistema incorporado geralmente não tem teclado, monitor ou mouse e tem funções especializadas. Um computador de uso geral pode executar uma ampla gama de tarefas.

P: Quais são alguns exemplos de sistemas incorporados?


R: Exemplos de sistemas incorporados incluem controladores de elevadores, decodificadores, leitores de cartões em fechaduras de portas de hotéis, sistemas de semáforos, aviões e linhas de montagem em fábricas.

P: O que é computação em tempo real?


R: Computação em tempo real é quando um sistema incorporado precisa concluir seu trabalho em um período de tempo específico. Se for interrompido, pode causar problemas como má qualidade de imagem em uma TV.

P: Quais são os componentes de um sistema incorporado?


R: Como qualquer computador, um sistema incorporado tem um processador, software, entrada e saída.

P: Quais são algumas tarefas que um sistema incorporado pode controlar?


R: Um sistema incorporado pode controlar pequenos dispositivos, como MP3 players ou câmeras digitais, ou sistemas maiores, como semáforos ou aviões.

P: O que significa o termo "incorporado" em relação aos sistemas incorporados?


R: O termo "incorporado" significa que o computador está integrado em um sistema maior e não é facilmente alterado.

AlegsaOnline.com - 2020 / 2023 - License CC3