|
|
(не показана 71 промежуточная версия 9 участников) |
Строка 1: |
Строка 1: |
| {{DISPLAYTITLE: Работа с последовательным портом (serial-портом)}}
| | Удобнее всего через minicom (установлен по-умолчанию в стандартном образе): |
| == Serial-порты в контроллере Wiren Board ==
| |
| === Реализация ===
| |
| Полное описание читайте в [http://www.tldp.org/HOWTO/Serial-HOWTO.html документации], вот выжимка из неё:
| |
| * В serial-порт можно посылать данные и получать данные из него.
| |
| * В ОС Linux serial-порты — это псевдофайлы из папки <code>/dev</code>. Например, в контроллерах Wiren Board это могут быть <code>/dev/ttyGSM</code>, <code>/dev/ttyRS485-1</code>, <code>/dev/ttyUSB0</code> — у всех в названии есть <code>tty</code>.
| |
|
| |
|
| Перед началом работы с serial-портом, настройте его скорость и параметры так же как настроено подключённое к нему устройство:
| | * Первый запуск minicom, создадим профиль работы с портом: |
| * Скорость в битах в секунду, самое популярное — 9600 бит/с.
| |
| * Количество бит в символе, чётность и количество стоп-битов. Популярна конфигурация 8N1 — восемь бит в символе, без проверки чётности, один стоп-бит.
| |
| * Аппаратный и программный контроль потока — если не уверены, то поставьте «Нет» в обоих параметрах.
| |
|
| |
|
| === Определение занятости порта и монопольное использование ===
| | <pre> |
| [[Image: Enable-disable serial port.png |300px|thumb|right| Отключение serial-порта в веб-интерфейсе контроллера Wiren Board ]]
| | $ minicom -s /dev/ttyAPP0 |
| Обычно, работать с serial-портом может только один процесс. Если порт «занят», то попытка передать или получить через него данные не удастся.
| | </pre> |
|
| |
|
| Используйте команду fuser для того, чтобы определить, свободен ли порт. В качестве параметра передайте порт, который нужно проверить.
| | * В serial port setup необходимо выбрать порт - <b>/dev/ttyAPP0</b>, скорость - <b>38400</b>, hardware flow control - <b> off </b> |
| | | * Сохранить настройки: Save setup |
| Проверим, свободен ли порт <code> /dev/ttyRS485-2</code>. Для этого выполните команду:
| | * Далее запускать как minicom /dev/ttyAPP0 |
| <syntaxhighlight lang="console"> | |
| # fuser -v /dev/ttyRS485-1
| |
| USER PID ACCESS COMMAND
| |
| /dev/ttyS2: root 32296 F.... wb-mqtt-serial
| |
| </syntaxhighlight> | |
| Если вывод пуст — порт свободен. Иначе будет выведен процесс, который занимает порт. В примере выше порт занят драйвером wb-mqtt-serial.
| |
| | |
| В контроллерах Wiren Board порты <code>/dev/ttyRS485-1</code> и <code>/dev/ttyRS485-2</code> обычно заняты драйвером <code>wb-mqtt-serial</code>. Перед работой с этими портами — остановите драйвер одним из способов:
| |
| * [[wb-mqtt-serial#Управление драйвером | Остановить драйвер]] из командной строки.
| |
| * [[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] или терминальный клиент <code>cu</code>: <code>cu -s 115200 -l /dev/usbmodem00001</code>
| |
| * Android: [https://play.google.com/store/apps/details?id=jp.sugnakys.usbserialconsole&hl=en_US USB Serial Console] и другие аналогичные программы.
| |
| | |
| Дополнительно:
| |
| * Если вы не можете использовать программы из этой статьи — посмотрите [http://elinux.org/RPi_Serial_Connection этот список].
| |
| * Если serial-устройство поддерживает протокол Modbus RTU, то вы можете работать с ним с помощью утилиты [[modbus_client]].
| |
| * Вы пишете скрипт или свою программу для работы с serial-портом — руководствуйтесь советами из [https://tldp.org/HOWTO/Serial-Programming-HOWTO/ Serial-Programming-HOWTO].
| |
| | |
| <gallery mode="traditional" widths="250px" caption="Примеры работы с serial-портом в различных программах">
| |
| Image: Akko setting address.png |Отправка команд через [[serial_tool]]
| |
| Image: Minicom-AT-4G.png | Отправка AT-команд в программе [[minicom]]
| |
| Image: Putty serial logged in.png | Работа с Debug-консолью в [[PuTTY]]
| |
| </gallery>
| |