Подробное объяснение технологии связи RS-485: от сути протокола до полудуплексной связи

RS-485 — это часто используемый в промышленных сценариях протокол связи аппаратного уровня, основная задача которого — решить проблему передачи данных на «большие расстояния между множеством устройств». Для обеспечения стабильной связи необходимо сочетать принципы аппаратного уровня с протоколами программного уровня. Далее рассматриваются три аспекта: классификация протоколов, основные принципы RS-485 и особенности полудуплексной связи, с более чёткой логикой и доступным изложением технических деталей.
I. Сначала разберёмся с основами: аппаратный и программный уровни протоколов связи
Суть протокола связи — это правила обмена данными между устройствами, которые по функциям можно разделить на два уровня, каждый из которых имеет чёткое назначение и не может быть опущен.
1. Протокол аппаратного уровня: решает физическую проблему «как передавать» данные
Протокол аппаратного уровня, также называемый интерфейсным протоколом, — это физический канал передачи данных, определяющий физическую форму данных и среду передачи.
- Правила электрического сигнала: определяют значения напряжения, соответствующие 0 и 1 (например, RS-232 устанавливает: «+3~+15 В означает 1, -15~-3 В означает 0»);
- Аппаратные характеристики: определяют количество линий передачи (например, RS-232 использует 3-проводную схему, RS-485 — 2-проводную), материал кабеля (например, экранированная витая пара), тип разъёма (например, разъём DB9);
- Распространённые типы: RS-232, RS-485, SPI, IIC и другие — все относятся к протоколам аппаратного уровня и отвечают лишь за физическую передачу данных от точки A к точке B, не заботясь о смысле самих данных.
2. Протокол программного уровня: решает правила «что передавать и как распознавать» данные
Протокол программного уровня — это языковые правила обмена данными, определяющие формат, значение и логику взаимодействия данных.
- Соглашение о формате: структура кадра данных (например, «стартовый бит + биты данных + бит чётности + стоповый бит»), способ кодирования данных (например, ASCII, шестнадцатеричный);
- Правила взаимодействия: как устройства приветствуют друг друга (например, команда запроса, команда ответа), как определить полноту данных (например, правила контрольной суммы);
- Распространённые типы: Modbus, TCP/IP, GPRS и другие, причём Modbus может передаваться поверх различных протоколов аппаратного уровня, таких как RS-485, последовательный порт, Ethernet — это как два человека, общающихся на китайском (программный протокол): они могут разговаривать лицом к лицу (RS-485) или по телефону (Ethernet); язык общения не меняется, меняется только способ передачи.
II. Основные принципы RS-485: почему он стал основным в промышленной связи
RS-485 — это протокол аппаратного уровня, специально разработанный для больших расстояний и множества устройств, который решает проблемы передачи TTL-уровня с помощью дифференциального сигнала.
1. Сначала решаем врождённые недостатки TTL-уровня
MCU (микроконтроллер) изначально выдаёт TTL-уровень, правило которого: 0 В означает 0, 5 В означает 1, но у него есть явные недостатки:
- Плохая помехозащищённость: TTL-уровень передаётся по одной сигнальной линии + земле, внешние помехи напрямую накладываются на полезный сигнал, что приводит к ошибкам при увеличении расстояния передачи (более 10 метров);
- Малое расстояние передачи: из-за затухания напряжения и помех TTL-уровень обычно передаётся не более чем на 10 метров, что не удовлетворяет потребности промышленных сценариев с распределёнными устройствами и большими расстояниями.
2. Ключевое улучшение RS-485: передача дифференциального сигнала
RS-485 с помощью преобразующего чипа (например, MAX485) преобразует TTL-уровень в дифференциальный сигнал и передаёт его по 2 линиям (линия A, линия B).
- Определение сигнала: вместо单一 значения напряжения для представления 0/1 используется разность напряжений между линиями A и B — когда напряжение на линии B выше, чем на линии A, более чем на 200 мВ, это означает «1»; когда напряжение на линии A выше, чем на линии B, более чем на 200 мВ, это означает «0»;
- Высокая помехозащищённость: внешние помехи воздействуют одновременно на обе линии A и B, создавая практически одинаковое напряжение помехи, а приёмник распознаёт только разность напряжений между линиями, поэтому сигнал помехи автоматически компенсируется, что значительно повышает помехозащищённость;
- Увеличение дальности передачи: на основе дифференциального сигнала RS-485 обеспечивает дальность передачи до 1200 метров, а к одной шине можно подключить до 32 устройств (с помощью повторителей можно расширить до большего числа), что полностью соответствует потребностям промышленных объектов.
3. Ключевая особенность: чисто аппаратная логика, без участия программного обеспечения
Процесс преобразования уровней RS-485 выполняется аппаратно чипом, без необходимости программирования — при подаче TTL-сигнала на преобразующий чип он автоматически выдаёт дифференциальный сигнал; на приёмной стороне преобразующий чип восстанавливает дифференциальный сигнал в TTL-сигнал и передаёт его MCU. Весь процесс — это чисто аппаратная логика, что и является ключевой характеристикой RS-485 как протокола аппаратного уровня.
III. Полудуплексная связь RS-485: требуется взаимодействие с программным протоколом для избежания конфликтов
RS-485 использует только 2 линии для передачи данных, что определяет возможность только полудуплексной связи, требующей взаимодействия с протоколом программного уровня для решения проблемы конфликтов данных.
1. Определение полудуплексной связи: нельзя говорить одновременно
Способы связи по «направлению данных» делятся на три типа, RS-485 относится к полудуплексу:
| Способ связи | Направление данных | Типичный пример |
|---|---|---|
| Симплекс | Только односторонняя передача | Радиовещание |
| Полный дуплекс | Одновременная двусторонняя передача | Телефон |
| Полудуплекс | Двусторонняя, но не одновременная | Рация |
RS-485 использует 2 линии одновременно для передачи и приёма, в один момент времени может передаваться только в одном направлении — если два устройства одновременно отправят данные, сигналы наложатся на шине, что приведёт к ошибкам во всех данных (то есть конфликту данных).
2. Ключ к решению конфликтов: правила, задаваемые протоколом программного уровня
Сам RS-485 не может избежать конфликтов данных, поэтому необходимо полагаться на вышестоящий программный протокол (например, Modbus) для установления правил связи, распространённые способы:
- Опрос «ведущий-ведомый»: назначается одно ведущее устройство, остальные — ведомые — только когда ведущее устройство активно отправляет запрос ведомому, ведомый может ответить; если ведущий молчит, все ведомые не могут самостоятельно отправлять данные, что исключает конфликты на корню;
- Различение по адресу: каждому устройству присваивается уникальный адресный код (например, 01, 02, 03), ведущее устройство при отправке команды указывает адрес целевого ведомого, и только ведомый с совпадающим адресом отвечает, остальные игнорируют команду.
Проще говоря, RS-485 предоставляет дорогу (аппаратный канал), а программный протокол — правила дорожного движения: без правил данные-машины на дороге будут метаться, создавая заторы или аварии; с правилами данные передаются упорядоченно.
Введение в RS-485
Ассоциация электронной промышленности (EIA) в 1983 году разработала и опубликовала стандарт RS-485, который после доработки Ассоциацией телекоммуникационной промышленности (TIA) получил название TIA/EIA-485-A, поэтому именно TIA/EIA-485-A является настоящим именем, но поскольку люди привыкли называть его RS-485, это название продолжают использовать и в дальнейшем.
Стандарт RS-485 был создан для устранения таких недостатков RS-232, как малое расстояние связи и низкая скорость. Стандарт RS-485 определяет только электрические характеристики балансных передатчиков и приёмников, но не определяет разъёмы, кабели передачи и протоколы связи прикладного уровня.
Стандарт RS-485, в отличие от RS-232, использует дифференциальный способ передачи данных (Differential Driver Mode), также называемый балансной передачей, и использует одну витую пару.
В статье использованы некоторые материалы из интернета; в случае нарушения авторских прав, пожалуйста, свяжитесь для удаления.