Перейти к содержанию

Полудуплекс и дуплекс

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

Обновлено Редакция GAW

Дуплекс (full-duplex) — режим связи, при котором данные идут в обе стороны одновременно; полудуплекс (half-duplex) — в обе стороны, но по очереди. Есть ещё симплекс — передача только в одну сторону.

В интерфейсе RS-485 выбор режима определяет число пар проводов. По руководству TI SLLA272:

ВариантПроводаРежимОсобенность
2-wireодна параполудуплексу трансивера выходы передатчика внутри соединены со входами приёмника
4-wireдве парыдуплексодна пара для передачи, другая для приёма

Полудуплекс по одной паре — самый распространённый вариант, в том числе для Modbus RTU: протокол работает по принципу «ведущий спросил — один ведомый ответил», и одновременная передача не нужна. Но узлы должны управлять направлением. У трансивера для этого выводы DE (разрешение передатчика) и RE (разрешение приёмника, инверсный): микроконтроллер включает передатчик перед отправкой и выключает сразу после последнего стоп-бита UART. Если отпустить линию поздно, передатчик заглушит начало ответа; рано — обрежет свой последний символ.

Сама передача по паре — дифференциальная, а на концах линии ставят терминаторы. Подключение, смещение шины и типовые ошибки разобраны в статье «RS-485».

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

Чем полудуплекс отличается от дуплекса?

Полудуплекс передаёт данные в обе стороны, но по очереди: в каждый момент один узел передаёт, остальные слушают. Дуплекс позволяет передавать и принимать одновременно. В RS-485 полудуплексу нужна одна пара проводов, дуплексу — две.

Почему RS-485 обычно полудуплексный?

Одна пара дешевле и проще в прокладке, а протоколы вроде Modbus RTU всё равно работают по принципу «запрос — ответ»: ведущий спрашивает, один ведомый отвечает. Одновременная передача в обе стороны им не нужна.

Зачем выводы DE и RE у трансивера RS-485?

Для управления направлением: DE включает передатчик, а инверсный RE — приёмник. В полудуплексе микроконтроллер включает передатчик только на время своей передачи и сразу отключает после последнего стоп-бита, иначе он заглушит ответ другого узла.

Источники

  1. Texas Instruments. The RS-485 Design Guide (SLLA272C), T. Kugelstadt — полудуплекс по одной паре (2-wire) и дуплекс по двум (4-wire); у полудуплексного трансивера выходы передатчика внутри соединены со входами приёмника; управление передатчиком и приёмником выводами DE и RE
  2. Modbus Organization. MODBUS over Serial Line Specification and Implementation Guide V1.02 — Modbus по последовательной линии — двухпроводной RS-485 как основной вариант, обмен по принципу ведущий–ведомые, переключение направления

Нашли ошибку?