A Siemens oferece ambos software incorporado automotivo e engenharia de software incorporada soluções. A Siemens interrompeu a oferta de software incorporado autónomo para SoCs com a descontinuação 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 estes produtos ainda estão a ser honrados, contacte a Siemens Centro de Suporte para mais informações.
Quais são os diferentes tipos de software incorporado e as suas finalidades?
- Sistema operativo — Um sistema operativo (SO), no seu sentido mais geral, é um software que permite a um utilizador executar outras aplicações num dispositivo de computação. O sistema operativo gere os recursos de hardware de um processador, incluindo dispositivos de entrada como teclado e rato, dispositivos de saída como monitores ou impressoras, ligações de rede e dispositivos de armazenamento como discos rígidos e memória. O SO também fornece serviços para facilitar a execução e gestão eficientes e alocações de memória para programas de aplicações de software.
- Firmware — Firmware é um tipo de software que é escrito diretamente para uma peça de hardware. Funciona sem passar por APIs, sistema operativo ou controladores de dispositivo — fornecendo as instruções e orientações necessárias para comunicar com outros dispositivos ou executar tarefas e funções básicas conforme pretendido.
- Middleware — Middleware é uma camada de software situada entre aplicações e sistemas operativos. O middleware é frequentemente utilizado em sistemas distribuídos onde simplifica o desenvolvimento de software fornecendo o seguinte:
- Esconder os meandros das aplicações distribuídas
- Mascarar a heterogeneidade de hardware, sistemas operativos e protocolos
- Fornecer interfaces uniformes e de alto nível utilizadas para tornar aplicações interoperáveis, reutilizáveis e portáteis.
- Fornecer um conjunto de serviços comuns que minimiza a duplicação de esforços e melhora a colaboração entre aplicações
- Aplicação — O utilizador final desenvolve a aplicação de software final que é executada no sistema operativo, utiliza ou interage com o middleware e o firmware, e é o foco principal da função de destino dos sistemas embarcados. Cada aplicação final é única, enquanto os sistemas operativos e o firmware podem ser idênticos de dispositivo para dispositivo.
Software incorporado vs sistemas embarcados
Os componentes de hardware num dispositivo que executa software incorporado são chamados de “sistema incorporado”. Alguns exemplos de componentes de hardware utilizados em sistemas embarcados são circuitos de fonte de alimentação, unidades de processamento central, dispositivos de memória flash, temporizadores e portas de comunicação serial. Durante as primeiras fases de design de um dispositivo, o hardware que irá compor o sistema incorporado — e a sua configuração dentro do dispositivo — é decidido. Depois, o software incorporado é desenvolvido a partir do zero para ser executado exclusivamente nesse hardware nessa configuração precisa. Isto torna o design de software incorporado num campo especializado que requer um conhecimento profundo das capacidades de hardware e programação de computadores.
Exemplos de funções baseadas em software incorporadas
Quase todos os dispositivos com placas de circuito e chips de computador têm esses componentes organizados num sistema de software incorporado. Como resultado, os sistemas de software incorporados são onipresentes na vida quotidiana e encontram-se em toda a tecnologia de consumo, industrial, automóvel, aeroespacial, médica, comercial, telecomunicações e militar.
Exemplos comuns de funcionalidades baseadas em software incorporadas incluem:
- Sistemas de processamento de imagem encontrados em equipamento de imagiologia médica
- Sistemas de controlo fly-by-wire encontrados em aeronaves
- Sistemas de deteção de movimento em câmaras de segurança
- Sistemas de controlo de tráfego encontrados nos 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 baseado no desempenho e requisitos funcionais, existem cinco classes principais de sistemas embarcados:
- Os sistemas incorporados em tempo real completam tarefas de forma determinística e repetível, o que é afetado pela arquitectura e programação subjacentes dos sistemas operativos, bem como pelo desempenho dos threads, ramificação e interrupção da latência. Os sistemas incorporados de uso geral não contêm um requisito em tempo real e podem gerir interrupções ou ramificação sem depender de um tempo de conclusão. Os monitores gráficos e a gestão de teclado e rato são bons exemplos de sistemas gerais.
- Os sistemas incorporados autónomos podem concluir tarefas sem um sistema anfitrião ou recursos de processamento externos. Podem produzir ou receber dados de dispositivos ligados mas não dependem deles para concluir a sua tarefa.
- Os sistemas embarcados autónomos podem concluir a sua tarefa sem um sistema anfitrião ou recursos de processamento externos. Podem produzir ou receber dados de dispositivos ligados mas não dependem deles para concluir a sua tarefa.
- Os sistemas incorporados em rede dependem de uma rede ligada para executar tarefas atribuídas.
- Com base na complexidade da arquitetura de hardware do sistema, existem três tipos principais de sistemas incorporados: Os sistemas incorporados em rede dependem de uma rede conectada para executar tarefas atribuídas.
Como os mercados finais afetam os sistemas embarcados
Os requisitos e componentes do sistema incorporado serão diferentes de acordo com as exigências do mercado-alvo. Alguns exemplos incluem:
- Consumidor — Em aplicações como bens de consumo, tais como lavadoras, dispositivos vestíveis e telemóveis, os sistemas incorporados enfatizam o tamanho reduzido do
- Sistema no chip, baixo consumo de energia ou funcionamento com bateria e interfaces gráficas. Nestas aplicações, os sistemas operativos configuráveis e a capacidade de desligar “domínios” não operacionais do design são valorizados.
- Redes — Aplicações que permitem conectividade, comunicação, operações e gestão de uma rede empresarial. Fornece o caminho de comunicação e os serviços entre utilizadores, processos, aplicações, serviços e redes externa/internet. As aplicações de rede incorporadas concentram-se na velocidade de resposta, processamento de pacotes e caminhos de hardware periférico.
- Industrial — Para aplicações como gestão de chão de fábrica, motores e moinhos de vento, a ênfase tende a proteger a conectividade na nuvem e a operação determinística “em tempo real” e pode concentrar-se fortemente no middleware.
- Médico, Automotivo e Aeroespacial — Estas indústrias precisam de sistemas críticos de segurança mistos, onde partes do projeto são isoladas umas das outras para garantir que apenas os dados necessários entrem ou saiam do sistema (segurança), garantindo que não haja danos ao utilizador final (segurança). Exemplos são sistemas de condução autónoma em automóveis e dispositivos médicos. Estes sistemas incorporados podem apresentar uma mistura de sistemas operativos de código aberto (Linux) e sistemas operativos determinísticos em tempo real (RTOS) e utilizar fortemente middleware comprovado.
Porque é que o software incorporado automóvel é diferente?
Na electrónica automóvel, ocorrem interações complexas em tempo real através de vários sistemas incorporados em que cada controlo funciona como travagem, direção, suspensão, grupo propulsor, etc. A caixa física que contém cada sistema incorporado é referida como uma unidade de controlo electrónico (ECU). Cada ECU e o seu software incorporado fazem parte de uma arquitetura elétrica complexa conhecida como sistema distribuído.
Ao comunicarem entre si, as ECUs que compõem o sistema distribuído de um veículo podem executar uma variedade de funções, tais como travagem automática de emergência, controlo de cruzeiro adaptativo, controlo de estabilidade, faróis adaptativos e muito mais. Uma única função pode necessitar de interações entre 20 ou mais aplicações de software incorporadas espalhadas por numerosas ECUs ligadas por vários protocolos de rede. Algoritmos de controlo complexos implementados com o software incorporado garantem o tempo adequado das funções, entradas e saídas necessárias e segurança dos dados.
Exemplos comuns de funcionalidades baseadas em aplicações de software automóvel incluem:
- Características ADAS (Advanced Driver Assist Systems) como controlo de cruzeiro adaptativo, travagem automática de emergência, assistência de manutenção de faixa, assistência de tráfego, avisos de saída de faixa
- Gestão da bateria
- Compensação de torque
- Controlo da taxa de injecção de combustível
Pilha de software ECU
A Unidade de Controlo Eletrónico ou ECU é composta por uma unidade de computação principal com hardware de nível de chip e uma pilha de software incorporado. No entanto, há uma tendência crescente entre os fabricantes de automóveis de conceber ECUs com circuitos integrados complexos que contêm múltiplos núcleos de computação num único chip — o que é referido como um Sistema em um Chip (SoC). Estes SoCs podem alojar uma infinidade de abstrações de ECU para consolidar o hardware. A pilha de software para uma ECU inclui tipicamente uma gama de soluções, desde firmware de baixo nível a aplicações de software incorporadas de alto nível.
Pilha de ECU | Descrição |
Aplicação de software incorporada | Algoritmos de controlo, processamento, serviços |
Quadro de aplicação | Estruturas de Security e proteção |
Ambiente operacional | AUTOSAR classic, AUTOSAR Adaptive, Canais de entradas/Saídas |
Virtualizações incorporadas | SO em tempo real, abstrações ECU |
Firmware | Carregadores de arranque, armazenamento seguro, segure threading |
Hardware | Dispositivos à base de silício, microcontroladores, placas de uma ou várias camadas |