Serial Port: различия между версиями
(Подготовка страницы к переводу) |
(Отметить эту версию для перевода) |
||
Строка 2: | Строка 2: | ||
<translate> | <translate> | ||
== Перед началом работы == | == Перед началом работы == <!--T:1--> | ||
<!--T:2--> | |||
Монументальное описание последовательных портов - http://www.tldp.org/HOWTO/Serial-HOWTO.html | Монументальное описание последовательных портов - http://www.tldp.org/HOWTO/Serial-HOWTO.html | ||
<!--T:3--> | |||
Далее будет дано краткое неточное описание. | Далее будет дано краткое неточное описание. | ||
<!--T:4--> | |||
В последовательный порт вы можете посылать данные, и получать их оттуда. В Linux последовательные порты представлены в виде некоторых псевдофайлов из папки ''/dev/'', например, в Wiren Board это ''/dev/ttyAPP0'', ''/dev/ttyNSC1'', ''/dev/ttyUSB0'' (у всех в названии есть ''tty''). | В последовательный порт вы можете посылать данные, и получать их оттуда. В Linux последовательные порты представлены в виде некоторых псевдофайлов из папки ''/dev/'', например, в Wiren Board это ''/dev/ttyAPP0'', ''/dev/ttyNSC1'', ''/dev/ttyUSB0'' (у всех в названии есть ''tty''). | ||
<!--T:5--> | |||
Перед тем, как начать работать с портом, надо настроить его скорость и другие параметры в зависимости от того, какое устройство к нему подключено: | Перед тем, как начать работать с портом, надо настроить его скорость и другие параметры в зависимости от того, какое устройство к нему подключено: | ||
* скорость в битах в секунду. Самое популярное значение 115200 | * скорость в битах в секунду. Самое популярное значение 115200 | ||
Строка 16: | Строка 20: | ||
== Интерактивный HEX-терминал serial_tool == | == Интерактивный HEX-терминал serial_tool == <!--T:6--> | ||
<!--T:7--> | |||
Для интерактивной отправки и приёма данных в HEX (шестнадцатеричном) формате используйте утилиту [https://github.com/contactless/serial_tool serial_tool] (уже установлена в Wiren Board). | Для интерактивной отправки и приёма данных в HEX (шестнадцатеричном) формате используйте утилиту [https://github.com/contactless/serial_tool serial_tool] (уже установлена в Wiren Board). | ||
=== Справка по использованию === | === Справка по использованию === <!--T:8--> | ||
<!--T:9--> | |||
<pre> | <pre> | ||
root@wirenboard:~# serial_tool -h | root@wirenboard:~# serial_tool -h | ||
Строка 28: | Строка 34: | ||
port | port | ||
<!--T:10--> | |||
serial_tool - interactive hex serial port console | serial_tool - interactive hex serial port console | ||
<!--T:11--> | |||
positional arguments: | positional arguments: | ||
port Serial port to open, i.e. /dev/ttyXXX | port Serial port to open, i.e. /dev/ttyXXX | ||
<!--T:12--> | |||
optional arguments: | optional arguments: | ||
-h, --help show this help message and exit | -h, --help show this help message and exit | ||
Строка 48: | Строка 57: | ||
=== Пример запуска === | === Пример запуска === <!--T:13--> | ||
<!--T:14--> | |||
<pre> | <pre> | ||
root@wirenboard:~# serial_tool -b 9600 -p N -d 8 -s 2 -t 1 /dev/ttyNSC1 | root@wirenboard:~# serial_tool -b 9600 -p N -d 8 -s 2 -t 1 /dev/ttyNSC1 | ||
Строка 63: | Строка 73: | ||
== Интерактивный режим работы из консоли == | == Интерактивный режим работы из консоли == <!--T:15--> | ||
<!--T:16--> | |||
Самая удобная утилита для работы с последовательным портом из консоли - '''minicom''' (есть в стандартном образе Wiren Board). | Самая удобная утилита для работы с последовательным портом из консоли - '''minicom''' (есть в стандартном образе Wiren Board). | ||
Minicom удобно пользоваться для работы с устройстами, которые управляются текстовыми командами или выводят текстовые сообщения. Примерами таких устройств являются GSM-модемы (управляются AT-командами), в том числе встроенный в Wiren Board GSM-модуль; GPS-модули, работающие по протоколу NMEA и т.п. | Minicom удобно пользоваться для работы с устройстами, которые управляются текстовыми командами или выводят текстовые сообщения. Примерами таких устройств являются GSM-модемы (управляются AT-командами), в том числе встроенный в Wiren Board GSM-модуль; GPS-модули, работающие по протоколу NMEA и т.п. | ||
<!--T:17--> | |||
Краткая инструкция (считаем, что мы будем работать с портом /dev/ttyAPP0): | Краткая инструкция (считаем, что мы будем работать с портом /dev/ttyAPP0): | ||
* В первый раз запускаем '''minicom''' с ключом, создающим профиль работы с портом (в нём хранятся номер порта, скорость передачи данных, чётность, и т.д.): | * В первый раз запускаем '''minicom''' с ключом, создающим профиль работы с портом (в нём хранятся номер порта, скорость передачи данных, чётность, и т.д.): | ||
Строка 82: | Строка 94: | ||
* Теперь можно вводить данные, которые вы хотите отправить в порт. Приходящие в порт данные от внешних устройств также будут выводиться | * Теперь можно вводить данные, которые вы хотите отправить в порт. Приходящие в порт данные от внешних устройств также будут выводиться | ||
<!--T:18--> | |||
---- | ---- | ||
== modbus-client == | == modbus-client == <!--T:19--> | ||
<!--T:20--> | |||
Одним из самых удобных средств отладки коммуникаций Modbus из командной строки Wiren Board является утилита '''modbus-client'''. | Одним из самых удобных средств отладки коммуникаций Modbus из командной строки Wiren Board является утилита '''modbus-client'''. | ||
Описание и примеры можно найти на этой странице [[Special:MyLanguage/modbus-client|modbus-client]]. | Описание и примеры можно найти на этой странице [[Special:MyLanguage/modbus-client|modbus-client]]. | ||
== Работа с последовательным портом из своей программы == | == Работа с последовательным портом из своей программы == <!--T:21--> | ||
<!--T:22--> | |||
http://tldp.org/HOWTO/Serial-Programming-HOWTO/ | http://tldp.org/HOWTO/Serial-Programming-HOWTO/ | ||
</translate> | </translate> |
Версия 20:12, 29 мая 2019
Перед началом работы
Монументальное описание последовательных портов - http://www.tldp.org/HOWTO/Serial-HOWTO.html
Далее будет дано краткое неточное описание.
В последовательный порт вы можете посылать данные, и получать их оттуда. В Linux последовательные порты представлены в виде некоторых псевдофайлов из папки /dev/, например, в Wiren Board это /dev/ttyAPP0, /dev/ttyNSC1, /dev/ttyUSB0 (у всех в названии есть tty).
Перед тем, как начать работать с портом, надо настроить его скорость и другие параметры в зависимости от того, какое устройство к нему подключено:
- скорость в битах в секунду. Самое популярное значение 115200
- количество бит в символе, чётность, количество стоп-битов. Самая популярная конфигурация называется 8N1 - восемь бит в символе, проверки чётности нет, один стоп-бит
- аппаратный и программный контроль потока. Если не знаете - поставьте нет в обоих настройках.
Интерактивный HEX-терминал serial_tool
Для интерактивной отправки и приёма данных в HEX (шестнадцатеричном) формате используйте утилиту serial_tool (уже установлена в Wiren Board).
Справка по использованию
root@wirenboard:~# serial_tool -h usage: serial_tool [-h] [-b BAUD] [-p PARITY] [-d DATA_BITS] [-s STOP_BITS] [-t READ_TIMEOUT] port serial_tool - interactive hex serial port console positional arguments: port Serial port to open, i.e. /dev/ttyXXX optional arguments: -h, --help show this help message and exit -b BAUD, --baud BAUD Baud rate (default: 9600) -p PARITY, --parity PARITY set parity, one of [N, E, O, M, S] (default: N) -d DATA_BITS, --data-bits DATA_BITS set number of data bits, i.e. bytesize (default: 8) -s STOP_BITS, --stop-bits STOP_BITS set number of stop bits, one of [1, 1.5, 2] (default: 1) -t READ_TIMEOUT, --timeout READ_TIMEOUT number of seconds to wait for answer (default: 1)
Пример запуска
root@wirenboard:~# serial_tool -b 9600 -p N -d 8 -s 2 -t 1 /dev/ttyNSC1 serial_tool on /dev/ttyNSC1: 9600 8N2.0 Enter your commands below in HEX form. All characters but 0-9,a-f including spaces are ignored. Press Control-D or Control-C to leave the application. Press [Enter] to print received data >> FF FF 0A 01 11 00 00 1C << FF FF 0A 00 11 00 00 1B
Здесь установлены настройки 9600 8N2, таймаут 1 секунда, порт /dev/ttyNSC1 (RS-485).
Интерактивный режим работы из консоли
Самая удобная утилита для работы с последовательным портом из консоли - minicom (есть в стандартном образе Wiren Board). Minicom удобно пользоваться для работы с устройстами, которые управляются текстовыми командами или выводят текстовые сообщения. Примерами таких устройств являются GSM-модемы (управляются AT-командами), в том числе встроенный в Wiren Board GSM-модуль; GPS-модули, работающие по протоколу NMEA и т.п.
Краткая инструкция (считаем, что мы будем работать с портом /dev/ttyAPP0):
- В первый раз запускаем minicom с ключом, создающим профиль работы с портом (в нём хранятся номер порта, скорость передачи данных, чётность, и т.д.):
$ minicom -s /dev/ttyAPP0
- Зайти в настройки (нажать Ctrl+A, затем O), выбрать пункт Serial port setup, там установить порт /dev/ttyAPP0, скорость и чётность - 115200, 8N1, Hardware flow control - No, Software flow control - No
- Сохранить настройки: Save setup as _dev_ttyAPP0
- Далее запускать как:
$ minicom /dev/ttyAPP0
(все параметры будут сразу браться из профиля с названием /dev/ttyAPP0, который мы ранее создали)
- Теперь можно вводить данные, которые вы хотите отправить в порт. Приходящие в порт данные от внешних устройств также будут выводиться
modbus-client
Одним из самых удобных средств отладки коммуникаций Modbus из командной строки Wiren Board является утилита modbus-client. Описание и примеры можно найти на этой странице modbus-client.