Ouvrir le menu Fermer le menu

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

trait de séparation
Temps de lecture : 5 minutes

Nous vivons dans un monde entouré d’appareils et de systèmes électroniques, de nos smartphones personnels et de nos automobiles aux machines d’usine complexes. Si vous regardez de plus près ces « objets » électroniques, il existe de nombreux composants électroniques qui travaillent ensemble pour contrôler et fournir les fonctionnalités qui donnent vie à ces choses !

Mais le matériel resterait là et ne ferait rien, s'il n'y avait pas le cerveau de l'équipe ; le "Logiciel intégré"

Découvrez comment le logiciel embarqué contrôle vos machines et appareils quotidiens ?

Au sommaire :

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

Les logiciels et micrologiciels intégrés sont du code qui est développé, compilé et flashé dans le matériel pour permettre aux dispositifs d’exécuter leurs fonctions spécifiques. En fait, l’ordinateur même   avec lequel vous lisez ceci est construit avec un micrologiciel à l’intérieur, tel que le BIOS qui contrôle la carte mère de votre PC, qui est responsable de   démarrer le système d'exploitation et contrôler les périphériques sur la carte mère — pour n'en nommer que quelques-unes des nombreuses fonctions qu’il offre. Cela dit, le logiciel d'application sur votre PC n'est pas considéré comme un logiciel intégré, car l’utilisateur peut sélectionner les programmes à télécharger, charger et exécuter sur le PC.   

Quelle est la différence entre un « logiciel embarqué » et un « logiciel » que vous utilisez au quotidien sur votre PC ? Les logiciels que vous connaissez si bien, tels qu'Office 365 ou Photoshop, sont des applications qui s'exécutent sur un système d'exploitation (système d’exploitation) au sein d'un ordinateur, tel que Windows 10, tandis que les logiciels intégrés s’exécutent généralement sur des appareils intégrés (avec ou sans interface utilisateur) et fonctionnent avec ou sans système d’exploitation.

Les logiciels intégrés sont généralement préinstallés sur un appareil et ne sont ni chargés ni exécutés par les utilisateurs. Au démarrage, l'appareil charge son environnement d'exploitation, puis exécute son application logicielle intégrée pour contrôler l'appareil. Cela inclut les appareils qui prennent en charge la capacité de communiquer avec le monde extérieur. Pour ce faire, ils ont besoin du matériel, des logiciels embarqués et du micrologiciel leur permettant de prendre en charge des protocoles de communication et de réseau spécifiques.
Le logiciel embarqué ne doit pas être confondu avec le « firmware ». " Le firmware d’un appareil est la partie fixe du logiciel de bas niveau de l’appareil qui ne peut pas être modifié ou exécuté par un utilisateur et qui est " flashé », ce qui signifie qu'il est gravé (programmé) sur une puce FLASH qui stocke l'image exécutable du firmware. La fonction principale du micrologiciel est de démarrer un appareil et de contrôler ses périphériques matériels, tandis qu'en revanche, la fonction du logiciel embarqué est le fonctionnement global et le contrôle de l’appareil pour exécuter sa fonction spécifique. 
embedded-software-vs-firmware-pyramid_ISIT

Comment fonctionne le logiciel embarqué ?

Chaque appareil aura son logiciel intégré développé à l'aide d'un langage de programmation spécifique, qui est généralement "C" ou "C++". Les appareils de niveau supérieur peuvent également prendre en charge Python, JavaScript et d’autres langages.  Le logiciel embarqué peut inclure son environnement d'exploitation et son logiciel d’application. Des appareils plus complexes fonctionneront à l'aide de systèmes d'exploitation disponibles dans le commerce tels que FreeRTOS, uC /OS, ThreadX, VxWor ks et de nombreuses autres variantes. 

Le logiciel embarqué est développé à l'aide d'outils spécifiques comme indiqué ci-dessous, chacun remplissant un rôle différent pour aider à créer et à construire le logiciel.  

Éditeur

Le premier outil utilisé pour créer le logiciel embarqué est un « éditeur », qui fait partie de l'environnement de développement où un programmeur écrit le logiciel dans le langage de programmation de son choix, qui devient le code source de l'appareil. Nous utilisons personnellement notre propre outil d'édition, la solution de code source de la pile de protocoles NetStaX, qui s'adresse à plusieurs protocoles, notamment EtherNet /IP, DeviceNet, ControlNet, CANopen, PROFINET et J1939.

