3 research outputs found

    Définition et implémentation d'un modèle causal d'exécution temps-réel distribuée

    No full text
    Co-encadrement de la thèse : Bruno SteuxThis work is part of the AROS project. Its goal is to define a fast prototyping tool for dynamic and distributed real-time applications, mostly for automotive industry and robotic. Two distinct methods are normally used to develop distributed real-time applications. The first one -the time triggered approach- is based on worst execution time analysis, whereby time sharing for the various tasks of an application is statically defined. This approach offers considerable safety but the time analysis is sometimes difficult to process. The second one -the priority scheduling approach- is based on ascribing a priority level to each task, which will then allow the system to define an execution order, based on the events is has received. This second approach is more flexible and easier to implement but is less safe and cannot ensure that the application behaves predictably. The structure of the AROS applications being dynamic, the time-triggered approach is irrelevant as it requires a static analysis that cannot be conducted. The priority scheduling approach is also irrelevant because of the non predictable behaviour. We propose an approach based on causal events scheduling inspired by distributed event simulators scheduling techniques. While comparatively easy to use for application designers, this new approach produces applications with a perfectly predictable behaviour. Two main obstacles must be overcome: the real time synchronisation of the execution engine and compliance with real-time constraints.Ces travaux s'inscrivent dans le cadre du projet AROS (Automotive Robust Operating Services). Il a pour objectif de proposer un outil de prototypage rapide d'applications dynamiques distribuées temps-réel, principalement dans le domaine de l'automobile et de la robotique. Les applications distribuées temps-réel sont traditionnellement développées selon deux approches. La première, l'ordonnancement temporel, est basée sur l'analyse du pire temps d'exécution (worst execution time). Un partage du temps entre les différentes tâches de l'application est établi de façon statique. Cette technique offre une grande sureté de fonctionnement au prix d'une analyse temporelle parfois difficile à mener. La seconde, l'ordonnancement par priorité, est basée sur l'attribution à chaque tâche d'un niveau de priorité qui permet d'établir l'ordre d'exécution en fonction des évènements reçus par le système. Cette seconde technique, plus souple à mettre en œuvre, offre moins de garanties et conduit à un comportement non déterministe de l'application. La structure des applications AROS étant dynamique, l'approche temporelle est exclue car elle demande une analyse statique qu'il est impossible de produire. L'approche basée sur les priorités d'exécution est également exclue à cause de son non déterminisme comportemental. Nous proposons une approche basée sur un ordonnancement évènementiel causal inspirée des techniques d'ordonnancement des simulateurs évènementiels distribués. Tout en étant relativement simple à utiliser pour le concepteur d'application, cette technique produit des applications dont le comportement est parfaitement déterministe. Deux principales difficultés sont à surmonter : la synchronisation en temps-réel du moteur d'exécution et le respect des contraintes temps-réel

    Conception d'un générateur d'intergiciels temps réel embarqués dans l'automobile.

    Get PDF
    Les applications temps réel sont des applications dont la correction ne dépend pas seulement du résultat produit, mais aussi de la date à laquelle il est produit. Par exemple, dans le domaine de l'automobile, lors d'un freinage, la force à appliquer sur les freins est évaluée par une application (ABS : AntiBlockier System, système évitant de bloquer les roues au freinage, permettant ainsi de conserver la direction du véhicule). Il existe donc des contraintes de délai de réaction entre la demande de l'utilisateur et la consigne appliquée sur les freins. Dans ce domaine, des applications de plus en plus complexes sont aujourd'hui développées. Elles sont souvent distribuées sur plusieurs calculateurs, parfois hétérogènes, et doivent coopérer avec d'autres applications, elles aussi distribuées. Afin de maîtriser cette complexité, on développe classiquement une couche logicielle appelée intergiciel (middleware). Cette couche a pour but de masquer l'hétérogénéité des supports d'exécution et la distribution des applications. Elle propose aux applications un ensemble de services standards pour communiquer et interagir avec le système d'exploitation, tout en garantissant une qualité de service temporelle. Notre objectif est de mettre en oeuvre une technique pour la génération d'intergiciels de communication embarqués pour l'automobile. Le cadre d'utilisation de nos travaux est la conception de systèmes embarqués dans les véhicules. Plus précisément, cette approche permet de concevoir un générateur d'un ensemble de tâches implémentant cette couche de communication pour un type d'application donnée. Pour cela, elle prend en compte l'ensemble des événements requis et offerts par l'application tout en assurant la qualité de service requise par cette dernière (propriétés temps réel), et en minimisant la surcharge due à l'exécution de l'intergiciel. Les travaux présentés visent la réalisation d'un générateur d'intergiciels optimisés, et abordent deux aspects : la conception générique des architectures d'implémentation du générateur et de l'intergiciel, et le déploiement de l'intergiciel généré sur une plateforme temps réel. Constituant un framework technique, l'architecture d'implémentation est optimisée dans le sens où l'intergiciel est adapté à l'environnement d'exécution (le système d'exploitation OSEK/VDX OS et le réseau CAN), et minimise son utilisation des ressources disponibles. Elle apporte une réponse, d'une part, au niveau de la spécification d'une architecture logicielle (construite à l'aide de design patterns), et, d'autre part, à la manière dont cette architecture est déployée sur une plateforme concrète (sous la forme d'un ensemble de tâches). Quant au déploiement de l'intergiciel, il est réalisé sur une architecture matérielle de microcontrôleurs (PIC)

    Implémentation en VHDL/FPGA d'afficheur vidéo numérique (AVN) pour des applications aérospatiales

    Get PDF
    L'objectif de ce projet est de développer un contrôleur vidéo en langage VHDL afin de remplacer la composante spécialisée présentement utilisée chez CMC Électronique. Une recherche approfondie des tendances et de ce qui se fait actuellement dans le domaine des contrôleurs vidéo est effectuée afin de définir les spécifications du système. Les techniques d'entreposage et d'affichage des images sont expliquées afin de mener ce projet à terme. Le nouveau contrôleur est développé sur une plateforme électronique possédant un FPGA, un port VGA et de la mémoire pour emmagasiner les données. Il est programmable et prend peu d'espace dans un FPGA, ce qui lui permet de s'insérer dans n'importe quelle nouvelle technologie de masse à faible coût. Il s'adapte rapidement à toutes les résolutions d'affichage puisqu'il est modulaire et configurable. À court terme, ce projet permettra un contrôle amélioré des spécifications et des normes de qualité liées aux contraintes de l'avionique
    corecore