#linux #serial-port
#linux #последовательный порт
Вопрос:
У меня есть конвертер 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:
Как и вы.
Это линейная дисциплина: в окне Linux включено эхо, поэтому оно фактически воспроизводит каждый входящий символ.
Решение состоит в том, чтобы отключить это:
stty -F /dev/ttyUSB0 -echo