Tous les oscillogrammes ont été relevés à partir d'un FLUKE 192B SCOPEMETER (entrées différentielles)
Les oscillogrammes ci-contre sont issus d'une mesure sur le bus continu 29 V (différentes bases de temps), avec une première action sur le poussoir P1 pour l'allumage de la lampe L1, suivie d'une deuxième action pour l'extinction de la lampe.
L'oscillogramme de base de temps 20µs permet de mesurer la durée d'un bit
L'oscillogramme de base de temps 200µs permet d'identifier le premier caractère du télégramme
Le débit théorique du bus EIB/KNX est de 9600 bits/s La durée d'un bit est donc de 1/9600 = 104 µs Cette valeur est confirmée par l'oscillogramme ci-contre
On constate aussi que les excursions de tension relatives au 29V correspondent approximativement aux valeurs théoriques (-5V et +5V)
Identification du premier caractère
Après le bit de START (qui est toujours un 0 logique), les 8 bits (octet) suivants sont 00111101 (poids faible en premier) ce qui donne pour le poids fort en premier (écriture habituelle) : 10111100 qui se décompose en deux quartets 1011 et 1100
En notation hexadécimale 1011 correspond à B (11=8+2+1) et 1100 correspond à C (12=8+4)
Le premier octet est donc BC qui est le caractère de contrôle correspondant à une émission normale avec priorité basse
Le bit de parité (parité paire) est issu du comptage du nombre de bits à 1 dans l'octet (N1), soit N1=5, chiffre impair : le bit de parité (P) est donc mis à 1 afin que N1+P soit pair
Le bit de STOP est toujours un 1 logique
Une PAUSE correspondant à 2 bits à 1 marque la fin du premier caractère
Télégramme d'allumage de L1
Le télégramme se décompose en :
commande (9 caractères)
temps de pause de 15 bits
acquittement (1 caractère)
Un caractère contient 13 bits : Start + 8 données + Parité + Stop + 2 (Pause) Le télégramme contient : 9 x 13 + 15 + 13 = 145 bits Chaque bit a une durée de 104 µs Le télégramme est donc transmis en : 145 x 0,104 = 15.1 ms
Télégrammes d'allumage et d'extinction de L1
Logiciel de capture
Ce logiciel permet, à partir d'une interface EIB/RS232, de récupérer tous les caractères transmis sur le bus EIB/KNX. Le contenu de la fenêtre de réception peut être imprimé ou récupéré dans le fichier texte telegramme.txt présent dans le répertoire d'installation. Attention : un télégramme capturé comprend aussi son accusé de réception (à la fin du télégramme)
Exemple de capture : action sur le poussoir P4 pour allumage puis extinction de la lampe L4
Analyse de la capture La capture précédente contient les codes hexadécimaux : BC 12 0A 33 03 E1 00 81 0B CC
BC : caractère de contrôle, émission normale, priorité basse
1
0
R
1
P
P
0
0
Priorité de transmission
0
0
Priorité système
1
0
Priorité alarme
0
1
Priorité haute
1
1
Priorité basse
0
Répétition
1
Emission normale
12 0A : adresse physique de l'expéditeur zone 1, ligne 2, participant 10
33 03 : adresse du destinataire (lampe L4) le bit fort du caractère suivant (E1) est 1, donc cette adresse est une adresse de groupe 0011 0011 0000 0011 qui correspond à 6/771 sur 2 niveaux 0011 00110000 0011 qui correspond à 6/3/3 sur 3 niveaux
E1 : 11100001 1 : l'adresse du destinataire est une adresse de groupe (déjà vu au dessus) 110 : compteur de routage = 6 (le compteur de routage définit le nombre maximal de réexpéditions du télégramme, en cas d'échec de transmission) 0001 : longueur de la donnée = 1, soit 2 octets
00 81 : donnée qui correspond à l'allumage de L4 (00 80 correspond à l'extinction)
0B : octet de sécurité calculé en parité impaire (0B donne 0000 1011)
BC
1
0
1
1
1
1
0
0
12
0
0
0
1
0
0
1
0
0A
0
0
0
0
1
0
1
0
33
0
0
1
1
0
0
1
1
03
0
0
0
0
0
0
1
1
E1
1
1
1
0
0
0
0
1
00
0
0
0
0
0
0
0
0
81
1
0
0
0
0
0
0
1
nombre de 1
3
1
3
3
2
1
4
4
octet de sécurité
0
0
0
0
1
0
1
1
Utilitaire de calcul de parité (swf 70 Ko) CC : caractère d'acquittement correspondant à une réception correcte
0
0
0
0
1
1
0
0
NAK (réception incorrecte)
0C
1
1
0
0
0
0
0
0
BUSY (occupé)
C0
1
1
0
0
1
1
0
0
ACK (réception correcte)
CC
Interface de capture EIB/RS232
Cette interface est facile à réaliser et à mettre au point Elle permet, associée au logiciel de capture ci-dessus, de récupérer sur un PC, tous les caractères qui transitent sur le bus EIB/KNX La réalisation de cette interface peut se faire en circuit imprimé simple face (documents fournis) ou sur plaque perforée
Schéma
Le 555 fonctionne en monostable, de période légèrement supérieure à 104 µs, réglable par le potentiomètre 100 K Il est alimenté en 5 V (diode Zener 5,1V) L'entrée 2 est ramenée dans la plage 0 - 5 V par les diodes Zener 24 V et 5,1 V La diode 1N4148 autorise la décharge du condensateur 1nF, lorsque la borne 2 passe à 0 V (monostable redéclenchable) Le montage push-pull (transistors 2N2222 et 2N2907) permet une adaptation à la RS232 (+10 V ou -10 V) La liaison au PC se fait par le port série (connecteur DB9) : Received Data RD (2) et Masse du signal M (5) Toutes les résistances sont des 1/4 W L'ajustable 100 K est un multitours
Oscillogrammes
Voie A : bus EIB Voie B : RD (RS232)
Mauvais réglage du potentiomètre 100K
Réglage correct
Détail du signal RS232 Amplitude : 20 V (-10 V à +10 V) Durée d'un bit : 108 µs
Schéma + typon sous Proteus La carte est implantée dans un cadre Mosaïc - Legrand de profondeur 40 mm (74802+89320+75002) Une prise informatique Legrand (74206) permet la connexion au PC via un câble RS232 SubD 9 points mâle-femelle (Radiospares 128-4265) avec câblage droit, fil à fil. 2 fiches BNC permettent de récupérer les signaux EIB et RS232 sur l'oscilloscope Voir la de l'implantation de la carte dans la boîte