Rs 232 ethernet linux

/dev/blog

При такой схеме передаются данные, но не управляющая информация. Настройка виртуального терминала на хосте client никак не отражается на реальном терминале на хосте server. Это значит, что приложения, которые используют ioctl(2) или termios(3) , не будут работать так, как ожидается.

Способ 2: RFC 2217

Более сложный способ – использовать RFC 2217 для удаленного управления терминалом. Это расширение telnet, которое описывает передачу управляющей информации для последовательного порта.

Сервер

server$ ser2net -d -C '23:telnet:0:/dev/ttyS0'
server$ nc -l -p 23 -c '/usr/sbin/sredird 5 /dev/ttyS0 sredird.lock'

Клиент

client$ kermit -q C-Kermit>set carrier-watch off C-Kermit>telnet SERVER_IP

cyclades-serial-client – клиент для сервера RFC 2217. Он работает с помощью трюка с LD_PRELOAD .

  1. Виртуальный терминал /dev/pts/N .
  2. Символическая ссылка на него /dev/NAME .
  3. Локальный сокет /dev/NAME.control .

Настраиваем конфиг клиента /etc/cyclades-devices (без этого не будет работать трюк с LD_PRELOAD ):

/dev/mytty:prts:SERVER_IP:0:rfc2217:
client$ cyclades-ser-cli -d 3 -m 1 -x /dev/mytty SERVER_IP 0
client$ echo hello > /dev/mytty

Cообщение hello должен получить тот, кто подключен к порту /dev/ttyS0 на хосте server .
Проверяем настройку baud rate :

client$ export LD_PRELOAD=/usr/lib/libcyclades-ser-cli.so client$ stty -F /dev/mytty 38400
server$ stty -F /dev/ttyS0 speed 38400 baud; .

У меня этот клиент работает с сервером sredird , но не работает с ser2net .

  • Не все параметры ioctl() реализованы.
  • Подход с использованием LD_PRELOAD для ioctl() и tcgetattr() работает не для всех приложений. У меня так и не заработала команда setserial(8) .

And this is still something that should be done in userspace if necessary
by fixing up the tty layer to support pty/tty pair modem lines and
termios change reporting, or some kind of generic vt that can also
expose all the config other net protocols might need.

Читайте также:  Linux папка lost found

TTYredirector

TTYredirector реализует сервер и клиент RFC 2217, создавая на клиенте виртуальный терминал. Автоматического перенаправления управляющих команд с локального терминала на удаленный нет, его нужно настраивать вручную с помощью специальной утилиты, так что это решение подвержено тем же проблемам, что способ в socat .

Способ 3: Serial to Ethernet Converter

Serial to Ethernet Converter – устройство, преобразующее RS-232 (и/или другие протоколы) в Ethernet и обратно.

Источник

Подключаем последовательные интерфейсы по IP

Последовательные интерфейсы RS-232/422/485 до сих пор очень популярны в промышленности: по ним подключаются диагностические порты, датчики, сканеры штрих-кодов и RFID меток и т.д. Однако последовательные интерфейсы имеют свои ограничения. Иногда возникает необходимость получить доступ к такому интерфейсу по IP-сети, или, например, иметь доступ к одному устройству с RS-232 с нескольких удаленных компьютеров одновременно, или объединить несколько удаленных объектов в одну шину RS-485.

Сервер последовательных интерфейсов конвертирует последовательные физические протоколы в IP-пакеты, и позволяет программно управлять ими — подключать удаленный виртуальный COM-порт к компьютеру по сети так, будто он подключен физически, и прозрачно соединять несколько устройств в режиме P2P, без использования компьютеров.

В статье мы разберем сервер последовательных интерфейсов Advantech EKI-1524, имеющий четыре последовательный порта, каждый из которых поддерживает протоколы RS-232/422/485, и два LAN-порта.

Сервер последовательных интерфейсов EKI-1524 имеет четыре порта DB9 и два LAN-порта.

  • Виртуальный COM-порт — позволяет программно эмулировать виртуальный COM-порт удаленного устройства на системе Linux.
  • Одновременное подключение нескольких клиентов — в режиме сервера дает возможность использовать один последовательный порт для нескольких устройств одновременно.
  • Работа в режиме P2P — одновременная работа в режиме клиента и сервера позволяет объединить несколько EKI-1524 напрямую, без использования серверов и компьютеров.
