GPIODA


Generic Purpose Input Output Digital & Analogic.  Ce service a pour but de fixer des valeurs binaires ou numériques sur des sorties ou de récupérer des valeurs binaires ou numériques sur des entrées électroniques. 

Ce service peut recouvrir plusieurs réalités physiques selon le type de carte périphérique que pilote le microcontrôleur. Donc on peut avoir à faire à plusieurs programmes adaptés mais relativement simples. Ce qui compte c'est qu'un langage commun les fasse fonctionner sans demander à l'utilisateur de les connaître précisément (quoique cela ne fasse jamais de mal). Je n'attends pas de ce service, de grosses performances temps réel.

Les fonctionnalités de cette famille de sous-systèmes sont : 

  1. Le service communique par TCP/IP pour recevoir les ordres de déclenchements et retourner des valeurs.
  2. Plusieurs types d'Entrées / Sorties  sont identifiables : Relais, E/S opto couplées, Entrée de mesure analogique. 

 

Description du langage de communication

 

Exemples de commandes et de cas d'erreurs:

Requete du client Réponse du serveur
SET; CMD KNOWN;NO PARAM;
GET; CMD KNOWN;NO PARAM;
PBA; UNKNOWN COMMAND;
RESET; CMD KNOWN;EXECUTED;
GET;SKILL; CMD KNOWN;NO PARAM;SKILL:OUT=1,8;STATE=0,1;OUT=9,16;STATE=0,4096;IN=0,7;STATE=0,1;OK;
SET;OUT=3;SECU=0;STATE=1; CMD KNOWN;
GET;IN=7; CMD KNOWN;STATE=1;
SECU; CMD KNOWN;EXECUTED;
SET;OUT=4;SECU=0;STATE=415; CMD KNOWN;
SET;TRACE=1; CMD KNOWN;
GET;VER; CMD KNOWN;NO PARAM;Service:gpioda-V1.00-gerald.mauboussin@gmail.com;

A propos de l'usage des majuscules... Deux Ecoles : 

  • Ceux qui disent que les lettres sont plus grosses, donc on les voit mieux, 
  • et ceux qui disent qu'avec les minuscules, il y a plus d'espace entre les lignes. Donc on voit mieux les lettres. 

( Je ne suis ni pour, ni contre !  Bien au contraire !  ... c'est politique ! rien de logique, c'est juste une question de sensibilité :-)

Performances

Le serveur TCP accepte au maximum 100 connexions par secondes.

 

Solution technique

La définition du langage de commande de ce service n'implique pas qu'il n'y ait qu'une seule solution pour réaliser ce service, compte tenu du nombre et de la variété des cartes d'Entrées / sorties. Le role de la commande GET;SKILL; est justement de retourner les capacités du sous-système pour en connaitre les limites. 

La première solution mise en oeuvre intègre :

  • Une carte Raspberry PI B+ et son alimentation 5V 2A.
  • Une carte d'interface MG20160502 (la MG20160504 est aussi possible)
  • Une carte à relais sur bus I2C  MG200502
  • Une alimentation 12V 3A

La carte relais I2C mérite une petite description:

  • Elle prends 2 adresses sur bus I2C, parcequ'il y a 2 microcontroleurs => 2 groupes d'E/S.
  • Ces adresses sont définissables par programmation des PIC16F876 en assembleur (en "dur" mais gràce à cela, on dispose de toute la plage d'adresses). 
  • Elle ne dispose pas de sortie analogique.
  • 2x7 relais 10A 250Vac.
  • 2x4 entrées t.o.r optoisolées.
  • 2x4 entrées analogiques dont la plage de tension d'entrée peut être ajustée par pont diviseur.
  • Les messages en écriture contiennent 2 octets : 1er octet état de chaque relais sur les 7 bits LSB, 2ieme octet inverse du 1er octet.
  • Les messages en lecture comprennent 16 octets : 1er octet est la valeur des 4 entrées t.o.r; les octets 2 à 8 sont des octets reçu sur la liaison IR (mais ce n'est plus utile de nos jours, avec les tablettes) les 8 derniers octets sont les valeurs analogiques sur 12bits.

 

Dans les grandes lignes, la mise en oeuvre de l'I2C sur Rasbian passe par ces étapes:

  • Autoriser l'usage du port I2C.
  • Charger les utilitaires de tests.
  • Programmation en langage C. 

 

Interface utilisateur

Du fait que les messages de commandes passent sur protocole TCP, beaucoup de possibilités s'ouvrent : 

  • TerraTerm, 
  • Logiciel spécifique sur PC
  • Tablettes tactiles sous Android ou sous Windows 8. 

Et puisque ces IHM sont communes à tous les services du télescope, cela fera l'objet d'une page à part.

 

 

 

Contactez moi pour vos remarques ou les erreurs qui se seraient glissées dans cette page.

mailto:gerald.mauboussin@gmail.com

 

Retour au SOMMAIRE


Copyright 2015- 2016. Cet article ne peut être reproduit totalement ou partiellement sans le consentement de son auteur.

Page crée le 24.01.2016 - - - - -Dernière mise à jour 07.07.2016