Serial Port: различия между версиями
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Работа с последовательным портом (serial-портом)}} | {{DISPLAYTITLE: Работа с последовательным портом (serial-портом)}} | ||
== Serial-порты в контроллере Wiren Board == | == Serial-порты в контроллере Wiren Board == | ||
=== Реализация === | === Реализация === | ||
Строка 23: | Строка 18: | ||
Проверим, свободен ли порт <code> /dev/ttyRS485-2</code>. Для этого выполните команду: | Проверим, свободен ли порт <code> /dev/ttyRS485-2</code>. Для этого выполните команду: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="console"> | ||
fuser /dev/ttyRS485-1 | # fuser -v /dev/ttyRS485-1 | ||
USER PID ACCESS COMMAND | |||
/dev/ttyS2: root 32296 F.... wb-mqtt-serial | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Если вывод пуст — порт свободен. Иначе будет выведен процесс, который занимает порт. | Если вывод пуст — порт свободен. Иначе будет выведен процесс, который занимает порт. В примере выше порт занят драйвером wb-mqtt-serial. | ||
В контроллерах Wiren Board порты <code>/dev/ttyRS485-1</code> и <code>/dev/ttyRS485-2</code> обычно заняты драйвером <code>wb-mqtt-serial</code>. Перед работой с этими портами — остановите драйвер одним из способов: | В контроллерах Wiren Board порты <code>/dev/ttyRS485-1</code> и <code>/dev/ttyRS485-2</code> обычно заняты драйвером <code>wb-mqtt-serial</code>. Перед работой с этими портами — остановите драйвер одним из способов: |
Текущая версия на 08:30, 13 апреля 2023
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 -v /dev/ttyRS485-1
USER PID ACCESS COMMAND
/dev/ttyS2: root 32296 F.... wb-mqtt-serial
Если вывод пуст — порт свободен. Иначе будет выведен процесс, который занимает порт. В примере выше порт занят драйвером wb-mqtt-serial.
В контроллерах Wiren Board порты /dev/ttyRS485-1
и /dev/ttyRS485-2
обычно заняты драйвером wb-mqtt-serial
. Перед работой с этими портами — остановите драйвер одним из способов:
- Остановить драйвер из командной строки.
- В веб-интерфейсе контроллера, в настройках serial-порта снять галочку Enable port и сохранить настройки.
Программы для работы с serial-портом
Программы для разных ОС:
- Linux: Serial_tool, Minicom, PuTTY.
- Windows: PuTTY.
- macOS: PuTTY for Mac OS X или терминальный клиент
cu
:cu -s 115200 -l /dev/usbmodem00001
- Android: USB Serial Console и другие аналогичные программы.
Дополнительно:
- Если вы не можете использовать программы из этой статьи — посмотрите этот список.
- Если serial-устройство поддерживает протокол Modbus RTU, то вы можете работать с ним с помощью утилиты modbus_client.
- Вы пишете скрипт или свою программу для работы с serial-портом — руководствуйтесь советами из Serial-Programming-HOWTO.
Отправка команд через serial_tool
Отправка AT-команд в программе minicom
Работа с Debug-консолью в PuTTY