Что считает калькулятор RS-485
RS-485 (стандарт TIA/EIA-485) — дифференциальный интерфейс для промышленных и приборных сетей: полезный сигнал передаётся не относительно земли, а разностью напряжений между проводами A и B витой пары. За счёт этого линия слабо чувствительна к синфазным помехам, тянется на сотни метров и держит десятки узлов на одной общей шине. Работать она может в двухпроводном полудуплексе (приём и передача по очереди) или в четырёхпроводном полном дуплексе. Этот калькулятор отвечает на три главных вопроса при проектировании линии: какую максимальную длину выдержит кабель на выбранной скорости, какого номинала ставить оконечные резисторы и в каких пределах брать резисторы смещения (fail-safe). Задайте скорость обмена, длину кабеля и напряжение питания драйвера Vcc — остальное считается по инженерным соотношениям.
Lмакс ≈ 10⁸ / скорость (м), не более 1200 м на низких скоростях
Терминаторы 120 Ом с обоих концов Rb_смещ. ≤ (60·(Vcc/0,2 − 1)) / 2
Длина линии и скорость обмена
У RS-485 произведение скорости на длину ограничено: чем быстрее обмен, тем короче допустимая линия. Практическое правило — длина в метрах примерно равна 10⁸, делённым на скорость в битах в секунду, но не более 1200 м. На низких скоростях (по этой оценке примерно до 80 кбит/с) длину держит потолок 1200 м, а выше она укорачивается обратно пропорционально скорости. Ограничение возникает из-за затухания в кабеле, «размывания» фронтов и джиттера: фронт бита должен успеть установиться до момента выборки. Это не жёсткий закон, а оценка «безопасной» дистанции с запасом; реальный предел зависит от качества кабеля, уровня помех и требований к фронтам. Когда нужны и большая длина, и высокая скорость одновременно, сеть разбивают на сегменты через повторители.
| Скорость | Макс. длина | Примечание |
| 9600 бит/с | 1200 м | потолок 1200 м |
| 57600 бит/с | 1200 м | потолок 1200 м |
| 115200 бит/с | 868 м | типовой UART |
| 250 кбит/с | 400 м | — |
| 500 кбит/с | 200 м | — |
| 1 Мбит/с | 100 м | — |
| 10 Мбит/с | 10 м | короткие сегменты |
Оконечные резисторы (терминаторы)
Витая пара — это линия передачи с волновым сопротивлением около 100–120 Ом. Если её конец не согласован, дошедший сигнал отражается обратно и накладывается на следующие биты — фронты «звенят», тем сильнее, чем длиннее линия и круче фронт. Поэтому на обоих физических концах магистрали ставят согласующие резисторы, равные волновому сопротивлению кабеля, — обычно 120 Ом (параллельно два таких резистора дают 60 Ом; эта величина участвует в расчёте смещения). Терминатор нужен именно на двух концах шины, а не у каждого узла и не в середине — лишние терминаторы только перегружают драйвер. Иногда вместо чистого резистора применяют RC-терминацию (резистор последовательно с конденсатором), чтобы не тратить ток в покое. Та же логика согласования работает в любой длинной линии: см. расчёт коаксиального кабеля, оценку отражений через КСВ и return loss и импеданс печатных дорожек в калькуляторе микрополосковой линии. А нужно ли согласование вообще, подсказывает критическая длина: если задержка в линии сравнима со временем фронта, линию уже надо терминировать.
Смещение линии (fail-safe)
Когда все драйверы на шине переведены в третье состояние (отключены), линия остаётся «висеть», и вход приёмника ловит наводки, выдавая случайные биты. Чтобы этого не было, ставят резисторы смещения: подтяжку с провода A на Vcc и стяжку с провода B на землю. Они удерживают на паре гарантированную разность напряжений в состоянии покоя. Приёмник RS-485 распознаёт корректный логический уровень при дифференциальном напряжении не меньше 200 мВ, поэтому смещение подбирают так, чтобы в покое на параллельных терминаторах (те самые 60 Ом) падало минимум 200 мВ. Отсюда верхняя граница номинала: Rb ≤ (60·(Vcc/0,2 − 1))/2. Слишком большие резисторы не дадут нужного порога, слишком маленькие зря нагружают драйверы и смещают уровни. Фактически смещение вместе с терминаторами образует делитель напряжения, и удобнее всего считать его именно как делитель. Один комплект смещения ставят на всю шину — обычно у ведущего узла; во многих современных трансиверах fail-safe встроен, и внешние резисторы не нужны.
| Vcc драйвера | Rb смещения (макс.) |
| 3,3 В | ≤ 465 Ом |
| 5 В | ≤ 720 Ом |
| 12 В | ≤ 1770 Ом |
| 24 В | ≤ 3570 Ом |
Число узлов, топология и задержка
Нагрузочную способность RS-485 считают в «единичных нагрузках» (unit load, UL): стандартный драйвер тянет 32 UL. Приёмники с дробным входом 1/8 UL позволяют довести число узлов до 256 на одном сегменте, а дальше сеть наращивают повторителями. Топология — только линейная «шина»: звёзды и длинные ответвления (stub) образуют несогласованные отрезки и дают отражения, поэтому ответвления держат как можно короче. Всем узлам нужен общий провод: приёмник работает лишь в диапазоне синфазного напряжения примерно от −7 до +12 В, и без связи по земле этот диапазон легко превысить. Сигнал идёт по кабелю не мгновенно — скорость распространения в витой паре около 2·10⁸ м/с (коэффициент укорочения ~0,66), то есть задержка примерно 5 нс на метр; калькулятор показывает её отдельно. На длинных линиях учитывают активное сопротивление жил: оно даёт падение напряжения и ослабляет сигнал, поэтому сечение выбирают с запасом — см. сечение провода и сопротивление провода. Поскольку по RS-485 обычно передают асинхронные посылки, обе стороны обязаны совпадать по скорости в пределах допуска, что проверяют калькуляторы кадра UART и ошибки бодрейта; родственный дифференциальный интерфейс с такой же терминацией 120 Ом — CAN, его тайминг считает битовый тайминг CAN.
Частые ошибки
Самые частые промахи при монтаже RS-485: терминаторы поставлены у каждого узла или отсутствуют вовсе; забыты резисторы смещения — и «пустая» шина шумит; вместо линейной магистрали разведена звезда или длинные отводы; не связан общий провод между узлами, из-за чего синфазное напряжение выходит за пределы приёмника; выбрана слишком высокая скорость для такой длины. Питание подтяжки логично привязывать к тому же напряжению, что подано на драйвер, — его и задают в поле Vcc. Полезно оставлять запас: закладывать длину и скорость не впритык к пределу, а с коэффициентом.
Пример
Значения по умолчанию: скорость 115200 бит/с, длина 100 м, Vcc = 5 В. Максимальная длина ≈ 10⁸ / 115200 ≈ 868 м, значит 100 м проходят с большим запасом. Резисторы смещения ≤ (60·(5/0,2 − 1))/2 = 720 Ом (на практике берут ближайший стандартный номинал, например 560 Ом). Терминаторы — 120 Ом с обоих концов. Задержка сигнала в 100 м кабеля ≈ 5 нс/м · 100 = 500 нс. Итог калькулятора: длина в пределах нормы.
См. также: кадр UART · битовый тайминг CAN · подтяжка I²C · коаксиальный кабель · КСВ · все калькуляторы
|