Serial Port: различия между версиями

Материал из Wiren Board
Строка 50: Строка 50:


Прочее:
Прочее:
* Если по каким-то причинам вы не можете использовать программы из этой статьи — посмотрите [http://elinux.org/RPi_Serial_Connection этот список программ].
* Вы не можете использовать программы из этой статьи — посмотрите [http://elinux.org/RPi_Serial_Connection этот список программ].
* Если serial-устройство поддерживает протокол Modbus RTU, то вы можете работать с ним с помощью утилиты [[modbus_client]].
* Serial-устройство поддерживает протокол Modbus RTU, то вы можете работать с ним с помощью утилиты [[modbus_client]].
* Если вы пишете скрипт или свою программу для работы с serial-портом, то руководствуйтесь советами из [https://tldp.org/HOWTO/Serial-Programming-HOWTO/ Serial-Programming-HOWTO].
* Вы пишете скрипт или свою программу для работы с serial-портом руководствуйтесь советами из [https://tldp.org/HOWTO/Serial-Programming-HOWTO/ Serial-Programming-HOWTO].

Версия 11:00, 26 августа 2021

Отключение serial-порта в веб-интерфейсе контроллера Wiren Board
Пример работы с утилитой serial_tool
Отправка AT-команд для модема в терминале программы minicom
Приветственное сообщение контроллера Wiren Board при подключении к его Debug-консоли через PuTTY

Serial-порты в контроллере Wiren Board

Реализация

Полное описание читайте в документации, вот выжимка из неё:

  • В serial-порт можно посылать данные и получать данные из него.
  • В ОС Linux serial-порты — это псевдофайлы из папки /dev. Например, в контроллерах Wiren Board это могут быть /dev/ttyGSM, /dev/ttyRS485-1, /dev/ttyUSB0 — у всех в названии есть tty.

Перед началом работы с serial-портом, настройте его скорость и параметры так же как настроено подключённое к нему устройство:

  • Скорость в битах в секунду, самое популярное — 9600 бит/с.
  • Количество бит в символе, чётность и количество стоп-битов. Популярна конфигурация 8N1 — восемь бит в символе, без проверки чётности, один стоп-бит.
  • Аппаратный и программный контроль потока — если не уверены, то поставьте «Нет» в обоих параметрах.

Определение занятости порта и монопольное использование

Обычно, работать с serial-портом может только один процесс. Если порт «занят», то попытка передать или получить через него данные не удастся.

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

Проверим, свободен ли порт /dev/ttyRS485-2. Для этого выполните команду:

fuser /dev/ttyRS485-1

Если вывод пуст — порт свободен. Иначе будет выведен процесс, который занимает порт.

В контроллерах Wiren Board порты /dev/ttyRS485-1 и /dev/ttyRS485-2 обычно заняты драйвером wb-mqtt-serial. Перед работой с этими портами — остановите драйвер одним из способов:

Программы для работы с serial-портом

ОС Linux:

ОС Windows:

macOS:

  • PuTTY for Mac OS X
  • терминальный клиент cu: cu -s 115200 -l /dev/usbmodem00001

Android:

Прочее:

  • Вы не можете использовать программы из этой статьи — посмотрите этот список программ.
  • Serial-устройство поддерживает протокол Modbus RTU, то вы можете работать с ним с помощью утилиты modbus_client.
  • Вы пишете скрипт или свою программу для работы с serial-портом — руководствуйтесь советами из Serial-Programming-HOWTO.