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 |