Tour d’horizon des systèmes embarqués 1


Temps de lecture : 4 minutes
Share Button

systemes embarques 1

Par Christophe Blaess

Le terme « système embarqué » est une traduction un peu maladroite de « embedded system » qui signifie plutôt système incorporé, intégré, enfoui. Prenons donc garde à ce mot « embarqué » qui est trop souvent connoté « mobilité ». Bien qu’un panneau d’affichage urbain ou un réfrigérateur soient plutôt statiques par nature, ils répondent parfaitement aux critères des systèmes embarqués…

La notion de système embarqué

Il serait peut-être plus juste de décrire un système embarqué comme un ensemble informatique. Il se trouve intégré dans une entité plus complexe dont il devient une pièce parmi d’autres. Ainsi, une carte à microprocesseur (système informatique complet) devient un simple composant d’un tableau de bord, d’un panneau de contrôle industriel, d’un objet grand-public, etc.

Une caractéristique commune à la plupart des systèmes embarqués est le fait qu’ils sont conçus pour répondre à un ensemble de contraintes imposées par leur environnement de fonctionnement, ou leur destination. En voici quelques exemples courants :

contraintes matérielles. L’encombrement maximal du système (taille et poids) impose des limitations à l’autonomie (volume des batteries), au refroidissement (radiateurs et ventilateur) et par conséquent à la puissance processeur utilisable ;

contraintes logicielles. Le fonctionnement du système dans des environnements hostiles, soumis à des utilisateurs inexpérimentés ou malintentionnés… sa résilience face à des coupures d’alimentation intempestives et la possibilité de réaliser des mises à jour distantes et automatiques… sont des problèmes complexes. Il faut impérativement les prendre en considération lors de la conception d’un système embarqué ;

contraintes fonctionnelles : pour qu’un système soit en avance face à la concurrence, il est nécessaire de minimiser les coûts – donc la puissance matérielle disponible. Le tout en optimisant les fonctionnalités proposées à l’utilisateur. Le logiciel doit tirer parti de toutes les ressources disponibles via des techniques de programmation spécifiques (temps réel, multi-threading, IHM avancée, etc.).

Domaines d’application

Les systèmes embarqués prennent des formes très différentes et représentent une activité transverse de l’informatique. On peut toutefois les ranger dans quelques catégories couramment rencontrées :

Systèmes embarqués industriels. Ces systèmes ont essentiellement un rôle de pilotage et de supervision de processus de production industrielle. Le cœur du métier est souvent réalisé par des composants spécialisés (systèmes d’acquisition, FPGA, microcontrôleur, ASIC, etc.) dialoguant par l’intermédiaire de protocoles de communication adaptés (CAN, SPI, PCIe…) avec un processeur intégré sur une carte embarquée qui assure les fonctions secondaires (réseau, interface utilisateur, stockage…).

Électronique grand public. Les systèmes embarqués sont omniprésents dans les équipements technologiques actuels (smartphones, tablettes, liseuses…). Ils gagnent sans cesse du terrain dans de nombreux appareils domestiques (électroménager, domotique, etc.). L’interface utilisateur joue un rôle crucial dans le choix du public. Les systèmes d’exploitation et environnements logiciels doivent assurer une cohérence d’utilisation entre les différentes plateformes. C’est le domaine de prédilection des environnements comme Android, iOS, Tizen, etc.

Objets connectés, IoT (Internet of Things). Cette nouvelle branche des systèmes embarqués connaît un essor très important depuis quelques années. Le modèle repose généralement sur la connexion d’objets du quotidien vers des plateformes de cloud computing (en passant par la box Internet locale). L’exploitant engrange ainsi d’énormes quantités de données en provenance de ses utilisateurs. Il peut traiter avec des algorithmes spécifiques et innovants (issus des recherches dans le domaine du machine learning) pour en extraire des informations pertinentes pour l’utilisateur (statistiques, prévisions, optimisations, etc.).

Plateformes matérielles pour systèmes embarqués

Les supports matériels pour l’implémentation des systèmes embarqués se déclinent essentiellement en trois types :

les micro-contrôleurs. Ces petits processeurs bon marché sont peu complexes à mettre en œuvre. Relativement limités dans les traitements qu’ils permettent, ils ont néanmoins un rôle important dans le domaine des objets connectés de par leur faible encombrement et leur consommation électrique réduite.

On les rencontre également en versions plus puissantes dans les dispositifs industriels. Par exemple pour des tâches simples nécessitant une bonne prédictibilité du temps de traitement des événements. Il existe des cartes à microcontrôleurs permettant une mise en œuvre très rapide pour une expérimentation. De même pour un prototypage, comme les Launchpad de Texas Instrument ou le célèbre Arduino et ses dérivés.

Les SOC (System-on-Chip). Dans un unique circuit intégré sont regroupées les fonctionnalités du microprocesseur, de divers périphériques (contrôleur graphique, réseau, communications série, SPI, i²C, RS232, etc.)… ainsi qu’une quantité plus ou moins importante de mémoire flash, voire de mémoire RAM. L’intégration d’un SOC sur une carte personnalisée est un peu plus complexe que celle d’un microcontrôleur, mais reste largement à la portée d’un bureau d’études électroniques.

Les SBC (Single Board Computers) ou ordinateurs monocartes. Très employés pour le prototypage ou la réalisation de petites séries. Les ordinateurs monocartes proposent l’intégration d’un SOC ou d’un processeur classique sur une carte intégrant toute l’électronique nécessaire pour l’alimentation, la génération d’horloges, les entrées-sorties, etc.

On trouve des SBC industriels durcis, résistants en environnement hostile, aussi bien que des cartes plutôt dédiées à une utilisation hobbyiste ou expérimentale comme le fameux Raspberry Pi.

Il existe des SBC très réduits, tenant sur quelques cm² de circuit électronique et prêts à être intégrés sur une carte de plus grande dimension. On parle dans ce cas de CoM (Computer-onModule).

Environnements logiciels

Pour les systèmes très réduits, comme les microcontrôleurs, il est fréquent d’employer des OS très légers. Voire aucun OS, et n’intégrer que le code développé spécifiquement pour le projet. Le fabricant du microcontrôleur vend généralement ces OS simplifiés, accompagnés d’un environnement de développement spécifique.

Il est néanmoins important de noter qu’il existe des systèmes d’exploitation libres comme Lepton, FreeRTOS ou RTEMS.

systemes embarques 3

Dans le domaine de l’embarqué avec système d’exploitation (SOC, SBC), la prédominance actuelle de Linux est incontestable. Il s’agit d’un OS libre, disponible gratuitement, sans aucun coût d’installation initiale ni frais ultérieurs de licence d’exploitation.

Linux dispose d’une énorme quantité de drivers pour les périphériques, protocoles réseaux… En outre, il existe un immense catalogue d’applications libres et gratuites couvrant la plupart des domaines de l’informatique actuelle.

Il est important de noter que Linux est porté sur un nombre très important d’architectures et de plateformes actuelles. Du petit processeur embarqué proche d’un microprocesseur… au supercalculateur comportant des centaines ou milliers de processeurs travaillant en parallèle. Ceci garantit de disposer d’un environnement homogène sur une large gamme de processeurs et de cartes.

L’interface de programmation pour le développement applicatif respecte le standard Posix. Elle offre aussi des possibilités de développement dans de nombreux langages (C, C++, Python, NodeJS, PHP, etc.).

systemes embarques 4

Formez-vous !

Share Button

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Commentaire sur “Tour d’horizon des systèmes embarqués