2010-12-10 79 views
0

J'ai un périphérique matériel contrôlé via une interface rs-232 (c'est un émetteur-récepteur d'ultrasons). J'ai besoin d'écrire un programme pour envoyer les commandes à l'appareil depuis mon ordinateur. Fait inhabituel, cependant, l'appareil n'a pas de port série (port COM DB-9), mais possède plutôt une prise RJ45 (une prise Ethernet). L'appareil est livré avec un adaptateur pour connecter le port Ethernet sur l'appareil à un câble série pour la communication avec un ordinateur.Connexion série rs-232 via un câble Ethernet (tcp)

Malheureusement, mon ordinateur ne possède pas de port série - seulement un port Ethernet. Si possible, je voudrais supprimer l'adaptateur et connecter mon ordinateur directement à l'appareil avec le câble Ethernet. C'est possible physiquement - mais je ne sais pas comment convertir le protocole de message? Par exemple, mon appareil n'a pas d'adresse IP avec laquelle ouvrir une socket tcp? Jusqu'à présent, j'ai utilisé Boost.asio (sur une boîte Ubuntu) pour envoyer des flux de messages via un socket tcp à d'autres périphériques qui prennent en charge tcp. Si possible, je voudrais continuer à utiliser la bibliothèque Boost.Asio - car elle est multi-plateforme. Je ne sais pas vraiment par où commencer - j'ai toujours utilisé la bibliothèque Boost.Asio qui masque bien la plupart des problèmes de protocole. Je crois qu'il est possible, cependant, comme il ya des programmes de fenêtres qui semblent faire une chose semblable, voir par exemple http://com0com.sourceforge.net/

Tout conseil d'orientation serait la bienvenue. Merci beaucoup

Répondre

7

En fait, cela ne fonctionne pas physiquement. Cela fonctionne simplement mécaniquement. Les tensions électriques physiques et les courants utilisés par Ethernet sont très différents de ceux utilisés par les ports série. Non seulement cela, les broches sont également incompatibles. Heureusement pour vous ethernet utilise des signaux couplés magnétiquement sinon vous auriez frit soit votre carte mère ou l'appareil à ultrasons.

Il ne s'agit pas seulement de protocoles logiciels.

+1

Oui, chanceux pour moi - la confusion physique/mécanique aurait pu être coûteuse. Je suppose que je suis la personne qu'ils font toutes les différentes prises pour: s. – Tom

+0

Ah, ne me lancez pas là-dessus. J'ai déjà brûlé mon PC (alimentation et carte mère) parce que je ne savais pas que le monde fonctionnait sur 2 tensions alternatives. À ce jour, le connecteur à 3 broches sur les alimentations électriques est le même pour les deux, la seule différence est l'étiquette (parfois manquante) sur l'alimentation (et peut-être un commutateur pour choisir entre eux). – slebetman

5

Vous ne pouvez pas faire cela directement. La meilleure chose que vous pouvez faire, puisque votre ordinateur n'a pas de port série RS-232, est d'en ajouter un. Cela peut se faire facilement via un convertisseur USB/RS232/dongle ou une carte PCI.

Vous ne pouvez pas programmer Ethernet pour qu'il se comporte comme RS-232.

+0

Merci de vous détendre, je viens d'en acheter deux. – Tom

2

Il existe une autre solution. Il existe des entreprises qui fabriquent des appareils série sur Ethernet. J'ai personnellement travaillé avec deux:

Digi

Lantronix

Il est une excellente solution mais un peu cher sur le côté.

+0

Bonjour Ron merci, oui, cela ressemble à une excellente solution. Malheureusement, j'ai déjà dépensé mon budget - peut-être que je peux persuader l'étudiant après moi que c'est ce qu'ils voulaient vraiment pour Noël. – Tom