1. Home

Logiciel intégré

Un logiciel intégré est une application ou un micrologiciel spécialisé qui s'exécute sur un cluster de traitement intégré à un SoC ou un circuit intégré. Presque tous les produits électroniques peuvent contenir un ou plusieurs processeurs intégrés, courants dans les automobiles d'aujourd'hui, l'automatisation des usines, l'avionique, les dispositifs médicaux et plus encore.

Quels sont les différents types de logiciels intégrés ?

Les applications logicielles intégrées sont des programmations spécialisées dans les appareils non PC (soit dans le cadre d'une micropuce, soit dans le cadre d'une autre application qui se trouve sur la puce) pour contrôler des fonctions spécifiques de l'appareil. Contrairement aux applications PC, qui peuvent être installées sur divers systèmes informatiques et modifiées pour fournir différents niveaux de fonctionnalités, les logiciels intégrés ont des exigences et des capacités matérielles fixes. Ils sont créés exclusivement pour un dispositif en particulier sur lequel ils s'exécutent, avec des restrictions de traitement et de mémoire directement liées à ses spécifications. Dans le contexte de cette discussion, les logiciels intégrés comprennent les applications, les micrologiciels, les intergiciels et les systèmes d'exploitation qui s'exécutent sur un seul microprocesseur ou un groupe de microprocesseurs "intégrés" dans une logique supplémentaire.

Produits connexes : Capital Embedded AR Classic | Capital Embedded Integrator AR Classic | Capital Embedded Virtualizer AR Classic

embedded-software-is803905696-feature-640x360

Caractéristiques et fonctions technologiques des systèmes intégrés

Même s'il existe de nombreux types de systèmes intégrés, ils partagent tous les mêmes fonctions bénéfiques et caractéristiques de conception.

Tous les systèmes intégrés sont spécifiques à une tâche

Ils exécutent la même fonction préprogrammée tout au long de leur durée de vie utile et ne peuvent pas être modifiés.

Tous les systèmes intégrés sont à haut rendement

Les besoins en ressources des logiciels intégrés ne doivent jamais dépasser la capacité du matériel sur lequel ils sont installés, et les spécifications du matériel ne doivent jamais être inférieures aux exigences minimales des logiciels intégrés.

Conçu pour la stabilité

Tous les systèmes intégrés sont conçus pour être très fiables et stables. Ils doivent accomplir leur tâche avec des temps de réponse et un fonctionnement constants tout au long de la durée de vie du dispositif qui les héberge.

Quels types de logiciels intégrés Siemens propose-t-il ?

Siemens propose à la fois des logiciels intégrés automobiles et des solutions d'ingénierie logicielle intégrée . Siemens a cessé de proposer des logiciels intégrés autonomes pour les SoC avec le retrait en novembre 2023 des produits Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux et Sourcery CodeBench (y compris les modules complémentaires associés). Les contrats d'assistance existants pour ces produits sont toujours honorés, veuillez contacter le Centre d'assistance Siemens pour plus d'informations.

Quels sont les différents types de logiciels intégrés et leurs finalités ?

  • Système d'exploitation : un système d'exploitation (OS), dans son sens le plus général, est un logiciel qui permet à un utilisateur d'exécuter d'autres applications sur un dispositif informatique. Le système d'exploitation gère les ressources matérielles d'un processeur, y compris les périphériques d'entrée tels qu'un clavier et une souris, les périphériques de sortie tels que les écrans ou les imprimantes, les connexions réseau et les périphériques de stockage comme les disques durs et la mémoire. Le système d'exploitation fournit également des services pour faciliter l'exécution et la gestion efficaces des programmes d'application logicielle et l'allocation de mémoire pour ceux-ci.
  • Micrologiciel : le micrologiciel est un type de logiciel qui est écrit directement pour un matériel. Il fonctionne sans passer par les API, le système d'exploitation ou les pilotes de périphériques, fournissant les instructions et les conseils nécessaires pour communiquer avec d'autres dispositifs ou effectuer des tâches et des fonctions de base comme prévu.
  • Intergiciel : l'intergiciel est une couche logicielle située entre les applications et les systèmes d'exploitation. L'intergiciel est souvent utilisé dans les systèmes distribués où il simplifie le développement de logiciels en fournissant les éléments suivants :

    • Masquer les subtilités des applications distribuées.
    • Masquer l'hétérogénéité du matériel, des systèmes d'exploitation et des protocoles.
    • Fournir des interfaces uniformes et de haut niveau utilisées pour créer des applications interopérables, réutilisables et portables.
    • Fournir un ensemble de services communs qui minimise la duplication des efforts et améliore la collaboration entre les applications.
  • Application : l'utilisateur final développe l'application logicielle finale qui s'exécute sur le système d'exploitation, utilise ou interagit avec l'intergiciel et le micrologiciel, et constitue l'objectif principal de la fonction cible des systèmes intégrés. Chaque application finale est unique, tandis que les systèmes d'exploitation et les micrologiciels peuvent être identiques d'un dispositif à l'autre.

