UKOnline

Vues de l'ingénieur et du client

Aujourd'hui, on pourrait croire qu'on en arrive à une situation où l'ordinateur tel qu'on le connait, c'est-à-dire le « traditionnel », est en train de disparaitre au profit d'une multitude de nouvelles machines, plus petites, spécialisées, intelligentes... Trois grandes tendances émergent actuellement, que l'on pourrait toutes traduire par « informatique omniprésente » en français, mais que l'on peut nuancer en anglais :

  • Ubiquitous computing se réfère à un but à long terme qui est d'avoir l'information présente à tout moment et disponible partout (“Information anytime, everywhere”).
  • Pervasive computing met l'accent sur les aspects pratiques et l'exploitation de technologies déjà existantes.
  • Ambient intelligence concerne les technologies de communication pour les maisons du futur et les smart cities.

En pratique, l'ordinateur « traditionnel » ne va évidemment pas disparaitre dans l'absolu, mais plutôt de manière relative aux systèmes embarqués propulsés par l'internet des objets.

Évolution hardware versus software

Aujourd'hui, c'est le software qui dirige principalement le design des systèmes embarqués. En effet, le cout hardware est essentiellement un cout récurrent qui est principalement proportionnel au nombre d'unités fabriquées. Par contre, sur un même matériel, plusieurs applications très différentes peuvent être développées. Le software devient alors un cout non récurrent et une conception logicielle devra être faite pour chaque application. On n'oubliera évidemment pas les couts de correction de bugs, de maintenance et de mise à jour des softwares. La figure 18 illustre ces deux tendances, et met bien en avant l'écart grandissant entre couts hardware et software.

Cout hardware et software
Les couts hardware et software de développement de systèmes embarqués augmentent avec le temps, plus rapidement pour le software que pour l'hardware.

Dans certains cas, le hardware reste néanmoins primordial, par exemple lorsqu'il s'agit de développer un système très spécifique, souvent de type ASIC. Il n'y a en effet pas de production industrielle de masse visée, mais de la conception et du développement pour quelques unités.

Compétence

Quelles sont les compétences nécessaires pour tout qui souhaite pouvoir travailler dans le monde des systèmes embarqués ? Elles sont évidemment multiples étant donné la haute multi-disciplinarité de ce domaine. Les principales compétences, résumées par la figure 19, sont transversales et dépassent les frontières des disciplines traditionnelles. Plutôt côté informatique, on retrouve essentiellement le développement software et la conception d'algorithmes et plutôt côté électronique on a évidemment le développement hardware et l'électronique d'interface. Au milieu de tout cela, il ne faut bien entendu pas oublier le domaine d'application, qui dépendra du projet visé et qu'il faut comprendre.

Compétences des ingénieurs en systèmes embarqués
Les compétences qu'il est nécessaire de maitriser pour travailler dans les systèmes embarqués sont transversales et dépassent les frontières des disciplines traditionnelles.

Toute la difficulté et les défis auxquels feront face l'ingénieur spécialisé en systèmes embarqués consisteront à faire des choix et compromis pour satisfaire au mieux les contraintes des différents domaines desquels relèvent les compétences mentionnées. En pratique, en tant qu'ingénieur, vous allez très certainement devoir :

  • concevoir et implémenter des algorithmes de contrôle, de traitement de signal... qui seront exécutés sur des microprocesseurs ;
  • concevoir des microprocesseurs à utiliser pour des applications embarquées ;
  • concevoir des logiciels, comme par exemple des RTOS, pour le marché des systèmes embarqués ;
  • faire partie d'équipes dans des domaines utilisant les applications embarquées ;
  • développer des senseurs/actuateurs, par exemple des Microelectromechanical systems (un microsystème électromécanique comporte des éléments mécaniques et utilise l'électricité comme source d'énergie pour réaliser une fonction de capteur ou actionneur) (MEMS).

De plus, les compromis que vous devrez faire seront complexes étant donné qu'ils se situent à différents niveaux. Tout d'abord, il s'agit d'optimiser plusieurs critères et pas seulement la vitesse d'exécution. Ensuite, il n'y a pas que le processeur qu'il faut considérer, mais également tout ce qui gravite autour comme les périphériques, les communications, les algorithmes, etc. Enfin, il n'y a pas que la conception initiale du produit à gérer mais également tout le cycle de vie du système embarqué. En particulier, trois catégories d'éléments sont à prendre en compte :

  • Multi-objectifs : fiabilité, abordabilité, sécurité, sûreté, évolutivité et mise à l'échelle, ponctualité.
  • Multi-discipline : hardware et software, algorithme de contrôle, interface électronique, domaine d'application.
  • Cycle de vie : exigence, conception, usinage, déploiement, logistique et retraite.

L'ingénieur spécialisé en systèmes embarqués ne doit évidemment pas être un expert dans tous les domaines techniques présentés à la figure 19. Par exemple, il ne développera certainement pas seul un nouveau kernel ou système d'exploitation ni ne devra concevoir un microcontrôleur ou microprocesseur from scratch, tout seul. Il doit cependant comprendre ces domaines afin de pouvoir interagir avec les spécialistes qui joindront l'équipe de développement du nouveau système embarqué.

Client

Et le client dans tout ça, que voit-il et que désire-t-il ? Pour lui, les systèmes embarqués sont un moyen de diminuer les couts, en achetant des systèmes plus petits et moins chers. Le client va pouvoir acheter un appareil spécialisé pour ce qu'il désire au lieu d'acheter une machine plus chère et qui fait pleins d'autres choses pas nécessaires pour le client.

Les systèmes embarqués permettent aussi d'offrir de nouvelles fonctionnalités, de part leur intégration dans d'autres objets, qui n'étaient pas réalisables avec des appareils plus « traditionnels ». Ils vont également contribuer à améliorer les performances du système.