Académique Documents
Professionnel Documents
Culture Documents
REL EMBARQUS
9782100713318-Livre.indb 1
23/09/14 17:21
9782100713318-Livre.indb 2
23/09/14 17:21
SYSTMES
TEMPS REL
EMBARQUS
Spcification, conception,
implmentation
et validation temporelle
2e dition
9782100713318-Livre.indb 3
23/09/14 17:21
Illustration de couverture
La station spatiale internationale (ISS)
CNES/ill./Ducros David, 2008
9782100713318-Livre.indb 4
23/09/14 17:21
Avant-proposIX
Chapitre 1 : Le dveloppement des systmes embarqus
temps rel
1.1 Introduction
20
33
33
37
40
55
61
71
78
84
2.9 Exemples
89
107
3.1 Introduction
107
112
130
V
9782100713318-Livre.indb 5
23/09/14 17:21
137
137
171
197
223
5.1 Introduction
223
226
255
279
295
295
341
375
398
413
7.2 Spcification
415
7.3 Conception
422
425
461
467
7.7 Conclusion
478
479
8.1 Introduction
479
485
505
530
VI
9782100713318-Livre.indb 6
23/09/14 17:21
546
571
582
Annexes
Annexe A : Reprsentation de linformation
597
597
599
605
607
607
608
609
609
611
Index615
VII
9782100713318-Livre.indb 7
23/09/14 17:21
9782100713318-Livre.indb 8
23/09/14 17:21
Avant-propos
lectronique: processeur multifonction (microcontrleur), processeurs multicurs, processeur faible consommation, ralisation de circuits lectroniques
ddis (FPGA), etc.
Automatique: lois de rgulations adaptes, rgulation numrique, etc.
Informatique: mthodes et mthodologies de dveloppement, systmes dexploitation ou excutifs embarqus, langages applicatifs, mthodes de tests et de
validations, etc.
Cet ouvrage est rsolument orient informatique, et les domaines de llectronique et de lautomatique ne sont pas ici le propos. Toutefois, tant donn le
dveloppement li entre les deux parties matriel et logiciel, une prsentation
succincte des aspects matriels ncessaires lapprhension des systmes embarqus est faite. Nous allons nous intresser particulirement laspect gnie logiciel,
cest--dire la ou les mthodes permettant de dvelopper correctement ces applications.
IX
9782100713318-Livre.indb 9
23/09/14 17:21
9782100713318-Livre.indb 10
23/09/14 17:21
Avant-propos
XI
9782100713318-Livre.indb 11
23/09/14 17:21
9782100713318-Livre.indb 12
23/09/14 17:21
Le dveloppement
des systmes embarqus
temps rel
1.1 Introduction
1.1.1 Dfinitions
La plupart des systmes embarqus temps rel sont avant tout des systmes de
contrle-commande. Un systme de contrle-commande est un systme informatique de contrle de procd. Le terme procd est un terme gnrique dsignant
un systme physique contrl.
Afin de contrler le procd, le systme informatique est en relation avec lenvironnement physique externe par lintermdiaire de capteurs et/ou dactionneurs. Les
grandeurs physiques acquises grce aux capteurs permettent au systme de contrlecommande de sinformer de ltat du procd ou de son environnement. Le systme
de contrle-commande, partir de consignes dcrivant ltat voulu du procd,
calcule des commandes qui sont alors appliques sur le procd par lintermdiaire
dactionneurs. Donnons ainsi une dfinition gnrale dun systme de contrlecommande (figure1.1):
Systme
de contrle-commande
Sorties
9782100713318-Livre.indb 1
23/09/14 17:21
Un systme embarqu est un systme informatique dont les moyens de calcul sont
embarqus sur le procd contrl. Le fait dembarquer les moyens de calcul implique,
en plus des contraintes dencombrement (taille, poids, forme), des contraintes de
consommation dnergie puisque lalimentation lectrique des lments de calcul est
soit embarque (batteries, carburant, etc.), soit ambiante (panneaux solaires, etc.).
technologie quivalente, lnergie consomme par un calculateur est fonction du
carr de la vitesse de celui-ci; en dautres termes, plus le calculateur est performant,
2
9782100713318-Livre.indb 2
23/09/14 17:21
1.1
Introduction
plus lnergie consomme est importante, avec une relation quadratique. Un systme
embarqu se caractrise donc souvent par des ressources de calcul dimensionnes
(ou dimensionner) au plus juste en fonction des besoins en calcul.
Un systme temps rel est un systme informatique soumis des contraintes de
temps. Une dfinition du temps rel peut tre:
Un systme est dit temps rel si lexactitude des applications
ne dpend pas seulement du rsultat mais aussi du temps
auquel ce rsultat est produit..
9782100713318-Livre.indb 3
23/09/14 17:21
Proprits temporelles
Donnes produites par lenvironnement
Contraintes de temps
Synchronisations
ou communications
Donnes produites par lenvironnement
Pas de contraintes de temps
Algorithmique
Donnes linitialisation
Pas de contraintes de temps
Aspect
comportemental
Aspect temporel
Systmes ractifs
ou de contrle-commande
Aspect relation
entre entits
du programme
Systmes
interactifs
(ex. : bureautique, CAO)
Aspect
transformationnel
Systmes
transformationnels
(ex. : code de calcul)
9782100713318-Livre.indb 4
23/09/14 17:21
1.1
Introduction
Nous terminons cette section par des dfinitions qualifiant des systmes temps rel
ayant des spcifications particulires. Ces contraintes temporelles peuvent tre de
plusieurs types:
Contraintes temporelles relatives ou lches (temps rel mou: soft real-time):
les fautes temporelles sont tolrables (Ex.: jeux vido, applications multimdias,
tlphonie mobile).
Contraintes temporelles strictes ou dures (temps rel dur: hard real-time):
les fautes temporelles ne sont pas tolrables (Ex.: fonctions critiques avionique,
vhicules spatiaux, automobile, transport ferroviaire).
Contraintes temporelles fermes (temps rel ferme: firm real-time): les fautes
temporelles sont autorises dans une certaine limite, par exemple une erreur
toutes les trois excutions au plus.
Systmes multi-critiques: les sous-systmes composant le systme sont caractriss par des degrs de criticit. Par exemple en avionique civile, la DO-178C
caractrise les sous-systmes par un niveau de criticit appel DAL (Design Assurance Level), allant de niveauA (Ex.: commande de vol), catastrophique en cas
de dfaillance, niveauE (Ex.: divertissement en vol), sans effet sur la scurit.
Considrons un exemple reprsentatif dune application temps rel de contrlecommande reprsent sur la figure1.4. Cet exemple de contrle-commande dun
moteur combustion est repris de faon dtaille dans le chapitre suivant. Le
contrle-commande de cette application est fait par lintermdiaire dun ensemble
de capteurs et dactionneurs (pdale dacclrateur, temprature air, pression air,
temprature eau, rotation vilebrequin, capteurs de pollution, injection essence,
allumage, admission air, etc.) et dune connexion au rseau interne lautomobile.
Lanalyse de cet exemple dapplication permet de mettre en exergue les principales
caractristiques des systmes de contrle-commande:
Grande diversit des dispositifs dentres/sorties: les donnes acqurir qui
sont fournies par les capteurs et les donnes fournir aux actionneurs sont de
types trs varis (continu, discret, tout ou rien ou analogique). Il est aussi ncessaire de piloter un bus de terrain pour les communications.
Prise en compte des comportements concurrents: lensemble de ces donnes
physiques qui arrivent de lextrieur et le rseau qui permet de recevoir des
messages ne sont pas synchroniss au niveau de leurs volutions, par consquent,
le systme informatique doit tre capable daccepter ces variations simultanes
des paramtres.
Respect des contraintes temporelles: la caractristique prcdente impose de
la part du systme informatique davoir une ractivit suffisante pour prendre
5
9782100713318-Livre.indb 5
23/09/14 17:21
Capteur
Calculateur
pression collecteur
Bus CAN
Communications
avec les autres
calculateurs
Commande admission air
(papillon)
Capteur
pdale acclrateur
Capteur
pollution en amont
Capteur
temprature air
Capteur
pollution en aval
Commande
injecteur essence
air
Commande
allumage
9782100713318-Livre.indb 6
23/09/14 17:21
1.1
Introduction
9782100713318-Livre.indb 7
23/09/14 17:21
9782100713318-Livre.indb 8
23/09/14 17:21
1.2
9782100713318-Livre.indb 9
23/09/14 17:21
par ces tches relve des domaines comme le traitement du signal, le traitement
dimages ou lautomatique, disciplines qui dbordent largement le contexte de
ce livre.
Tches de gestion de linterface utilisateur: ces tches permettent de prsenter
ltat du procd ou de sa gestion lutilisateur. En rponse, loprateur peut
modifier les consignes donnes ou changer les commandes. Ces tches peuvent
tre trs complexes et coteuses en temps de calcul si linterface gre est de taille
importante (tableau de bord) ou de type graphique (reprsentation 3D).
Rseaux
Programmation multitche
Liaison
Liaison
Liaison
rseau
rseau
rseau
Consignes
Mesures
Interface
homme/machine
Oprateurs
Traitements
des donnes
Procd
physique
externe
Interface
entres/sorties
Visualisation
Commandes
Liaison
stockage
Rcupration
Sauvegarde
Units de stockage
9782100713318-Livre.indb 10
23/09/14 17:21
1.2
tches de communications et tches de sauvegarde. Ce dcoupage purement fonctionnel peut tre modifi dans certains cas en utilisant une conception tourne vers
les entits ou objets contrler. Cet aspect de la conception et de la mise en uvre
est prsent dans les chapitres suivants.
Les tches obtenues, qui constituent lapplication de contrle-commande, ne sont
pas des entits dexcution indpendantes. En effet certaines tches sont connectes
vers lextrieur pour les entres/sorties. De plus elles peuvent tre lies par des relations de type (voir figure 1.6):
Synchronisation: cela se traduit par une relation de prcdence dexcution
entre les tches;
Communications: la notion de prcdence, traduite par la synchronisation,
sajoute le transfert de donnes entre les tches;
Partage de ressources: les tches utilisent des lments mis en commun au
niveau du systme comme des zones mmoire, des cartes dentres/sorties, cartes
rseau, etc. Certaines de ces ressources, comme par exemple les zones mmoire,
ne sont pas ou ne doivent pas tre accessibles, pour avoir un fonctionnement
correct, par plus dune tche la fois, elles sont dites ressources critiques.
Entre
Tche 1
Tche 2
Tche 3
Tche 8
Synchronisation
Ressource
critique
Tche 7
Sortie
Tche 5
Tche 4
Tche 6
9782100713318-Livre.indb 11
23/09/14 17:21
Lecture_consigne
Occurrences
observes
par le systme
Occurrences
mises
par le procd
Alerte
Raction perue comme diffre par le procd
12
9782100713318-Livre.indb 12
23/09/14 17:21
1.2
Ce retard peut affecter la prise en compte de nimporte quel vnement, quelle quen
soit la gravit pour lapplication. Il faut donc vrifier que larchitecture oprationnelle choisie permettra de prendre en compte les contraintes temporelles: hypothse
de la fentre de visibilit des vnements ou dinstantanit des actions. La capacit
du systme apprhender un vnement externe est caractrise par la dure de la
tche la plus longue puisque les tches sont non interruptibles ou non premtibles.
Dans le cas du modle synchrone dexcution, nous avons un systme dordonnancement compltement prvisible et, en consquence, il est possible en faisant une
analyse exhaustive de lexcution de produire une squence dexcution qui est joue
de faon rptitive. Cette tude de la squence est appele analyse de lordonnancement hors-ligne. Lordonnancement peut se rduire un squencement. Nous
avons alors un environnement informatique trs simple de lapplication dveloppe
puisquil se rduit une liste de tches excuter. Lenvironnement informatique
pour piloter cette liste de tches se rduit un systme trs simple: un squenceur.
Dans le modle dexcution asynchrone, loccurrence de tout vnement est immdiatement prise en compte par le systme pour tenir compte de lurgence ou de
limportance. Dans lexemple propos, nous pouvons constater que la prise en compte
dun signal dalerte est immdiate sans attendre la fin de la tche Lecture_consigne
(voir figure1.8). La prise en compte de lvnement alerte est identique pour le
procd et le systme informatique. Loccurrence des vnements externes nest pas
synchronise avec le systme informatique, do le nom dexcution asynchrone.
Alarme
Application
Lecture_consigne
Lecture_consigne
Occurrences
observes
par le systme
Occurrences
mises
par le procd
Alerte
Dans ce contexte, nous avons des tches qui sont interruptibles ou premtibles.
En consquence, lordonnancement nest pas totalement prvisible et lanalyse de
lexcution des tches doit se faire en ligne par simulation ou par test. Cela ncessite
13
9782100713318-Livre.indb 13
23/09/14 17:21
lutilisation dun gestionnaire centralis des vnements et de la dcision dexcution: excutif ou noyau temps rel.
Pour terminer cette section nous allons rappeler trois dfinitions importantes que
nous avons utilises et fixer le contexte de cet ouvrage. Nous avons ainsi dfini:
Tche non premptible ou premptible:
Une tche non premptible ne peut tre interrompue qu des endroits spcifiques et la demande de la tche elle-mme: fin_de_tche, attente_signal
Dans ce cas, la programmation est plus simple et aucun mcanisme de
partage de ressources critiques nest prvoir. En revanche, des temps de
rponse longs peuvent se produire.
Une tche premptible peut tre interrompue nimporte quel instant et le
processeur tre affect une autre tche. Dans ce cas, les temps de rponse
un vnement externe peuvent tre trs courts; mais nous avons alors une
programmation plus complexe avec un besoin de mcanisme de partage de
ressources critiques.
Analyse de lordonnancement hors-ligne ou en ligne:
Une analyse de lordonnancement hors-ligne correspond la construction
dune squence dexcution complte sur la base des paramtres temporels
des tches en utilisant une modlisation (rseaux de Petri) ou une simulation (animation ou numration du modle). Lordonnanceur ncessaire
est simple puisque la squence dexcution est prdfinie, il se rduit un
squenceur. En revanche, lapplication ainsi fige est peu flexible.
Une analyse de lordonnancement en ligne correspond un choix dynamique
de la prochaine tche excuter en fonction des paramtres de la tche. Si
le systme a des contraintes temporelles, on doit utiliser pralablement la
mise en exploitation du systme des tests permettant de vrifier quen toutes
circonstances les contraintes temporelles seront respectes. On appelle ces
tests des tests dordonnanabilit.
Excution synchrone ou asynchrone:
Une excution est dite synchrone si les tches sont non premtibles et sexcutent les unes aprs les autres dans un ordre qui peut tre dfini par une
analyse hors-ligne de lordonnancement.
Une excution est dite asynchrone si les tches sont premtibles et sexcutent
selon lordonnancement. Une analyse de la squence doit se faire obligatoirement en ligne.
Dans la suite de cet ouvrage, nous nous intressons plus particulirement aux
systmes asynchrones composs de tches premptibles avec un ordonnancement
en ligne. Ainsi larchitecture logicielle de lapplication est compose de plusieurs
14
9782100713318-Livre.indb 14
23/09/14 17:21
1.2
9782100713318-Livre.indb 15
23/09/14 17:21
En gnral, les contraintes temporelles ne peuvent pas tre garanties dans un systme
dexploitation gnraliste (Unix, Windows8) contrairement un noyau temps rel.
Une application temps rel tant par dfinition un systme multitche, le rle essentiel du noyau temps rel est donc de grer lenchanement et la concurrence des tches
en optimisant loccupation de lunit centrale du systme informatique. Les principales fonctions dun noyau temps rel peuvent tre scindes en trois groupes:
1. gestion des entres/sorties (gestion des interruptions, gestion des interfaces
dentres/sorties, gestion des rseaux de communications);
2. ordonnancement des tches (orchestration du fonctionnement normal,
surveillance, changements de mode, traitement des surcharges);
3. relations entre les tches (synchronisation, communication, accs une
ressource critique en exclusion mutuelle, gestion du temps).
Il est important de noter que les tches sont les units actives du systme; le
noyau temps rel nest actif que lors de son appel. Une tche active peut appeler
le noyau temps rel par une requte. Les diffrentes requtes sont servies par des
modules du noyau temps rel appeles primitives. Ensuite le noyau temps rel
ractive une tche de lapplication selon lalgorithme dordonnancement utilis
(voir figure1.9).
Tche i
Excution
programme
Requte
Noyau
temps rel
Excution
primitives et ordonnanceur
Activation
Tche j
Excution
programme
Ainsi le noyau temps rel centralise toutes les demandes dactivation des tches et
gre des tables lui permettant de comparer les priorits (ou les urgences) et ltat de
ces diverses tches, ainsi que ltat doccupation des ressources. La dcision dactivation dune tche tant prise, le noyau temps rel lance les modules de programmes
correspondant cette tche et lui alloue les ressources disponibles. La tche active
occupe un processeur jusqu la fin de son excution sous le respect des conditions
suivantes:
Elle ne ralise pas doprations dentres-sorties;
Les ressources utilises sont disponibles;
Aucun vnement extrieur ne revendique le droulement dune tche plus prioritaire.
16
9782100713318-Livre.indb 16
23/09/14 17:21
1.2
Tche i
Tche j
Tche k
Tche x
Tche y
Commandes
Requte
Gestion
du temps
Gestion
des interruptions
Gestion
des vnements
Primitives
Interruptions
Noyau ou Excutif
Horloge
temps rel
Activation
Ordonnanceur
En conclusion de cette section sur lordonnancement qui est tudi de faon plus
complte dans le chapitre8, lordonnancement dans le cas des systmes temps rel
contraintes temporelles strictes a pour objectif principal de rpondre aux deux
cas suivants:
Fautes temporelles: cela correspond un non-respect dune contrainte temporelle associe une tche comme le dpassement de la date limite dexcution ou
chance. Cela induit la notion durgence dune tche.
Surcharge: lors de loccurrence dune ou plusieurs fautes temporelles, lordonnanceur peut ragir en supprimant une ou plusieurs tches de lapplication, ce
qui amne la notion dimportance, cest--dire le choix dune tche excuter
par rapport aux spcifications fonctionnelles de lapplication.
9782100713318-Livre.indb 17
23/09/14 17:21
3relations entre les tches), il possible de dcliner les langages en trois groupes
(voir figure1.11):
Noyau temps rel
3
Langages
standards
(Langage C)
Langages
multitches
(Langage Ada)
1
Langages
ractifs
Autre
langage
Langages standards (langage C): le noyau temps rel qui supporte ce type de
langage doit tre complet puisque le langage nintgre aucune spcificit multitche.
Langages multitches (langage Ada, Java): ces langages permettent de dcrire
lapplication en termes de tches ; ainsi le noyau peut tre plus rduit et ne
comporter que les deux premires fonctions.
Langages ractifs (langages Lustre, Esterel, Signal): ces langages donnent non
seulement la possibilit de dcrire les fonctionnalits du programme, mais aussi
lenchanement des diffrentes parties. Le noyau est donc limit une couche
proche du matriel li notamment la gestion des interruptions. En revanche,
tant donne la possibilit trs limite dexpression de laspect fonctionnel, ils
sont souvent associs un langage standard pour pallier ce manque.
9782100713318-Livre.indb 18
23/09/14 17:21