Logiciels intégrés et systèmes intégrés

Les composants matériels d'un dispositif exécutant un logiciel intégré sont appelés "système intégré". Parmi les composants matériels utilisés dans les systèmes intégrés, citons les circuits d'alimentation, les unités centrales de traitement, les dispositifs de mémoire flash, les minuteries et les ports de communication série. C'est au cours des premières phases de conception d'un dispositif qu'il est décidé du matériel qui constituera le système intégré (et de sa configuration au sein du dispositif). Ensuite, le logiciel intégré est développé à partir de zéro pour fonctionner exclusivement sur ce matériel dans cette configuration précise. Cela fait de la conception de logiciels intégrés un domaine spécialisé nécessitant une connaissance approfondie des capacités matérielles et de la programmation informatique.

Exemples de fonctions logicielles intégrées

Presque tous les dispositifs dotés de cartes de circuits imprimés et de puces informatiques ont ces composants disposés dans un système logiciel intégré. Par conséquent, les systèmes logiciels intégrés sont omniprésents dans la vie quotidienne et se retrouvent dans les technologies grand public, industrielles, automobiles, aéronautiques, médicales, commerciales, de télécommunication et militaires.

Voici des exemples courants de fonctions logicielles intégrées :

  • Systèmes de traitement d'images que l'on trouve dans les équipements d'imagerie médicale
  • Systèmes de commandes de vol électriques que l'on trouve dans les avions
  • Systèmes de détection de mouvement dans les caméras de sécurité
  • Systèmes de contrôle de la circulation dans les feux de circulation
  • Systèmes de chronométrage et d'automatisation que l'on trouve dans les appareils domestiques intelligents

Quels sont les différents types de systèmes intégrés ?

En fonction des performances et des exigences fonctionnelles, il existe cinq grandes classes de systèmes intégrés :

  • Les systèmes intégrés en temps réel effectuent des tâches de manière déterministe et reproductible, ce qui est affecté par l'architecture et la programmation sous-jacentes des systèmes d'exploitation, ainsi que par les performances des fils, des branchements et de la latence d'interruption. Les systèmes intégrés à usage général ne contiennent pas d'exigence en temps réel et peuvent gérer les interruptions ou les branchements sans dépendre d'un délai d'exécution. Les affichages graphiques et la gestion du clavier et de la souris sont de bons exemples de systèmes généraux.
  • Les systèmes intégrés autonomes peuvent effectuer des tâches sans système hôte ni ressources de traitement externes. Ils peuvent produire ou recevoir des données à partir d'appareils connectés, mais ne dépendent pas de ceux-ci pour accomplir leur tâche.
  • Les systèmes intégrés autonomes peuvent accomplir leur tâche sans système hôte ni ressources de traitement externes. Ils peuvent produire ou recevoir des données à partir d'appareils connectés, mais ne dépendent pas de ceux-ci pour accomplir leur tâche.
  • Les systèmes intégrés en réseau dépendent d'un réseau connecté pour effectuer les tâches qui leur sont assignées.
  • En fonction de la complexité de l'architecture matérielle du système, il existe trois principaux types de systèmes intégrés : Les systèmes intégrés en réseau dépendent d'un réseau connecté pour effectuer les tâches qui leur sont assignées.

Comment les marchés finaux affectent les systèmes intégrés ?

