Integration du systeme d’exploitation temps reels freertos

L’évolution de l’informatique présente deux grandes tendances: d’une part, les plateformes à des calculs puissantes avec ressources quasiment illimitées, mais gourmandes en ressource. D’autre part, les applications aux puissances de calcul avec mémoire réduites répondant aux besoins des utilisateurs « nomades » qui veulent pouvoir exploiter son système informatique.

La contrainte énergétique décrite précédemment implique l’utilisation des puissances de calcul réduites, entraînant ainsi un développement de logiciels contraint par la capacité de la mémoire et la vitesse d’exécution. Les systèmes d’exploitation développés pour les ordinateurs actuels requièrent trop de ressources mémoire et de calcul, et ne constituent pas une solution pour l’adaptation à des plateformes ayant des ressources limitées. Aussi, une programmation bas-niveau limite la portabilité d’algorithmes complexes sur des systèmes informatiques à caractéristiques différentes. L’entité élémentaire à capacité réduite à laquelle nous nous intéressons est l’acquisition des données analogiques à partir d’un système autonome. L’unité de calcul sera assurée par le microcontrôleur 32 bits de Microchip, le PIC32.

Actuellement, la technologie évolue, de plus en plus, suivant les besoins des utilisateurs. Ils demandent des systèmes fiables, simples et rapides pour leurs applications. Les applications à distance sont parmi les accès incontournables de cette tendance. Ce concept est rencontré dans presque tous les domaines de la technologie. Le microcontrôleur PIC32, monté sur la carte de développement Starter Kit PIC32, utilisé par la société RHEMA n’est pas en mesure de fournir un travail qui nécessite une précision temporelle. De plus, il n’est pas capable de lancer plusieurs applications à la fois. L’objectif de cette recherche consiste donc à expérimenter un système d’exploitation pour microcontrôleur : le FreeRTOS. Ce nouveau système offre plusieurs avantages comme la facilité de l’organisation des tâches de chaque développeur. Pour la partie réalisation, on a mis en place le serveur Web délivré par la société Microchip et l’adapter aux besoins de la société. Ainsi, le thème choisi pour ce mémoire est : « INTEGRATION DU SYSTEME D’EXPLOITATION TEMPS REELS FREERTOS DANS LE MICROCONTROLEUR PIC32».

ARCHITECTURES SYSTEMES

Un système embarqué est un système piloté par une unité intelligente appelée calculateur, utilisant généralement une architecture basée autour d’un microprocesseur et combinant diverses technologies (mécanique, hydraulique, thermique, électronique, etc.). [1] Le système est constitué de capteurs, d’actionneurs, et de son logiciel de commande. La reconfiguration est souvent intimement liée, due à des fortes contraintes imposées par l’environnement. En effet, des contraintes de poids ou de dimension peuvent limiter la consommation d’énergie du système, l’utilisation des batteries. L’espace mémoire disponible peut aussi être relativement restreint et le système peut avoir l’obligation de respecter des fortes contraintes temporelles. Enfin, le dernier obstacle à surmonter concerne la sécurité et la sûreté de fonctionnement du système dont dépendent des vies humaines.

Architecture matérielle

L’architecture matérielle est l’ensemble des composants physiques nécessaire à un processus pour réaliser l’application. Ils sont définis comme suit:

Les microprocesseurs 

Un microprocesseur est composé d’un CPU (Central Process Unit) et d’unités de communication pour communiquer avec des périphériques externes ou d’autres microprocesseurs. Il y a trois (3) catégories de microprocesseur classées en fonction de leur richesse en termes de nombre de cartes d’entrée/sortie, de mémoires et surtout d’unité de calcul. [2]

L’architecture monoprocesseur
Un unique processeur exécute toutes les applications concurrentes. Dans ce cas, la notion de parallélisme n’a plus vraiment de sens, puisque le temps processeur est partagé entre toutes les tâches, il y a plutôt de pseudo-parallélisme. En effet, le parallélisme des tâches semble réel à l’échelle de l’utilisateur mais le traitement sur l’unique processeur s’opère de façon séquentielle.

L’architecture multiprocesseur
L’exécution de tous les processus est ici répartie sur plus de deux processeurs partageant une unique mémoire centrale. La coopération entre tâches se fait par partage des informations placées en mémoire. Donc, le traitement est réellement « parallélisé ».

L’architecture distribuée
C’est le cas des architectures multiprocesseurs ne partageant pas de mémoire centrale. Ces processeurs sont reliés entre eux par l’intermédiaire de réseau ou bus, permettant d’assurer les communications entre les différents processus.

Les microcontrôleurs 

Généralités
Un microcontrôleur est un microprocesseur intégrant un certain nombre d’interfaces supplémentaires (mémoires, timers, PIO: Parallel Input Output, décodeurs d’adresse, etc.). Ces nombreuses entrées-sorties garantissent un interfaçage aisé avec un environnement extérieur tout en nécessitant un minimum de circuits périphériques; ce qui les rend particulièrement bien adaptés aux applications temps réel embarquées. [2]

Les microcontrôleurs PIC32 du Microchip
Nous allons maintenant s’intéresser à la structure interne du PIC32MX795F512L, parce que c’est le microcontrôleur monté sur la carte de développement qu’on va utiliser dans notre projet de fin d’études. Ce microcontrôleur fait partie de la famille des 32 bits dont la mémoire programme est de 512 Ko. [4] Les principales caractéristiques de ce microcontrôleur sont:
– Fréquence de fonctionnement élevée, jusqu’à 80 MHz.
– Une mémoire programme de 512 Ko.
– Une mémoire de donnée, pour sauver des paramètres de 128 Ko.
– 100 pins (Nombre de broches).
– Module CAN (Canal Area Network).
– 2 ports UARTs de 20 Mbps. (Universal Asynchronous Receiver Transmitter)
– USB 2.0 (HOST et Device).
– 5 modules I2C (Inter Integrated Circuit).
– 16 convertisseurs A/N 10 bits (ADC).
– Module Ethernet de 100 Mbps.
– Une tension d’alimentation entre 2,3 et 3,6 V.

