next up previous contents
suivant: Choix de la plateforme monter: Table des matières précédent: Table des matières   Table des matières

Sous-sections

Introduction

Les systèmes embarqués sont apparus lors de la conquête spatiale quand il a fallu placer un système informatique à bord d'une navette. Le bon fonctionnement de ce système nécessitait la réalisation de calculs en un temps très court, ces calculs étant entre autres basés sur des informations collectées par des capteurs. De cette époque découle le terme anglo-saxon "embedded system" qui a été traduit par "embarqué".

De nos jours, de nombreux appareils utilisent de tels systèmes. Le terme "embarqué" pour un système dans un frigo n'était pas appropriée, ce terme "embarqué" a été remplacé par "enfoui". Un système enfoui est un système informatique constituant un composant d'un système plus complexe. Aujourd'hui, une très grande part des systèmes informatiques fabriqués et utilisés dans le monde sont des systèmes enfouis. Ces systèmes sont évidemment présents dans les télécommunications et les transports mais aussi dans de nombreuses applications d'utilisation plus discrète, mais d'une importance tout aussi grande voire critique vis-à-vis du grand public. Evoquons par exemple les systèmes de contrôle aérien, les systèmes de régulation et d'alarme des centrales nucléaires, les serveurs de télécommunication. Ces systèmes sont de très grandes applications, d'une ingénierie complexe, faisant appel à de multiples compétences et soumis à des contraintes temps-réel fortes.

L'aspect temps-réel est fondamental pour les systèmes enfouis. Les systèmes temps-réel doivent répondre dans un intervalle de temps donné et souvent court. Pour déterminer si un tel système fonctionne correctement, il faut non seulement vérifier qu'il produise des résultats corrects mais qu'il les produise dans l'intervalle de temps fixé. Pour définir cette intervalle, on parle de contrainte temps-réel. Le système temps-réel garantit quoi qu'il arrive, qu'il fournira une réponse dans le délai défini par la contrainte temps-réel.

Le système de gestion des airbags dans une voiture possède des contraintes temps-réel très importantes. Quand un capteur détecte une déformation de la carrosserie suffisamment importante, il envoie un signal au contrôleur qui doit avoir gonflé les airbags dans les 10 ms sous peine d'arriver trop tard, ce qui aurait des conséquences désastreuses pour les occupants de la voiture. Même si un capteur tombe en panne et qu'il n'envoie plus d'informations, le système doit continuer à fonctionner et fournir les meilleures réponses possibles.

Mais un système temps-réel n'a jamais une seule tâche à effectuer, certains systèmes ont des dizaines de tâches à effectuer en même temps, chacune avec ses propres contraintes temps-réel. Il faut donc un système principal qui gère l'ordonnancement de ces tâches. Dès que le système devient un peu complexe, c'est un système d'exploitation temps-réel qui gère l'exécution des différentes tâches.

La différence principale entre un système d'exploitation généraliste et un système d'exploitation temps-réel, c'est que le système temps-réel est déterministe. Deux exécutions du même programme entraînent le même entrelacement des tâches et exactement la même exécution, ce qui n'est pas du tout garanti par un système d'exploitation généraliste. C'est cet aspect déterministe qui permet le respect de contraintes temps-réel.

D'un tout autre coté, depuis quelques années, la mobilité est devenue le cheval de bataille d'une grande partie de l'industrie. Une personne doit être joignable, avoir accès à toute l'information et pouvoir travailler n'importe où, n'importe quand. Il a fallu attendre la miniaturisation de l'électronique pour pouvoir embarquer suffisamment de puissance et de ressources dans un volume très réduit. Les assistants personnels ou PDA 1.1 sont une des conséquences de ce désir de mobilité. Le GSM est dès a présent entré dans tous les foyers et est déjà bien installé dans les moeurs, le PDA suit et arrivera chez Monsieur tout le monde dans les années futures. En voyant le marché actuel, on peut même dire que les deux vont fusionner et que le GSM et le PDA ne feront qu'un pour offrir cette mobilité tant convoitée.

Objectifs

L'objectif principal de ce travail se situe à la rencontre de ces deux aspects : la mobilité et les systèmes temps-réel. Notre but est de proposer une plateforme portable qui permette de piloter des applications temps-réel. Imaginons par exemple disposer d'une machine qui tient dans une poche et qui permettrait de contrôler une expérience scientifique, de piloter un robot ou tout autre contrôleur industriel qui doit respecter des contraintes temporelles.

La première étape est de trouver une machine légère et de petit format qui dispose d'une puissance de calcul suffisante pour réaliser des applications temps-réel. Cette machine doit aussi être relativement bon marché et être disponible dans le commerce à un prix raisonnable. Actuellement, la plateforme matérielle la plus adaptée est sans conteste les ordinateurs de poche ou assistants de données personnels. A la base, ces machines sont destinées à fournir toute l'information dont une personne a besoin au quotidien. Elles fournissent un agenda, un carnet d'adresse, des mémos, des logiciels financiers voir des applications multimédia, etc. Pourquoi ne pas utiliser ces machines pour leur puissance de calcul et leur ajouter le logiciel qui permettrait le développement d'applications temps-réel? L'avantage des ordinateurs de poche par rapport aux ordinateurs portables est bien sur leur taille et leur prix.

