Распиновка RS-232 (DB-9): назначение контактов, уровни напряжения, отличие от UART и RS-485 и схема нуль-модемного кабеля

Опубликовано: · Обновлено: · Интермера

RS-232 (стандарт TIA/EIA-232) — последовательный интерфейс, который передаёт данные в полнодуплексном режиме через 9-контактный разъём DB-9, точнее DE-9. Для базового обмена без аппаратного квитирования хватает трёх линий: контакт 2 (RxD — приём), контакт 3 (TxD — передача) и контакт 5 (GND — общий сигнальный провод). В отличие от UART микроконтроллера с уровнями 0…3,3 В или 0…5 В, в RS-232 используется биполярная инверсная логика: логической единице (Mark) соответствует отрицательное напряжение от −3 до −15 В, а логическому нулю (Space) — положительное от +3 до +15 В.

Интерфейс RS-232 стоит на многих лабораторных мультиметрах, источниках питания, частотомерах и анализаторах спектра: через него приборами управляют командами SCPI. Ниже — полная таблица контактов со стороны терминала и аппаратуры, уровни сигналов, схема нуль-модемного кабеля, сравнение с UART и RS-485 и проверка порта мультиметром, осциллографом и заглушкой-петлёй.

Интерактивный справочник распиновки DB9 (RS-232) и схем распайки кабеля

Выберите тип соединения или сигнал COM-порта DB9, чтобы увидеть точное назначение контактов, уровни напряжения и схему распайки.

Pin 2 (RxD) ↔ Pin 3 (TxD) перекрёстно, Pin 3 (TxD) ↔ Pin 2 (RxD) перекрёстно, Pin 5 (GND) ↔ Pin 5 (GND) напрямую. Подходит для 90% приборов, весов, ЧПУ и мультиметров.

Распиновка разъёма RS-232 (DB-9 / DE-9): таблица контактов

Названия сигналов в RS-232 даны со стороны терминала — DTE, то есть компьютера или контроллера. Поэтому «вход» и «выход» в таблице указаны для DTE. У аппаратуры DCE — модема и части измерительных приборов — направления обратные: на контакт 2 она выдаёт данные, а с контакта 3 их принимает. В последнем столбце — с каким контактом на другом конце соединяется цепь в нуль-модемном кабеле; подробнее о нём — в разделе о кабелях.

КонтактЦепьСигналНаправление для DTEНазначениеНуль-модем: контакт на другом конце
1DCDData Carrier Detectвходобнаружение несущей—
2RxDReceived Dataвходприём данных3 (TxD)
3TxDTransmitted Dataвыходпередача данных2 (RxD)
4DTRData Terminal Readyвыходготовность терминала6 (DSR), в полном кабеле
5GNDSignal Ground—сигнальная земля, общий провод5 (GND)
6DSRData Set Readyвходготовность устройства4 (DTR), в полном кабеле
7RTSRequest To Sendвыходзапрос на отправку8 (CTS), в полном кабеле
8CTSClear To Sendвходразрешение отправки7 (RTS), в полном кабеле
9RIRing Indicatorвходиндикатор вызова—

Для обмена данными без управления потоком нужны только контакты 2, 3 и 5. Остальные шесть линий служебные. DTR и DSR сообщают, что терминал и устройство готовы к работе. RTS и CTS реализуют аппаратное управление потоком: сторона, у которой включено квитирование, начинает передачу только после разрешения на линии CTS. DCD и RI достались интерфейсу от модемов — это обнаружение несущей и входящий вызов.

Настройка управления потоком должна совпадать на обеих сторонах. Если программа на компьютере ждёт сигнала CTS, а в кабеле этой линии нет, передача не начнётся, хотя провода TxD, RxD и GND в порядке.

Уровни напряжения RS-232

