Qu’est-ce qu’un logiciel embarqué ?

« Qu’est-ce qu’un logiciel embarqué ? » est une question fréquemment posée. Le monde et la société qui nous entourent sont façonnés et régis par des systèmes basés sur des microprocesseurs – stimulateurs cardiaques, téléphones portables, appareils ménagers, voitures, systèmes de contrôle ferroviaire, satellites – la liste est presque littéralement sans fin. Sans eux, il n’y aurait pas d’énergie, d’eau courante ou d’approvisionnement alimentaire. Les affaires ou les transports seraient impossibles. Les maladies se propageraient et la société se désintégrerait rapidement.

Le logiciel exécuté dans ces systèmes est appelé logiciel embarqué. Il s’agit de logiciels informatiques intégrés dans des systèmes matériels écrits pour contrôler des machines ou des appareils. Le logiciel embarqué est généralement conçu pour le matériel particulier sur lequel il fonctionne et exécute souvent une fonction spécifique, bien qu’une seule pièce de matériel puisse contenir plusieurs logiciels embarqués.

Toute pièce de technologie qui a des cartes de circuits imprimés et des puces informatiques aura probablement un logiciel embarqué en son sein. Les fabricants incorporent des logiciels embarqués dans l’électronique des voitures, des téléphones, des modems, des appareils électroménagers, des jouets, des systèmes de sécurité, des stimulateurs cardiaques, des téléviseurs et des décodeurs, et des montres numériques par exemple.

Les logiciels embarqués permettent de nombreuses fonctions avancées qui sont courantes dans les appareils modernes. Alors que le logiciel embarqué peut être très simple, il peut également être très sophistiqué dans des applications telles que les systèmes de contrôle de processus, l’armement militaire et les avions.

Histoire du logiciel embarqué

La plupart des technologies innovantes, sont souvent financées, recherchées et développées pour des applications militaires et les systèmes embarqués ont été utilisés dans l’exploration spatiale, le guidage de missiles et l’avionique de la fin des années 30 au milieu des années 60. Ce n’est qu’à la fin des années 60 que le logiciel embarqué a évolué au point d’être utile à des personnes en dehors de ces domaines spécialisés.

Dans les années 70, les premières puces microcontrôleurs intégrées telles que l’Intel 8008 ont fait décoller le logiciel embarqué. Cette puce unique agissait comme un minuscule ordinateur ; elle pouvait lire des données du monde réel, les traiter et générer des sorties, contrôlées par un programme logiciel flexible. Grâce à ces puces, il est devenu possible d’écrire un seul programme, de le charger dans la puce et de faire en sorte que celle-ci exécute son programme dès qu’elle reçoit la bonne entrée. À la fin des années 1980, presque toutes les formes d’électronique grand public contenaient une sorte de puce microcontrôleur intégrée.

Dans les années qui ont suivi, le coût de production des microcontrôleurs intégrés est tombé à quelques centimes. Par conséquent, ils se trouvent dans presque tous les appareils électroniques, et chacune de ces puces possède un ou plusieurs logiciels intégrés. Ils sont même dans des articles dont la plupart des gens ne penseraient pas qu’ils ont des ordinateurs, comme les grille-pain, les ventilateurs électriques ou les jouets pour enfants.

Les défis du logiciel embarqué

Le logiciel embarqué fait par définition partie d’un système matériel plus vaste, que ce soit une voiture, un stimulateur cardiaque ou un système d’automatisation industrielle. Non seulement ces systèmes fonctionnent en temps réel et doivent produire l’action conçue dans un temps donné, en toutes circonstances, mais ils doivent fonctionner avec des ressources limitées, telles qu’un espace mémoire réduit, des capacités de traitement de données limitées ou une faible consommation d’énergie. Les logiciels embarqués doivent également se conformer à un large éventail de changements dans leur environnement. Les processeurs, les capteurs et les composants matériels changent au fil du temps, alors que le logiciel reste pratiquement le même. En outre, le logiciel nécessite portabilité, autonomie, flexibilité et adaptabilité.

La fiabilité est primordiale. Un comportement inattendu d’un système embarqué pourrait sérieusement endommager son environnement d’exploitation. Parce que les utilisateurs finaux exigent des systèmes embarqués des comportements à long terme, les logiciels embarqués doivent fonctionner pendant des décennies sans service.

En raison de l’association étroite des logiciels embarqués avec des environnements critiques et des risques menaçant la vie, la sécurité est également une exigence clé. Le cycle de vie du développement des logiciels embarqués est régi par des normes qui exigent une qualité élevée et des processus d’ingénierie et de gestion solides. La combinaison de ces éléments avec l’utilisation de technologies de pointe impose de fortes exigences en matière d’expertise technique et de professionnalisme aux ingénieurs en logiciels embarqués. Au fur et à mesure que la taille et la complexité des logiciels embarqués augmentent, les normes appliquées au processus de développement de logiciels doivent continuellement s’améliorer malgré une forte pression sur les coûts.

La sécurité devient de plus en plus importante à mesure que l' »internet des objets » signifie que les systèmes embarqués deviennent plus largement utilisés et plus fortement interconnectés les uns aux autres. Comme les appareils quotidiens tels que les machines à laver et les réfrigérateurs incluent la connectivité comme une caractéristique standard, l’internet des objets risque d’exposer de nouveaux niveaux d’insécurité et de nouvelles idées sont nécessaires pour aider à contrecarrer les menaces de logiciels malveillants et de piratage.

Conclusion

Les logiciels embarqués augmentent la variabilité, la configurabilité, l’extensibilité et la modifiabilité des produits quotidiens et permettent également une plus grande variété de fonctionnalités. Il est désormais un élément fondamental de nombreuses choses que nous tenons pour acquises dans la vie quotidienne.

À l’avenir, les logiciels intégrés seront présents dans tout – votre maison automatisée, votre voiture intelligente, les infrastructures de communication, les instruments et implants médicaux et les systèmes de contrôle omniprésents. Les nouvelles technologies liées à l’énergie augmenteront l’efficacité de la transmission du courant électrique et fourniront des moyens immédiats et efficaces pour répondre aux demandes en matière d’énergie et de climat.

Les systèmes embarqués ne seront plus définis par le matériel informatique qu’ils utilisent. Ils seront plutôt conçus pour remplir n’importe quelle fonction afin d’atteindre des objectifs multiples et changeants, que ce soit sur un microcontrôleur, un microprocesseur, un processeur de signaux, un assemblage biologique ou tout autre dispositif logique programmable.

Plus la qualité de vie que nous désirons est grande, plus le niveau de vie que nous voulons établir à travers la planète est élevé, et plus nous exigeons la sécurité et la sûreté, plus nous avons besoin de logiciels embarqués.