Cours Systèmes Embarqués : Introduction

chapitre 1
----------------------------------------------------------------------

1)  Introduction :

Un système embarqué est un système complexe qui intègre du logiciel et du matériel conçus ensemble afin de fournir des fonctionnalités données. Il contient généralement un ou plusieurs microprocesseurs destinés à exécuter un ensemble de programmes définis lors de la conception et stockés dans des mémoires. Le système matériel et l'application (logiciel) sont intimement liés et immergés dans le matériel et ne sont pas aussi facilement discernables comme dans un environnement de travail classique de type ordinateur de bureau PC( Personal Computer) .
Un système embarqué est autonome et ne possède pas des entrées/sorties standards tels qu'un clavier ou un écran d'ordinateur. Contrairement à un PC, l'interface IHM  (Interface Homme machine)  d'un système embarqué peut être aussi simple qu'une diode électroluminescente LED( Light Emitter Diode)  qui clignote ou aussi complexe qu'un système de vision de nuit en temps réel ; les afficheurs à cristaux liquides LCD (Liquid Crystal Display) de structure généralement simple sont couramment utilisés.
Afin d'optimiser les performances et la fiabilité de ces systèmes, des circuits numériques programmables FPGA (Fild Programmable Gate Array), des circuits dédiés à des applications spécifiques ASIC (Application Specific Integrated Circuits)  ou des modules analogiques sont en plus utilisés.
Le logiciel a une fonctionnalité fixe à exécuter qui est spécifique à une application. L'utilisateur n'a pas la possibilité de modifier les programmes. Bien souvent, il n'a pas conscience d'utiliser un système à base des microprocesseurs.
Les systèmes embarqués sont désormais utilisés dans des applications diverses tels que le transport (avionique, espace, automobile, ferroviaire), dans les appareils électriques et électroniques (appareils photo, jouets, postes de télévision, électroménager, systèmes audio, téléphones portables), dans la distribution d'énergie, dans l'automatisation, …, etc.

2)   Caractéristiques spécifiques

Les système embarqués fonctionnent généralement en Temps Réel (TR) : les opérations de calcul sont alors faites en réponse à un événement extérieur (interruption matérielle). La validité et la pertinence d'un résultat dépendent du moment où il est délivré. Une échéance manquée induit une erreur de fonctionnement qui peut entraîner soit une panne du système (plantage), soit une dégradation non dramatique de ses performances.
Lorsque les systèmes embarqués sont utilisés dans les produits de grande consommation, ils sont fabriqués en grande série. Les exigences de coût se traduisent alors en contraintes sur les différentes composantes du système : utilisation de faibles capacités mémoires et de petits processeurs (4 bits ou 8 bits), mais en grand nombre. Ainsi, les systèmes embarqués sont particulièrement sensibles au coût de production. Il existe des applications dans lesquelles les contraintes de coût de production et de maintenance ont une importance de même niveau que les performances envisagées.
Dans les systèmes embarqués autonomes, la consommation d'énergie est un point critique pour le coût. En effet, une consommation excessive augmente le prix de revient du système embarqué, car il faut alors des batteries de forte capacité.

3)   Complexité

Les système embarqués requièrent souvent un faible encombrement (faible poids) PDA(Personal Digital Assistant) , Internet et téléphone mobiles, …). Leur technologie fait alors appel à une électronique et à des applications portables où l'on doit minimiser aussi bien l'encombrement que la consommation électrique. Par conséquent, la réalisation du packaging afin de faire cohabiter sur une faible surface de l'électronique analogique, de l'électronique numérique, des composantes RF (Radiofréquence)  sans interférences est une tâche difficile. En effet, les performances des systèmes sur carte deviennent obsolètes dans le contexte des besoins actuels.
Dans les stratégies de conception actuelles, un système embarqué est généralement intégré sur un support silicium unique constituant ainsi un système complet intégré sur une puce SoC(System on a Chip).
Les systèmes sur puce contiennent généralement une grande variété de dispositifs programmables tels que des microcontrôleurs, des processeurs de traitement de signaux DSP (Digital-Signal Processor) et des ASIC qui sont développés pour des applications complexes nécessitant une production en grande série.
Les mémoires (ROM et RAM) y sont intégrés pour le stockage des données et des programmes. Ces composants digitaux cohabitent généralement sur le même support de silicium avec des composants analogiques et mixtes divers tels que des composantes radiofréquence (RF) comme moyen de communication, des composantes optiques pour le transfert de données à haut débit, des MEMS (Micro Electro Mechanical System)  pour l'interfaçage avec le monde externe, des convertisseurs analogiques/numérique et numérique/analogique requis pour le dialogue interne. L'objectif est d'obtenir une coopération harmonieuse entre composants embarqués afin de garantir des services globaux.
Des contraintes d'implémentation physique sont liées à la consommation de ressources et au contexte de déploiement tels que le poids, la taille physique, la résistance aux vibrations, ou aux irradiations, …, etc.

