@black_list_man

Какие особенности работы с физическими последовательными портами?

Имеется промышленный компьютер с несколькими физическими последовательными интерфейсами.
Обнаружил, что в отличии от виртуальных портов, недостаточно просто указать нужный бодрейт при открытии порта (с использованием допустим python (pySerial)), необходимо также установить соотвествующий baud_base при помощи команды sudo setserial /dev/ttyS0 baud_base 115200, иначе данные будут искажены. Я не понимаю что такое baud_base и в каком соответствии он находится с бодрейтом, который я указываю при открытии порта. А при скорости 460800 и установка base_baud в соотвествующее значение не помогает - получаю мусор. Неужели контроллер (fintek f81803) не поддерживает такую скорость, или есть какой-то нюанс?
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ответы на вопрос 2
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Тут самое главное:
1) да контролеер может не поддерживать
2) автоопределения скорости нет! Поэтому скорость нужно устанавливать до передачи данных на обеих концах одинаковую!
3) на больших скоростях может шуметь линия и тупо приходить грязь. И да, по стандарту всего 12 метров для rs-232. Иначе сигнал тухнет.
4) сигнал аналоговый и в нем не предусмотрено никаких шумодавов, crc, fec и прочего...
Ответ написан
@pfg21
ex-турист
предположу реализация програмного драйвера косячит и не может нормально принимать скорость установки порта, умеет только sudo setserial /dev/ttyS0 baud_base 115200 :)
"это не баг, это особенность" :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы