Tech
08 août 2022

Le logiciel embarqué ou comment construire le cœur de votre produit ?

Le logiciel embarqué (ou Firmware), vous avez une vague notion de ce dont il s’agit. Vous savez que c’est primordial pour faire fonctionner votre produit mais pas exactement ce qui s’y joue derrière. Le logiciel embarqué, c’est effectivement ce qui

Concevoir le logiciel embarqué de son produit

Le logiciel embarqué (ou Firmware), vous avez une vague notion de ce dont il s’agit. Vous savez que c’est primordial pour faire fonctionner votre produit mais pas exactement ce qui s’y joue derrière.

Le logiciel embarqué, c’est effectivement ce qui donne vie à votre produit. Ce qui lui permet de fonctionner et de fonctionner correctement. C’est ce qui va dicter ses fonctions principales.

Mais comment on construit un logiciel embarqué ? Quels sont les choix qui s’offrent à vous ?

Existe-t-il une meilleure solution ?

Alors, embarquez avec nous. Au programme : présentation des différentes solutions possibles, critères déterminant pour construire son logiciel embarqué et stratégie à adopter pour des mises à jour efficaces et bien pensées !

C’est parti !

 

Le logiciel embarqué : ce que c’est et pourquoi on en a besoin

Le firmware est le logiciel embarqué qui va permettre au produit de fonctionner. Mais aussi et surtout, de le faire évoluer à l’infini grâce à des mises à jour que vous pourrez effectuer à distance, et ce sans avoir besoin de remplacer le produit ou de revoir son design.

Ce logiciel est porté sur un microprocesseur ou un microcontrôleur.

 

Pourquoi on en a besoin ?

Le Firmware est ce qui permet aux appareils d’assurer leurs fonctions de base, telles que :

  • l’enregistrement des données/mesures relevées, récoltées ou détenues par les capteurs de la carte,
  • la communication avec un smartphone,
  • le pilotage des périphériques physiques
  • le traitement des interactions avec les utilisateurs (l’appui sur un bouton, l’allumage d’un voyant,…).

Pouvoir prévoir la maintenabilité de votre produit, c’est là que réside toute la puissance du Firmware. Avec lui, il apporte des possibilités infinies.

C’est grâce au déploiement de mises à jour que le produit peut continuer à s’adapter dans le temps à ses utilisateurs. Les mises à jour sont essentielles car elles permettent :

  • d’ajouter de nouvelles fonctionnalités,
  • de corriger des bugs,
  • de corriger des failles de sécurité, dont l’attaque Mirai Botnet de 2016 a démontré la nécessité absolue.

Le Firmware est un logiciel embarqué qui est donc responsable d’animer l’objet électronique tout au long de sa vie.

 

Comment fonctionnent les mises à jour ?

Le nombre de produits connectés actuellement en fonctionnement connaît une augmentation constante exponentielle. Ces produits sont souvent hors de portée des fabricants. Trop contraignantes, trop coûteuses et trop chronophages, les mises à jour physiques ont de fait été majoritairement écartées au profit des mises à jour à distance ou mises à jour OTA (= Over The Air).

La première étape d’une mise à jour OTA est la génération du logiciel embarqué. Après avoir ajouter les fonctionnalités nécessaires ou corriger les bugs, une compilation est lancée, soit manuellement par le développeur, soit automatiquement par les outils d’intégration continue.

Il s’agira ensuite de transférer l’exécutable sur le produit cible puis de le programmer, c’est-à-dire de l’écrire dans la mémoire du microcontrôleur ou du microprocesseur.

 

Comment les besoins de votre produit vont déterminer vos choix technologiques ?

Dans un premier temps, c’est l’environnement de votre produit qui va être déterminant dans le choix du protocole de communication.

Ensuite, ce sont les besoins en fonctionnalité de votre produit qui vont vous orienter vers le choix du Firmware.

 

Le choix du protocole de communication

Selon l’environnement de votre produit, ses besoins et ses contraintes vont vous guider dans le choix du protocole de communication.

