ATTENTION : stage pourvu

Année 2016 - Stage 1 : Mise en œuvre d'un système de synchronisation de temps sur plateforme IoT distribuée large échelle

Mots-Clés

  • Informatique embarquée
  • ARM Cortex-M3
  • C, concurrence
  • Internet des Objets
  • Plateforme expérimentale de recherche

Niveau Requis

BAC +4/+5

Maîtres de stage

Frédéric Saint-Marcel, Gaëtan Harter

Description du stage

Durée

2-3 mois

Contexte

Inria http://www.inria.fr est un institut de recherche en informatique et mathématiques. Dans le cadre de l'Equipex FIT, Inria construit la plateforme IoT-LAB http://www.iotlab.info/ de réseau de capteurs pour la recherche dans le domaine de l'internet des objets. C'est une plateforme internationale de premier ordre comportant 2700 nœuds radio répartie sur six sites en France. Les nœud-capteurs proposent différentes architectures (ARM Cortex-M3 STM32 et Cortex-A8) et une communication radio basé sur du 802.15.4 (2.4 GHz). Ils sont programmables et contrôlables à distance afin que des chercheurs puissent concevoir, développer, déployer, tester et évaluer les protocoles réseau et systèmes d'exploitation embarqués pour le futur internet des objets. Dans ce cadre nous souhaitons fournir des outils précis de monitoring et de deboggage à grand échelle utilisables sur des centaines de capteurs en parallèle.

Objectifs du projet/stage

Le monitoring s'appuie sur une infrastructure matérielle composée d'un nœud de contrôle qui est capable en temps réel de suivre la consommation électrique et le trafic radio du nœud expérimental. Nous souhaitons ameliorer les fonctionnalités du nœud de contrôle avec une gestion de la datation des mesures plus precises. Dans ce cadre le stagiaire devra mettre en place un système de synchronisation temporelle pour chaque nœuds de contrôle. Pour cela il étendra une base de code existante en C - FreeRTOS (Système d'exploitation temps réel embarqué) exécutée sur le nœud de contrôle ARM Cortex-M3. Il devra aussi s'interfacer avec le middleware (langage C - Python) de pilotage d'expérimentation, qui permet de contrôler par un lien série le nœud de contrôle, faire remonter les mesures et les sauvegarder vers un serveur central. Cette synchronisation temporelle de chaque nœud pourra utiliser par exemple un serveur NTP et/ou le signal Pulse Per Second (PPS) d'un GPS déjà en place dans la plateforme.

Ce travail s'effectuera au sein du service d'ingénieurie d'Inria, en collaboration directe avec les développeurs actuels de ces infrastructures qui encadreront ce stage.

Compétences

  • Langages de programmation : C nécessaire, Bash/Python
  • Environnement de développement: Linux, SSH, Git
  • Connaissances en informatique embarqué (programmation concurrente, asynchrone, interruptions, entrées sorties bas niveau, cross compilation)
  • Langue : anglais technique opérationnel
  • Esprit d'initiative, ténacité, rigueur et méthodologie sont nécessaires.

Informations utiles

Possibilité d'embauche à l'issue du stage.