Siemens propose les deux logiciel embarqué pour l'automobile et génie logiciel intégré solutions. Siemens a cessé de proposer des logiciels intégrés autonomes pour les SoC après 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 de support existants pour ces produits sont toujours en cours d'exécution, veuillez contacter Siemens Centre d'assistance pour plus d'informations.
Quels sont les différents types de logiciels intégrés et leurs objectifs ?
- 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 appareil 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 que le clavier et la 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 tels que les disques durs et la mémoire. Le système d'exploitation fournit également des services visant à faciliter l'exécution, la gestion et l'allocation de mémoire efficaces des applications logicielles.
- Micrologiciel — Le firmware est un type de logiciel écrit directement pour un matériel. Il fonctionne sans passer par les API, le système d'exploitation ou les pilotes d'appareils. Il fournit les instructions et les conseils nécessaires pour communiquer avec d'autres appareils ou effectuer des tâches et fonctions de base comme prévu.
- Middleware — Le middleware est une couche logicielle située entre les applications et les systèmes d'exploitation. Les intergiciels sont souvent utilisés dans les systèmes distribués où ils simplifient le développement logiciel 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 permettant de créer des applications interopérables, réutilisables et portables.
- Fournir un ensemble de services communs qui minimisent la duplication des efforts et améliorent 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 le middleware et le microprogramme, et constitue l'objectif principal de la fonction cible des systèmes intégrés. Chaque application finale est unique, tandis que le système d'exploitation et le firmware peuvent être identiques d'un appareil à l'autre.
Logiciels intégrés ou systèmes embarqués
Les composants matériels d'un appareil exécutant un logiciel intégré sont appelés « système intégré ». Parmi les composants matériels utilisés dans les systèmes embarqués, citons les circuits d'alimentation, les unités centrales, les dispositifs de mémoire flash, les minuteries et les ports de communication série. Au cours des premières phases de conception d'un appareil, le matériel qui constituera le système intégré — et sa configuration au sein de l'appareil — sont décidés. 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 embarqués un domaine spécialisé qui nécessite une connaissance approfondie des capacités matérielles et de la programmation informatique.
Exemples de fonctions logicielles intégrées
Presque tous les appareils équipés de circuits imprimés et de puces informatiques sont équipés de ces composants dans un système logiciel intégré. Par conséquent, les systèmes logiciels intégrés sont omniprésents dans la vie de tous les jours et sont présents dans les technologies grand public, industrielles, automobiles, aérospatiales, médicales, commerciales, des télécommunications et militaires.
Voici des exemples courants de fonctionnalités logicielles intégrées :
- Systèmes de traitement d'images présents dans les équipements d'imagerie médicale
- Systèmes de commande volants découverts dans les avions
- Systèmes de détection de mouvement intégrés aux caméras de sécurité
- Systèmes de contrôle de la circulation présents dans les feux de signalisation
- Systèmes de chronométrage et d'automatisation présents dans les appareils domestiques intelligents
Quels sont les différents types de systèmes embarqués ?
Si l'on se base sur les performances et les exigences fonctionnelles, il existe cinq catégories principales de systèmes intégrés :
- Les systèmes embarqués en temps réel accomplissent les tâches de manière déterministe et répétable, en fonction de l'architecture sous-jacente et de la planification des systèmes d'exploitation, ainsi que des performances des threads, des branchements et des interruptions de latence. Les systèmes intégrés à usage général ne contiennent aucune exigence en temps réel et peuvent gérer les interruptions ou les branchements sans dépendre du temps de fin. Les écrans 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 émettre ou recevoir des données depuis des appareils connectés, mais ils ne dépendent pas d'eux pour accomplir leur tâche.
- Les systèmes embarqués autonomes peuvent accomplir leur tâche sans système hôte ni ressources de traitement externes. Ils peuvent émettre ou recevoir des données depuis des appareils connectés, mais ils ne dépendent pas d'eux pour accomplir leur tâche.
- Les systèmes embarqué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 embarqués en réseau dépendent d'un réseau connecté pour effectuer les tâches qui leur sont assignées.
L'impact du marché final sur les systèmes embarqués
La configuration requise et les composants des systèmes intégrés varient en fonction de la demande du marché cible. Parmi les exemples, citons :
- Consommateur — Dans des applications telles que les biens de consommation tels que les machines à laver, les appareils portables et les téléphones portables, les systèmes intégrés mettent l'accent sur la taille réduite
- Système sur puce, faible consommation d'énergie ou fonctionnement sur batterie et interfaces graphiques. Dans ces applications, les systèmes d'exploitation configurables et la possibilité de désactiver les « domaines » qui ne fonctionnent pas sont appréciés.
- Réseau : applications qui permettent la connectivité, la communication, les opérations et la gestion d'un réseau d'entreprise. Il fournit la voie de communication et les services entre les utilisateurs, les processus, les applications, les services et les réseaux externes/Internet. Les applications réseau intégrées se concentrent sur la vitesse de réponse, le traitement des paquets et les chemins matériels périphériques.
- Industriel — Pour les applications telles que la gestion des usines, les moteurs et les éoliennes, l'accent est mis sur la sécurisation de la connectivité au cloud et le fonctionnement déterministe en « temps réel », et peut se concentrer principalement sur les intergiciels.
- Médecine, automobile et aérospatiale — Ces secteurs ont besoin de systèmes critiques à sécurité mixte, dont certaines parties de la conception sont isolées les unes des autres afin de garantir que seules les données nécessaires entrent ou sortent du système (sécurité) tout en garantissant l'absence de danger pour l'utilisateur final (sécurité). Les systèmes de conduite autonome des automobiles et les dispositifs médicaux en sont des exemples. Ces systèmes intégrés peuvent intégrer à la fois des systèmes d'exploitation open source (Linux) et déterministes en temps réel (RTOS) et faire largement appel à un intergiciel éprouvé.
Pourquoi les logiciels embarqués pour automobiles sont-ils différents ?
Dans le domaine de 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, telles que le freinage, la direction, la suspension, le groupe motopropulseur, etc. Le boîtier physique contenant chaque système intégré est appelé unité de commande électronique (ECU). Chaque calculateur 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 calculateurs qui constituent le système distribué d'un véhicule peuvent exécuter diverses 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 20 applications logicielles intégrées ou plus, réparties sur de nombreux calculateurs connectés par de multiples protocoles réseau. Des algorithmes de contrôle complexes déployés avec le logiciel intégré garantissent le bon chronométrage des fonctions, les entrées et sorties nécessaires et la sécurité des données.
Voici des exemples courants de fonctionnalités basées sur des applications logicielles automobiles :
- Fonctions ADAS (Advanced Driver Assist Systems) telles que le régulateur de vitesse adaptatif, le freinage d'urgence automatique, l'assistance au maintien de voie, l'assistance routière, les alertes de sortie de voie
- Gestion de la batterie
- Compensation de couple
- Contrôle du taux d'injection
Pile logicielle ECU
L'unité de commande électronique ou ECU est composée d'une unité informatique principale dotée d'un matériel au niveau de la puce et d'une pile de logiciels intégrés. Cependant, les constructeurs automobiles ont de plus en plus tendance à concevoir des calculateurs dotés de circuits intégrés complexes contenant plusieurs cœurs de calcul sur une seule puce, ce que l'on appelle un système sur puce (SoC). Ces SoC peuvent héberger une multitude d'abstractions d'ECU afin de consolider le matériel. La suite logicielle d'un calculateur comprend généralement une gamme de solutions, allant du microprogramme de bas niveau aux applications logicielles intégrées de haut niveau.
ECU Stack | Description |
Application logicielle intégrée | Algorithmes de contrôle, traitements, services |
Cadre de candidature | Security & Safety Frameworks |
Environnement d'exploitation | AUTOSAR classic, AUTOSAR Adaptive, canaux d'entrées/sorties |
Virtualisations intégrées | Système d'exploitation en temps réel, abstractions de l'ECU |
Micrologiciel | Chargeurs de démarrage, stockage sécurisé, thread sécurisé |
Matériel | Appareils à base de silicium, microcontrôleurs, cartes monocouches ou multicouches |