Постановка задачи
Необходимо подключить устройство, управляемое через последовательный порт (COM, RS232), к компьютеру, который либо отдалён от этого устройства либо не оборудован последовательным портом. Или другими словами: “необходимо установить и запустить сервер последовательных портов”.
Очевидно, что один из компьютеров в сети всё-таки должен быть оборудован COM-портом; это и будет сервер. На нём необходимо установить некое ПО, которое будет предоставлять доступ к COM-порту по локальной сети. На стороне клиента, следовательно, должно быть установлено ПО, которое способно будет соединиться с сервером и вернуть своей операционной системе виртуальный COM-порт, к которому, в свою очередь, любая из требуемых программ сможет свободно подключаться как к самому настоящему COM-порту.
Установка ПО
В качестве подходящего ПО для решения задачи выбран проект ser2net (http://ser2net.sourceforge.net/). Для серверной части необходима Linux-машина. Пример установки серверной части (ArchLinux):
[orca@blizzard ~]$ sudo pacman -S ser2net |
Для клиентской части, например под MS Windows, выбрать из наиболее подходящих:
- HW VSP3 – Virtual Serial Port (http://www.hw-group.com/products/hw_vsp/index_en.html)
- Eterlogic Virtual Serial Ports Emulator (http://www.eterlogic.com/Products.VSPE.html)
- Free Virtual Serial Ports (http://www.hhdsoftware.com/free-virtual-serial-ports)
Эксперимент
Вначале необходимо подключить требуемое устройство к серверу (например, модем) и убедиться, что оно работает нормально:
[orca@blizzard ~]$ sudo ckermit (/home/orca/) C-Kermit> set line /dev/ttyS0 set speed 115200 set carrier-watch off connect -- AT[Enter] OK ATI9[Enter] (1.0USR0088\\Modem\USR9100\U.S. Robotics 56K Message)FF OK Ctrl+\ (/home/orca/) C-Kermit> quit Closing /dev/ttyS0...OK [orca@blizzard ~]$ |
Настроить соединение, запустить сервер ser2net:
[orca@blizzard ~]$ sudo mv /etc/ser2net.conf /etc/ser2net.conf.sample [orca@blizzard ~]$ sudo vi /etc/ser2net.conf BANNER:banner1:Welcome to ser2net TCP port \p device \d\r\n\ 2001:raw:600:/dev/ttyS0:19200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS 3001:telnet:0:/dev/ttyS0:19200 remctl banner1 [orca@blizzard ~]$ sudo ser2net |
Перейти на сторону клиента. Проверить связь программой telnet (Start → Run… → cmd → [OK]):
Microsoft Windows [Version 5.2.3790] (C) Copyright 1985-2003 Microsoft Corp. C:\Documents and Settings\Administrator>telnet 10.0.0.14 3001 ATI9[Enter] (1.0USR0088\\Modem\USR9100\U.S. Robotics 56K Message)FF OK Ctrl+] Microsoft Telnet> quit C:\Documents and Settings\Administrator> exit |
Замечание | Здесь и далее, в примерах, адрес 10.0.0.14 это адрес сервера с запущенным демоном “ser2net” |
Запустить клиентскую программу для связи с демоном “ser2net”, установить соединение.
Пример для HW VSP3:
- Start → Programs → HW Group → HW Virtual Serial Port Single → HW Virtual Serial Port
- Вкладка “Virtual Serial Port”:
- Port Name: COM3
- IP Address: 10.0.0.14
- Port: 2001
- Нажать [Create Port]
- Дождаться сообщений: “VSP Status: Connected” и “LAN Status: Connected”
Пример для Eterlogic Virtual Serial Ports Emulator:
- Start → Programs → Virtual Serial Ports Emulator → VSPE
- Create new device… → Connector → Next → COM3 → Finish
- Create new device… → TcpClient → Next → Remote TCP host: 10.0.0.14; Remote TCP port: 2001; Source serial port: COM3 → Finish
- Дождаться сообщений: “[COM3] Initialization … OK” и “TCP COM3 ⇒ 10.0.0.14:2001 Initialization … OK”
Открыть программу терминального доступа (PuTTY или Hyperterminal), организовать подключение через порт COM3, выполнить AT-команды для проверки.