Compilateur

Un compilateur transforme le code en code exécutable de bas niveau propre au microprocesseur cible hébergé par l'appareil .

Assembleur

Un assembleur convertit le code assembleur écrit par l’homme en langage machine. Remarque :  la différence entre un compilateur et un assembleur est que le compilateur convertit directement le code, alors qu’un assembleur ne le fait pas.    

Débogueur

Un débogueur est un outil qui permet à un développeur de parcourir le code en profondeur et de s'assurer qu'il n'y a pas d'erreurs. Si des problèmes sont détectés, le débogueur les mettra en évidence pour qu'ils soient corrigés. Nous utilisons les outils de développement et de test NetStaX pour effectuer des tests de fin de ligne et sur le terrain.

Linker

Un éditeur de liens est un autre outil qui rassemble et formate le code exécutable de bas niveau de manière qu'il s’exécute correctement sur un périphérique cible.

Le système logiciel embarqué

Selon l'appareil ou le système sur lequel le logiciel intégré est exécuté, les composants logiciels peuvent varier en fonction de la complexité du système. Voici un exemple d'un système logiciel embarqué typique :
  • Application :  le logiciel de niveau application qui contrôle la fonction spécifique de l'appareil. 
  • Interface système : l'interface avec le système d'exploitation et le matériel fournie par les bibliothèques système utilisées par l'application.  RTOS : 
  • RTOS (Abréviation de « Real Time Operating System ») est l’environnement d’exploitation dans lequel le  logiciel d'application  s'exécute . Sur certains systèmes, appelés « Baremetal », il n'y a pas de système d'exploitation, et l'application s'exécute au-dessus du matériel.  Interface matérielle : micrologiciel de bas niveau   et logiciel pilote requis pour démarrer l’appareil et contrôler les périphériques matériels. 
  • Matériel : Le microprocesseur et la puce périphérique sont sur une carte de circuit imprimé avec la mémoire FLASH qui contient le logiciel et le micrologiciel intégrés et la RAM qui est utilisée pendant l'exécution de l’appareil
embedded-software-system-pyramid_ISIT

Exemples de logiciels embarqués

Nous avons défini ce qu'est un logiciel embarqué et qu'il varie considérablement en fonction de l'appareil qu'il contrôle. Voici quelques exemples supplémentaires d'utilisation et de fonctionnalités de logiciels embarqués :   

  • Les freins antiblocage de votre automobile 
  • Le détecteur de mouvement d'une caméra de sécurité  
  • La mise au point automatique de votre appareil photo numérique a 
  • Le lecteur de disque d'un ordinateur 
  • Les fonctions d'automatisation industrielle d'une usine 
  • Les fonctions de contrôle d'une manette de jeu vidéo  
  • Le contrôle intelligent de l'éclairage dans les maisons  

Et bien plus!
embedded-software-examples-exemples-pyramid_ISIT
1

Ces articles peuvent vous intéresser

image blog article

Comment Sécuriser son Cycle de Vie du Développement Logiciel (Software Development LifeCycle - SDLC)

Les menaces en perpétuelle évolution qui pèsent sur les applications logicielles et leurs écosystèmes nous imposent de réfléchir aux moyens de contrôle de sécurité que nous utilisons pour nous assurer de garder de nos données à l’abri des gens malintentionnés. C'est là que la sécurité du cycle de vie du développement logiciel ou Software Development LifeCycle (SDLC) entre en jeu. Les entreprises doivent veiller à ce qu'au-delà de fournir des produits innovants à leurs clients avant la concurrence, la sécurité soit présente à chaque étape du processus SDLC.

image blog article

ALM, ADLM, EAP, SDLC & DevOps: Comprendre le développement logiciel ?

2e partie d'une série d'articles couvrant la langue vernaculaire commune associée au développement de logiciels !

image blog article

Comment identifier les failles logicielles ?

Avant que les attaques se produisent, venez télécharger ce livre blanc qui vous guidera pour résoudre vos vulnérabilités logicielles.