Skip to main content
Esta página é exibida usando tradução automática. Prefere ver em inglês?

Software incorporado

O software incorporado é um aplicativo ou firmware especializado executado em um cluster de processamento incorporado a um SoC ou IC. Quase qualquer produto eletrônico pode conter um ou vários processadores embutidos, comuns nos automóveis atuais, automação de piso de fábrica, aviônicos, dispositivos médicos e muito mais.

Quais são os diferentes tipos de software embarcado?

Os aplicativos de software incorporados são programações especializadas em dispositivos que não são de PC — como parte de um microchip ou como parte de outro aplicativo que fica na parte superior do chip — para controlar funções específicas do dispositivo. Ao contrário dos aplicativos para PC, que podem ser instalados em vários sistemas de computador e modificados para fornecer diferentes níveis de funcionalidade, o software incorporado tem requisitos e capacidades de hardware fixos. Ele é criado exclusivamente para o dispositivo específico em que é executado, com restrições de processamento e memória vinculadas diretamente às suas especificações. No contexto dessa discussão, o software embarcado inclui aplicativos, firmware, middleware e sistemas operacionais que são executados em um único microprocessador ou cluster de microprocessadores “incorporados” em uma lógica adicional.

Produtos relacionados: Capital Embedded AR Classic | Capital Embedded Integrator AR Classic | Capital Embedded Virtualizer AR Classic

A professional working on a computer with a graph, another person standing nearby observing the screen.

Características e características dos sistemas embarcados

Embora existam muitos tipos de sistemas embarcados, todos eles compartilham os mesmos recursos benéficos e características de design.

Todos os sistemas embarcados são específicos para cada tarefa

Eles executam a mesma função pré-programada durante toda a vida útil e não podem ser alterados.

Todos os sistemas embarcados são de alta eficiência

Os requisitos de recursos do software incorporado nunca devem exceder a capacidade do hardware no qual ele está instalado, e as especificações do hardware nunca devem exceder os requisitos mínimos do software incorporado.

Projetado para estabilidade

Todos os sistemas embarcados são projetados para serem altamente confiáveis e estáveis. Eles devem realizar suas tarefas com tempos de resposta consistentes e funcionar durante toda a vida útil do dispositivo que os abriga.

Que tipos de software embarcado a Siemens oferece?

A Siemens oferece os dois software embarcado automotivo e engenharia de software embarcada soluções. A Siemens interrompeu a oferta de software incorporado independente para SoCs com a aposentadoria, em novembro de 2023, dos produtos Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux e Sourcery CodeBench (incluindo complementos associados). Os contratos de suporte existentes para esses produtos ainda estão sendo honrados. Entre em contato com a Siemens Centro de suporte para obter mais informações.

Quais são os diferentes tipos de software embarcado e suas finalidades?

  • Sistema operacional — Um sistema operacional (SO), em seu sentido mais geral, é um software que permite ao usuário executar outros aplicativos em um dispositivo de computação. O sistema operacional gerencia os recursos de hardware de um processador, incluindo dispositivos de entrada, como teclado e mouse, dispositivos de saída, como telas ou impressoras, conexões de rede e dispositivos de armazenamento, como discos rígidos e memória. O sistema operacional também fornece serviços para facilitar a execução e o gerenciamento eficientes e as alocações de memória para programas de aplicativos de software.
  • Firmware — Firmware é um tipo de software escrito diretamente para uma peça de hardware. Ele opera sem passar por APIs, sistema operacional ou drivers de dispositivo, fornecendo as instruções e orientações necessárias para se comunicar com outros dispositivos ou realizar tarefas e funções básicas conforme o esperado.
  • Middleware — O middleware é uma camada de software situada entre aplicativos e sistemas operacionais. O middleware é frequentemente usado em sistemas distribuídos, onde simplifica o desenvolvimento de software, fornecendo o seguinte:

    • Escondendo as complexidades dos aplicativos distribuídos
    • Mascarando a heterogeneidade de hardware, sistemas operacionais e protocolos
    • Fornecendo interfaces uniformes e de alto nível usadas para criar aplicativos interoperáveis, reutilizáveis e portáteis.
    • Fornecendo um conjunto de serviços comuns que minimiza a duplicação de esforços e aprimora a colaboração entre aplicativos
  • Aplicativo — O usuário final desenvolve o aplicativo de software final que é executado no sistema operacional, usa ou interage com o middleware e o firmware e é o foco principal da função de destino dos sistemas embarcados. Cada aplicativo final é exclusivo, enquanto os sistemas operacionais e o firmware podem ser idênticos de dispositivo para dispositivo.

