Ложная передача при чтении с последовательного порта под linux (ttyUSB ..) - PullRequest
0 голосов
/ 18 марта 2019

У меня есть конвертер USB в RS485, подключенный к моей Linux-коробке:

ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

и он в настоящее время работает, используя

stty -F /dev/ttyUSB0 raw 57600

Поэтому, когда я записываю некоторые символы на устройстве (используя echo или аналогичный на консоли), я могу наблюдать за светодиодной вспышкой TX и четко определять символы на осциллографе.

Однако, когда я пытаюсь прочитать из него символы, происходит нечто странное:

  • Я подключил простой телетайпер к выходу RS485.
  • Когда я набираю на нем пару символов, я могу наблюдать за осциллографом и замечаю мигание светодиода RX в преобразователе.
  • Затем я начинаю читать с устройства, например, используя cat /dev/ttyUSB0.
  • Теперь, когда я набираю символ на телетайпере , мигают светодиоды RX и TX , и, как и ожидалось, я вижу искаженные сигналы на осциллографе, поскольку RS485 является только полудуплексным. Так что в основном телетайпер использует линии одновременно с тем, что окно linux, похоже, что-то посылает, вызывая конфликт.
  • Когда я убиваю cat процесс, он останавливается и все снова хорошо.

Я никогда не был свидетелем этого раньше. Чего мне не хватает?

1 Ответ

1 голос
/ 18 марта 2019

Как и вы.

Это дисциплина линии: в окне linux было включено эхо, поэтому оно фактически отражало каждый входящий символ.

Решение состоит в том, чтобы отключить это:

stty -F /dev/ttyUSB0 -echo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...