Стандарт TIA/EIA-232-F задаёт уровни так:

  • Логическая «1» (Mark) — от −3 до −15 В, обычно −9…−12 В. В этом состоянии линия находится в покое (Idle), когда данные не передаются.
  • Логический «0» (Space) — от +3 до +15 В, обычно +9…+12 В. С перехода в этот уровень начинается каждая посылка: это стартовый бит.
  • Зона неопределённости — от −3 до +3 В. Такой уровень приёмник не обязан распознавать ни как «1», ни как «0».
  • Холостой ход — без нагрузки на выходе передатчика может быть до ±25 В.

Передатчик по стандарту должен выдавать от ±5 до ±15 В на нагрузке 3–7 кОм, а пороги чувствительности приёмника — ±3 В.

Почему RS-232 нельзя подключать к UART напрямую

Выводы UART микроконтроллера работают в диапазоне 0…3,3 В или 0…5 В, и логическая «1» у них — высокий уровень. Если соединить вход RX микроконтроллера с выходом TxD порта RS-232, на вывод придёт до +15 В при передаче нуля и до −15 В в покое, а без нагрузки — до ±25 В. Это далеко за пределами допустимого для 3,3- и 5-вольтовой логики, и порт выходит из строя мгновенно. В обратную сторону схема тоже не работает: 0 В с выхода TX лежат в зоне неопределённости RS-232, а высокий уровень UART приёмник RS-232 примет за ноль — логика перевёрнута.

Поэтому между UART и разъёмом ставят микросхему-драйвер: MAX232 — в 5-вольтовых схемах, MAX3232 — в 3,3-вольтовых. Внутри неё работает преобразователь с накачкой заряда. На внешних конденсаторах он получает из одного положительного питания и положительное, и отрицательное напряжение для передатчиков. Передатчики драйвера переводят логические уровни UART в биполярный сигнал RS-232 с инверсией, а приёмники делают обратное: превращают ±3…±15 В в привычные 0…3,3 В или 0…5 В.

Прямой и нуль-модемный кабель: когда перекрещивать контакты 2 и 3

Устройства с портом RS-232 делятся на два типа. DTE — терминал: компьютер или контроллер, на нём обычно вилка DB-9M («папа»). DCE — аппаратура передачи данных: модем и часть измерительных приборов, на ней обычно розетка DB-9F («мама»).

Прямой кабель (Straight) соединяет одноимённые контакты: 1 с 1, 2 с 2 и так далее до 9. Он нужен для пары DTE — DCE. Выход TxD компьютера (контакт 3) попадает на контакт 3 прибора, который у DCE и есть вход данных, а данные прибора с его контакта 2 приходят на вход RxD компьютера.

Нуль-модемный кабель (Null-Modem) нужен, когда оба устройства — DTE, например два компьютера или компьютер и прибор с портом терминального типа. Через прямой кабель выход TxD одного попал бы на выход TxD другого, а оба входа остались бы без сигнала. Поэтому в нуль-модеме линии передачи и приёма перекрещены. Встречаются две схемы:

  • Простая, на 3 провода: 2 ↔ 3, 3 ↔ 2, 5 — 5. Аппаратного управления потоком нет, и квитирование нужно отключить на обеих сторонах.
  • Полная, с аппаратным управлением потоком: те же три провода плюс RTS ↔ CTS (7 ↔ 8) и DTR ↔ DSR (4 ↔ 6). Запрос на передачу одной стороны становится разрешением для другой.

Какой порт у прибора, DTE или DCE, обычно указано в руководстве. Если документации нет, тип определяют мультиметром: выход данных — тот из контактов 2 и 3, на котором в покое есть отрицательное напряжение. Как это сделать, описано ниже, в разделе о проверке порта.

Чем RS-232 отличается от UART (TTL) и RS-485

UART — это приёмопередатчик, который формирует кадр: стартовый бит, биты данных, бит чётности и стоповый бит. RS-232 и RS-485 описывают физический уровень — какими напряжениями и по каким проводам этот кадр идёт по кабелю. Поэтому один и тот же UART микроконтроллера через разные драйверы может работать и с RS-232, и с RS-485, а TTL UART — это тот же кадр без драйвера, прямо на логических уровнях.

