Ministère de l'enseignement supérieur
et de la recherche scientifique
université des sciences et de la technologie
d'ORAN
- MOHAMMED BOUDIAF- Faculté de
Génie Electrique Département
d'électronique
Mémoire de projet de fin
d'étude
Pour l'obtention du diplôme
D'ingénieur en électronique :
Thème :
Présenté par :
· ZAHDOUR HICHAM .
· YOUBI ABDENOUR .
· Option : Communication
Devant le jury :
· président : Mr
OUSSLIM .
· Examinateur : Mr HAMADA . H
.
· Encadreur : Mr SAHARI . M
.
Remerciements
On exprime nos sincères remerciements à
monsieur
DR .SAHARI MOHAMMED, qui nous a
encadré.
Acceptez donc monsieur, l'hommage de ma
gratitude,
qui, si grande qu'elle puisse être, ne sera
jamais à la
hauteur de votre éloquence et de votre
dévouement.
On remercie vivement tout nos chers
enseignants,
dont on leurs adresse nos profondes
reconnaissances,
pour leurs efforts et aides.
Je dédie ce travail modeste, à mes
très chers parents, qui n'ont
jamais cessé à me tendre la main,
à me transmettre la volonté et
l'amour pour les études.
A mes frères et soeurs, et surtout à ma
grand mère.
A tous mes amis, à tout ceux qui m'ont
encouragé pour mes
études.
ZAHDOUR HICHAM
Je dédie ce travail a mes parents , a mes
familles et a tous
mes amis
Youbi Abdenour
Liste des figure
Fig 1-1 système temps réel / l'environnement Fig
1-2 échéance d'une tache
Fig 1-3 système de commande
Fig 1-4 parallélisme
Fig 1-5 principe de programmation en mode bouclé. Fig 2-1
Notion de périodicité
Fig 2-2 Transition d'état entre tache
Fig 3-1 Principe des Systems embarquée
Fig 3-2 Caractérise de PICOS18
Fig 3-3 les états d'une tache OSEK/VDX :basique(a gauche),
étendue (a droite). Fig 3-4 Exemple de synchronisation par
événement.
Fig 3-5 Exemple d'un événement
Fig 3-6 Inversion de priorité
Fig 3-7 Héritage de priorité
Fig 3-8 Fonctionnement des alarmes
Fig 4-1 liste des événements
Fig 4-2 exemple d'un événement
Fig 4-3 tableau des alarmes
Fig 4-4 Montage d'un capteur de température Fig 4-5
affichage de température sur PC.
Fig. 5-1 les codes source d'un objet
Fig 5-2 La chaîne de compilation Microchip
Sommaire
Préambule .01
Chapitre I Le temps réel 02
1-1Introduction : 03
1-2 La notion de temps réel ....03
1- 3 Architecture des Systèmes Temps Réel ...05
1- 4 Système de commande en temps réel ..06
1- 5 Contraintes de temps dans un système ....07
1- 6 Contraintes de temps faibles (tc << Tmax) 08
Chapitre II Multitâche .....09
2-1 Introduction 10
2-2 Notion de Tâche 10
2-3 Caractéristiques des tâches 11
2-3-1 Notion de priorité 11
2-3-2 Notion de périodicité 12
2-3-2-1 Les tâches périodiques 12
2-3-2-2 Les tâches non périodiques 13
2-3-2-3-1 Les tâches sporadiques 13
2-3-2-3-2 Les tâches apériodiques 13
2-4 Tâches matérielles, tâches logicielles
13
2-5 Etats d'une tâche 14
2-5-1 Transition entre tâche 14
Chapitre III Noyau temps réel pour système
Embarqué 17
3-1 Les Systèmes Embarqués
|
.18
|
3-2 Les Systèmes d'Exploitation pour Systèmes
Embarqués
|
18
|
3-3 Noyaux pour systèmes embarqués
|
19
|
3-3-1 Les Caractéristiques d'un noyau temps réel
|
19
|
3-3-2 Le Noyau temps réel PICOS18
|
20
|
3-3-3 Les Caractéristiques de PICos18
|
20
|
3-4 Historique de la proposition OSEK/VDX
|
21
|
3-5 La Gestion des tâches
|
22
|
3-5-1 les tâches basiques
|
22
|
3-5-2 les tâches étendues
|
23
|
3-6 Ordonnancement
|
23
|
3-6-1 Non-préemptif
|
23
|
3-6-2 Préemptif
|
...23
|
3-6-3 Mixte
|
24
|
3-7 La synchronisation des tâches
|
24
|
3-7-1 Les événements
|
24
|
3-7-2 Partage de ressources et exclusion mutuelle
|
27
|
3-7-2-1 l'exclusion mutuelle
|
27
|
3-7-2-2 Héritage de priorité (Priority
Inheritance)
|
28
|
3-7-2-2-1 Inversion de priorité
|
28
|
|
3-7-2-2-2 Remèdes 29
3-7-2-2-3 Héritage par la méthode du plafond de
priorité (PCP) 29
3-8 Les objets Alarme et Compteur 32
3-9 Conclusion .34
Chapitre IV Application Multitâche 35
4-1 introduction 36
4-2 description de systeme 36
4-3 Configuration De L'application 41
4-4 Description Détaillée 41
Chapitre V Les ressource « Software » de
PICOS18 55
5-1 Les sources du projet 56
5-1-1 Include 56
5-1-2 Kernel 57
5-1-3 Linker 57
5-1-4 Project/MyApp 57
5-1-5 Project/Tutorial 58
5-2 La chaîne de compilation Microchip 58
5-3- les fichiers source 60
5-3-1 Le fichier « INT.C » 60
5-3-2 Le fichier MAIN.C 61
5-3-3 Taskdesc.c 62
5-3-4 Les fichiers d'inclusion (Header File * .h) 65
Conclusion Générale 67
Annex 68
Préambule
Pourquoi avons-nous besoin d'un noyau temps réel
?
Les techniques de conception temps réel permettent
à l'ingénieur/concepteur de décomposer un problème
complexe et large en un ensemble de taches ou threads simples. Ces
unités de codes simples à gérer permettent des
réponses rapides à des événements importants,
d'autre part, des priorités peuvent être allouées à
des traitements pour être exécutés d'une manière
structurée et bien testée. Le noyau fait le nécessaire
pour maintenir le temps, une certaine harmonie entre les taches, et aussi le
flux des communications entres les taches... Plusieurs activités peuvent
être réalisées dans le même laps de temps en
autorisant à des taches de travailler pendant que d'autres sont en
attente de l'occurrence de certains évènements. Le code obtenu en
utilisant ces techniques est plus dense et plus petit car l'information est
condensée au niveau des variables d'état et des structures de
code. Si vous voulez un exemple, lisez la description de l'application faite
dans ce mémoire.
Au fait, en quoi consiste le multitâche
?
Ceci est l'apparence d'avoir plusieurs taches
s'exécutant en même temps ou simultanément. Chaque tache
pense qu'elle possède l'unité centrale à elle seule, mais
cette apparence est justement contrôlée par le noyau. Seulement
une seule tache est en exécution à un moment donné, mais
il existe d'autres travaux no encore accomplis qui peuvent
réalisés par des taches qui ne sont pas, justement,
bloqués. Le multitâche est l'orchestration des interruptions, des
événements, des communications, des données
partagées et des synchronisations dans le temps ,pour La programmation
en temps réel est simplement un ensemble d'idées, de concepts, et
de techniques qui nous permettent de diviser des problèmes en
unités de code qui sont basées sur des unités de temps, ou
événements qui conduisent les taches à transiter d'un
état vers un autre état.
Chapitre I
Le temps réel
1-1 Introduction :
L'évolution majeure des systèmes d'exploitation
(standards ou embarquées), concerne le support de l'exécution
concurrente de plusieurs traitements et a donné naissance aux
systèmes dits multitâches. Toutefois, les systèmes
multitâches même s'ils permettent de partager l'accès au
microprocesseur n'offrent que peu de garanties concernant la
disponibilité de cette ressource.
Les systèmes temps réels sont donc une
réponse au problème de disponibilité de la ressource
microprocesseur. Le temps réel est un domaine à part entier de
recherche qui est le sujet de nombreuses études multi-domaines (logique
temporelle, théorie des files d'attente, systèmes d'exploitation
...).
Borner l'exécution d'un traitement permet d'obtenir
des garanties quant aux temps de réponse aux divers ensembles de
données auxquels il pourra être soumis. Plus
précisément cela permet de garantir la terminaison d'un
traitement et aussi de mesurer la quantité de pourcentage du processeur
nécessaire à sa terminaison. Ce contrôle est en particulier
nécessaire dans beaucoup de traitements proches du matériel dans
les système d'exploitations standards et embarquées.
1-2 La notion de temps réel :
On appelle classiquement une application temps réel,
un système de traitement de l'information ayant pour mission de
commander un environnement, en respectant les contraintes de temps (temps de
réponse à un stimulus, taux de perte d'information
toléré en entrée ...) qui sont imposées à
ses interfaces avec cet environnement.
Fig 1.1 système temps réel /
l'environnement
Un système temps réel est un système qui
est étroitement lié à son environnement. La
propriété du temps réel est attribuée si
l'exactitude du système est déterminée par les dates
auxquelles les résultats d'exécution sont disponibles. La notion
d'information valide ne devient vraie que si le résultat est correct et
disponible dans l'intervalle de temps fixé par l'environnement.
« Même la bonne réponse est fausse si
elle arrive trop tard »
Nous pouvons représenter un système temps
réel comme étant composé de :
· L'environnement à contrôler,
· Un système de contrôle qui représente
le système d'exploitation au dessus duquel l'application sera
exécutée.
· l'application
L'interaction entre ces trois composants se traduit par un
échange d'informations entre l'application et l'environnement selon des
contraintes temporelles imposées par ce dernier. Le système
d'exploitation permet de contrôler cette interaction [1].
Un système temps réel pilote un processus
comportant des contraintes de temps aléatoires et
variées. Ce système doit être
déterministe puisqu'il doit savoir avec
précision l'instant de début et de fin d'un
traitement. Dans un système temps réel, les contraintes
temporelles portent essentiellement sur les dates de début et de fin
d'exécution des tâches.
Une tâche temps réel est associée à
des contraintes de temps et de ressources. Selon les contraintes et les
caractéristiques des tâches [2].
Fig 1-2 échéance d'une tache
1- 3 Architecture des Systèmes Temps
Réel :
Les systèmes temps réel peuvent être
classés selon leur couplage avec des éléments
matériels avec lesquels ils interagissent. Ainsi, l'application
concurrente et le système d'exploitation qui lui est associé
peuvent se trouver :
· soit directement dans le procédé
contrôlé : c'est ce que l'on appelle des systèmes
embarqués (embedded systems). Le procédé est
souvent très spécialisé et fortement dépendant du
calculateur. Les exemples de systèmes embarqués sont nombreux :
contrôle d'injection automobile, stabilisation d'avion,
électroménager, missile. C'est le domaine des systèmes
spécifiques intégrant des logiciels sécurisés
optimisés en encombrement et en temps de réponse.
· soit le calculateur est détaché du
procédé : c'est souvent le cas lorsque le procédé
ne peut être physiquement couplé avec le système ou dans le
cas général des contrôle/commandes de processus
industriels. Dans ce cas, les applications utilisent généralement
des calculateurs industriels munis de systèmes d'exploitation standards
ou des automates programmables industriels comme dans les chaînes de
montage industrielles par exemple [3].
1- 4 Système de commande en temps réel
:
C'est tout d'abord un système de commande, ce qui
implique l'existence d'un système commandé : le
processus. Ce dernier, en général un
procédé industriel, doit d'abord être surveillé :
son état est déterminé à des instants suffisamment
rapprochés par des capteurs (capteur de température comme dans
notre application). A partir de ces états et d'une stratégie
fixée, il sera piloté en envoyant des consignes à des
actionneurs : rôle de la partie commande.
Fig 1-3 systéme de commande
Un système de commande a donc un grand nombre de
tâches à exécuter telles que :
calculer une action, écrire le résultat d'un
calcul sur un écran de visualisation, effectuer une mesure,
détecter l'éventuelle présence d'une panne
latente, signaler des comportements anormaux, ... Nombre de ces
tâches sont indépendantes et peuvent donc être
exécutées simultanément. C'est pourquoi
on dit qu'un système de commande est naturellement
parallèle.
- Fig 1-4 parallélisme
Le séquencement et l'enchaînement de ces
tâches sont assurés, en fonction d'événements
internes ou externes, par la partie contrôle de l'automatisme. Toutes ces
activités simultanées peuvent être réparties
géographiquement. Le système de contrôle devra centraliser
quantité d'informations et réagir en respectant toutes les
contraintes de temps imposées par le processus : ceci définit
l'aspect temps réel de ce système. Cette notion implique que le
temps d'exécution d'une tâche soit négligeable par rapport
à la vitesse d'évolution du système commandé.
La résolution du problème de commande en temps
réel consiste à rechercher une structure d'exécution et
des ordonnancements permettant de satisfaire ces
contraintes de temps
(deadlines), le non-respect
de l'une d'entre elles étant assimilé à une
panne. [2].
1- 5 Contraintes de temps dans un système :
Chaque tâche de l'automatisme (Figure 1.4) est
exécutée en réponse à des sollicitations externes
ou internes avec des contraintes de temps fixées par l'évolution
du processus ou par les dialogues avec l'opérateur. Ce problème
peut être formalisé en écrivant que, pour chaque
événement Ei, il est nécessaire de
calculer un ensemble de fonctions Fn (travaux
à effectuer) dépendant de Ei et de l'état
Q(t) de la commande. Chaque calcul (des fonctions
Fn) est soumis à une échéance
Tmaxn. La durée tc du calcul est fonction
des algorithmes utilisés et de la puissance du processeur, la
présence de l'échéance Tmax
caractérisant l'aspect temps réel. [2].
1- 6 Contraintes de temps faibles (tc << Tmax)
:
Ce type de contrainte autorise une programmation en mode
bouclé (du type « automate Programmable ») appelée
également gestion des entrées/sorties par scrutation.
Les rebouclages en arrière en attente
d'événements sont ici interdits, car ils
allongent la durée du cycle (tcycle) de façon
indéterminée.
Sachant que la durée d'une boucle est, bien
évidemment, plus courte que la période des
événements testés, le programme doit pouvoir
scruter en permanence les entrées avec un temps
tcycle < Tmax. Le principe de programmation est
schématisé figure 1-5.
Fig 1-5 principe de programmation en mode bouclé.
|