СВД Встраиваемые Системы 558b729c13 | ||
---|---|---|
.. | ||
linux64 | ||
nto | ||
Makefile | ||
README.md | ||
common.mk | ||
crc16.c | ||
crc16.h | ||
sertest.c | ||
sertest.use |
README.md
sertest
Тест последовательных портов (COM-портов) с передачей, получением и проверкой пакетов с данными.
Синтаксис
sertest -m устройство -rw [-p размер] [-d задержка] [-c счётчик] [-v[vv]]
Опции
-
-m устройство
Устройство последовательного порта. Например: /dev/ser2. По умолчанию: /dev/ser1
-
-r
Режим чтения.
-
-w
Режим записи.
-
-p размер
Размер посылаемого и принимаемого пакета с данными в байтах. По умолчанию: 128 байт.
-
-d задержка
Только для отправляющей стороны: задержка в миллисекундах между оправками данных. По умолчанию: 100 миллисекунд. Задайте 0 для отключения задержки.
-
-c счётчик
Только для отправляющей стороны: количество пакетов для отправки. По умолчанию не задано, бесконечная отправка.
-
-v[vv]
Включение дополнительного отладочного вывода о количестве и составе передаваемых/получаемых пакетов.
Описание
Утилита sertest формирует и затем передаёт или принимает пакет с данными через последовательный интерфейс (RS232/RS422/RS485).
Предполагается, что два порта будут соединены между собой и будет запущено две копии программы: на приём (опция -r) и на передачу (опция -w).
При приёме проверяется контрольная сумма полученного пакета и, если она не совпадает с ожидаемой, выводится сообщение об ошибке и увеличивается счётчик ошибок CRC.
Предостережения
Размеры пакета с передающей и принимающей стороны должны совпадать.
При слишком большой интенсивности обмена (большой размер пакет, низкие задержки между оправками) контроллер может не успевать отправлять/принимать данные, будет происходить переполнение аппаратных FIFO контроллера UART и данные будут теряться. Отследить возникновение аппаратных ошибок UART можно по сообщениям от библиотеки io-char в системном журнале sloginfo, например: io-char: H/W fifo Overrun error on /dev/ser6 В общем случае при наличии подобных ошибок следует снизить интенсивность обмена.
Примеры
Перед запуском теста необходимо соединить два COM-порта между собой, открыть две консоли и запустить две копии sertest.
В первой консоли в режиме чтения из порта /dev/ser1:
sertest -m /dev/ser1 -v -r
Во второй консоли в режиме записи из порт /dev/ser2:
sertest -m /dev/ser2 -v -w
Увеличить размер пакета до 2048 байт, паузу между оправками снизить до 1мс. С принимающей стороны:
sertest -m /dev/ser1 -r -p 2048
С передающей стороны:
sertest -m /dev/ser1 -w -p 2048 -d 1