ПараметрRS-232TTL UARTRS-485
Способ передачинесимметричный, сигнал относительно общей землинесимметричный, сигнал относительно общей землидифференциальный, по витой паре A/B
Уровни сигналов«1» — от −3 до −15 В, «0» — от +3 до +15 В (инверсная логика)0…3,3 В или 0…5 В, «1» — высокий уровеньлогическое состояние задаёт разность напряжений между A и B
Максимальная длина кабелядо 15 мкороткие соединения внутри устройства или на платедо 1200 м
Число устройствточка-точка, 1:1точка-точка, 1:1шина до 32/256 узлов
Режим дуплексаполный дуплекс: отдельные линии TxD и RxDполный дуплекс: отдельные линии TX и RXобычно полудуплекс: одна пара A/B, передатчики работают по очереди
Типичная скорость9600–115 200 бодте же скорости, что у RS-232чем длиннее линия, тем ниже допустимая скорость

Длину линии RS-232 ограничивает ёмкость кабеля: по стандарту она не должна превышать 2500 пФ. При погонной ёмкости обычного кабеля около 150 пФ/м это даёт примерно 15 метров на скорости 19 200 бод. Если снизить скорость до 9600 бод и взять кабель с малой ёмкостью, линия работает на 30–45 м. Для больших расстояний и для нескольких устройств на одной линии выбирают RS-485: дифференциальная пара меньше чувствительна к помехам, чем сигнал относительно общей земли.

Как проверить порт RS-232 мультиметром, осциллографом и заглушкой-петлёй

Если у компьютера нет COM-порта, прибор подключают через переходник USB — RS-232. Внутри переходника данные переходят с дифференциальной пары D+/D− шины USB на несимметричные линии RS-232. Разъёмы самого USB 2.0, 3.0 и Type-C мы разобрали в статье о распиновке USB. Ниже — три проверки, которые помогают понять, где неисправность: в переходнике, кабеле или приборе.

Мультиметром

Переведите мультиметр в режим измерения постоянного напряжения. Чёрный щуп поставьте на контакт 5 (GND), красный — на контакт 3 (TxD) порта DTE. В покое там должно быть отрицательное напряжение от −5 до −12 В: линия стоит в логической «1». Как выбрать режим и предел и правильно подключить щупы, рассказано в статье о том, как пользоваться мультиметром.

Затем переставьте красный щуп на контакт 2. Это вход RxD, своего напряжения на нём нет, и прибор покажет около 0 В. Если около 0 В и на контакте 3, передатчик порта не работает: неисправен драйвер или переходник. У порта DCE картина зеркальная — отрицательное напряжение покоя будет на контакте 2.

Заглушкой-петлёй (Loopback)

Это самый быстрый тест переходника и кабеля. Замкните между собой контакты 2 и 3 на свободном конце кабеля — скрепкой или перемычкой. Откройте COM-порт в терминальной программе, отключите в ней аппаратное управление потоком и отправьте несколько символов. Если они вернулись эхом, переходник USB — COM и кабель исправны, и искать причину нужно в настройках порта или в самом приборе. Если эха нет, проверьте, тот ли COM-порт выбран, и прозвоните кабель.

Осциллографом

Осциллограф показывает сам кадр посылки. Подключите щуп к контакту 3 (TxD) относительно контакта 5 и настройте запуск по фронту из минуса в плюс — с него начинается каждая посылка. На экране видно:

  • покой линии на уровне около −12 В — логическая «1»;
  • стартовый бит — переход на +12 В, логический «0»;
  • 8 бит данных младшим битом вперёд (LSB first); из-за инверсной логики единицы в данных отрицательные, а нули положительные;
  • бит чётности, если он включён в настройках порта;
  • стоповый бит на уровне −12 В, после которого линия возвращается в покой или начинается следующий кадр.

Скорость передачи (Baud Rate) определяют по длительности одного бита: Tbit = 1 / Baud. Курсорами осциллографа измерьте самый короткий импульс в посылке — это и есть один бит — и сравните со стандартными значениями:

  • 9600 бод — 104,17 мкс;
  • 19 200 бод — 52,08 мкс;
  • 38 400 бод — 26,04 мкс;
  • 115 200 бод — 8,68 мкс.

Например, если самый короткий импульс длится около 104 мкс, порт работает на 9600 бод: 1 / 9600 ≈ 104,2 мкс.

Считать биты вручную не обязательно. У осциллографов Keysight InfiniiVision 2000X есть аппаратное декодирование последовательных протоколов UART/RS-232: прибор сам разбирает посылку на байты. Когда нужно записать долгий обмен сразу по нескольким линиям — TxD, RxD, RTS и CTS, — удобнее логический анализатор. Модели собраны в разделе логических анализаторов Keysight Technologies. Перед подключением сверьте допустимое входное напряжение анализатора с уровнями RS-232: до ±15 В на линии и до ±25 В на холостом ходу.

Итог

  • RS-232 передаёт данные последовательно, в полном дуплексе, через разъём DB-9 (DE-9); для обмена без управления потоком хватает контактов 2 (RxD), 3 (TxD) и 5 (GND).
  • Логика инверсная и биполярная: «1» — от −3 до −15 В, «0» — от +3 до +15 В, между −3 и +3 В — зона неопределённости.
  • Напрямую к UART микроконтроллера RS-232 подключать нельзя: нужен драйвер вроде MAX232 или MAX3232.
  • Прямой кабель соединяет DTE с DCE, нуль-модемный с перекрёстом 2 и 3 — два DTE; в полном варианте перекрещены ещё RTS/CTS и DTR/DSR.
  • RS-232 — связь точка-точка на расстояние около 15 м; для длинных линий и нескольких устройств выбирают RS-485.
  • Порт проверяют мультиметром (−5…−12 В на TxD в покое), петлёй между контактами 2 и 3 и осциллографом: скорость равна 1 / Tbit.

Частые вопросы об RS-232

Какие контакты используются в RS-232 для передачи данных без управления потоком?

Достаточно трёх контактов разъёма DB-9: 2 (RxD, приём), 3 (TxD, передача) и 5 (GND, сигнальная земля). Линии DTR, DSR, RTS, CTS, DCD и RI нужны только для квитирования и служебных сигналов. Если оба устройства — DTE, контакты 2 и 3 в кабеле перекрещивают.

Какое напряжение должно быть на выходе TxD порта RS-232 в покое?

В покое на TxD относительно контакта 5 (GND) должно быть отрицательное постоянное напряжение, обычно от −5 до −12 В. Это логическая «1» (Mark), состояние покоя линии. Если на выходе около 0 В, передатчик не работает или щуп стоит на входе RxD.

Чем отличается прямой кабель RS-232 от нуль-модемного?

В прямом кабеле каждый контакт соединён с одноимённым, и он связывает DTE с DCE, например компьютер с модемом. В нуль-модемном контакты 2 и 3 перекрещены, а в полном варианте ещё RTS с CTS и DTR с DSR. Он нужен для связи двух DTE.

Какая максимальная длина кабеля допускается для интерфейса RS-232?

Ориентир — около 15 м на скорости 19 200 бод. Стандарт ограничивает ёмкость кабеля 2500 пФ, а у обычного кабеля она около 150 пФ/м. На 9600 бод с малоёмкостным кабелем линия работает на 30–45 м, а для расстояний до 1200 м выбирают RS-485.

Как по осциллограмме сигнала RS-232 узнать скорость передачи (Baud Rate)?

Измерьте длительность самого короткого импульса — это один бит, Tbit, — и разделите на неё единицу: Baud = 1 / Tbit. При 9600 бод бит длится около 104,2 мкс, при 115 200 бод — 8,68 мкс. Удобнее всего мерить курсорами осциллографа.