lundi 12 janvier 2015

         
   
 

Un serveur sériel pour périphériques PC ou comment relier votre PC à un périphérique distant d’une centaine de mètres

Le Tibbo DS100 est un serveur de périphériques sériels : il permet de relier tout dispositif doté d’un port sériel à un LAN* Ethernet et, par conséquent, il autorise l’accès à tous les ordinateurs du réseau local ou à l’Internet sans devoir modifier le logiciel de pilotage. Il dispose d’une adresse IP et il peut communiquer à travers UDP et TCP. En outre, il supporte les protocoles ARP et ICMP.


A partir du moment où l’on utilise un ordinateur, que ce soit dans le cadre d’une société, d’une activité commerciale quelconque ou à titre privé, on se trouve à coup sûr confronté à la nécessité de lui adjoindre un périphérique sériel : par exemple un scanneur, pour une activité de retouche de photos, ou des instruments de mesure, pour une activité électronique ou mécanique, des lecteurs de code-barres ou de transpondeurs, pour mémoriser les entrées au bureau, ou des émetteurs/récepteurs à infrarouges utilisés pour l’échange de données entre divers périphériques.
Ces dispositifs sont tous reliés par des câbles ne pouvant pas dépasser, en raison des pertes et des atténuations, une longueur de quelques mètres. Ainsi, on se trouve contraint de les placer dans le voisinage immédiat du PC contenant le logiciel de gestion. Parfois, pour diverses raisons, il peut être utile de les situer dans un lieu plus éloigné et de les commander à distance. Par ailleurs, il peut être commode d’accéder au périphérique, non seulement à partir de l’ordinateur auquel il est relié, mais à partir de tout ordinateur distant, via l’Internet. Une première solution au problème pourrait être d’employer une inter face RS485 au lieu d’une RS232 : la première, en effet, accepte des longueurs de câble supérieures.
Mais…




* LAN (“Local Area Network”) : réseau local.

Notre réalisation
La solution RS485 n’est pas idéale et l’on ne trouve guère, dans le commerce, de périphériques qui s’y adaptent.
Sans compter que, de cette façon, on ne résout pas le problème posé par le matériel déjà en notre possession !
Une seconde solution consiste donc à utiliser un dispositif reliant l’interface sérielle du périphérique au réseau local et se chargeant de convertir les données du format sériel au format TCP/IP utilisé sur le LAN. C’est ce que nous vous proposons dans les lignes qui suivent !