4)   Criticité, fiabilité

Du fait de leur portabilité et de la mobilité des produits dans lesquels ils sont incorporés, les systèmes embarqués évoluent généralement dans de conditions environnementales non déterministes et souvent non maîtrisées. Ils sont exposés à des variations et autres contraintes environnementales susceptibles d'induire des défaillances : vibrations, chocs, variation de température, variations d'alimentation, interférences RF, corrosion, humidité, radiations, … D'où la nécessité de prendre en compte des évolutions des caractéristiques des composants en fonction des conditions environnementales.
En même temps que s'accroît leur sophistication, les systèmes embarqués sont utilisés dans des applications de plus en plus critiques dans lesquels leur dysfonctionnement peut générer des nuisances, des pertes économiques ou des conséquences inacceptables pouvant aller jusqu'à la perte de vies humaines. C'est le cas, par exemple, des applications médicales ou celles de transports pour lesquelles une défaillance peut avoir un impact direct sur la vie d'êtres humains. C'est aussi le cas des applications spatiales, souterraines ou sous-marines où la défaillance peut entraîner des conséquences redoutables aussi bien en terme de sécurité qu'au niveau économique. Ce type de systèmes doit garantir une très haute fiabilité et doit pouvoir réagir en cas de panne de l'un de ses composants.

5)   Définition :

Quelle que soit la nature et la complexité du système, on décompose un système embarqués en :
  • le système contrôlé
  • le système de contrôle
Le système contrôlé = environnement (procédé) équipé d'une instrumentation qui réalise l'interface avec le système de contrôle
Le système de contrôle = éléments matériels (microprocesseurs…) et logiciels dont la mission est d'agir sur le procédé via les actionneurs en fonction de l'état de ce procédé indiqué par les capteurs de manière maintenir ou conduire le procédé dans un état donné
système électronique embarqué
Un système électronique embarqué ou enfoui est un élément constitutif d'un système plus complexe pour lequel il rend des services bien précis (contrôle, surveillance, communication…). Il est constitué de parties matérielles et logicielles qui sont conçues spécifiquement pour réaliser une fonction dédiée.
Système embarqué = Système electronique/informatique conçu pour réaliser une ou plusieurs tâches précises.

6)   Caractéristiques :

Les caractéristiques principales d'un système électronique embarqué sont :
  • Autonomes. Une fois enfouis dans l'application ils ne sont (le plus souvent) plus accessibles
  • Temps réel. Les temps de réponses de ces systèmes sont aussi importants que l'exactitude des résultats
  • Réactifs. Il doit réagir à l'arrivée d'informations extérieures non prévues

7)   Comparaison aux systèmes informatiques standards :

Informatique :
  • Processeur standard
    • Multiples unités fonctionnelles (flottant)
    • Vitesse élevée (> GHz)
    • Consommation électrique élevée
    • Chaleur
    • Taille
  • MMU (mémoire virtuelle)
  • OS
  • Cache
  • Grand nombre de périphériques
Embarqué :
  • Processeur dédié (contrôleur)
    • Architecture adaptée
    • Vitesse faible (~200 MHz)
    • 8-32bits : mémoire limitée
    • Basse consommation
    • Petite taille, grand volume => faible coût
  • Processeur DSP (traitements)
    • Très puissants
  • Quelques  Mo de mémoire
  • RTOS

8)   Classification des systèmes embarqués :

8.1)  Système Transformationnel :

activité de calcul, qui lit ses données et ses entrées lors de son démarrage, qui fournit ses sorties, puis meurt.

8.2)  Système Interactif :

Système en interaction quasi permanente avec son environnement, y compris après l'initialisation du système; la réaction du système est déterminée par les événements reçus et par l'état courant (fonction des événements et des réactions passés); le rythme de l'interaction est déterminé par le système et non par l'environnement.

8.3)  Système Réactif ou Temps Réel :

Système en interaction permanente avec son environnement, y compris après l'initialisation du système; la réaction du système est déterminée par les événements reçus et par l'état courant (fonction des événements et des réactions passées); mais le rythme de l'interaction est déterminé par l'environnement et non par le système.

