La liaison M-Bus

Le M-Bus est un bus de communication à 2 fils qui véhiculent à la fois l'alimentation des produits et la communication entre les produits. Le M-Bus date des années 1990 et a été utilisé pour les compteurs d'énergie thermique pour les échanges de données et interfaces. Le M-Bus est standard pour les compteurs (normes EN13757-2:2004, EN13757-3:2005, prEN13757-3:2011). Il existe aussi une version du bus M-Bus sans fil (wireless M-Bus, ou wM-Bus) plus récente (2005).

Le bus M-Bus : maître et esclaves

La liaison M-Bus possède un seul maître (master) et des esclaves (slaves). Physiquement, le produit maître fournit la tension continue d'alimentation qui alimentent tous les produits esclaves. Il peut y avoir des répéteurs en chemin. On comprend pourquoi le maître est seul et ne peut changer de rôle.

Allure des signaux électriques sur le bus M-Bus

La vitesse de communication (baudrate) doit pouvoir aller de 300 baud à 38400 baud. Les baudrates typiques sont de 2400 baud et 9600 baud. Il existe aussi une possibilité d'adaptation automatique (Autobaud ou Auto speed mode).

La communication sur une liaison M-Bus se veut lente mais robuste.

Schéma électronique d'une interface M-Bus

Pour interfacer un produit sur la liaison M-Bus, il faut convertir l'UART issue du microcontrôleur en communication M-Bus. Cette interface utilise toujours le TSS721, avec quelques composants externes. Voici le schéma typique d'une interface M-Bus :

la liaison m bus 0

Schéma d'une interface UART - M-Bus

Résistances série dans le bus M-Bus

Chacune des deux lignes reliées à la liaison M-Bus possède une résistance série de 210 Ohms pour limiter le courant à 100 mA en cas de défaillance du circuit intégré TSS721 (court-circuit entre BUS1 et BUS2). Le courant de court-circuit doit être de 100 mA maximum dans le pire cas (tension de bus la plus élevée). Cela permet à l'installation M-Bus de fonctionner pour les autres produits, malgré ce court-circuit.

Courant de court-circuit = 100 mA = 42 V / 420 Ohms

Pour protéger l'interface M-Bus des décharges électrostatiques et autres surtensions transitoires, on peut ajouter des composants tels que diodes TVS ou transil.

Le TSS721A, unique interface M-Bus

Le TSS721A est un circuit intégré spécifique et unique pour l'interface M-Bus. Il assure l'émission et la réception des trames de communication sur le bus M-Bus et possède un régulateur de tension pour alimenter un microcontrôleur associé. De plus, il garantit une protection contre les inversions de tension (bus M-Bus relié à l'envers, fils inversés). Voici son schéma fonctionnel :

la liaison m bus 1

Schéma fonctionnel du TSS721A (Texas Instruments)

Cette protection est basée sur un pont de diodes. La tension de bus est redressée et est accessible sur la broche VB (Voltage Bus). Si on est sur de son coup sur la polarité lorsqu'on branche le bus M-Bus, on peut le brancher directement sur VB et la masse.

Réception d'un bit sur le bus M-Bus

La réception d'un bit issu du maître est détectée par un comparateur interne au TSS721A, avec l'aide du condensateur SC. Ce condensateur est chargé jusqu'à 8,6 V environ pendant l'état de repos "1" logique, et déchargée pendant un "0". Les durées de charge et décharge de ce condensateur sont adaptées pour garantir une adaptation dynamique de la partie réception du TSS721A.

Emission sur le bus M-Bus

Lorsque le TSS721A émet un bit, une source de courant s'active et engendre l'appel du courant supplémentaire. Sa valeur est déterminé par RIS. La résistance RIDD permet d'ajuster le courant de "repos" consommé au repos. Pour que le microcontrôleur puisse reconnaître une collision, le signal RX(I) est renvoyé vers TX(I).

Alimentation du microcontrôleur

Pour éviter un régulateur de tension externe, le TSS721A offre une tension de 3,3 V régulée sur sa broche VDD. Le courant moyen consommé peut aller jusqu'à 600 uA. Pour des courants impulsionnels supplémentaires, un condensateur de stockage doit être ajouté sur la broche STC. Dès que sa tension atteint 6 V, le régulateur 3,3 V se met en route. Le TSS721A indique la chute de tension grâce à la broche PF (power fail). Cela permet d'avoir le temps de stocker des données dans une mémoire EEPROM avant la coupure de tension imminente.

Autres composants externes au TSS721A

La résistance connectée entre la broche RIDD et la masse doit être telle qu'elle détermine le courant à 1,5 mA

La résistance entre la broche IS et la masse doit être telle qu'elle détermine le courant lors de l'émission.

Détails sur les caractéristiques électriques du bus M-Bus

Pour réaliser une liaison M-Bus bon marché, une simple paire de fils fait l'affaire pour transporter les signaux (données) et l'alimentation issue du maître. Les bits de données sur le bus doivent répondre à des niveaux électriques précis.

Les produits esclaves sur le bus M-Bus doivent répondre à des exigences électriques. Les voici.

la liaison m bus 2

Allure de la tension de bus sur le bus M-bus lors d'une émission du maître

Communication maître vers esclave sur liaison M-bus :

Le transfert d'un bit en provenance du maître vers un esclave est réalisé par un décalage de la tension électrique du bus. Un bit "1" logique ("Mark") correspond à une tension nominale de +36 V à la sortie du répéteur. Un "0" logique ("Space") correspond à une chute de tension de 12 V de la tension de bus (36 V qui devient 24 V).

  • tension d'entrée du bus : +/-50 V max
  • tension de bus (fonctionnement au repos) : 21 V à 42 V
  • tension de bus (fonctionnement alors d'une communication) : la même, avec 12 V de moins.

Communication esclave vers maître :

Le transfert d'un bit de la part d'un esclave vers le maître se fait par un supplément de consommation de courant de la part de l'esclave. Pour exprimer un bit sur le bus M-Bus, l'esclave se met à consommer un supplément de courant donné.

Ce que chaque produit esclave doit respecter pour avoir l'honneur d'appartenir au bus M-Bus :

  • consommation (fonctionnement au repos) : 1,5 mA par esclave maximum
  • consommation (fonctionnement alors d'une communication) : la même, augmentée de 11 mA à 20 mA.

Pour récapituler les niveaux électriques sur le bus M-Bus lors d'une communication (le maître "parle", puis l'esclave "répond") :

la liaison m bus 3

Allure des signaux électriques sur le bus M-Buis

Ce supplément de courant consommé engendre une légère chute de tension du bus à cause de l'impédance de sortie du répéteur. L'état de repos sur le bus M-Bus est un "1" logique, c'est-à-dire une tension de 36 V. Lorsqu'aucun produit n'émet de bits (silence total, en quelque sorte), un courant constant est consommé sur le maître. A cause de cette consommation statique et à cause de la résistance des fils du bus M-Bus, la tension réelle sera un peu inférieure à 36 V, en fonction de la distance avec le maître (répéteur) et le nombre total d'esclaves. L'esclave ne doit donc pas être sensible à la tension dans l'absolu, mais à la variation de tension (les 12 V issus du maître). Le maître doit interpréter une augmentation de courant (de +11 mA à +20 mA) comme un bit issu d'un esclave. Cela signifie que la communication sur le M-Bus ne peut aller que dans une direction : du maître à l'esclave, ou inversement. Le M-Bus est donc une communication half duplex.

Le M-Bus avec ses niveaux électriques assez élevés (12 V de variation et 11 mA minimum de variation) assure une haute robustesse de communication, tout à fait adaptée aux environnements industriels.

Cable de la liaison bus M-Bus

Pour installer un bus M-Bus, un câble téléphone standard est adapté (JYStY N*2*0.8 mm). Dans ce cas, la distance maximum entre un répéteur et un esclave est de 350 m, ce qui correspond à une résistance électrique de 29 Ohms. Cette distance est valable pour des débits de 300 et 9600 baud, et un maximum de 250 esclaves. La distance maximale peut être augmentée en réduisant le débit de communication (baudrate) et en connectant moins d'esclaves sur le bus M-Bus, mais attention, la tension de bus ne doit jamais chuter en dessous de 12 V, quel que soit l'endroit du bus. En effet, cela entraînerait une tension trop basse qui n'assurerait plus l'alimentation des esclaves durant le creux de tension. D'habitude, on considère qu'il ne faut pas dépasser 1000 m de longueur totale de câble pour éviter de dépasser 180 nF de capacité totale.

Connecteur pour bus M-Bus

Il n'existe aucun standard concernant le connecteur de la liaison M-Bus. Certains groupes d'utilisateur tentent une définition d'un connecteur approprié.

la liaison m bus 4

Exemple de connecteur à 2 bornes pour bus M-Bus

Il n'existe qu'un seul composant dédié à l'interface M-Bus : le TSS721, développé par Texas Instruments.

Addresses des produits sur le M-Bus

L'addressage (A-field) des produits M-Bus doit suivre ces indications :

  • Adresse 0 : esclave M-Bus non configuré
  • Adresse 1 à 250 : chaque compteur relié au bus M-Bus doit avoir une adresse unique. Il y a le choix !
  • Adresse 251 : réservée pour communication entre maître et répéteur
  • Adresse 252 : réservée
  • Adresse 253 : adressage secondaire
  • Adresse 254 : broadcast (appel au peuple, tous les esclaves doivent répondre)
  • Adresse 255 : broadcast (appel au peuple, tous les esclaves ne répondent pas)

Nombre de produits sur un bus M-Bus

Chaque esclave s'alimente par la tension du bus donnée par le maître. Si trop d'esclaves sont branchés sur la liaison M-Bus, le maître n'aura pas assez de puissance pour alimenter tous les produits. Il faut alors utiliser un répéteur pour donner de la puissance supplémentaire. Le nombre d'esclaves M-Bus peut alors être théoriquement illimité et le bus M-bus peut faire plusieurs kilomètres de long.

la liaison m bus 5

Exemple de compteurs d'énergie utilisant le bus M-Bus pour communiquer entre eux

Dépannage d'un réseau M-Bus

Plusieurs astuces existent pour dépanner un réseau M-Bus qui ne fonctionne plus :

  • débrancher successivement les produits pour trouver le produit ou la connexion qui fait court-circuit.
  • vérifier si sur chaque produit, la liaison M-Bus est branchée là où il faut (confusion possible entre le connecteur M-Bus et un autre connecteur présent sur le produit).
  • mesurer la tension de bus : elle doit être entre 24V et 42V.
  • vérifier la continuité des fils du bus M-Bus
  • câble trop long (dans ce cas, insérer un répéteur)
Philippe
lundi 4 avril 2022 16:29

Bonjour, J'ai trouvé l'article sur le TSS721 très intéressant et je me demande s'il ne serait pas adapté pour une application personnelle. Je ne suis pas très féru dans le domaine des liaisons séries : c'est pourquoi je vous sollicite. Je dispose sur mon système de chauffage actuel d'un compteur d'énergie électrique communiquant via une liaison M-Bus. J'aimerai lire quelques informations du compteur de façon cyclique et automatique (via un arduino) pour optimiser ma consommation d'énergie. Le système envisagé ne doit pas perturber la liaison existante. Je pense qu'un circuit tel que le TSS721 couplé avec un arduino devrait faire l'affaire ? Je connais l'adresse du compteur et les N° des registres où se trouvent les informations à récupérer. Mais je ne sais pas comment m'y prendre. Le fait qu'il existe déjà un maitre qui interroge toutes les 300s le compteur, le système envisagé ne viendrait-il pas perturber le fonctionnement du M Bus ? Merci de votre aide