IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Développement d'un protocole applicatif


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Par défaut Développement d'un protocole applicatif
    Bonjour,

    Je travaille sur un projet où une carte arduino appelée Master dialogue avec d'autres cartes arduino appelées Slave et ceci à l'aide d'un module RFM et je réfléchis au protocole applicatif que je vais créer. La librairie du module RFM autorise d'envoyer des paquets de 66 octets maximum. Or les données que vont échanger les arduino auront une taille plus importante, comme par exemple un tableau de 96 octects.
    Je compte donc envoyer ces données sur plusieurs paquets.

    Et je me demande quel est le meilleur mécanisme à mettre en place pour que la carte arduino qui réceptionne plusieurs paquets puisse remettre dans l'ordre le message afin de le traiter par la suite.
    Je pensais préfixer chaque paquet par le modèle suivant <id carte arduino><id request><flag indiquant si ce paquet est le dernier de la request><indice indiquant l'ordre des paquets de la request><data>

    Y a-t-il une solution plus optimisée pour de l'embarqué ?

  2. #2
    Membre chevronné
    Avatar de deletme
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 257
    Par défaut
    Bonjour,

    Si je comprends bien, tu serais en liaison point à point ?
    Y a-t-il une raison pour laquelle les paquets arriveraient dans le désordre ?
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    - Martin Golding
    Traduction obligatoire : "Toujours écrire du code en gardant en tête que le mec qui en assurera la maintenance est un psychopathe violent qui connait votre adresse"

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Par défaut
    Non, ce n'est pas du point à point car la carte appelé Master receptionne les messages de toutes les autres cartes dans sa portée.
    A priori, il n'y a pas de raison que cela arrive dans le désordre.

    Mais en réfléchissant, je me dis que je devrais plutot utiliser une autre technonologie comme par exemple une liaison wifi. ça me prendra moins la tete !

  4. #4
    Membre chevronné
    Avatar de deletme
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 257
    Par défaut
    Ok, mais les esclaves répondent seulement sur interrogation du Master ?

    Tu peux en effet "taguer" tes trames comme tu le proposes.
    Et attention au WiFin tu sembles être dans un environnement embarqué
    Y a-t-il une solution plus optimisée pour de l'embarqué ?
    donc potentiellement tu ne disposes pas d'énergie à volonté !

    Les modules radio sont très bien pour faire ce que tu veux. (attention tout de même à la portée). Il est possible que ton module ne puisse pas envoyé plus de 66 octets par trame, mais peut être qu'il est en mesure de buffériser tes données > 66 octets et de gérer l'envoi des trames par lui même.
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    - Martin Golding
    Traduction obligatoire : "Toujours écrire du code en gardant en tête que le mec qui en assurera la maintenance est un psychopathe violent qui connait votre adresse"

  5. #5
    Membre chevronné
    Avatar de deletme
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 257
    Par défaut
    J'ai travaillé sur un module radio qui semble avoir les mêmes fonctionnalités que celui dont tu parles (RFM).

    Pour réussir à envoyer des données > 66 octets, il te faut utiliser les pointeurs de FIFO avec le mécanisme suivant :

    Tu définis un taux de remplissage de ta pile qui lorsqu'il est atteint déclenche une interruption vers ton µC. Tu remplis ta pile avec ta première trame <= 66 octets. Tu passes en mode TX pour démarrer l'envoi de ta trame. Le pointeur de pile va donc parcourir la pile jusqu'à atteindre le pointeur "fifo remplie" ce qui va te générer une interruption comme expliqué juste avant. A ce moment là, tu peux remplir à nouveau ta trame avec les octets restants et tu déplaces ton pointeur de pile au début de la pile. En répétant ces opérations, tu peux envoyer une trame > 66 otctes sans réémettre systématique entête + CS à chaque fois. C'est ce qui peut être appelé la fonctionnalité "paquet infini".

    J'espère avoir été clair sinon je peux trouver un schéma décrivant le principe de façon plus explicite.

    Cdlt, dM
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    - Martin Golding
    Traduction obligatoire : "Toujours écrire du code en gardant en tête que le mec qui en assurera la maintenance est un psychopathe violent qui connait votre adresse"

  6. #6
    Membre habitué
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Par défaut
    Mes cartes seront alimentées par le secteur. Il n'y aura donc pas de problème de consomation avec le wifi. J'ai acheté le module wifi esp8266 qui coute moins de 10 €, histoire de voir comment ça fonctionne et voir quelle serait la meilleur solution.

    Les modules RFM69 ont une porté de l'ordre de 200 m avec une bonne pénétration des obstacles.

    Merci pour ta solution avec la file FIFO. Je comprend le principe mais je vais devoir me documenter un peu plus sur ce module sans fil et notamment comment le master va gérer dans le cas où deux slaves sont en mode "Paquet Infini".

Discussions similaires

  1. [Toutes versions] Cahier des charges Software - Développement applicatif
    Par Beginer dans le forum Modélisation
    Réponses: 18
    Dernier message: 19/01/2010, 17h55
  2. [Protocol applicatif] Besoin de quelques infos
    Par richard_sraing dans le forum Développement
    Réponses: 1
    Dernier message: 21/09/2008, 00h05
  3. Comment bien développer un protocole applicatif ?
    Par tofke dans le forum Développement
    Réponses: 2
    Dernier message: 19/09/2007, 08h58
  4. [protocole]développer un protocole
    Par patdez dans le forum Réseau
    Réponses: 8
    Dernier message: 17/03/2006, 18h41
  5. développement d'un protocole de communication
    Par olymat dans le forum Développement
    Réponses: 5
    Dernier message: 09/09/2005, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo