Suite a la comparaison des analyseurs logiques realise le mois dernier et disponibles ici :
http://djynet.net/?p=547
J’ai décidé de présenter plus précisément le Scanalogic-2 que je me suis offert pour noël. Pour ce test j’ai choisit d’analyser les échanges entre un Arduino Leonardo et un récepteur TCM310 EnOcean.
EnOcean est un groupement industriel qui développe des capteurs fonctionnant sans fils et sans batterie (le capteur utilise l’énergie de son environnement).
Je vous conseil de visiter le site web officiel :
ICI
Pour ce test j’ai également acheter un interrupteur compatible EnOcean : le VITA 1001 de VITEC
L’interrupteur est un peu plus “dure” a enfoncer qu’un interrupteur standard car la force de notre appuie va également créer l’énergie nécessaire au circuit embarque qui enverra un signal radio au récepteur TCM310. Le TCM310 enverra ensuite un signal a l’Arduino que nous voulons analyser dans cet article.
Voila le montage complet :
Les branchements entre l’analyseur logique et le système sont :
- Masse – Masse
- Ch3 (rouge) – Arduino Rx – TCM310 Tx
- Ch1 (vert) – Arduino Tx – TCM310 Rx
L’installation de l’analyseur logique est extrêmement simple sous Windows et ne nécessite aucun drivers. Une fois lance il est assez simple d’utilisation puisqu’il suffit de choisir la fréquence échantillonnage et le critère de start (front descendant par exemple). Voila le résultat lors d’un appuie sur l’interrupteur :
On constate donc une communication du module 310 vers l’Arduino lors de l’appuie sur l’interrupteur. Il existe une fonction assez pratique dans le logiciel scanlogic pour afficher les valeur hexa de chaque bytes échangés (visible sur la photo ci dessus). Dans notre exemple la communication commence par 0x55.
Pour mieux comprendre la trame il suffit de jeter un œil a la documentation du protocole EnOcean disponible sur internet et ci dessous :
EnOceanSerialProtocol3
On trouvera notamment le format standard d’une trame copier ci-dessous :
“As soon as a Sync.-Byte (value 0x55) is identified….” confirme également que nous analysons la bonne trame.
Voila la trame complète récupérée et sa signification obtenue grâce a la documentation :
Value (Hexa) | Note | ||
Sync Byte | 0x55 | ||
Header | Data Length 1 | 0x00 | |
Data Length 2 | 0x07 | Data payload is 7 Bytes | |
Optional Length | 0x07 | Opt Data Payload is 7 Bytes | |
Packet Type | 0x01 | Type : Radio | |
CRC8 Header | 0x7A | OK | |
Data | ORG | F6 | |
70 | |||
Sender ID 1 | 0 | Module ID : 008BA977 | |
Sender ID 2 | 8B | ||
Sender ID 3 | A9 | ||
Sender ID 4 | 77 | ||
Status | 30 | ||
Optional Data | Number of sub telegram | 1 | 1 sub telegram |
Destination (4 bytes) | FF | Broadcast message | |
FF | |||
FF | |||
FF | |||
dBm | 2D | 45 for best RSSI | |
Security level | 0 | No encryption | |
CRC8 Data | 3F | OK |
l’étape suivante est la création d’une libraire Arduino pour décoder la trame et interagir avec le TCM310…… dans un autre post !