Software embarcado versus sistemas embarcados

Os componentes de hardware em um dispositivo que executa software incorporado são chamados de “sistema embarcado”. Alguns exemplos de componentes de hardware usados em sistemas embarcados são circuitos de alimentação, unidades centrais de processamento, dispositivos de memória flash, temporizadores e portas de comunicação serial. Durante as fases iniciais de design de um dispositivo, o hardware que formará o sistema embarcado — e sua configuração dentro do dispositivo — é decidido. Em seguida, o software embarcado é desenvolvido do zero para ser executado exclusivamente nesse hardware nessa configuração precisa. Isso torna o design de software embarcado um campo especializado que exige profundo conhecimento das capacidades de hardware e da programação de computadores.

Exemplos de funções incorporadas baseadas em software

Quase todos os dispositivos com placas de circuito e chips de computador têm esses componentes organizados em um sistema de software incorporado. Como resultado, os sistemas de software embarcados são onipresentes na vida cotidiana e são encontrados em toda a tecnologia de consumo, industrial, automotiva, aeroespacial, médica, comercial, de telecomunicações e militar.

Exemplos comuns de recursos incorporados baseados em software incluem:

  • Sistemas de processamento de imagem encontrados em equipamentos de imagem médica
  • Sistemas de controle fly-by-wire encontrados em aeronaves
  • Sistemas de detecção de movimento em câmeras de segurança
  • Sistemas de controle de tráfego encontrados em semáforos
  • Sistemas de temporização e automação encontrados em dispositivos domésticos inteligentes

Quais são os diferentes tipos de sistemas embarcados?

Quando baseados em requisitos funcionais e de desempenho, existem cinco classes principais de sistemas embarcados:

  • Os sistemas embarcados em tempo real concluem as tarefas de maneira determinística e repetível, o que é afetado pela arquitetura e pelo agendamento subjacentes dos sistemas operacionais, bem como pelo desempenho dos threads, pela ramificação e pela latência de interrupção. Os sistemas embarcados de uso geral não contêm requisitos em tempo real e podem gerenciar interrupções ou ramificações sem depender de um tempo de conclusão. Monitores gráficos e gerenciamento de teclado e mouse são bons exemplos de sistemas gerais.
  • Sistemas embarcados autônomos podem concluir tarefas sem um sistema host ou recursos de processamento externos. Eles podem gerar ou receber dados de dispositivos conectados, mas não dependem deles para concluir suas tarefas.
  • Sistemas embarcados autônomos podem concluir suas tarefas sem um sistema host ou recursos externos de processamento. Eles podem gerar ou receber dados de dispositivos conectados, mas não dependem deles para concluir suas tarefas.
  • Os sistemas embarcados em rede dependem de uma rede conectada para realizar as tarefas atribuídas.
  • Com base na complexidade da arquitetura de hardware do sistema, existem três tipos principais de sistemas embarcados: Os sistemas embarcados em rede dependem de uma rede conectada para realizar tarefas atribuídas.

Como os mercados finais afetam os sistemas embarcados