DS100 - Serial Device Server
Le DS100 de Tibbo Technology est un ser veur de périphériques sériels permettant de connecter tout périphérique au format RS232 à un LAN de type Ethernet. La communication avec le périphérique peut se faire à partir de tout ordinateur relié au réseau local : si, en plus, ce dernier dispose d’une connexion Internet, le dispositif sériel peut devenir accessible aussi à partir de tout ordinateur externe.
Grâce à lui, il est possible de placer le périphérique où l’on veut, de le relier via RS232 au DS100 et celui-ci au “hub” (dédoubleur) du LAN en utilisant des câbles dont la longueur, en fonction des spécifications, peut atteindre 100 mètres.
Le DS100 est muni d’un port 10BaseT pour être relié au LAN à une vitesse de 10 Mbit/s et d’un port RS232 pour être connecté au périphérique.
Il dispose d’un jack d’alimentation (12 Vcc, 150 mA) et de quelques LED indiquant l’état du dispositif ou de la connexion Ethernet.
Par-dessus le marché, il est fourni avec les pilotes, nécessaires à un fonctionnement correct sous Windows et des logiciels de gestion et de programmation.
Les applications possibles sont de trois types : le premier est de relier un périphérique sériel sans modifier un logiciel de contrôle déjà existant.
Le pilote du DS100 est en effet en mesure de créer des ports COM virtuels sur ordinateur (VSPs-Virtual Serial Ports) lesquels, du point de vue du programme de l’usager, se comportent comme des ports standards COM matériels, mais qui en réalité transforment les données en paquets TCP envoyés sur le LAN et ensuite convertis par le DS100 en format sériel.
Ou bien il est possible de créer facilement un nouveau logiciel de gestion, à travers lequel on puisse communiquer directement avec le périphérique sans utiliser le VSPs. Le DS100 utilise en effet les protocoles d’émission UDP/IP et TCP/IP pour lesquels beaucoup de langages de programmation et de compilateurs (par exemple Visual Basic 6.0 Microsoft) ont déjà les “plug-in” de gestion. Pour ce même VB6, Tibbo met à disposition un manuel (téléchargeable sur le site www.tibbo.com) où l’on vous explique comment communiquer avec le DS100.
Enfin, en utilisant deux DS100, il est possible de relier deux périphériques sériels utilisant la connexion Ethernet, afin de créer une Liaison Sérielle Virtuelle, soit une connexion qui, vue par les périphériques, est de type sérielle, mais qui, en réalité, est en technologie Ethernet. Par exemple, en connectant le premier DS100 au port COM d’un ordinateur et le second au port sériel d’un périphérique et en connectant les deux interfaces Ethernet par un câble RJ45 direct, il est possible de simuler pour le logiciel une connexion série normale mais qui, en réalité, se sert de la technologie Ethernet et des protocoles TCP. Dans ce cas, il n’est nullement nécessaire d’utiliser le VSPs, mais on entre directement par le port COM matériel.
De plus, si l’on dispose d’une connexion ADSL, il est possible de connecter directement le port Ethernet du DS100 : dans ce cas (le plus simple) le périphérique devient accessible à partir de n’importe quel ordinateur relié à l’Internet.
Le DS100 est en outre caractérisé par ses trois modes opérationnels :
- Un pour réaliser la conversion Sérielle/Ethernet et vice-versa (mode normal).
- Un pour le programmer via port sériel (“Serial Programming Mode”).
- Un pour exécuter “l’upgrade” (mise à jour) du “firmware” (programme résidant en ROM) : “Firmware Download Mode”.
Les deux derniers sont des modes particuliers non utilisés pour les applications normales (pour de plus amples informations, voir le manuel, très clair et très complet). Le premier est en revanche le plus intéressant et c’est le plus utilisé.

Figure 1 : DS100 (connexions et signalisations).

Figure 2 : Connexion sans modification du SW.

Le logiciel présent sur chacun des ordinateurs se sert du port COM virtuel (VSP) pour se connecter au périphérique sériel. La VSP traduit les données arrivant en format sériel RS232 en paquets TCP envoyés sur le LAN.

Figure 3 : EM100-Module Ethernet.

Le coeur du dispositif DS100 est le module EM100, réalisé spécialement pour relier tout périphérique muni d’un port sériel RS232 à un LAN à travers une connexion Ethernet. Le EM100 est doté de 20 broches, dont 4 sont consacrées à la liaison avec le connecteur RJ45 10BaseT et 4 à la connexion avec l’interface sérielle. Les 4 autres sont utilisées pour connecter les LED de contrôle, 2 pour des opérations de contrôle de la puce et 2 autres pour l’alimentation. Enfin, 4 autres broches d’I/O sont disponibles pour un usage général, par exemple pour relier d’éventuels dispositifs ou capteurs externes.
La connexion sérielle supporte l’émission “Full Duplex” (entièrement bilatérale), dans ce cas les 4 broches transportent les signaux RX, TX, RTS et CTS, comme la “Half Duplex” (bilatérale alternée), signaux RX, TX et DIR.
Le circuit à l’intérieur duquel le module est typiquement utilisé s’appelle “Stand Alone” : le module est flanqué d’un LTC1232, utilisé à la mise sous tension du dispositif pour le “Reset” et d’un MAX232 pour convertir les niveaux de tension du format sériel au format TTL. Les 4 lignes Ethernet sont connectées en revanche directement au module.
Le EM100 est disponible aussi comme “Starter Kit” à installer sur une “demoboard” (carte d’essais) afin de réaliser le “Serial Device Server” (serveur pour périphérique sériel). La carte d’essais comprend, outre le EM100 et les autres circuits intégrés, tous les composants nécessaires à la réalisation du circuit : par exemple, sont présents les LED d’état et d’Ethernet, les connecteurs des ports 10BaseT et sériels, ainsi que la prise jack d’alimentation.
La carte d’essais utilisée pour la réalisation du “Serial Device Server” : on remarque le module EM100 (1) gérant la liaison Ethernet/Sérielle, le circuit intégré MAX232 (2) utilisé pour convertir les niveaux de tension RS232 (+/–12 V) en TTL (0 et +5 V), la puce LTC1232 (3) utilisée pour le “Reset” et le régulateur de tension 7805 (4) convertissant la tension d’alimentation en +5 V TTL.
Broches Ethernet
10      TX+       Output       Ligne positive d’émission
9       TX–       Output       Ligne négative d’émission
2       RX+       Input        Ligne positive de réception
1       RX–       Input        Ligne négative de réception