Est-ce que le produit doit communiquer avec d’autres produits ? Ou d’autres devices (smartphones, gateway,…) ?

Quelle est la quantité de données à transmettre ?

A quelle fréquence doit-il envoyer des données ?

Quelle est la portée de la communication de mon objet ?

Quelle est la latence requise pour la transmission des données ?

Quel est le coût espéré pour la communication des données ?

Pour creuser ce sujet et en savoir plus sur comment choisir votre réseau de communication pour votre produit intelligent, vous pouvez revoir ce webinar :

{{cta(‘d4242971-4fc5-42c4-91f0-430498f44efd’,’justifycenter’)}}

 

Firmware sur microprocesseur ou microcontrôleur, comment choisir ?

Deux choix s’offrent à vous selon ce que vous souhaitez faire faire à votre produit : opter pour un microcontrôleur ou un microprocesseur.

Ce sont les fonctionnalités de votre produit qui vont déterminer ce choix.

 

Le microcontrôleur 

Le microcontrôleur va permettre à votre produit d’avoir une fonction spécifique. Avec une application dédiée ou des tâches répétitives.

Faire le choix d’un microcontrôleur, c’est également ce qui va vous permettre d’économiser de la place sur la carte en matière de composants car toutes les ressources nécessaires à son fonctionnement (mémoire, RAM,…) y sont directement intégrées.

Un autre point fort du microcontrôleur est sa faible consommation d’énergie. Ce critère peut être déterminant dans la conception de votre produit car on peut compter sur le fait de pouvoir alimenter le produit sur le long terme à l’aide d’une petite batterie.

Le Firmware du MCU a également une taille optimisée, ce qui est avantageux lors de mises à jour OTA (à distance) puisqu’il y a moins de données à transférer.

C’est aussi en général l’option la moins coûteuse.

 

Le microprocesseur 

Plusieurs raisons vont vous mener à choisir un microprocesseur.

Tout d’abord, votre produit, plus intelligent, doit effectuer des tâches complexes. Par exemple, du traitement d’images ou vidéo. Ce sont donc souvent des tâches pour lesquelles le produit va nécessiter une capacité de calcul très élevée et de la mémoire.

Bref, c’est souvent cette option qui va s’imposer à vous si vous envisagez de développer :

  • de l’intelligence artificielle,
  • du traitement d’images et vidéo,
  • de la mise en réseau,
  • une liaison avec un Cloud,
  • une gateway à associer pour la communication des données…

Par conséquent, ce sont des produits qui consomment aussi plus d’énergie.

Et contrairement au microcontrôleur, les composants qui lui permettent de fonctionner sont des composants externes qu’il faut penser à ajouter : mémoire, RAM, système de refroidissement,…

C’est souvent un choix adapté pour des produits plus coûteux.

Le système d’exploitation Linux

En choisissant d’utiliser un microprocesseur, il faut ensuite se diriger vers un système d’exploitation qu’on va utiliser comme lien entre notre hardware et notre application. Sur un microprocesseur, le choix se tourne souvent vers Linux.

Linux dépend d’une communauté open source. Et ça signifie qu’il existe donc beaucoup de ressources pour le composant choisi. C’est un système d’exploitation à part entière.

 

Pour résumer, voici un tableau comparatif qui résume les différences entre ces 2 supports pour le Firmware :

logiciel embarqué microcontroleur vs microprocesseur

 

Le choix du roi 

Il peut arriver que parfois on mette sur la même carte un processeur (avec un OS Linux) et un microcontrôleur. Ce peut être utile d’associer les 2 dans le cas où un seul modèle n’est pas suffisant pour les besoins de mon produit.

Par exemple, dans le cas d’un produit qui aurait beaucoup de données à traiter et à transférer sur le Cloud mais qui ne pourrait fonctionner uniquement sur pile. Le microprocesseur servira à gérer le traitement des données et la liaison avec le Cloud alors que le microcontrôleur satisfera le fonctionnement autonome sur pile en pilotant l’alimentation du microprocesseur.

 