Os requisitos e componentes do sistema embarcado serão diferentes de acordo com as demandas do mercado-alvo. Alguns exemplos incluem:

  • Consumidor — Em aplicações como bens de consumo, como lavadoras, dispositivos vestíveis e telefones celulares, os sistemas embarcados enfatizam o tamanho reduzido do
  • Sistema em chip, baixo consumo de energia ou operação com bateria e interfaces gráficas. Nesses aplicativos, os sistemas operacionais configuráveis e a capacidade de desativar “domínios” não operacionais do design são valorizados.
  • Rede — Aplicativos que permitem conectividade, comunicação, operações e gerenciamento de uma rede corporativa. Ele fornece o caminho de comunicação e os serviços entre usuários, processos, aplicativos, serviços e redes externas/internet. Os aplicativos de rede incorporados se concentram na velocidade de resposta, no processamento de pacotes e nos caminhos de hardware periférico.
  • Industrial — Para aplicações como gerenciamento de chão de fábrica, motores e moinhos de vento, a ênfase tende a proteger a conectividade em nuvem e a operação determinística em “tempo real” e pode se concentrar fortemente no middleware.
  • Médico, Automotivo e Aeroespacial — Essas indústrias precisam de sistemas críticos de segurança mistos, em que partes do projeto sejam isoladas umas das outras para garantir que apenas os dados necessários entrem ou saiam do sistema (segurança), sem causar danos ao usuário final (segurança). Exemplos são sistemas de direção autônoma em automóveis e dispositivos médicos. Esses sistemas embarcados podem apresentar uma combinação de sistemas operacionais de código aberto (Linux) e sistemas operacionais determinísticos em tempo real (RTOS) e utilizar fortemente middleware comprovado.

Por que o software embarcado automotivo é diferente?

Na eletrônica automotiva, interações complexas em tempo real ocorrem em vários sistemas embarcados em que cada controle funciona, como frenagem, direção, suspensão, trem de força etc. A caixa física que contém cada sistema embarcado é chamada de unidade de controle eletrônico (ECU). Cada ECU e seu software incorporado fazem parte de uma arquitetura elétrica complexa conhecida como sistema distribuído.

Ao se comunicarem entre si, as ECUs que compõem o sistema distribuído de um veículo podem executar uma variedade de funções, como frenagem automática de emergência, controle de cruzeiro adaptativo, controle de estabilidade, faróis adaptáveis e muito mais. Uma única função pode precisar de interações em 20 ou mais aplicativos de software incorporados espalhados por várias ECUs conectadas por vários protocolos de rede. Algoritmos de controle complexos implantados com o software incorporado garantem o tempo adequado das funções, as entradas e saídas necessárias e a segurança dos dados.

Exemplos comuns de recursos baseados em aplicativos de software automotivo incluem:

  • Recursos do ADAS (Advanced Driver Assist Systems), como controle de cruzeiro adaptativo, frenagem automática de emergência, assistência de manutenção de faixa, assistência de tráfego e avisos de saída de faixa
  • Gerenciamento de bateria
  • Compensação de torque
  • Controle da taxa de injeção de combustível

Pilha de software ECU

A Unidade de Controle Eletrônico ou ECU é composta por uma unidade de computação principal com hardware em nível de chip e uma pilha de software incorporado. No entanto, há uma tendência crescente entre os fabricantes automotivos de projetar ECUs com circuitos integrados complexos que contêm vários núcleos de computação em um único chip — o que é conhecido como Sistema em um Chip (SoC). Esses SoCs podem hospedar uma infinidade de abstrações de ECU para consolidar o hardware. A pilha de software para uma ECU normalmente inclui uma variedade de soluções, desde firmware de baixo nível até aplicativos de software incorporados de alto nível.

Pilha de ECU

Descrição

Aplicativo de software incorporado

Algoritmos de controle, processamento, serviços

Estrutura do aplicativo

Estruturas de segurança e proteção

Ambiente operacional

AUTOSAR classic, AUTOSAR Adaptive, canais de entrada/saída

Virtualizações incorporadas

Sistema operacional em tempo real, abstrações de ECU

Firmware

Carregadores de inicialização, armazenamento seguro, segmentação segura

Hardware

Dispositivos baseados em silício, microcontroladores, placas de camada única ou múltipla

Recursos relacionados ao software incorporado

Saiba mais

Software embarcado e design de rede

Descubra como você pode desenvolver de forma rápida e eficiente um software inovador e seguro para fornecer recursos vitais do produto.