Москва: проверенные б/у ноутбуки с гарантией и проверкой перед оплатой
+7 906 722-94-45

Главная → Статьи → RS-232 и RS-485 на ноутбуке: кабели, распиновка и длина линии

RS-232 и RS-485 на современном ноутбуке: переходники, распиновка и предел длины линии

Чем отличаются RS-232 и RS-485 на электрическом уровне, зачем нужен null-modem, как считать предел длины кабеля и почему USB-переходник не равен настоящему UART.

Последовательный порт на современном ноутбуке почти всегда эмулируется USB-переходником, и это создаёт три класса проблем: электрические (несовместимые уровни), логические (перепутанные линии и режим DTE/DCE) и временные (задержки USB, которых нет у настоящего UART). Разобраться, какой из них ваш случай, можно за десять минут, если понимать разницу между интерфейсами.

Электрический уровень: почему нельзя соединить напрямую

Параметр RS-232 RS-485
Линия несимметричная, относительно земли дифференциальная пара (A/B)
Уровни примерно ±3…±15 В разность потенциалов ~1,5–5 В
Топология точка-точка многоточечная шина, до 32 устройств на сегмент
Режим полный дуплекс (RX/TX отдельно) обычно полудуплекс, 2 провода
Типовая длина до 15 м на 9600 бод до 1200 м на низкой скорости
Помехоустойчивость низкая высокая за счёт дифференциального сигнала

Прямое соединение TTL-выхода микроконтроллера (0/3,3 В) с RS-232 «сгорит» или не заработает: нужен трансивер, например MAX3232 для 3,3 В логики. Для RS-485 применяют трансиверы класса MAX485 и аналоги.

Ключевой практический вывод: RS-232 и RS-485 — не один интерфейс с разными разъёмами, а два разных электрических стандарта. Переходник «USB → RS-485» не заработает с устройством, у которого RS-232, и наоборот.

Распиновка и null-modem

Классический разъём — DB9. Минимально нужны три линии: TXD, RXD и GND. Остальные (RTS, CTS, DTR, DSR, DCD, RI) используются для аппаратного управления потоком и сигналов модема.

Ошибка номер один при соединении двух устройств — прямой кабель вместо null-modem. В RS-232 устройство делится на DTE (терминал, компьютер) и DCE (модем, прибор). Если соединить два DTE, TX попадёт на TX. Null-modem-кабель перекрёстно меняет TX/RX (и обычно RTS/CTS), и обмен начинает работать.

Второй источник путаницы — маркировка A/B на RS-485. У разных производителей полярность обозначается противоположно (A/B, D+/D−, иногда с инверсией). Не ориентируйтесь на цвет провода в чужом кабеле: смотрите документацию прибора. Если обмен идёт с ошибками при короткой линии, попробуйте поменять A и B местами — это безопасная и быстрая проверка.

Предел длины: как считать

Длина линии определяется не «кабелем вообще», а скоростью и качеством пары:

  • RS-232: на 9600 бод 15 метров — практический предел, указанный в стандарте; на 115200 бод надёжная дистанция сокращается до нескольких метров.
  • RS-485: 1200 метров на 9600 бод — типовое значение для витой пары; выше 115200 бод дистанция снижается до сотен метров.
  • Терминаторы 120 Ом ставятся на обоих физических концах шины; для длинных линий дополнительно нужно смещение (bias), чтобы в пассивном состоянии линия не «плавала».
  • Экран заземляется с одной стороны, иначе получите антенну и уравнительные токи.

Если линия не работает на длине, которая «должна работать», проверьте: скорость, число устройств в сегменте, наличие терминаторов, целостность витой пары (не «шнур от телефона»), общий провод при большой разности потенциалов.

Настоящий UART против USB-переходника

USB-COM работает через виртуальный COM-порт: драйвер эмулирует последовательный интерфейс, но передача идёт пакетами. Отсюда — задержки в единицы миллисекунд, которые незаметны при опросе датчиков, но критичны для:

  • стробирования внешних устройств по времени;
  • линий с жёстким таймаутом ответа;
  • задач, где важна пауза между символами (некоторые протоколы и «медленные» контроллеры).

У FTDI задержку регулирует параметр Latency Timer: по умолчанию 16 мс, для отзывчивых линий его уменьшают до 1–2 мс. У CH340 такой настройки нет, и вести себя он может менее предсказуемо.

Если устройство требует именно «настоящий» порт, варианты такие: встроенный RS-232 на промышленном ноутбуке, ExpressCard/PCIe-карта с UART (на старых машинах), или внешний контроллер с UART-мостом на FT2232H. Последний вариант даёт два независимых канала и предсказуемые тайминги, но требует драйвера D2XX.

Проверка без устройства: loopback

Самый быстрый способ отделить «проблему кабеля» от «проблемы устройства»:

  1. Замкните TX и RX на разъёме переходника (для RS-232 — пины 2 и 3 DB9; для RS-485 — соедините A и B).
  2. Откройте терминал на нужной скорости и отправьте строку.
  3. Если символы вернулись — переходник и драйвер работают, проблема дальше по линии.
  4. Если нет — проверьте драйвер, номер порта и права доступа (в Linux — членство в группе dialout).

Для RS-485 такой тест проверяет только передатчик и приёмник одного адаптера: полудуплексная шина при замыкании A/B вернёт вам ваш же сигнал, если управление направлением корректно.

Безопасность

  • Не подключайте интерфейсные линии к цепям под напряжением, не проверенным по схеме: RS-485 часто соседствует с 24 В питания в одном кабеле.
  • Изолированный преобразователь обязателен при разности потенциалов между устройствами и на длинных линиях между зданиями.
  • Не используйте «звонок» мультиметром на включённой линии — это не проверка, а способ получить ложные результаты и повредить трансивер.
  • Фиксируйте настройки порта в проекте: скорость, чётность, стоп-биты, flow control — их забывают чаще, чем меняют кабели.

Частые вопросы

Можно ли подключить USB-RS-485 к устройству с RS-232?

Нет, уровни несовместимы. Нужен либо преобразователь интерфейсов RS-232↔RS-485, либо соответствующий адаптер под каждое устройство.

Почему обмен работает на коротком кабеле и не работает на длинном?

Скорее всего, нет терминаторов, кабель не витая пара или слишком высокая скорость для этой длины. Проверьте также, не идут ли провода рядом с силовыми линиями и частотными преобразователями.

Что такое null-modem и когда он нужен?

Кабель с перекрёстными TX/RX, который соединяет два устройства одного типа (компьютер-компьютер, прибор-прибор). Без него передача и приём попадают на одноимённые контакты и обмен не идёт.

Нужен ли переходник с внешним питанием?

Для RS-232 обычно нет. Для RS-485 на длинных линиях и для изолированных моделей — да, питание требуется для трансивера и барьера изоляции.

Почему в Linux порт то появляется, то исчезает?

Проверьте питание USB-порта и энергосбережение: ядро может отключать устройство при простое. Также помогает проверка dmesg в момент подключения — там видно, какой драйвер и какое устройство зарегистрировались.

Полезные материалы