Prendre en compte les besoins et les contraintes – Les questions à se poser 

Pour résumer, voici les questions à se poser :

Quelles sont les fonctionnalités de mon produit ?

Ai-je des contraintes de place sur ma carte électronique ?

Quelles sont les options d’alimentation ? Doit-il être autonome ou peut-il être branché sur secteur ?

Combien de temps doit-il fonctionner ou pendant combien de temps doit-il rester autonome ?

Suis-je limité dans le coût de mon produit ?

Ai-je besoin d’un Cloud pour centraliser les données remontées ?

Quelles sont les contraintes de communication de mon produit ? Ai-je besoin d’un relai (d’une gateway) ?

> Pour en savoir plus sur le rôle d’une gateway, nous vous conseillons de lire cet article.

Est-ce que je souhaite faire de l’intelligence artificielle ? Ou du traitement d’images ou de vidéo ?

Toutes ces questions vont naturellement vous orienter vers l’une ou l’autre solution (ou les 2… !).

Les challenges à relever pour une bonne stratégie de mises à jour

Pour mettre en place une mise à jour OTA efficace et qualitative, il s’agira de bien concevoir sa stratégie.

 

La sécurité

3 éléments sont à prendre en compte pour que les mises à jour soient bien sécurisées :

– Comment s’assure-t-on que le serveur avec lequel on s’authentifie pour envoyer le binaire est fiable ?

– Une fois que l’on s’est assuré de la fiabilité du serveur, il faut également rester vigilant pour ne pas compromettre les secrets du binaires. Veillez bien à chiffrer le binaire pour le garder confidentiel.

– Enfin, il faudra également s’assurer à la fin, que le binaire a bien été transmis et qu’il n’y a eu aucun impact sur l’intégrité des données (perte ou autre).

 

La communication

Pour pouvoir mener à bien ses mises à jour OTA, il faut également penser à ce que le protocole de communication implique pour mon produit :

Dans un premier temps, qui va communiquer le binaire à mon produit ?

S’agit-il d’un serveur distant qui va contenir les binaires à mettre à jour et les transmettre à mon produit ? Mon produit est donc directement connecté au réseau ( 4G,…) ?

S’agit-il d’une gateway associée à un protocole petite portée (BLE, Zigbee) qui sera le relais jusqu’au produit ?

A-t-on une estimation de la taille du binaire ? Si elle est importante, seuls certains protocoles de communication pourront assurer le temps souhaité pour la mise à jour.

La mémoire

Enfin, voici les points qui vont permettre de dimensionner la mémoire de mon produit :

Est-ce que mon produit doit continuer à fonctionner pendant la mise à jour ?

Est-on capable de sauvegarder la version actuelle si la nouvelle mise à jour ne fonctionne pas ? Dans ce cas, il faut prévoir une capacité qui permet d’avoir 2 applications en parallèle dans la mémoire.

Comment sauvegarder les informations sur l’état actuel de mon produit pendant les mises à jour, les extinctions et redémarrages de mon produit ? Ces informations sont très importantes et doivent toujours être conservées (depuis combien de temps il fonctionne, combien de fois il a redémarré,…). Veillez à ne pas remettre à zéro ces informations.

 

 

En bref, le Firmware est le cerveau qui va animer votre produit. Si le choix de la plateforme se fait naturellement en fonction des besoins définis par votre produit, la stratégie des mises à jour est, quant à elle, à penser en amont.

Désormais, vous avez les clés pour concevoir votre stratégie de mises à jour OTA ou pour donner les orientations à votre prestataire qui vous accompagnera sur ce sujet.

 

Pour découvrir comment concevoir un produit intelligent, téléchargez le guide gratuit

Livre blanc concevoir un produit intelligent

Un peu de lecture

Des articles, des podcasts, des webinars… et surtout des conseils pratiques ! En bref, une collection de ressources pour mener à bien votre projet.

Et si on se rencontrait ? Participez à nos prochains évènements ! 🚀