La deuxième étape est de concevoir un système d'exploitation temps-réel pour cette plateforme matérielle. Ce système d'exploitation fournira l'interface nécessaire avec le matériel, il permettra de disposer de mécanismes simples pour communiquer avec l'extérieur. Il fournira le moyen d'exécuter plusieures tâches simultanément en respectant les contraintes temps-réel associées à chacune.

La troisième étape est d'installer le système d'exploitation sur la machine. Nous avons deux possibilités pour l'installer :

Le système d'exploitation développé porte le nom "Expresso". Expresso possède les caractéristiques suivantes :

Difficultés

A première vue, on pourrait croire que toute la difficulté réside dans le système logiciel qui assure la fiabilité. Ce système qui doit pouvoir répondre dans des délais fixés et qui doit faire cela de manière efficace sans gaspiller les ressources si précieuses dans le contexte de ces machines. Mais en fait la complexité réside surtout dans l'intégration entre la couche logiciel et la machine. Une machine telle que le Palm m500 possède un nombre incroyable de fonctionnalités, de mécanismes de communication comme la dizaine de contrôleurs inclus dans le processeur, les fonctions USB, infra rouge, le LCD, l'écran tactile, etc. Pour bien maîtriser ces machines, il faut avoir une connaissance très appronfondie de toutes ces possibilités.

L'autre défi est d'arriver à prendre le contrôle total de la machine et forcer l'exécution de notre code sans pour cela effacer toute la ROM vu les risques que cette opération comporte. L'intégration du système d'exploitation sur la machine est une étape très spécifique qui charge le code de l'OS en RAM et modifie la valeur courante du compteur de programme pour effectuer notre code.

Apports

Le système d'exploitation temps-réel Expresso associé à un PDA permet d'imaginer une multitude d'applications qui pourraient utiliser cet environnement. Nous pourrions imaginer un robot entièrement piloté par cette machine, il suffirait en effet d'ajouter quelques roues et une caméra pour qu'elle se transforme en robot. On pourrait aussi imaginer des expériences de physique ou de chimie entièrement pilotées par ce système qui recevrait les informations des capteurs, effectuerait les calculs nécessaires et enverrait les réponses dans les délais définis.

L'avantage de cette plateforme est la facilité de programmation qu'elle fournit. Dans le domaine de la recherche, si on veut faire une expérience et que l'on a besoin d'un programme qui traite des données et calcule un résultat. Il est très facile de le faire sur un PC courant et d'installer sur le PDA ensuite. Ce système offre donc une flexibilité incomparable.

Organisation du document

Une page web a été créée pour rassembler toutes les informations relatives à ce travail. Le code source d'Expresso est disponible, le rapport et des exemples d'applications compilés. L'adresse de cette page est : www.montefiore.ulg.ac.be/skivee

Chapitre 2 Choix de la plateforme Ce chapitre présente un aperçu du marché des ordinateurs de poche de type Palm Pilot. Nous analyserons les avantages et inconvénients de chacun et le choix que nous avons fait concernant le PDA.

Chapitre 3 Architecture du Palm Ce chapitre décrit la structure matérielle du Palm, principalement le processeur. Les modules les plus importants du processeur comme le contrôleur d'interruption, le timer et le contrôleur UART seront analysés en détails.

Chapitre 4 Concepts des systèmes d'exploitation temps-réel Ce chapitre présente les principaux concepts des systèmes d'exploitation temps-réel comme les sections critiques, le multitâche, le changement de contexte, l'ordonnancement, ..

Chapitre 5 Couche indépendante du hardware Ce chapitre décrit la couche portable d'Expresso, la gestion des tâches, l'ordonnanceur, la gestion du temps et les mécanismes de communication entre tâches que sont les sémaphores et les files de messages

Chapitre 6 Couche dépendante du hardware Ce chapitre présente les particularités du hardware de la machine choisie et décrit l'organisation d'Expresso pour faciliter le portage sous une autre architecture. Cette couche gère les exceptions, l'UART, le LCD, l'écran tactile 1.2, etc.

Chapitre 7 Intégration et utilisation sur le Palm Ce chapitre décrit le procédé pour installer Expresso sur le Palm. Expresso peut être installé en RAM ou ROM. Ensuite, nous verrons les paramètres de configuration possible et comment développer une application pour Expresso.

Chapitre 8 Exemples d'applications Ce chapitre contient quelques applications réalisées avec Expresso. Ces applications fournissent des exemples d'utilisation.

Annexe A Description des outils Tout le développement a été réalisé sous Linux, des outils spécifiques à cet environnement sont nécessaires. Ce chapitre présente brièvement ces outils. Le simulateur sera vu un peu plus en détail ainsi que les améliorations apportées pour faciliter le debbuging.

Annexe B Configuration des ports du Palm m500 Cette annexe donne l'affectation des ports d'entrées/sorties du Palm m500.


next up previous contents
suivant: Choix de la plateforme monter: Table des matières précédent: Table des matières   Table des matières
Fabian Skivee 2002-06-04