WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Le multitàąche avec pic18f452 a l'aide d'un noyau temps réel

( Télécharger le fichier original )
par Abdnour YOUBI
Université des Sciences et Techniques d' Oran  - ingénieur d'état en electronique 2007
  

sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

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é.

sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"I don't believe we shall ever have a good money again before we take the thing out of the hand of governments. We can't take it violently, out of the hands of governments, all we can do is by some sly roundabout way introduce something that they can't stop ..."   Friedrich Hayek (1899-1992) en 1984