9)   Systèmes embarqués temps réel :

9.1) Définition : (CNRS 1988) :

Peut être qualifiée de "temps-réel" (ou "temps contraint", ou encore "réactif") toute application mettant en œuvre un système informatique dont le fonctionnement est assujetti à l'évolution dynamique de l'environnement qui lui est connecté et dont il doit contrôler le comportement.
système temps réel embarqué
Ce sont des systèmes liés au contrôle de procédés l'exécution de programmes dans ces systèmes doit terminer avant une date appelée échéance au-delà de laquelle les résultats ne sont plus valides.
On distingue deux type de systèmes embarqués temps-réel :
Exemple critique : le contrôleur de frein d'une voiture
• Système temps-réel dur/stricte (hard real-time)
Le non-respect des échéances peut avoir des conséquences graves sur le fonctionnement du système ou sur son environnement (auto-pilotage, freinage,
assistance médicalisée…). Les échéances ne doivent jamais être dépassées.
• Système temps-réel mou (soft real-time)
Le non-respect des échéances ralentit le système sans conséquences graves (billetterie automatique…). Le système doit répondre au mieux, le plus rapidement possible.
La plupart des systèmes embarqués sont dit mutlirate ou multi-période
  • Les données sont capturées à un certain rythme
  • Les traitements sur ces données ne sont pas forcément à la même granularité
  • Différents traitements peuvent intervenir de manière indépendante
  • Les actionneurs fonctionnent à une fréquence différente

10) Architecture générale et modes de fonctionnement

architecture système temps réel

10.1)  Fonctionnement général : boucle infinie

Tant que TOUJOURS faire
Acquisition des entrées (données capteurs, mesures…)
Calcul des ordres à envoyer au procédé
Émission des ordres
Fin tant que
Mais, deux modes de fonctionnement :
  • fonctionnement cyclique (time driven ou système "synchrone")
  • fonctionnement événementiel (event driven)
  • fonctionnement mixte : à base de traitements périodiques et et apériodiques (déclenchés sur événements)

10.2)  Fonctionnement Cyclique :

  • scrutation d'une mémoire d'entrée périodiquement (polling)
  • échantillonnage des entrées sur l'horloge du système
  • activation du système à chaque top d'horloge
A chaque top d'horloge faire
Lecture de la mémoire des entrées
Calcul des ordres à envoyer au procédé
Émission des ordres
Fin
Mais  ce type de système est peu "réactif" si l'environnement produit des informations à des fréquences différentes ce qui oblige à prévoir toutes les réactions du système dans la même boucle donc il y a un  problème de performance et en est obligé à imbriquer des boucles de fréquences multiples ce qui implique des difficultés de réalisation, de lisibilité du code et d'évolution

10.3)  Fonctionnement Evénementiel :

Le fonctionnement est basé sur le principe d'activation du système à chaque événement (notion d'interruption)
A chaque interruption faire
Lecture de l'information arrivée
activation du traitement correspondant
Émission des ordres issus de ce traitement
Fin
Mais dans ce cas le problème réside dans le cas où une interruption survient alors que le système est en train de traiter une interruption précédente, ce  qui implique des contraintes de programmation :
  • notion de priorité des interruptions
  • notion de "tâche" associée à une ou plusieurs interruptions
  • mécanisme de préemption et de reprise de tâche
  • gestion de l'exécution concurrente des tâches (ordonnancement)
=> Un système temps réel est souvent un système multitâche incluant un gestionnaire de tâches (Ordonnanceur)

11) Exemple :

Le système de contrôle des gouvernes de l'Airbus A320 est un système embarqué dont les exigences sont :
  • le système doit traduire en ordres de déflection des gouvernes les ordres de pilotage venant du pilote ou de pilote automatique (facteur de charge)
  • Le système doit maintenir l'avion dans son domaine de vol quelles que soient les commandes du pilote ou du pilote automatique
  • Compte tenu de la dynamique de l'avion, les ailerons et la gouverne de direction doivent être asservis à une période minimale de 10ms
  • Compte tenu de la dynamique de l'avion, la gouverne de profondeur doit être asservie à une période minimale de 30ms
  • La perte de contrôle à la fois des ailerons et des spoilers est catastrophique (taux de panne de 10-9)
  • La perte de contrôle de la profondeur est catastrophique (taux de panne de 10-9)
  • La perte de contrôle des spoilers, des ailerons, de la direction et de la profondeur ne doit pas être causée par une panne unique

exemple de système embarqué