Broches Sérielle
16      TX        Output       Ligne d’émission
15      RX        Input        Ligne de réception
18      RTS/DIR   Output       Full duplex : request to send
                               Half duplex : data direction
17      SEL/CTS   Input        Sélection Full/Half duplex ;
                               in Full duplex clear to send

Broches LED
6       SG        Output       LED verte d’état
7       SR        Output       LED rouge d’état
5       EG        Output       LED verte ligne Ethernet
4       ER/WS     Output       LED rouge ligne Ethernet

Broches Alimentation
3       VCC                    +5 V continus +/- 5 % (70 mA max)
8       GND                    Masse

Broches Contrôle
11      RST       Input        Reset, actif haut
14      MD        Input        Sélection mode de fonctionnement
                               (Normal, Serial programming et Firmware Download)

Broches General Purpose
12      P0        In/Out       Pin Input/Output
13      P1        In/Out       Pin Input/Output
19      P2        In           Pin Input
20      P3        In/Out       Pin Input/Output

Figure 4 : Liaison Sérielle Virtuelle.

Le logiciel du PC communique avec le port COM matériel, les deux DS100 réalisent la connexion TCP. L’avantage est que la longueur du câble peut atteindre 100 mètres. Entre les deux DS100 on peut aussi trouver un routeur ou l’Internet.

Figure 5 : Le “Serial Device Server” DS100 débarrassé de son boîtier externe.
Le coeur du dispositif est le module EM100.


Le fonctionnement en Mode Normal
La principale fonction du DS100 est de convertir et acheminer les données entre son port Ethernet et le port sériel. Pour communiquer, il est en mesure d’utiliser les protocoles UDP/IP ou TCP/IP et il supporte aussi les protocoles ARP (utilisé pour rendre compatibles les adresses IP avec les adresses MAC) et ICMP (pour répondre à la requête de “ping”).
Au niveau des portes logiques, il utilise la 65535 du TCP, pour transmettre et recevoir les commandes et une seconde porte paramétrable par l’usager (par défaut la 1001) pour les données. La vitesse du port Ethernet est de 10 Mbits/s. Le port sériel peut en revanche être programmé : il supporte en effet des vitesses (“Baud-rate”) comprises entre 150 et 115 200 bits/s, 7 ou 8 bits d’information par octet transmis, la présence ou non de la parité (pair ou impair) et le contrôle de flux (CTS/RTS ou non installé).
Et, justement à cause de la différence de vitesse entre côté Ethernet et côté sériel, le DS100 a été pourvu de deux “buffers” (tampons) de 255 octets, de façon à éviter une éventuelle perte de données.
Le dispositif peut être programmé pour travailler comme Esclave ou comme Maître. En esclave, le DS100 n’envoie aucune donnée du port sériel au port Ethernet jusqu’à ce qu’il reçoive une requête de la station distante. En maître, en revanche, le DS100 n’attend pas les requêtes mais envoie les données du port sériel au port Ethernet dès qu’il en a de disponibles. En esclave, il est typiquement utilisé pour les périphériques prévoyant une gestion de type “polling”, en maître, en revanche, il est utilisé pour les dispositifs envoyant spontanément des données : ce dernier cas est utilisé en outre pour réaliser une Liaison Sérielle Virtuelle dans laquelle les deux périphériques peuvent commencer une émission. En esclave le DS100 répond à toutes les requêtes lui parvenant du LAN. Quand le dispositif reçoit des données de l’interface Ethernet, il mémorise l’adresse IP et la porte logique d’où ils proviennent et achemine vers cette destination les réponses provenant du port sériel. Il s’ensuit que, dans ce mode, l’unique paramétrage du réseau à spécifier au DS100 est l’adresse IP.
Même dans le cas où entre le dispositif et l’ordinateur de contrôle se trouve un routeur, il n’est pas nécessaire d’ajouter d’autres paramètres (en particulier il n’est pas nécessaire de paramétrer la “Netmask” et l’adresse IP du routeur).
En maître, en revanche, le DS100 n’est habilité à l’envoi de données qu’à une seule station LAN. Il faut par conséquent que lui soit spécifiée, en plus de sa propre adresse IP/porte logique, celle de la destination. Dans le cas où le DS100 et l’ordinateur de contrôle appartiennent à deux sousréseaux différents, la “Netmask” et l’adresse IP du routeur doivent être spécifiées.

