Serial Port: различия между версиями
м (→Serial_tool) |
м (Добавил картинок) |
||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Работа с последовательным портом (serial-портом)}} | {{DISPLAYTITLE: Работа с последовательным портом (serial-портом)}} | ||
== | [[Image: Enable-disable serial port.png |500px|thumb|right| Отключение serial-порта в веб-интерфейсе контроллера Wiren Board ]] | ||
=== Реализация | [[Image: Akko setting address.png |500px|thumb|right| Пример работы с утилитой [[serial_tool]] ]] | ||
[[Image: Minicom-AT-4G.png |500px|thumb|right| Отправка AT-команд для модема в терминале программы [[minicom]]]] | |||
[[Image: Putty serial logged in.png|500px|thumb|right| Приветственное сообщение контроллера Wiren Board при подключении к его Debug-консоли через [[PuTTY]]]] | |||
== Serial-порты в контроллере Wiren Board == | |||
=== Реализация === | |||
Полное описание читайте в [http://www.tldp.org/HOWTO/Serial-HOWTO.html документации], вот выжимка из неё: | Полное описание читайте в [http://www.tldp.org/HOWTO/Serial-HOWTO.html документации], вот выжимка из неё: | ||
* В serial-порт можно посылать данные и получать данные из него. | * В serial-порт можно посылать данные и получать данные из него. | ||
Строка 12: | Строка 17: | ||
=== Определение занятости порта и монопольное использование === | === Определение занятости порта и монопольное использование === | ||
Обычно, работать с serial-портом может только один процесс. Если порт «занят», то попытка передать или получить через него данные не удастся. | Обычно, работать с serial-портом может только один процесс. Если порт «занят», то попытка передать или получить через него данные не удастся. | ||
Строка 28: | Строка 32: | ||
* [[RS-485:Configuration via Web Interface | В веб-интерфейсе контроллера]], в настройках serial-порта снять галочку «Enable port» и сохранить настройки. | * [[RS-485:Configuration via Web Interface | В веб-интерфейсе контроллера]], в настройках serial-порта снять галочку «Enable port» и сохранить настройки. | ||
== | == Программы для работы с serial-портом == | ||
ОС Linux: | |||
* [[Serial_tool | Serial_tool]] | |||
* [[Minicom | Minicom]] | |||
* [[PuTTY | PuTTY]] | |||
ОС Windows | |||
* [[PuTTY | PuTTY]] | |||
macOS: | |||
* [https://www.ssh.com/ssh/putty/mac/ PuTTY for Mac OS X] | * [https://www.ssh.com/ssh/putty/mac/ PuTTY for Mac OS X] | ||
* терминальный клиент <code>cu</code>: | * терминальный клиент <code>cu</code>: | ||
Строка 55: | Строка 49: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Android: | |||
* [https://play.google.com/store/apps/details?id=jp.sugnakys.usbserialconsole&hl=en_US USB Serial Console] и другие аналогичные программы. | |||
Прочее: | |||
Если по каким-то причинам вы не можете использовать программы из этой статьи — посмотрите [http://elinux.org/RPi_Serial_Connection этот список программ]. | * Если по каким-то причинам вы не можете использовать программы из этой статьи — посмотрите [http://elinux.org/RPi_Serial_Connection этот список программ]. | ||
* Если serial-устройство поддерживает протокол Modbus RTU, то вы можете работать с ним с помощью утилиты [[modbus_client]]. | |||
* Если вы пишете скрипт или свою программу для работы с serial-портом, то руководствуйтесь советами из [https://tldp.org/HOWTO/Serial-Programming-HOWTO/ Serial-Programming-HOWTO]. |
Версия 10:51, 26 августа 2021
Serial-порты в контроллере Wiren Board
Реализация
Полное описание читайте в документации, вот выжимка из неё:
- В serial-порт можно посылать данные и получать данные из него.
- В ОС Linux serial-порты — это псевдофайлы из папки
/dev
. Например, в контроллерах Wiren Board это могут быть/dev/ttyGSM
,/dev/ttyRS485-1
,/dev/ttyUSB0
— у всех в названии естьtty
.
Перед началом работы с serial-портом, настройте его скорость и параметры так же как настроено подключённое к нему устройство:
- Скорость в битах в секунду, самое популярное — 115200 бит/с.
- Количество бит в символе, чётность и количество стоп-битов. Популярна конфигурация 8N1 — восемь бит в символе, без проверки чётности, один стоп-бит.
- Аппаратный и программный контроль потока — если не уверены, то поставьте «Нет» в обоих параметрах.
Определение занятости порта и монопольное использование
Обычно, работать с serial-портом может только один процесс. Если порт «занят», то попытка передать или получить через него данные не удастся.
Используйте команду fuser для того, чтобы определить, свободен ли порт. В качестве параметра передайте порт, который нужно проверить.
Проверим, свободен ли порт /dev/ttyRS485-2
. Для этого выполните команду:
fuser /dev/ttyRS485-1
Если вывод пуст — порт свободен. Иначе будет выведен процесс, который занимает порт.
В контроллерах Wiren Board порты /dev/ttyRS485-1
и /dev/ttyRS485-2
обычно заняты драйвером wb-mqtt-serial
. Перед работой с этими портами — остановите драйвер одним из способов:
- Остановить драйвер из командной строки.
- В веб-интерфейсе контроллера, в настройках serial-порта снять галочку «Enable port» и сохранить настройки.
Программы для работы с serial-портом
ОС Linux:
ОС Windows
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.