Protocole ProghardNet.

Les différentes participants du réseau communiquent entre-eux par l'intermédiaire de petits datagrammes qui doivent respecter une structure et un timming précis.

chronocliquez sur l'image pour télecahrger la version PDF

La vitesse de communication sur le réseau ProgHardNet est de 4800 bps, 8 bits de données, pas de parité, 2 bits de stop. Le bit de poids faible (LSB) est envoyé en premier. Le délai maximum entre 2 octets d'un même datagramme est de 5ms maximum. En cas de dépassement le datagramme est considéré comme invalide.

Le protocole gère le partage de l'accès physique au réseau par l'utilisation d'une méthode s'inspirant du protocole CSMA/CD simplifiée.

Chronologie et structure d'un datagramme ProgHardNet.

1. Etat d'attente : C'est l'état de repos du bus en absence de communication. Tous les participants du bus placent les sorties de leur "buffer" de communication à haute impédance (état Z). le potentiel électrique des lignes A et B est fixé par les résitances de tirage mises en place sur le réseau. (voir la page : Installation des modules ProgHardNet sur le BUS domotique). Une attente à l'état de repos entre datagrammes de 10 ms minimum est obligatoire.

2. Préambule : Un participant qui doit émettre écoute d'abord si le bus est au repos depuis un délai supérieur ou égal à 10ms. Si c'est le cas il émet un préambule.C'est un état 0 d'une durée de 10ms minimum.

3. Extension de préambule aléaotoire : Si plusieurs participants tentent d'émettre sur le bus au même instant, cela provoquera des collisions de données. Afin d'éviter les prises de possession du bus par plusieurs participants, la durée du préambule de 10ms est prolongée d'un délai variable aléatoire allant de 0 à 2ms. Le participant qui imposera le préambule le plus long prendra la main sur le bus de communication. L'autre ou les autres cèderont la main.

4. Contrôle de prise de main : A la fin d'un préambule, le participant qui veut communiquer libère le bus pendant 10µs en placant les sorties de son "buffer" de communication à l'état haute impédance. Si aucun autre transmetteur n'est occupé à émettre un préambule de plus longue durée, les résistances de tirage portent le potentiel des lignes de communication à leur état de repos respectif. A cet instant le participant vérifie l'état présent sur le bus. Si l'état est haut (1) le bus est libre et la main est prise. Si par contre le niveau est bas (0) la main est cédée.

5. Stabilisation du bus : Un niveau haut de 600 µs est imposé sur le bus avant de transmettre les données.

6. DataLen : Premier octet du datagramme, il informe sur la longueur du packet. c-à-d le nombre d'octets qui suivent de celui-ci excepté le dernier (checkum)

7. MsgType : Identifiant du type de datagramme. (voir tableau çi-dessous)

8. DATA : Ensemble de données de structure variable propre au type de datagramme. Il est contitué de plusieurs octets.

9. CheckSum : Somme de contrôle modulo 256 en complément à 2 (négatif) de tous les octets précédents du datagramme. y compris l'octet "DataLen".

Tableaux des datagrammes PrgHardNet

Id
Fonction du datagramme
1
Ecriture d'information en mémoire de configuration d'un composant ProgHardNet
2
Demande de lecture d'information contenue en mémoire de configuration d'un composant ProgHardNet
3
Envoi d'information contenue en mémoire de configuration par un composant ProgHardNet
4
Demande d'info sur l'état des sorties des modules relais PH007 et dimmer PH008
5
Envoi d'information d'état des sorties par les modules relais PH007 et dimmer PH008
10
Datagramme d'action envoyé par les modules boutons poussoirs PH006 aux modules relais PH007 et dimmer PH008
11
Datagramme de commande de led témoin pour PH006 venant des PH007 et PH008
20
Commande directe des modules de sortie venant du ProgHardNet Manager vers les module PH007 et PH008
40
Valeur de température mesurée par capteur DS1820 géré par module PH006
41
Contrôle des relais de commande des électrovannes de chauffage (16 bits) (géré par thermostat SNAP)
42
Consigne de température pour une zone (géré par thermostat SNAP)
110
Datagramme généré par le récepteur de télécommande HF (433 Mhz)