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.
Cet article est paru dans la revue
Electronique
Pratique Hors-série N°2 de octobre 1998 :
Principe
Le synoptique ci-dessous permettra de mieux comprendre le rôle de
l’interface.
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.
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.
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.
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...
|
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.
|
|
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. |
|
Vue sur le cablage
des DB9 et des inverseurs TX / RX.
|
|
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.
|
|
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à.
|
|
Gros plan sur les
LED de la face avant.
|
|
Le circuit qui
s'occupe de tout...
|
|
... et sa fidèle
alimentation secteur, réduite à bien peu de choses.
|
|
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.
|