Читайте также:  Linux format usb disk storage format tool

Характеристики

Серия последовательных серверов EKI-1500 представлена широким спектром устройств для различных задач. От серверов с одним последовательным портом: EKI-1511X до серверов на 16 портов, для монтажа в серверную стойку, таких как EKI-1526N.

Дополнительно представлены модели с повышенным уровнем защищенности, для работы в экстремальных условиях, и гальванической развязкой портов, для защиты от высоких напряжений: EKI-1522I, EKI-1524I, и другие.

Все модели поддерживают подключение двух источников питания. Переключение между источниками питания происходит без перезагрузки устройства. Реле индикации обрыва питания замыкается в случае, если на одной из линий отсутствует напряжение.

Виртуальный COM-порт

Сервер последовательных интерфейсов позволяет по TCP/IP получить доступ к удаленным устройствам таким образом, что для прикладного ПО это будет выглядеть так, будто устройства подключены к физическому COM-порту.

Принцип работы виртуального COM-порта по сети Ethernet

Для этого на стороне клиента используется модуль ядра Linux и программа для обмена данными с сервером последовательных интерфейсов. В итоге для пользователя такое подключение выглядит как физический порт (устройство /dev/ttyADV0).

На данный момент Advantech выпускает драйвера виртуального COM-порта только для ОС Linux. Инструкция по сборке модуля ядра VCOM 2.0 на Ubuntu.
Также существуют бинарные пакеты драйвера под разные дистрибутивы: Linux Pseudo TTY

В веб-интерфейсе можно настроить параметры работы в данном режиме:

Дополнительные настройки. Можно вручную задать таймауты и т.д:

Настройки параметров последовательного интерфейса. В этом меню также можно изменить основной протокол (RS-232/422/485), для каждого порта.

Режим RFC 2217

Также доступен открытый протокол перенаправления COM-порта RFC 2217, представляющий собой расширенные команды для протокола Telnet. В этом режиме устройство принимает входящие подключения по TCP, в настройках можно указать порт для входящий соединений.

Читайте также:  Преимущества и недостатки linux mint

Режим P2P

Для сложных случаев, когда несколько устройств нельзя соединить напрямую, можно использовать два терминальных сервера в режиме прозрачного моста. Таким образом можно подключить удаленные устройства, используя в качестве транспорта TCP/IP.

Подключение двух удаленных устройств по последовательному протоколу через TCP/IP-транспорт

Таким образом можно программно переключать устройства между собой, соединять удаленные шины по RS-485 и делать много другое, используя все преимущества IP-сетей, включая радиомосты, виртуальные частные сети (VPN) и т.д. Передаваемые данные между двумя серверами можно дополнительно защитить от перехвата, используя шифрование на транспортном уровне.

Уведомления о событиях

Устройство позволяет настроить уведомления о событиях с помощью Email и SNMP Trap. MIB-файл для настройки SNMP-сервера доступен для каждого устройства.

События для уведомлений можно настроить вручную.

Логирование через Syslog

В веб-интерфейсе можно задать адрес удаленного Syslog-сервера для логирования. В лог записываются события подключения клиентов, ошибки аутентификации, статус LAN и последовательных портов и т.д.

Первичная настройка

Первичную конфигурацию сервера последовательных интерфейсов можно выполнить через утилиту EKI Device Configuration Utility. При этом утилита работает через ARP-пакеты и не требует настройки соответствующего IP-адреса на сетевом интерфейсе. Это значит, что можно задать любой IP-адрес устройству, без утраты доступа.

Заключение

Серверы последовательных интерфейсов позволяют обходить ограничения, которые накладывают физические протоколы, и легко масштабировать подключения. Режим P2P позволяет подключать устаревшие устройства, используя интернет в качестве транспорта, при этом обходиться без серверов.

Ссылки

Источник

Оцените статью
Adblock
detector