Le logiciel de gestion
Le DS100 est fourni avec un CD-Rom contenant divers logiciels de gestion et de programmation. Un premier programme nommé “Connection Wizard” permet, grâce à une procédure guidée, d’installer et de rendre opérationnels facilement un ou plusieurs dispositifs : il est possible de paramétrer l’utilisation d’une VSP ou de réaliser une liaison virtuelle, de choisir entre les protocoles de communication UDP et TCP, de sélectionner les paramétrages du port sériel, de paramétrer le DS100 comme maître ou comme esclave et enfin de spécifier l’adresse IP/porte logique du dispositif comme de l’ordinateur de contrôle. Si sur le réseau plusieurs DS100 sont installés, le logiciel les reconnaît et permet de les programmer un à la fois.
On trouve en plus dans le CD-Rom un autre programme (le “DS Manager”) permettant de modifier manuellement et sans utiliser le Wizard, les paramètres du dispositif DS100. Nous conseillons d’utiliser le premier logiciel qui, quoique simple, n’en est pas moins complet. Utilisez le “DS Manager” seulement si vous voulez exécuter des paramétrages particuliers.
Enfin, grâce à “VSP Manager”, il est possible d’inter venir sur les COM virtuelles, d’en ajouter des nouvelles ou de modifier les paramètres de celles déjà définies.

Figure 6a : “Connection Wizard”.


Trois écrans visualisant le programme “Connection Wizard” : le premier montre la détection automatique des DS100 reliés au LAN, le deuxième un exemple de la programmation du port sériel du dispositif distant (dans cet exemple le contrôle de flux a été déshabilité), le troisième la sélection ou la création du port COM3 logiciel.

Figure 6b : “DS Manager” et “VSP Manager”.


Ces deux écrans visualisent le logiciel “DS Manager” où il est possible de spécifier manuellement les paramètres du dispositif et le programme “VSP Manager” où l’on peut régler les paramètres du port COM virtuel créé.

Figure 7 : Schéma de la configuration particulière que l’on peut réaliser dans une installation privée.

Le DS100 interface le périphérique sériel directement au port Ethernet de l’ordinateur : ce dernier est relié à l’Internet par modem et ligne téléphonique.
A partir d’un second ordinateur, dans lequel a été créée une VSP, on accède au périphérique.
Sur le premier ordinateur, il est indispensable d’installer un routeur logiciel pour acheminer les données provenant du port COM (et donc du modem) au port Ethernet (et donc au DS100 et au périphérique sériel). En outre, la connexion est caractérisée par des IP dynamiques, le second ordinateur doit donc connaître celle qui a été donnée au premier et mettre à jour en conséquence les paramètres de la VSP.

Figure 8a : Ecran visualisant le logiciel WinPIC, utilisé pour contrôler l’interface à relais. On remarque la sélection du port COM3. Bien que l’ordinateur dispose de deux ports sériels seulement, la COM3 est simulée par le pilote et le logiciel est en mesure de fonctionner sans aucun problème.

Figure 8b : La platine décrite dans l'article : "Une interface E/S commandée par PC sans UART 8 entrées digitales - 8 sorties relais 2 entrées analogiques". Huit relais disponibles, 8 lignes numériques et 2 lignes analogiques plus un connecteur DB9 femelle pour la connexion au PC.

