Master SIAME | Université Toulouse 3

Internet of things and System on Chip

Master SIAME | Université Toulouse 3

Internet of things and System on Chip

User Tools


Projet SEPP

L’objectif de ce projet est de concevoir un pilote de périphérique permettant de dialoguer avec la plateforme MOD-IO depuis un module Olinuxino. Le dialogue devra être codé dans le driver, et ne devra pas utiliser le driver I2C fourni dans le noyau.

L'architecture matérielle retenue

Les cartes Olinuxino (https://www.olimex.com/Products/OLinuXino/) que nous avons retenues sont équipées d’un processeur Sunxi Allwinner A13 ou A20 (http://linux-sunxi.org/A13). Nous souhaitons connecter un module MOD-IO (https://www.olimex.com/Products/Modules/IO/MOD-IO/open-source-hardware) et dialoguer avec lui par le biais d'un pilote de périphérique spécifique.

Mise en oeuvre

Le travail se découpe en plusieurs phases, à mener dans l’ordre. Vous travaillerez par binômes ; les binômes devront être constitué au plus tard le 19 décembre. A l’issue du projet, chaque groupe devra remettre un dossier complet décrivant les différentes phases réalisées et détaillant la conception le cas échéant.

Préparation de l’environnement de travail

La première phase consiste à créer une chaine de cross-compilation complète pour processeur ARM. On utilisera la dernière version de gcc (4.9.2) et des outils requis. La liste exhaustive des composants et bibliothèques utilisés et la procédure mise en œuvre pour la création de la chaine de cross-compilation devront être détaillées. C’est ce compilateur qui sera utilisé par la suite, tant pour la compilation du noyau et de Uboot que pour la compilation des différentes version du driver. On téléchargera ensuite la dernière version du noyau avec support des architectures Sunxi (http://linux-sunxi.org/Linux_Kernel) et on le compilera. On fera de même avec Uboot. La procédure utilisée devra être détaillée, et deux répertoires fournis :

  • un premier contenant uImage, sunxi-spl.bin et u-boot.bin
  • un deuxième contenant les modules noyaux

Compte tenu des limites liées à l’espace de stockage dans les répertoires utilisateurs, on pourra créer un répertoire dans /media/storage pour procéder au téléchargement, à l’extraction et à la compilation des sources.

Première version du driver : gestion des entrées / sorties

Dans cette première version, on implémentera le dialogue avec la carte pour positionner les relais (4 devices REL0 à REL3, un écriture de 0 ouvre le relai, une écriture de 1 ferme le relai, une lecture donne l'état), lire les entrées optocouplées (4 devices OPT0 à OPT3) et lire les entrées analogiques (4 devices ANL0 à ANL3).

Deuxième version du driver : modification de l'adresse

On modifiera le code précédant pour permettre la prise en charge d'adresses différentes. Un paramètre donné au chargement du module indiquera l'adresse à utiliser. Si aucun module ne répond à cette adresse, une commande de changement d'adresse sera envoyée à l'adresse par défaut (0x58) pour la modifier en la nouvelle adresse.