Sommet de l'ASTQ est disponible sur demande! Écoutez les chefs de file de l'industrie expliquer comment ils offrent une qualité continue. Regardez maintenant >>

X
BLOG

Qu'est-ce qu'un système embarqué ?

Qu'est-ce qu'un système embarqué ? Temps de lecture : 6 minutes

Les systèmes embarqués sont des systèmes informatiques basés sur des microprocesseurs, généralement intégrés dans un système ou un produit, qui ont un rôle opérationnel dédié. En d'autres termes, les systèmes embarqués sont les « intelligents » cachés derrière tous les appareils que nous utilisons, les voitures que nous conduisons, les avions dans lesquels nous volons et les trains dans lesquels nous voyageons.

Plutôt que d'être constitués de composants distincts tels que des ordinateurs de bureau, des serveurs et d'autres domaines informatiques similaires, les systèmes intégrés sont intégrés à des produits et incluent du matériel et des logiciels intégrés.

Comment sont utilisés les systèmes embarqués ?

Ce qui est intéressant avec les systèmes embarqués, c'est l'étendue des applications. Ils vont des petits contrôleurs dans les appareils domestiques intelligents aux systèmes avioniques dans les avions aux grands commutateurs de réseau qui composent nos réseaux de télécommunications. Cela les rend également difficiles à concevoir et à développer. Les contraintes du produit prévu ont un impact sur l'enveloppe de performances du matériel et des logiciels embarqués.

Les systèmes embarqués sont omniprésents mais relativement inconnus de la plupart des consommateurs. Les automobiles modernes ont jusqu'à 100 millions de lignes de code en eux et la plupart ne sont pas dans le système d'infodivertissement. Une grande partie des logiciels et du matériel d'une voiture moderne se trouve dans les divers microcontrôleurs et unités de commande du moteur qui contrôlent et surveillent les fonctionnalités modernes.

L'architecture des systèmes embarqués

Les systèmes embarqués se composent de matériel et de logiciels comme mentionné ci-dessus. Ils sont souvent utilisés dans des applications qui nécessitent à la fois de détecter quelque chose de physique dans l'environnement et de contrôler quelque chose en réponse.

Un exemple simple est un système CVC avec un contrôleur de thermostat intégré. Un tel système détecterait la température ambiante et actionnerait le chauffage ou la climatisation. Il peut nécessiter une forme de communication via une interface réseau et afficher la température sur un écran LCD (interface homme/machine ou IHM.)

De tels systèmes sont souvent appelés «temps réel» ou « événementiel » car ils doivent réagir en temps opportun aux événements du monde réel. Selon le type et la criticité de l'application, il est important de réagir aux événements à un moment précis. Les systèmes critiques pour la sécurité comme les freins antiblocage (ABS) dans une voiture doivent réagir en quelques millisecondes. De tels systèmes sont appelés « temps réel dur », ce qui signifie qu'ils doivent respecter les délais requis ou qu'une défaillance s'est produite. Les systèmes avec des délais plus souples sont appelés « temps réel souple ». Dans la plupart de ces cas, ces systèmes fonctionnent sur une sorte de système d'exploitation en temps réel (RTOS).

Voici un exemple simple d'architecture de système embarqué :

Diagramme montrant un environnement avec un système embarqué et un contrôleur à l'intérieur. Le système embarqué est symbolisé par un boîtier transparent au contour bleu et quatre boîtiers connectés : IHM, Capteurs, Actionneurs, Réseau/Série/USB. Ceux-ci pointent tous vers et depuis les éléments du contrôleur reflétés et contenus dans un boîtier de contrôleur vert, qui comprend la RAM, la ROM, les E/S et le processeur.

L'utilisation d'une architecture de microcontrôleur est également unique aux systèmes embarqués. Contrairement aux systèmes de bureau ou de serveur, les microcontrôleurs ont généralement toute la RAM, la ROM et les E/S sur une seule puce. Ces contrôleurs ont souvent les capacités d'E/S requises pour interagir avec les capteurs et les actionneurs et s'intégrer au réseau et à d'autres dispositifs de communication.

Matériel des systèmes embarqués

Les systèmes embarqués fonctionnent sur du matériel conçu pour répondre aux contraintes du produit dans lequel ils sont utilisés. Le matériel est souvent spécifié pour répondre aux objectifs commerciaux (par exemple, le coût) et techniques. Ces produits peuvent compter des millions d'unités et fonctionner pendant des décennies, ce qui implique la nécessité d'une fiabilité et d'une qualité à la fois matérielles et logicielles.

Contraintes sur le matériel

Les contraintes courantes sur le matériel du système embarqué sont :

  • Puissance de traitement limitée
  • Mémoire
  • Préservation

Ces contraintes limitent les performances et la complexité de l'application que le matériel peut prendre en charge. À son tour, cela augmente les défis de conception et de développement, en particulier lorsque l'on essaie d'intégrer plus de fonctionnalités.