L’utilisation pratique
Pour expliquer le fonctionnement du DS100, voyons comment le relier à deux des montages que nous avons réalisés : le premier est le Lecteur de transpondeurs pour port sériel publié dans l'article : "Un transpondeur polyvalent pour port sériel", l’autre est l’Interface à relais pour PC publié dans l'article : "Une interface E/S commandée par PC sans UART 8 entrées digitales - 8 sorties relais 2 entrées analogiques". Avec le premier montage, nous avons testé le fonctionnement du mode Maître (le lecteur envoie les données sans attendre la requête de la part du PC), avec le second nous avons testé le mode Esclave (l’interface est toujours en attente de commandes).
Commençons par le premier exemple : tout d’abord, nous avons relié le DS100 au “hub” de notre LAN et, en utilisant “Connection Wizard” à partir d’un PC, nous l’avons programmé en spécifiant l’utilisation d’une VSP (pour nous la COM3). Le protocole de communication choisi a été le TCP et nous avons dûment programmé les paramètres du port sériel (en particulier le contrôle de flux a été déshabilité, puisque le lecteur ne l’utilise pas et on a paramétré une vitesse de 19 200 bits/s). Nous avons choisi le mode Maître et enfin nous avons spécifié les adresses IP, celle à attribuer au dispositif comme celle du PC utilisé, auquel le DS100 enverra les réponses. Enfin, comme porte logique, la 1001 a été sélectionnée. A la fin de la programmation apparaît une fenêtre où tous les paramètres sont récapitulés.
C’est alors que nous avons connecté le lecteur au port sériel du DS100 et ouvert l’HyperTerminal sur l’ordinateur en sélectionnant comme port sériel la COM3. Au passage des divers badges, le lecteur envoie les différents codes visualisés par l’HyperTerminal, sans qu’il se rende compte qu’il reçoit les données du réseau local LAN et non pas de son port sériel véritable.
Dans le second exemple, nous avons programmé le DS100 comme Esclave et, en utilisant le logiciel de contrôle “WinPIC”, nous avons vérifié qu’effectivement l’interface à relais était bien commandée à distance. L’unique paramétrage a consisté à sélectionner la COM3 comme port de contrôle : dans ce cas aussi, le logiciel n’a demandé aucune modification et a fonctionné comme si le dispositif était connecté à un port sériel existant réellement. En plus, le mode Esclave ayant été sélectionné, il a été possible de commander le dispositif à partir de divers ordinateurs reliés au LAN.
Pour les deux exemples nous avons testé la liaison en passant directement par le LAN et au contraire en nous connectant de l’extérieur et donc en passant à travers le routeur ADSL. Dans les deux cas, nous n’avons rencontré aucun problème : l’unique précaution a consisté à programmer le routeur en lui indiquant d’acheminer les requêtes externes à l’adresse IP du DS100.
Enfin nous avons voulu essayer une configuration un peu spéciale, que l’on pourrait tester en utilisant le dispositif à l’intérieur d’une installation sans réseau local (par exemple dans une maison). En effet, nous avons relié le DS100 directement au port Ethernet d’une carte réseau présente sur un ordinateur et nous avons voulu rendre accessible le périphérique sériel à travers une connexion Internet réalisée au moyen d’un modem et d’une ligne téléphonique.
Pour cela, nous avons dû prendre deux mesures : la première a été d’acheminer les requêtes provenant de l’Internet au port Ethernet de l’ordinateur.
Ces requêtes, en effet, arrivent du modem (et donc du port sériel du PC) et sont envoyées correctement au port Ethernet. La solution a été d’installer sur le PC un routeur de type logiciel (notre choix s’est porté sur WinRoute Lite : il peut en effet être programmé pour recevoir les paquets TCP arrivant par le modem, contrôler l’adresse IP de destination et les acheminer ensuite correctement, même vers le DS100).
La seconde mesure touche la connexion via modem : elle est en effet basée sur des IP dynamiques. Pour entrer de l’extérieur, il est donc nécessaire de connaître le nouvel IP de l’ordinateur et de mettre à jour chaque fois les paramètres de la VSP.

Aucun commentaire:

Enregistrer un commentaire