Discussions sur la v0.2 (Réflexions sur le protocole radio)

Tout ce qui est en rapport avec le développement du protocole radio
Zescientist
Messages : 360
Inscription : 23 Juillet 2013, 16:38
Localisation : Arques

Discussions sur la v0.2 (Réflexions sur le protocole radio)

Messagepar Zescientist » 23 Juillet 2013, 19:03

Points retenus:
- bit de parité
- trame variable

Points reportés :
v0.3 : ACK
v0.4 : Temps hauts et bas des bits



Message original :
Allez, je commence avec les propositions d'évolutions du protocole radio!

Pour commencer, sans vraiment complexifier le code :
- Autoriser une taille de la trame variable (pour permettre l'envoi de plus d'informations car sur un atmega on peut envisager de poser pas mal de sondes et d'actionneurs)
- De facto, ajouter des bits pour l'information de taille de la trame
- Transmettre (au moins) un bit de parité pour déterminer si la trame est erronée ou non
- Avoir un ACK dans les bits de type de données

Pour la suite :
- Passer sur un système de type CRC pour permettre une éventuelle correction des erreurs

Et le top du top :
- Intégrer un système pour passer en mode mesh (maillage)

Un mode Mesh sera difficile à gérer car l'on risque de surcharger le réseau. Pour commencer, un système d'écoute avant dialogue pourrait être intégrer (je parle si personne ne parle).


Ce sont mes suggestions, les avis sont les bienvenues.
Yaug, pourrais-tu de ton côté nous annoncer ce que vous aviez prévu de votre côté en évolution?

PS : je ne sais pas si je réponds au bon endroit ou si j'aurais du créer un nouveau sujet
El'Radioman

Avatar de l’utilisateur
thiklop
Messages : 303
Inscription : 22 Juillet 2013, 13:20
Contact :

Re: Réflexions sur le protocole radio

Messagepar thiklop » 24 Juillet 2013, 09:12

Est-ce que le mode Mesh ou le mode d'écoute ne risque pas de poser de problème par rapport aux deux types de nœuds envisagés ?
Le wiki avec tous les bons tutos : http://wiki.ydle.fr/doku.php?id=accueil

Avatar de l’utilisateur
Yaug
Administrateur
Messages : 1466
Inscription : 19 Juillet 2013, 17:09
Localisation : Moselle
Contact :

Re: Discussions sur la v0.2 (Réflexions sur le protocole rad

Messagepar Yaug » 24 Juillet 2013, 09:45

Bonjour,

J'ai vu ton message hier soir, et du coup, j'ai un peu réfléchi à comment structurer les évolutions futures.
J'ai tout clarifié (ou essayé de clarifier) dans ce sujet

Ton post va donc nous servir à préparer la version 0.2, afin d'améliorer le protocole radio.

Je vais essayer de répondre à tes questions.

Pour le moment on va partir sur une taille fixe de la trame.
Une fois qu'on arrive à cela (v0.1), alors on pourra envisager de rendre la trame plus flexible, mais j'avoue que mes faibles connaissances radio ne m'aide pas à comprendre comment rendre cela fiable. Peut être peux tu nous en dire plus ?

Pour la taille des informations, j'ai ciblé pour le moment de pouvoir envoyer des informations allant de 0 à 9999
ce qui permet avec le bit de signe d'aller de -99.99°C à +99,99°C, ou de relever une humidité jusqu'à 100% par exemple.
C'est la raison pour laquelle j'étais parti sur ces 14 bits de données.

Il sera sans doute nécessaire d'élargir cela ensuite, mais pour le moment, je ne vois pas quelle donnée peut nécessiter une grosse quantités d'infos à envoyer.

Pour les 2 points suivants, je vais avoir besoin de tes lumières.
Pour le bit de parité, il s'agit d'une sécurité c'est ça ?
et l'ACK, kezako ? :)
Bref, je suis tout ouïe !

Pour le maillage, on y avait pensé avec Idleman, mais comme quelques chose de vachement loin.
Concernant Idleman justement, il n'est quasi pas dispo.
Du coup, il regarde de loin, je lui soumet mes questions quand je ne suis pas sur de moi.. mais au final, il est en mode ghost actuellement.

Merci à toi pour tes questions, ça m'a permis de structurer la manière d'avancer, et du coup j'ai transformé ton poste en sujet dans lequel on listera les points à ajouter / modifier pour la v0.2.

Zescientist
Messages : 360
Inscription : 23 Juillet 2013, 16:38
Localisation : Arques

Re: Discussions sur la v0.2 (Réflexions sur le protocole rad

Messagepar Zescientist » 24 Juillet 2013, 14:32

Alors je vais essayer d'expliquer rapidement les quelques points qui te posent problème.

1- trame de taille variable :
intérêt : augmenter la quantité d'informations fournies par une node, voir lui passer plusieurs paramètres et ainsi permettre de cumuler ses fonctions par exemple, une sonde et un relais ou 2 sondes et donc en réduire le coût.
moyen : encoder dans la trame sur un nombre de bits (à définir) la taille de la trame, de façon à ce que la node sache combien de bits elle doit attendre avant de traiter l'information.

Concernant ce point, un autre intérêt serait de pouvoir uniformiser les informations, ainsi on ne transmettrait plus par exemple pour une température "-05" (bit de signe et data) mais uniquement de la data abstraite "temp:-05".
Comme vous vous en doutez, au delà de tout uniformiser, on augmenterait par contre le nombre de bits transmis.

2 - le bit de parité :
intérêt : définir rapidement si une trame est corrompue
moyen : avant de transmettre, la node "calcule" la somme des bits, si le nombre est pair, le bit de parité transmis est 0 si impair, 1. Problème, cela ne permet de détecter que s'il y a 1 seul bit corrompu, mais ça permet déjà d'éviter des trames inutiles.

3 - la trame ACK :
kézako : c'est une trame envoyée par le récepteur pour dire "oui j'ai bien reçue le bon message" ou "le message est corrompue renvoie le moi".
intérêt : éviter d'envoyer 5 fois la même trame et saturer le réseau en espérant que l'autre l'ait reçue.
moyen : juste avoir un nombre de bits(à définir) dans l'en-tête de la trame qui indique le type de trame. Les nodes réagissent en conséquence.


Voili voilou pour les informations explications, si tu veux plus de détail, hésite pas, j'essaierai de te répondre.
Dernière édition par Zescientist le 24 Juillet 2013, 16:04, édité 1 fois.
El'Radioman

Avatar de l’utilisateur
Yaug
Administrateur
Messages : 1466
Inscription : 19 Juillet 2013, 17:09
Localisation : Moselle
Contact :

Re: Discussions sur la v0.2 (Réflexions sur le protocole rad

Messagepar Yaug » 24 Juillet 2013, 15:14

Merci pour ces retours !
C'est super intéressant et effectivement, ils devront sans doute être pris en compte pour le futur.
On pourrait prévoir de déployer une amélioration par version non ?

Yargol
Messages : 162
Inscription : 23 Juillet 2013, 10:28

Re: Discussions sur la v0.2 (Réflexions sur le protocole rad

Messagepar Yargol » 24 Juillet 2013, 15:17

Attention quand même a ne pas avoir des trames trop grandes au risque de tout perturber.

Par contre +10000 pour l'ACK. C'est vraiment le truc qui manque la plupart du temps en 433Mhz. Bien sur , pas la peine de faire de l'ACK sur toutes les trames. A mon avis seulle les trame de commande doivent attendre un ACK.
Ydle, c'est le projet domotique low cost, qui doit plaire à votre femme @Yaug

Zescientist
Messages : 360
Inscription : 23 Juillet 2013, 16:38
Localisation : Arques

Re: Discussions sur la v0.2 (Réflexions sur le protocole rad

Messagepar Zescientist » 24 Juillet 2013, 16:16

Il faudrait vérifier, mais sur eBay, il était donner un débit de 4KB/S. En fonction de l'erreur majuscule/minuscule (pour b bits ou B bytes), on pourrait tourner soit à 250octets (ensemble de 8bits) ou 2000octets par secondes, ce qui laisse d'énormes possibilités comparé aux 4octets des trames actuelles.
Après je suis d'accord sur le fait de ne pas faire des trames trop longues, mais l'utilisation d'un ACK, bit de parité voir CRC pourrait déjà suffisamment optimiser la transmission pour pouvoir se permettre d'agrandir les trames.
El'Radioman

Avatar de l’utilisateur
Yaug
Administrateur
Messages : 1466
Inscription : 19 Juillet 2013, 17:09
Localisation : Moselle
Contact :

Re: Discussions sur la v0.2 (Réflexions sur le protocole rad

Messagepar Yaug » 25 Juillet 2013, 09:23

On pourrait partir sur les évolutions suivantes non ?
v0.2 : bit de parité
v0.3 : ACK
v0.4 : trame variable

Qu'en penses tu ?

Zescientist
Messages : 360
Inscription : 23 Juillet 2013, 16:38
Localisation : Arques

Re: Discussions sur la v0.2 (Réflexions sur le protocole rad

Messagepar Zescientist » 25 Juillet 2013, 09:50

Le bit de parité et la trame variable sont des évolutions assez simples qui pourraient être intégrer dans une unique nouvelle version V0.2 je pense (tu parlais de 6 à 7 points dans le sujet sur le développement général des nouvelles versions). Et l'intégration des trames ACK et autres trames qui en découlent dans une V0.3.

Considère tu actuellement la V0.1 terminée (code de Idleman) ou encore à développer/optimiser?

Personnellement je pense qu'il y a d'abord un travail de recherches et d'optimisations à réaliser pour partir sur de bonnes bases et avant de se lancer dans l'amélioration du protcole :
- optimisation de l'antenne (1/4 d'onde mono/multibrin, section...)
- réglage du débit binaire d'émission pour éventuellement réduire le nombre d'erreurs d'émission
- déterminer les conséquences de la qualité d'alimentation
- ...

Ce ne sont que 3 idées lancées à la va-vite mais on doit pouvoir en trouver d'autres!
J'ai commencé à écrire sur papier une sorte de protocole de test hier soir. J'essayerais de l'appliquer à chaque test à l'avenir.

Dernier point, je ne sais pas si quelqu'un a tester la librairie arduino VirtualWire, mais elle semble compatible avec nos modules RF. Je voudrais savoir si elle peut faire mieux que notre protocole radio actuel, sachant qu'on peut lui placer un type de modulation et un bitrate en paramètre pour faire varier la portée d'émission. Auquel cas, on pourra peut-etre s'en inspirer...
El'Radioman

Avatar de l’utilisateur
Yaug
Administrateur
Messages : 1466
Inscription : 19 Juillet 2013, 17:09
Localisation : Moselle
Contact :

Re: Discussions sur la v0.2 (Réflexions sur le protocole rad

Messagepar Yaug » 25 Juillet 2013, 10:02

yop.

Pour la V0.1, c'est une amélioration du code d'Idleman (lui même repompé ailleurs je crois).
Il est quasi terminé oui et fortement améliorable.

Va pour les améliorations v0.2 et v0.3, je vais les lister en tête de topic.
Quand je parlais de 5/6 améliorations, dans ma tête ça s'appliquait surtout à l'électronique et au code, mais vu que tu es bien callé en radio, ça me va.

Pour le protocole de test, c'est une bonne chose, et je voulais en faire un justement.
Car il va falloir tester le taux de succès pour la réception et l'émission, en prenant en compte le type d'environnement et le nombre de murs à travers.
C'est quelque chose de nécessaire, notamment pour constater si nos évolutions rendent les nodes moins fiable par exemple.

pour VirtualWire, tu as testé ?

Dans tous les cas, il faut que je me dépêche de sortir la v0.1 moi...


Revenir vers « Protocole radio »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron