Almanah

 
<<< Back

Сервис ser2net

Сервис ser2net: установка и настройка шлюза Serial-to-TCP порт

Вводные

МиниПК: BananaPiPro
Операционная система: ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
Установка ОС по ссылке
Материал к статье по ссылке

Установка ser2net

Чтобы установить ser2net на BananaPiPro, достаточно выполнить команду:

# apt-get install ser2net

Настройка ser2net

После установки пакета в конфигурационном файле необходимо добавить интересующее устройство и описать параметры подключения. Редактируем файл конфигурации /etc/ser2net.conf. Основное тело после установки такое:

...

BANNER:banner:\r\nser2net port \p device \d [\s] (Debian GNU/Linux)\r\n\r\n

2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner
2001:telnet:600:/dev/ttyS1:9600 8DATABITS NONE 1STOPBIT banner
3000:telnet:600:/dev/ttyS0:19200 8DATABITS NONE 1STOPBIT banner
3001:telnet:600:/dev/ttyS1:19200 8DATABITS NONE 1STOPBIT banner

Здесь:
BANNER - описывает опцию banner - строку, которая будет выводиться в порт при подключении.
Cледующие строки описаны в формате:
TCP port : state : timeout : device : options (option1 option2 - через пробел)
где:
TCP port - TCP порт который служба будет слушать и в который будет писать данные
state - по сути тип подключения, может принимать значения raw, rawlp, telnet или off

  • raw - включает порт и передает все данные как есть между портом и device;
  • rawlp - включает порт и передает все входные данные на device, при этом device открыт без каких-либо настроек (настройки device поумолчанию);
  • telnet - для поддержки протокола telnet;
  • off - закрытый порт

timeout - время в секундах, по истечению которого порт закроет соединение при отсутствии активности. Значение 0 отключает эту функцию
device - имя устройства к которому подключается порт. Это должно быть устройство из /dev/tty... Например, может быть UART - /dev/ttySx или USB - /dev/ttyUSBx
options - список параметров для последовательного порта. Значение:

  • 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 устанавливает скорость передачи в бодах;
  • EVEN, ODD, NONE устанавливает паритет/четность;
  • 1STOPBIT, 2STOPBITS устанавливает количество стоп-битов;
  • 7DATABITS, 8DATABITS устанавливает число битов данных;
  • XONXOFF включает и -XONXOFF отключает поддержку XON/XOFF;
  • RTSCTS включает и -RTSCTS отключает hardware flow control;
  • LOCAL включает и -LOCAL отключает мониторинг модемных линий;
  • HANGUP_WHEN_DONE включает и -HANGUP_WHEN_DONE отключает опускание линий управления модемом при завершении соединения.

В итоге, комментируем все строки (ибо не нужны) и пишем свою конфигурацию.
Будем подключать /dev/ttyUSB0 (в данном примере это USB to UART конвертер) к TCP порту. Список номеров портов, используемых протоколами TCP/IP транспортного уровня для установки соединения между двумя хостами можно посмотреть здесь. Выбрал 1884 т.к. не занят и рядом с MQTT. Редактируем файл конфигурации /etc/ser2net.conf:

...

1884:raw:0:/dev/ttyUSB0:19200 NONE 2STOPBITS 8DATABITS -XONXOFF -RTSCTS LOCAL

Скорость в 19200 и 2-а стоп-бита обусловлено использование порта для Modbus (ну что-бы было по фэн-шую).

Запуск ser2net

После настройки перезапускаем службу:

# service ser2net restart

Что-бы убедиться что порт прослушивается выполнить:

# ss -l | grep 1884

Discuss (4) (2)

See also:
2018-03-21 Arduino и Serial ModbusTCP
2018-03-20 Arduino IDE на BananaPiPro
2018-03-20 Сервис SAMBA
2018-03-19 Armbian 5.38 (mainline) на BananaPiPro

Омск, Россия

На форуме: Almanah