Les exigences et les composants du système intégré différeront en fonction des demandes du marché cible. En voici quelques exemples :

  • Consommateur : dans des applications telles que les biens de consommation comme les machines à laver, les dispositifs connectés et les téléphones portables, les systèmes intégrés mettent l'accent sur la taille réduite du
  • système sur puce, la faible consommation d'énergie ou le fonctionnement sur batterie et interfaces graphiques. Dans ces applications, les systèmes d'exploitation configurables et la capacité de désactiver les "domaines" non opérationnels de la conception sont valorisés.
  • Mise en réseau : les applications permettent la connectivité, la communication, les opérations et la gestion d'un réseau d'entreprise. Il fournit le chemin de communication et les services entre les utilisateurs, les processus, les applications, les services et les réseaux externes/Internet. Les applications réseau embarquées se concentrent sur la vitesse de réponse, le traitement des paquets et les chemins matériels périphériques.
  • Industriel : pour des applications telles que la gestion des usines, les moteurs et les éoliennes, l'accent a tendance à être mis sur la sécurisation de la connectivité cloud et le fonctionnement déterministe "en temps réel", et peut se concentrer fortement sur l'intergiciel.
  • Médical, automobile et aéronautique : ces industries ont besoin de systèmes critiques à sécurité mixte, où des parties de la conception sont isolées les unes des autres pour garantir que seules les données nécessaires entrent ou sortent du système (sécurité) tout en garantissant l'absence de préjudice pour l'utilisateur final (sûreté). Les systèmes de conduite autonome dans les automobiles et les dispositifs médicaux en sont des exemples. Ces systèmes intégrés peuvent comporter un mélange de systèmes d'exploitation open source (Linux) et déterministes en temps réel (RTOS) et utiliser fortement des intergiciels éprouvés.

Pourquoi les logiciels intégrés automobiles sont-ils différents ?

Dans l'électronique automobile, des interactions complexes en temps réel se produisent entre plusieurs systèmes intégrés dont chacun contrôle des fonctions comme le freinage, la direction, la suspension, la transmission, etc. Le boîtier physique contenant chaque système intégré est appelé unité de commande électronique (ECU). Chaque ECU et son logiciel intégré font partie d'une architecture électrique complexe connue sous le nom de système distribué.

En communiquant entre eux, les ECU qui composent le système distribué d'un véhicule peuvent exécuter une variété de fonctions, telles que le freinage d'urgence automatique, le régulateur de vitesse adaptatif, le contrôle de stabilité, les phares adaptatifs et bien plus encore. Une seule fonction peut nécessiter des interactions entre au moins 20 applications logicielles intégrées réparties sur de nombreuses ECU connectés par plusieurs protocoles réseau. Des algorithmes de contrôle complexes déployés avec le logiciel intégré garantissent le bon timing des fonctions, les entrées et sorties nécessaires et la sécurité des données.

Voici des exemples courants de fonctions basées sur des applications logicielles automobiles :

  • Les fonctions ADAS (systèmes avancés d'aide à la conduite) telles que le régulateur de vitesse adaptatif, le freinage d'urgence automatique, l'assistance au maintien de voie, l'assistance au trafic, les avertissements de sortie de voie
  • Gestion de la batterie
  • Compensation de couple
  • Contrôle du taux d'injection de carburant

Pile logicielle de l'ECU

L'unité de commande électronique (ECU) est composée d'une unité de calcul principale avec du matériel au niveau de la puce et une pile de logiciels intégrés. Cependant, les constructeurs automobiles ont de plus en plus tendance à concevoir des ECU dotées de circuits intégrés complexes contenant plusieurs cœurs de calcul sur une seule puce, c'est ce que l'on appelle un système sur puce (SoC). Ces SoC peuvent héberger une multitude d'abstractions d'ECU de façon à consolider le matériel. La pile logicielle d'une ECU comprend généralement une gamme de solutions, allant du micrologiciel de bas niveau aux applications logicielles intégrées de haut niveau.

Pile ECU

Description

Applications logicielles intégrées

Traitements, services et algorithmes de contrôle

Contexte d'application

Contexte de sécurité et de sûreté

Environnements opérationnels

AUTOSAR classic, AUTOSAR Adaptive, Canaux d'entrée/sortie

Virtualisations intégrées

Abstractions de l'ECU et du système d'exploitation en temps réel

Micrologiciel

Chargeurs d'amorçage, stockage sécurisé, filetage sécurisé

Matériel

Dispositifs à base de silicone, microcontrôleurs, cartes monocouches ou multicouches

Ressources liées aux logiciels intégrés

En savoir plus

Logiciels intégrés et conception de réseaux

Découvrez comment vous pouvez développer rapidement et efficacement des logiciels innovants et sûrs pour fournir des fonctions technologiques essentielles au produit.