Les contraintes matérielles du système embarqué sont déterminées par les exigences commerciales qui ont souvent un impact sur la rentabilité du produit final.

  • Coût de la nomenclature. Un matériel moins complexe est moins cher à l'achat et offre des marges bénéficiaires plus élevées. Cependant, à mesure que la complexité logicielle augmente, elle dépasse rapidement la capacité matérielle. Le passage à des processeurs à plus grande échelle signifie des coûts de nomenclature (BOM) plus élevés et des impacts logiciels importants.
  • Taille et poids. Les produits finaux sont limités par la taille et le poids, ce qui peut avoir un impact sur la sélection du matériel. Un matériel plus complexe peut nécessiter des cartes de circuits imprimés, des alimentations et une dissipation thermique plus grandes.
  • Consommation d'énergie. Les systèmes embarqués se trouvent souvent dans des équipements fonctionnant sur batterie où la consommation d'énergie est étroitement gérée. Ils peuvent également se trouver dans des systèmes haut de gamme où la chaleur est un problème.

Les exemples de matériel cible incluent de petits microcontrôleurs tels que :

  • L'omniprésent 8 bits 8051
  • MCU PIC16 de Microchip
  • ST Micro STM32 Microcontrôleur ARM Cortex 32 bits
  • Systèmes embarqués sur puce (TI OMAP ou le Raspberry Pi)
  • Systèmes 64 bits multiprocesseurs à grande échelle basés sur des processeurs ARM, Intel et AMD
Gestion des exigences et matrice de traçabilité

Logiciels de Systèmes Embarqués

La plupart des efforts d'ingénierie sont consacrés au logiciel des systèmes embarqués. En fait, la plupart des fabricants ont besoin d'un groupe de logiciels pour développer les applications intégrées dans leurs produits. En plaisantant, les PDG de ces sociétés plaisantent : « Nous sommes une société de logiciels se faisant passer pour un fabricant de widgets. » La réalité est que le logiciel est devenu le domaine clé de différenciation et d'innovation sur de nombreux marchés, y compris les entreprises dont le produit principal n'est pas un logiciel.

Tout comme pour le matériel, la complexité du logiciel dépend de l'application visée qui peut varier considérablement. Cependant, il existe trois grandes catégories dans lesquelles la plupart des logiciels embarqués s'intègrent :

  • Petite échelle
  • Échelle moyenne
  • Grande échelle

Petite échelle, "Bare Metal"

Ces applications reposent généralement sur des microcontrôleurs 8 et 16 bits sans système d'exploitation formel, également appelés bare metal. Les applications contrôlent généralement un seul sous-système basé sur quelques capteurs. Ils peuvent ne pas être connectés à un réseau et fonctionner de manière autonome. Le contrôle de haut niveau est ailleurs, comme avec un système de contrôle de supervision et d'acquisition de données (SCADA), généralement avec du matériel et des logiciels beaucoup plus complexes.

Échelle moyenne

Ces systèmes utilisent souvent des systèmes d'exploitation embarqués commerciaux ou open source qui sont souvent également en temps réel (RTOS). Ces systèmes d'exploitation fournissent les bibliothèques d'abstraction matérielle, de multitraitement et de multithreading, de réseau et d'interface nécessaires. Les exemples comprennent FreeRTOS, VxWorkset QNX, et dans certains cas, Linux embarqué. Les applications peuvent aller d'applications en temps réel critiques pour la sécurité, telles que l'avionique d'avion, aux routeurs sans fil et aux systèmes CVC.

Habituellement, le matériel est constitué de microcontrôleurs et de SoC 32 bits avec plus de RAM et de flash que les systèmes à petite échelle. Cependant, la complexité du logiciel est de plusieurs ordres de grandeur plus élevée dans cette catégorie avec des applications ayant des dizaines de milliers à un million de lignes de code (LOC) ou plus.

Grande échelle

Les systèmes de cette catégorie sont généralement très complexes avec de multiples fonctionnalités et capacités. Ils fonctionnent souvent sur du matériel de type serveur doté de multiprocesseurs. Les applications nécessitent souvent un traitement en temps réel et peuvent toujours utiliser un RTOS ou Linux haut de gamme. Les exemples incluent les commutateurs et les routeurs de réseau d'entreprise et les systèmes de dorsale de réseau de télécommunication, le traitement boursier et le contrôle du trafic aérien. Ces systèmes sont très complexes, interconnectés avec des bases de code de plusieurs millions de lignes de code.

Malgré la variété des applications, il existe des caractéristiques communes telles que la nature dédiée des applications. Les systèmes embarqués fonctionnent souvent toute l'année, 24 heures sur XNUMX. Ils partagent également le besoin d'être fiables, sûrs, économes en énergie et rentables à fabriquer. Plus que jamais est la nécessité pour eux d'être sécurisés, dont nous parlerons plus tard.

