последовательное соединение RS-232 через кабель Ethernet (TCP) - PullRequest
0 голосов
/ 10 декабря 2010

У меня есть аппаратное устройство, которое управляется через интерфейс RS-232 (это ультразвуковой генератор-приемник). Мне нужно написать программу для отправки команд на устройство с моего компьютера. Однако, как правило, устройство не имеет последовательного порта (COM-порт DB-9), а имеет розетку RJ45 (разъем Ethernet). Устройство поставляется с адаптером для подключения порта Ethernet на устройстве к последовательному кабелю для связи с компьютером.

К сожалению, мой компьютер не имеет последовательного порта - только порт Ethernet. Если возможно, я бы хотел покончить с адаптером и подключить мой компьютер напрямую к устройству с помощью кабеля Ethernet. Это возможно физически - но я не знаю, как преобразовать протокол сообщения? Например, мое устройство не имеет IP-адрес, с которого можно открыть сокет TCP?

До сих пор я использовал Boost.asio (на коробке с Ubuntu) для отправки потоков сообщений через сокет tcp на другие устройства, которые поддерживают tcp. Если возможно, я бы хотел продолжать использовать библиотеку Boost.Asio, поскольку она кроссплатформенная. Я действительно не знаю, с чего начать - я всегда использовал библиотеку Boost.Asio, которая хорошо скрывает большинство проблем с протоколом. Однако я считаю, что это возможно, поскольку существуют программы для Windows, которые, похоже, выполняют аналогичные действия, см., Например, http://com0com.sourceforge.net/

.

Любой руководящий совет будет приветствоваться. Большое спасибо

Ответы [ 3 ]

7 голосов
/ 10 декабря 2010

На самом деле это не работает физически. Это просто работает механически. Физические электрические напряжения и токи, используемые Ethernet, очень отличаются от используемых последовательных портов. Мало того, что распиновки также несовместимы.

К счастью для вас, Ethernet использует сигналы с магнитной связью, иначе вы бы прожарили свою материнскую плату или ультразвуковое устройство.

Это не просто вопрос программных протоколов.

5 голосов
/ 10 декабря 2010

Вы не можете сделать это напрямую. Лучшее, что вы можете сделать, поскольку на вашем компьютере отсутствует последовательный порт RS-232, это добавить его.

Это легко сделать с помощью преобразователя / ключа USB-RS232 или карты PCI.

Вы не можете запрограммировать Ethernet так, чтобы он действовал как RS-232.

2 голосов
/ 30 декабря 2010

На самом деле есть другое решение.Есть компании, которые производят устройства с последовательным интерфейсом.Я лично работал с двумя:

Digi

Lantronix

Это отличное решение, хотя и немного дорогобоковая сторона.

...