La mémoire 

La mémoire se caractérise par sa taille (taille de données que le processeur et la mémoire échangent à chaque accès) et son temps d’accès. Le temps d’accès est donné en fréquence, soit en nombre d’accès par seconde. Généralement, la mémoire centrale est relativement lente par rapport au processeur. Dans le cas des microcontrôleurs, la fréquence d’accès à la mémoire centrale est souvent la même que la fréquence du microcontrôleur. Pour charger ou déposer un mot en mémoire, le processeur n’a pas à attendre plus d’un cycle.

Actionneur

Un actionneur est un dispositif qui convertit un signal électrique en un phénomène physique (moteur, vérin électrique, voyant, etc.) censé modifier l’état courant du processus.Le signal de commande fourni par le calculateur est un signal numérique qu’il faut convertir en signal électrique analogique à l’aide d’un Convertisseur Numérique Analogique (C.N.A).

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

INTRODUCTION
PARTIE I ETUDE THEORIQUE
CHAPITRE I ARCHITECTURES SYSTEMES
I.1 Introduction
I.2 Architecture matérielle
I.2.1 Les microprocesseurs
a) L’architecture monoprocesseur
b) L’architecture multiprocesseur
c) L’architecture distribuée
I.2.2 Les microcontrôleurs
a) Généralités
b) Les microcontrôleurs PIC32 du Microchip
c) La mémoire
I.2.3 Actionneur
I.3 Architecture logicielle
I.3.1 Quelques définitions
a) Un programme informatique
b) Une application
c) Un pilote
d) Logiciel
I.3.2 Fonctionnement du processeur
I.3.3 Caractéristiques des logiciels embarqués
a) La criticité
b) La réactivité
c) L’autonomie
d) La robustesse, la sécurité et la fiabilité
I.3.4 La programmation embarquée
a) Gestion de la mémoire
b) Partage du temps processeur
c) Langages de programmation embarquée
CHAPITRE II LE SYSTEME TEMPS REEL
II.1 Système temps réel
II.1.1 Notion temps réel
II.1.2 Contraintes du temps réel
a) Echéance
b) Latence
II.1.3 Utilisations typiques
a) Temps réel dur
b) Temps réel mou
II.1.4 Systèmes d’exploitation temps réel
a) Principe des machines d’état
b) Système d’exploitation temps réel (RTOS)
c) Noyau des systèmes d’exploitation temps réel
CHAPITRE III LE SYSTEME MULTITACHE
III.1 Introduction
III.2 Ordonnanceur
III.2.1 Définition
III.2.2 Algorithmes d’ordonnancement
III.2.3 Notion de tâche
a) Caractéristiques des tâches
b) Notion de priorité
i Notion de périodicité
ii Tâches périodiques
iii Tâches non-périodiques
c) Tâches matérielles et tâches logicielles
d) Etats d’une tâche
e) Outils de communication et de synchronisation des tâches
PARTIE II SYSTEME D’EXPLOITATION FREERTOS
CHAPITRE I CONCEPT DU FREERTOS
I.1 Langage et outil de développement
I.2 ARCHITECTURE DU FreeRTOS
I.2.1 L’ordonnanceur
I.2.2 Les priorités
I.2.3 La famine
I.2.4 La tâche Idle
CHAPITRE II LA DESCRIPTION DES TACHES
II.1 Les tâches dans FreeRTOS
II.2 Cycle de vie d’une tâche
II.2.1 En cours d’exécution ou Running
II.2.2 Prêt ou Ready
II.2.3 Bloqué ou Blocked
II.2.4 Suspendu ou Suspended
CHAPITRE III GESTION DES METERIELS ET LOGICIELS
III.1 La gestion de la file d’attente
III.1.1 Sémaphore
III.1.2 Mutex
III.2 La gestion des interruptions
III.3 La gestion de la mémoire
PARTIE III REALISATION
CHAPITRE I OUTILS UTILISES
I.1 Matériels
I.1.1 La Carte de développement (PIC32)
a) Ethernet starter kit II
b) Extension Board
c) Le Real Ice
I.1.2 Autres matériels
a) Les potentiomètres
b) Les appareils de mesure
I.2 Logiciels
a) MPLAB IDE et C32 compiler
b) ISIS Proteus
CHAPITRE II DESCRIPTION DETAILLEE
II.1 Généralité
II.2 Acheminement et traitement des données
II.2.1 Le capteur
II.2.2 L’acquisition
II.2.3 Préparation de l’information
II.2.4 Compactage du projet Web
II.2.5 Le serveur
II.3 Le FreeRTOS
II.4 Création des tâches
II.5 Les rôles et l’organigramme des tâches créées dans le projet
II.5.1 Tâche 1 : « ADC1Task »
a) Priorité
b) Responsabilité
c) Organigramme
II.5.2 Tâche 2 : « ADC2Task »
a) Priorité : 2
b) Responsabilité
c) Organigramme
II.5.3 Tâche 3 :« TCPIPTask »
a) Priorité
b) Responsabilité
c) Organigramme
II.6 Mode d’accès des tâches aux ressources
II.7 Manipulation
CHAPITRE III BILAN DU PROJET
III.1 Résultat obtenu
III.2 Difficultés rencontrées
III.3 Connaissances acquises
III.4 Perspectives
CONCLUSION

Lire le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *