Electronique > Réalisations > Interfaces > Espion RS232 (moniteur RS232)

Dernière mise à jour : 13/02/2007

Présentation

N’avez-vous jamais eu envie de voir ce qui « traînait » sur une liaison RS232, par exemple entre un ordinateur et un appareil de mesure ? Certains constructeurs dotent en effet certains de leurs équipements (multimètres, oscilloscopes, etc.) d’une interface qui permet de les relier à un PC en vue de rapatrier des informations, ou même de les configurer (sur un oscilloscope, on peut par exemple récupérer un ensemble de points de mesure et s’en servir pour tracer et sauvegarder une courbe graphique). La mise en parallèle d’un PC en « espion » sur la liaison, va parfois permettre de visualiser le contenu des données qui transitent. Malheureusement, en fonction de la conception de l’interface RS232 implantée dans le PC ou dans l’équipement à contrôler, le niveau des signaux véhiculés (selon la norme RS232) va parfois chuter sensiblement et ne plus permettre l’interprétation correcte des signaux reçus. Le montage décrit ici s’intercale entre le PC et l’appareil à contrôler en ne perturbant pas la liaison originale, et fournit une interface RS232 supplémentaire pour le PC de surveillance.

Espion RS232

Cet article est paru dans la revue Electronique Pratique Hors-série N°2 de octobre 1998 :

livre_ep_hs2_couverture_001


Principe

Le synoptique ci-dessous permettra de mieux comprendre le rôle de l’interface.

Espion RS232 - Syno

Le principe de fonctionnement est en fait extrêmement simple. Les données qu’échange le PC de commande avec l’appareil à piloter, sont à des niveaux électriques propres à la norme RS232 (-12 et +12V). L’interface consiste à ramener ces niveaux électriques à des niveaux compatibles TTL (0V et +5V), puis à les reconvertir à nouveau en RS232, mais cette fois en les dupliquant. Les signaux dupliqués seront alors dirigés vers un PC de surveillance sur lequel tournera le terminal dont il faudra configurer correctement les paramètres de transmission, pour obtenir un affichage cohérent. Le terminal de visualisation pourra être quelconque, celui de Windows pourra faire l’affaire. Ce dernier n’offrant qu’une fenêtre terminal, vous devrez lancer deux instances de ce terminal si vous désirez visualiser simultanément les données transitant sur la ligne TX et celles transitant sur la ligne RX. Je vous conseille l'utilisation d'un logiciel permettant de travailler sur plusieurs ports com en même temps, comme le logiciel ComTools. Il faut penser que vous ne connaîtrez pas forcément le protocole de transmission de l’équipement que vous voudrez surveiller, et qu’il faudra dans ce cas y aller à tâtons, en modifiant un paramètre à la fois. L’accès direct aux paramètres de transmission (bauds, nombre de bits de données et de bits de stop, parité,...) vous fera gagner un temps certain. La reconnaissance du bon protocole s’avéra bien sûr plus rapide si le PC et l’appareil à piloter dialoguent constamment. Sinon, il faudra vous arranger pour qu’il y ait transmission de données à chaque fois que vous aurez modifié un paramètre (il suffit parfois d’éteindre l’équipement à piloter et de le remettre sous tension pour qu’il envoie quelques données, parfois des informations de version).

Schéma

Le schéma électronique s’articule autour de deux circuits convertisseurs de tension, spécialisés pour la conception d’interface RS232. 

Espion RS232

Les habitués reconnaîtront le bon vieux MAX232, utilisé à maintes reprises dans des montages de "communication" tels que adaptateurs Minitel ou tout circuit à microprocesseur dialoguant via un port COM (UART).

Notes concernant le MAX232
Le MAX232 inclut 2 récepteurs transformant les signaux RS232 en signaux TTL et 2 émetteurs transformant les signaux TTL en RS232.

Max232

Pour fournir les niveaux de +12V et -12V à partir du +5V, le circuit utilise un convertisseur élévateur de tension basé sur le principe de pompe de charge de condensateurs. Le MAX232 est très courant malgré sa spécification et ne coûte pas cher (environ 2 euros). Il existe d’autres versions de ce circuit convertisseur, proposées par d’autres constructeurs que Maxim (Analog Device, Texas Instrument, Harris...), compatibles broches à broches, que vous pourrez éventuellement essayer. Il vous faudra sans doute changer la valeur des condensateurs utilisés pour le circuit à pompe de charge dudit circuit (généralment entre 1 uF et 10 uF).

J'avais choisi au départ un MAX206 qui a l’avantage de posséder assez d’émetteurs et de récepteurs intégrés pour assurer à lui seul la fonction de l’interface décrite ici. Malheureusement, ce circuit n’est pas assez bien distribué, la majorité des interfaces RS232 s’acquittant fort bien d’un simple circuit du type MAX232 (dont bien souvent même une seule moitié est utilisée). J'ai donc finalement préféré mettre en oeuvre des circuits bien distribués qui posent moins de problèmes d’approvisionnement. 

Si vous désirez des informations complémentaires concernant la norme RS232 et ce qui tourne autour, n’hésitez pas à rechercher les articles en ayant traité. Et si vous avez la possibilité de naviguer sur Internet, votre moteur de recherche vous mènera certainement à des sites qui feront votre bonheur.


Description du montage

Le montage n’appelle pas de commentaire particulier. Les signaux TX et RX de la ligne RS232 à surveiller sont tous deux interrompus momentanément, juste le temps de les ramener au niveau TTL (sorties RX1 et RX2 du circuit U1). Tous les autres câbles des prises Sub-D 9 points J1 et J3, devront être raccordés fil à fil. De la sorte, vous utiliserez d’un côté le câble RS232 d’origine (quelque soit son câblage interne), et de l’autre côté un câble neutre (tous les fils câblés broche à broche, sans inversion). C’est ainsi que l’interface sera transparente du point de vue des équipement raccordés. 

Vous noterez la présence d’inverseurs doubles sur les prises RS232 de la ligne à surveiller (SW1 sur J1 et SW2 sur J3), mais aussi sur les prises où doit être raccordé le PC de surveillance (SW3 sur J8 et SW4 sur J12). Ces inverseurs sont facultatifs, mais tous les câbles RS232 que vous utiliserez devront dans ce cas être toujours du même type (croisé ou non croisé). J'ai trouvé pratique de pouvoir inverser les lignes TX et RX à tout moment, car on n’a pas toujours sous la main les câbles qu’il faut. Il va de soit que vous devrez tout de même connaître la nature de vos câbles, afin d’éviter le mieux que possible de diriger une sortie TX vers une autre sortie TX. Les interfaces intégrées aux équipements sont pour la plupart protégées contre ce risque d’incident (et heureusement, car qui n’a pas essayé un jour d’établir une liaison avec un câble inadéquat !) mais ne tentez pas le diable. Le circuit U1 permet donc de convertir en niveau TTL les lignes RX et TX de la ligne RS232 à surveiller, tandis que le circuit U2 ne fait que reconvertir en niveaux RS232 ces signaux, pour le PC de surveillance.

Les deux LED D1 et D2 clignotent au rythme des données véhiculées sur les lignes TX et RX de la liaison à surveiller, et permettent de savoir rapidement si les câbles RS232 utilisés sont ceux qu’il faut. Etant données que ces LED sont directement connectées en sortie des récepteurs du MAX232, vous devrez vous tenir aux valeurs de résistance R1 et R2 de limitation de courant. Les LED devront être des modèles de préférence à haute luminosité, bien que vous puissiez en mettre des standards (mais dans ce cas, vous devrez effectuer un tri pour trouver celles ayant le rendement lumineux le plus élevé). La présence de la LED D3 peut surprendre. On désire en effet voir ce qui se passe sur la liaison à surveiller, et non sur la liaison du PC de surveillance avec l’interface. En fait, sa présence n’est pas vraiment du luxe. Quand vous aurez lancé le terminal sur l’ordinateur de surveillance, et que vous appuierez sur une touche, vous enverrez un caractère ASCII qui devra faire s’allumer la LED D3 une fraction de seconde. Si la LED D3 s’allume à chaque fois que vous appuyez sur une touche du PC de surveillance, vous aurez la certitude d’avoir correctement connecté le câble de ce dernier. Car si le fil TX du PC de surveillance amène bien les données sur le récepteur RX1 ou RX2 de U2, c’est que la sortie de l’émetteur TX1 ou TX2 de ce dernier enverra bien les données sur le fil RX de ce même PC de surveillance... Par la présence des diodes D4 et D5, la LED D3 s’allumera aussi bien sur réception de données sur le récepteur RX1 que sur le récepteur RX2 de U2.


Avertissement/rappel
La sortie Monitoring est unidirectionnelle, elle fournit des données mais ne peut pas en recevoir. Il ne faut donc pas raccorder un équipement sur cette prise en vue d'établir un dialogue avec un PC ou autre équipement raccordé sur l'une des deux entrée/sortie principales.

Alimentation

Les deux circuits intégrés tireront leur alimentation d’un régulateur de tension classique (U3 - 7805). Vue la consommation globale du montage, il n'est pas nécessaire de munir le régulateur d’un dissipateur. La tension que vous appliquerez à son entrée devra être au minimum de 8 volts (à cause de sa tension de déchet), ce qui rend possible l’alimentation par une pile de 9V. Rien ne vous empêche de réaliser une petite alimentation secteur, ce ne sont pas les schémas qui manquent pour cela. Un transformateur 9V / 3VA associé à un petit pont de diodes, et à un condensateur de filtrage d’une valeur de 220 uF / 25V fera parfaitement l’affaire (exemple).

Circuit imprimé

Les condensateurs sont de type radial (montage vertical). Vous devrez porter une attention particulière à leur polarité, certains ayant leur électrode positive reliée à la masse. L’ordre d’implantation est presque évident: straps (il y en a deux), résistances, diodes, connecteurs, supports de CI puis condensateurs et pour finir le régulateur de tension. La mise sur support des MAX232 est vivement conseillée, sachant que ces composants restent des composants fragiles aux surtensions (que vous ne manquerez pas de rencontrer si vous utilisez des câbles longs et mal blindés). Les connecteurs sont regroupés sur un même côté, et les leds le sont de l’autre.

Espion RS232 - PCB

Typon aux formats BMP 600 dpi et PDF

J'ai préféré ne pas placer les prises Sub-D 9 point sur le circuit imprimé (pour leur raccordement, reportez-vous au schéma électrique). Cela implique un peu de câblage fil à fil, mais au total, peu de fils arriveront à la platine (seulement les lignes RX et les lignes TX, en plus des deux fils d’alimentation). Cela vous permettra, le cas échéant, de choisir des prises 25 points plutôt que des 9 points si vous en ressentez le besoin.

Mise en boîte

Quelques photos...

Espion RS232 Les circuits imprimés, connecteurs DB9 et LED ont été montés dans un coffret de récupération, dont on peut encore un peu voir un schéma synoptique dans le fond.
Espion RS232 6 connecteurs DB9 sont accessibles en face arrière, j'ai effectué un doublage en Mâle-Femelle pour limiter l'utilisation d'adaptateurs de genre, et des inverseurs ont été installés pour opérer des inversions éventuelles des lignes TX et RX.
Espion RS232 Vue sur le cablage des DB9 et des inverseurs TX / RX.
Espion RS232 La face avant comporte une paire de leds pour chaque fil de liaison, une verte pour signaler un état logique bas et une rouge pour l'état logique haut. Pour les lignes TX et RX surveillées, j'ai ajouté des leds pour l'état des lignes aux trois points stratégiques, ce qui permet de voir très rapidement si les données traversent correctement le moniteur RS232.
Espion RS232 Les LEDsont positionnées dans des trous pratiqués dans la face avant et effleurent cette dernière. Un bâton de colle et son pistolet pour rigidifier le tout, et voilà.
Espion RS232 Gros plan sur les LED de la face avant.
Espion RS232 Le circuit qui s'occupe de tout...
Espion RS232 ... et sa fidèle alimentation secteur, réduite à bien peu de choses.
espion_rs232_proto_001 Prototype élaboré avant la version finale mise au propre. Il fonctionnait, mais n'était pas pratique d'usage, car les inversion TX / RX (inévitables) nécessitaient le déplacement de straps qui étaient de simples bouts de fil électrique.