Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
1. Introduction
L'ingénierie des systèmes embarqués est un champ d’activité se trouvant à la frontière de
l’informatique (logiciels, plates-formes) et de l’électronique (microcontrôleurs, processeurs de
traitement de signal, circuits spécifiques, capteurs, actionneurs). Ce « mariage » entre
l’électronique et l’informatique a donné naissance à un ensemble de méthodes, de techniques
et d’outils qui associent le hardware et le software pour concevoir et développer des sous-
systèmes autonomes, intelligents capables d’assurer, des fonctions allant du simple contrôle,
de la communication de la surveillance à la supervision dans les secteurs suivants :
• Faible consommation,
• Communication en temps-réel,
I-1
Chapitre 1 : Généralités sur les systèmes embarqués
• Embarquabilité etc..
Un système embarqué est l’association des systèmes d'électroniques plus ou moins complexes
et d'informatique plus ou moins évoluée. Un système embarqué peut être défini comme un
système électronique et informatique autonome, qui est dédié à une tâche bien précise. Il ne
possède généralement pas des entrées/sorties standards et classiques comme un clavier ou un
écran d'ordinateur. Le système matériel et l’application sont intimement liés, le logiciel embarqué
étant enfoui, noyé dans le matériel. Le matériel et le logiciel ne sont pas aussi facilement
discernables comme dans un environnement de travail classique de type ordinateur PC.
.
• Il n'a pas réellement de clavier standard (Bouton Poussoir, clavier matriciel...). L’affichage est
limité (écran LCD…) ou n’existe pas du tout.
• Ce n’est pas un PC en général mais des architectures similaires (x86) basse consommation
sont de plus en plus utilisées pour certaines applications embarquées. Les principales
caractéristiques d'un système embarqué sont les suivantes :
• C'est un système principalement numérique.
• Il met en oeuvre généralement un processeur.
• Il exécute une application logicielle dédiée pour réaliser une fonctionnalité précise et n'exécute
donc pas une application scientifique ou grand public traditionnelle. : PC standard peut exécuter
tout type d'applications car il est généraliste alors qu'un système embarqué n'exécute qu'une
application dédiée.
• Que l’interface IHM peut être aussi simple qu’une led qui clignote ou aussi complexe qu’un
cockpit d'avion de ligne.
• Que des circuits numériques ou des circuits analogiques sont utilisés en plus pour augmenter
les performances du système embarqué ou sa fiabilité.
L'omniprésence des systèmes embarqués dans notre vie est liée à la révolution numérique
opérée dans les années 1970 avec l'avènement des processeurs. Les processeurs, de plus en
plus rapides, puissants et bon marché ont permis cette révolution et aussi le boom du marché
de l'embarqué.
Les grands secteurs de l'embarqué concernent les domaines suivants :
• Jeux et calcul général : application similaire à une application de bureau mais empaquetée
dans un système embarqué : jeux vidéo, set top box...
• Contrôle de systèmes : automobile, process chimique, process nucléaire, système de
navigation...
• Traitement du signal : radar, sonar, compression vidéo...
• Communication et réseaux : transmission d’information et commutation, téléphonie, Internet...
La figure 1.1 présente les caractéristiques principales d'un système embarqué typique.
I-2
Chapitre 1 : Généralités sur les systèmes embarqués
I-3
Chapitre 1 : Généralités sur les systèmes embarqués
prendre en compte les évolutions des caractéristiques électriques des composants en fonction
de la température, des radiations.
Enfin pour terminer cette partie, les systèmes embarqués sont aujourd'hui fortement
communicants. Cela est possible grâce aux puissances de calcul offertes par les processeurs
pour l'embarqué (32 bits en particulier) et grâce aussi à l'explosion de l'usage la connectivité
Internet ou connectivité IP.
La connectivité IP permet fondamentalement de contrôler à distance un système embarqué par
Internet. Ce n'est en fait que l'aboutissement du contrôle à distance d'un système électronique
par des liaisons de tout type : liaisons RS.232, RS.485, bus de terrain...
Cela permet l'emploi des technologies modernes du web pour ce contrôle à distance par
l'utilisateur : il suffit d'embarquer un serveur web dans son équipement électronique pour pouvoir
le contrôler ensuite à distance, de n'importe où, à l'aide d'un simple navigateur. Il n'y a plus
d'IHM spécifique à concevoir pour cela, ce rôle étant rempli par le navigateur web.
Il faut aussi noter la montée en puissance des communications sans fil dans l'embarqué au
détriment des communications filaires pour limiter le câblage et faciliter la mise en place du
système embarqué. Le Wifi et toutes les normes de réseaux sans fil IEEE 802.15 comme
Zigbee ont le vent en poupe dans l'embarqué et surtout en domotique (réseaux de capteurs
sans fil par exemple).
I-4
Chapitre 1 : Généralités sur les systèmes embarqués
simple processeur 8 bits voire même un processeur 4 bits fera amplement l’affaire ; ce qui
permettra de minimiser les coûts sur des forts volumes de production.
Si ce temps est maintenant de quelques dizaines de microsecondes (pour le traitement des
données issues de l’observation d’une réaction nucléaire par exemple), il est alors nécessaire
de choisir un processeur nettement plus performant comme un processeur 32 bits (processeurs
ARM, ColdFire..).
▪ on parle d'un système temps réel lorsque ce système informatique contrôle (ou pilote)
un procédé physique à une vitesse adaptée à l'évolution du procédé contrôlé.
▪ Un système temps réel est un système (application ou ensemble d’applications)
informatique dont le fonctionnement est assujetti à l’évolution dynamique d’un procédé
extérieur qui lui est connecté et dont il doit contrôler le comportement.
▪ La correction d’un système temps réel dépend non seulement de la justesse des calculs
mais aussi du temps auquel les résultats sont produits (contraintes temporelles).
▪ Un système temps réel n’est pas un système « qui va vite / rapide» mais un système qui
satisfait des contraintes temporelles (les contraintes de temps dépendent de l’application
et de l’environnement alors que la rapidité dépend de la technologie utilisée, celle du
processeur par exemple). Si les contraintes temporelles de l'application ne sont pas
respectées, on parle de défaillance du système. Ces contraintes temporelles peuvent
être de deux types :
- contraintes
temporelles relatives ou lâches (temps réel mou : soft real-timé) : les
fautes temporelles sont tolérables (ex. : jeux vidéo, applications multimédia, téléphonie
mobile...) ;
-contraintes temporelles strictes ou dures (temps réel dur : hard real-time} : les
fautes temporelles ne sont pas tolérables (ex. : avionique, véhicules spatiaux,
automobile, transport ferroviaire...).
I-5
Chapitre 1 : Généralités sur les systèmes embarqués
I-6
Chapitre 1 : Généralités sur les systèmes embarqués
• Exemple de l’ Airbag
I-7
Chapitre 1 : Généralités sur les systèmes embarqués
- les systèmes transformationnels qui utilisent des données fournies à l'initialisation par
l'utilisateur. Ces données, leurs traitements et l'obtention du résultat n'ont aucune contrainte de
temps ;
- les systèmes interactifs dans le sens où les données sont produites par interaction avec
l'environnement sous différentes formes (clavier, fichier, réseaux, souris, etc.). Mais le temps
n'intervient pas en tant que tel si ce n'est avec un aspect confort de travail ou qualité de service ;
- les systèmes de contrôle-commande ou réactifs qui sont aussi en relation avec
l'environnement physique réel pour les données en entrée ; mais, dans ce cas, l'aspect « temps
» a une place importante sous la forme d'un temps de réaction, d'une échéance à respecter, etc.
I-8
Chapitre 1 : Généralités sur les systèmes embarqués
Figure 1.2 - Comparaison des systèmes de contrôle-commande par rapport aux autres
applications informatiques.
6.1. Définitions
- actions réalisées par l'intermédiaire d'actionneurs (actuators) qui permettent d'agir sur le
procédé physique sous la forme de commandes (modification d'état physique du système) ou
simplement sous la forme d'un affichage (diodes, lampes, afficheurs, écrans, etc.).
I-9
Chapitre 1 : Généralités sur les systèmes embarqués
I - 10
Chapitre 1 : Généralités sur les systèmes embarqués
I - 11
Chapitre 1 : Généralités sur les systèmes embarqués
données ou changer les commandes. Ces tâches peuvent être très complexes et coûteuses en
temps de calcul si l'interface gérée est de taille importante (tableau de bord} ou de type
graphique (représentation 3D).
I - 12
Chapitre 1 : Généralités sur les systèmes embarqués
accessibles, pour avoir un fonctionnement correct, par plus d'une tâche à la fois, elles sont dîtes
ressources critiques.
.
6.5. Développement des applications de contrôle-commande
Le développement des applications informatiques demande de plus en plus de rigueur dans le
suivi des différentes étapes de spécification, de conception et de codage. Ce cycle de
développement permet ainsi d'obtenir des applications de très bonne qualité d'un point de vue
architecture logicielle. Les tests, qui sont un point primordial dans l'obtention d'une qualité
logicielle, sont aisés à réaliser dans le cas d'applications informatique classiques, en revanche,
dans le cas des applications de contrôle-commande, les tests opérationnels en exécution réelle
sont souvent difficiles à produire à cause de diverses particularités :
- exécution unique : satellite d'exploration ;
- coût très élevé : fusée... ;
- risques humains : avion...
Ainsi, malgré des phases de tests souvent coûteuses et conséquentes, de nombreuses
applications de contrôle-commande n'ont pas rempli les objectifs fixés. Nous pouvons citer
quelques exemples connus :
- Mission Vénus : le satellite d'exploration est passé à plus de 500 000 km de la planète Venus
au lieu de 5 000 km, prévu initialement. Cet échec a été attribué à un simple remplacement
d'une virgule par un point dans un programme Fortran (« DO 20 I = 1. 5 » au lieu de
« DO 20 I - 1, 5 »).
- Avion militaire américain F16 : lors des premiers essais en vol, l'avion était déclaré sur le «
dos » au passage de l'équateur à la très grande surprise du pilote. Cela était simplement dû à
une erreur de signe dans le programme.
- Navette spatiale américaine : lors du premier lancement de la navette, le départ a été annulé
et la mission reculée de trois jours (coût très important). Ce faux départ était dû à une erreur de
synchronisation entre les deux ordinateurs de conduite de vol. Le fonctionnement en
redondance de ces ordinateurs conduisait à un test de cohérence de certaines grandeurs
physiques. Étant donné une désynchronisation de7
Pr. Amami Benaissa
I - 13
Chapitre 1 : Généralités sur les systèmes embarqués
s deux ordinateurs, ce test a été négatif simplement à cause de la mesure du même, paramètre
effectuée à des Instants différents.
- Mission sur Mars : lors de la mission d'exploration de la planète Mars par le robot Pathrînder,
une remise à zéro périodique des données acquises a fortement perturbé la mission. Ce
problème était lié à un blocage d'une tâche très prioritaire par une tâche moins prioritaire mais
détenant une ressource critique (réseau de communication vers la terre}. En particulier les
données météorologiques mesurées étaient très spécifiques d'un point de vue « durée et taille »
du fait des caractéristiques martiennes,
- Eusce Ariane V : lors du premier lancement, la fusée a dû être détruite à cause d'une
trajectoire non correcte. Cette erreur était liée à la réutilisation de certains modules logiciels
utilisés dans le contexte d'Ariane IV. Les spécifications, attachées à l'accélération, auraient dû
être différentes en termes de limites afin d'éviter ce dysfonctionnement.
Cette liste d'exemples de problèmes au niveau de l'exécution d'applications de contrôle-
commande montre la nécessité de mettre en place un cycle de développement encore plus
rigoureux pour ces applications de gestion de procédé physique dont les tests en exécution
réelle ne sont pas toujours facilement accessibles.
6.5.1. Cycle de développement des applications informatiques
Le cycle de développement des applications informatiques suit les trois étapes classiques que
sont la spécification, la conception et la programmation. L'analyse des besoins permet d'écrire le
cahier des charges de l'application. À partir de ce cahier des charges, le déroulement des trois
étapes conduit successivement aux descriptions suivantes de l'application :
- spécification globale : description de « ce que l'on a à faire » ou le « quoi », c'est-à-dire une
mise en forme plus ou moins formelle du « cahier des charges » ;
- conceptions préliminaire et détaillée : description du « comment », c'est-à-dire une
modélisation de l'architecture logicielle de l'application (modules, tâches, objets...). Il peut être
nécessaire d'employer différents niveaux de raffinement selon la taille de l'application ;
- programmation : traduction dans un langage exécutable de l'architecture logicielle de
l'application.
Une présentation généralement plus adaptée est celle du cycle en « V » (figure 1.9). Dans cette
représentation, à chaque niveau d'analyse ou de conception correspond un niveau de validation
; ainsi, nous avons :
- conception détaillée et tests unitaires ;
- conception préliminaire et tests d'intégration ;
- spécification et validation globale.
Il est évident que cette formalisation méthodologique du développement des applications
informatiques a pour principaux objectifs : éviter les fautes logicielles, accroître la maintenabilité,
faciliter l'évolutivité... À chaque étape ou ensemble d'étapes correspond une méthode qui est
généralement supportée par un outil informatique pour aider à sa mise en œuvre plus ou moins
automatisée.
I - 14
Chapitre 1 : Généralités sur les systèmes embarqués
I - 15
Chapitre 1 : Généralités sur les systèmes embarqués
I - 16
Chapitre 1 : Généralités sur les systèmes embarqués
- le noyau temps réel choisi doit être adapté à l'architecture « cible » de l'application en termes
de codage, de taille et de fonctionnalités (primitives, gestion des entrées, gestion du temps...) ;
- l'environnement de développement sur la plate-forme « hôte » doit posséder un émulateur du
noyau temps réel afin de pouvoir faire les premiers tests du logiciel multitâche réalisé ;
I - 17
Chapitre 1 : Généralités sur les systèmes embarqués
Bibliographies
• Des parties du cours entière ont été extraites du livre Système temps réel de
contrôle commande de F. Cottet et E. Grolleau, Dunod 2005
• Livre : Ordonnancement et ses applications, Chengbin chu/ Jean Marie Proth,
Masson , 1996
• Commande en temps réel, Daniel Tschirhart, Dunod 1990
• Sites officiels de National Instrument
• Les systèmes électroniques embarqués dans l’automobile, l’IUT de Belfort-
Montbéliard
• Systèmes embarqués et automobile , Gérard Duchene
• Systèmes embarqués Enjeux –Perspectives, Françoise Simonot-Lion
• Les Systèmes Électroniques Embarqués un enjeu majeur pour l’automobile,
Joseph Beretta
• Tout CAN , Benoît Sanson
• Exécutif temps réel Pierre-Yves Duval , Ecole d’informatique temps réel, La
Londes les Maures 7-11 Octobre 2002
• Cours Systèmes temps rée, Azmani Monir FST Tanger 2011
• Introduction aux systèmes temps réel, Samia Bouzefrane, CEDRIC –CNA
• La méthode DARTS et la programmation multitâche en LabVIEW KhanhHieuNGO,
Emmanuel GROLLEAU LISI/ENSMA
• Systèmes temps-réel, Matthieu Herrb CNRS-LAAS, Avril 2008
I - 18
Chapitre 1 : Généralités sur les systèmes embarqués
Sommaire
Chapitre 1 : Généralités sur les systèmes embarqués
Généralités sur les systèmes embarqués ...................................................................................................... 1
1. INTRODUCTION .................................................................................................... 1
I - 19