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 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 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 :
| Embarqué :
|
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.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
10.1) Fonctionnement général : boucle infinie
Tant que TOUJOURS faireMais, deux modes de fonctionnement :
Acquisition des entrées (données capteurs, mesures…)Fin tant que
Calcul des ordres à envoyer au procédé
Émission des ordres
- 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 faireMais 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
Lecture de la mémoire des entréesFin
Calcul des ordres à envoyer au procédé
Émission des ordres
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 faireMais 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 :
Lecture de l'information arrivéeFin
activation du traitement correspondant
Émission des ordres issus de ce traitement
- 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)
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