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

Материал из Wiren Board
(Новая страница: «== Interactive mode from the console ==»)
(Новая страница: «The most convenient tool to work with the serial port from the console is ''minicom'' (available in the standard image of the Wiren Board controller). Minicom is…»)
Строка 65: Строка 65:
== Interactive mode from the console ==
== Interactive mode from the console ==


Самая удобная утилита для работы с последовательным портом из консоли - '''minicom''' (есть в стандартном образе Wiren Board).
The most convenient tool to work with the serial port from the console is ''minicom'' (available in the standard image of the Wiren Board controller). Minicom is convenient to use for working with devices that are controlled by text commands or output text messages. The examples of such devices are GSM modems (controlled by AT commands), including the GSM module built into the Wiren Board; GPS modules operating under the NMEA Protocol, etc.
Minicom удобно пользоваться для работы с устройстами, которые управляются текстовыми командами или выводят текстовые сообщения. Примерами таких устройств являются GSM-модемы (управляются AT-командами), в том числе встроенный в Wiren Board GSM-модуль; GPS-модули, работающие по протоколу NMEA и т.п.


Краткая инструкция (считаем, что мы будем работать с портом /dev/ttyAPP0):
Краткая инструкция (считаем, что мы будем работать с портом /dev/ttyAPP0):

Версия 20:19, 29 мая 2019

Другие языки:

Before you start

A monumental description of the serial ports - http://www.tldp.org/HOWTO/Serial-HOWTO.html


The following is a brief, inaccurate description.

You can send data to the serial port and receive it from there. In Linux, serial ports are represented as some pseudo-files from the /dev/ folder, for example, in the Wiren Board it is /dev/ttyAPP0, /dev/ttyNSC1, /dev/ttyUSB0 (all have tty in the name).

Before you start working with the port, you need to adjust its speed and other parameters depending on what device is connected to it:

  • speed in bits per second. The most popular value is 115200
  • number of bits in the symbol, parity, number of stop bits. The most popular configuration is called 8N1 - eight bits per character, no parity, one stop bit
  • hardware and software flow control. If you do not know it - put no in both cases.


Interactive HEX-terminal serial_tool

For interactive sending and receiving of data in HEX (hexadecimal) format, use the serial_tool utility (already installed on the Wiren Board).

Help

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)


An example of running

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

The settings are 9600 8N2, 1 second timeout, port /dev/ttyNSC1 (RS-485).


Interactive mode from the console

The most convenient tool to work with the serial port from the console is minicom (available in the standard image of the Wiren Board controller). Minicom is convenient to use for working with devices that are controlled by text commands or output text messages. The examples of such devices are GSM modems (controlled by AT commands), including the GSM module built into the Wiren Board; GPS modules operating under the NMEA Protocol, etc.

Краткая инструкция (считаем, что мы будем работать с портом /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.


Работа с последовательным портом из своей программы

http://tldp.org/HOWTO/Serial-Programming-HOWTO/