Applications des systèmes embarqués

Les applications des systèmes embarqués sont trop nombreuses pour être énumérées, mais les exemples évidents de haut niveau incluent :

  • Appareils de sauvetage comme les stimulateurs cardiaques
  • Applications critiques telles que le contrôle de vol dans les avions et l'assistance automatisée à la conduite
  • Logiciel qui exécute des gadgets et des appareils domestiques intelligents

Nos smartphones, tablettes, montres connectées et téléviseurs intelligents sont tous des systèmes embarqués ! Voici d'autres applications qui s'exécutent sur des systèmes embarqués :

  • L'automatisation industrielle.
  • Commandement et contrôle des centrales nucléaires, de la production et de la distribution d'électricité.
  • Puissance, chaleur et lumière pour maintenir l'économie en marche.
  • Logiciels critiques pour la sécurité dans les trains, les avions et les automobiles.
  • Tours, concentrateurs, commutateurs et routeurs de télécommunication pour les opérations Internet et de télécommunications.
  • Les armes sophistiquées, les avions de combat, les chars et les missiles ont des systèmes intégrés en leur cœur.

En effet, 98 % des microprocesseurs produits dans le monde sont utilisés dans des systèmes embarqués.

Qu'est-ce qui n'est pas intégré ?

Aussi omniprésents que soient les systèmes embarqués, il y a encore beaucoup de systèmes et de logiciels qui ne le sont pas. Tous les logiciels de bureau tels que la productivité, les navigateurs Web et les jeux vidéo ne sont pas considérés comme intégrés. Les logiciels d'entreprise, l'infrastructure cloud et les systèmes dorsaux ne sont pas non plus intégrés.

Habituellement, s'il fonctionne sur du matériel générique tel qu'un PC ou un serveur typique, il n'est pas considéré comme intégré. Physiquement, les applications ne sont pas regroupées avec le matériel comme une seule et indissociable. Par exemple, les PC peuvent être livrés avec les systèmes d'exploitation Microsoft Windows, mais ce système d'exploitation peut être remplacé et supprimé sans altérer la fonction principale du PC. Les logiciels non intégrés sont généralement des logiciels d'application qui peuvent s'exécuter sur divers matériels, à distance ou localement.

Problèmes de sûreté et de sécurité pour les systèmes embarqués

Les systèmes embarqués jouent un rôle important dans les dispositifs critiques pour la sécurité et la sûreté. Les produits tels que les stimulateurs cardiaques et les contrôleurs de frein ABS ne peuvent pas échouer. Des vies dépendent du bon fonctionnement de ces appareils, tout le temps. Des échecs très médiatisés tels que le Thérac 25 incident où des patients ont subi une surdose massive de radiations ou Catastrophe de la fusée Ariane 5 causé par une erreur de débordement d'entier.

La sécurité est désormais une préoccupation majeure à mesure que de plus en plus de systèmes embarqués sont mis en ligne, connectés via Internet (Internet des objets). Cette interconnexion crée de nouvelles fonctionnalités et opportunités et ouvre la porte aux attaques. Une litanie de problèmes de sécurité dans les appareils IoT est documentée par notre propre code Curmudgeon dans son Salle de la honte IoT. Les appareils non sécurisés ne sont pas sûrs, la sécurité et la sûreté doivent donc être considérées de la même manière dans ces appareils critiques.

Comment rendre les systèmes embarqués sûrs et sécurisés ?

La seule façon de s'assurer que les systèmes embarqués sont sûrs et sécurisés est de vers les tests. Plus précisément, par une rigueur verification ET VALIDATION tout au long du cycle de développement. Cela inclut avant le développement du logiciel, au début de l'analyse des besoins et jusqu'à la fin de la vie.

Il existe des normes spécifiques qui doivent être suivies par les industries où la sécurité est une préoccupation majeure, notamment les suivantes :

Les fabricants de ces appareils doivent suivre les normes et prouver par des audits qu'ils font preuve de diligence raisonnable et ont répondu à toutes les préoccupations en matière de sécurité et de sûreté. Ce type de développement matériel et logiciel prend du temps et coûte cher à construire et à tester, mais il est essentiel pour garantir un comportement correct lors du déploiement.

Texte blanc sur fond bleu marine : Optimisation des tests unitaires et de régression pour les systèmes embarqués avec le bouton rouge ci-dessous indiquant Télécharger le livre blanc.

Écrit par

Ricardo Camacho

Responsable principal du marketing produit technique pour les solutions de test embarquées de Parasoft, Ricardo possède une expertise dans le SDLC et l'automatisation des tests des applications embarquées en temps réel, critiques de sécurité et de sécurité, ainsi que la conformité des logiciels aux normes de l'industrie.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.