RS-485 часто тянут на сотни метров, и первый вопрос — на какой скорости линия будет работать. Стандарт TIA/EIA-485 длину кабеля не задаёт: она зависит от кабеля, скорости, фронтов передатчика и помех. Поэтому все цифры в калькуляторе — правила и примеры из application notes Texas Instruments, и у каждой результатной строки указан документ. Электрическая часть интерфейса, схемы подключения и расчёт резисторов смещения — в статье про RS-485.
Длина и скорость: правила TI
TI в разных документах даёт два правила произведения скорости на длину:
- SLLA070 (раздел о RS-422, то же соотношение TI распространяет на RS-485): скорость в бит/с, умноженная на длину в метрах, не должна превышать 108; пример — 500 м и не больше 200 кбит/с. Рекомендуемая длина — около 1200 м.
- SLLA272: длина в метрах, умноженная на скорость в бит/с, должна быть меньше 107. TI сама пишет, что это правило намного осторожнее реального кабеля и даёт меньшую длину, чем её же график.
| Скорость | По SLLA070 (108, не больше 1200 м) | По SLLA272 (107) |
|---|---|---|
| 9600 бит/с | 1200 м | 1042 м |
| 19 200 бит/с | 1200 м | 521 м |
| 57 600 бит/с | 1200 м | 174 м |
| 115 200 бит/с | 868 м | 87 м |
| 500 кбит/с | 200 м | 20 м |
| 1 Мбит/с | 100 м | 10 м |
| 10 Мбит/с | 10 м | 1 м |
Расхождение в 10 раз показывает, что это ориентиры, а не граница. Правило SLLA272 при 10 Мбит/с даёт 1 м, хотя в той же записке среди ключевых свойств стандарта названы 10 Мбит/с на 40 футах (12 м) и «4000-foot maximum cable length (at 100 kbps)». На графике длины и скорости в SLLA272 (рис. 9-1) три участка: на коротких линиях скорость ограничена фронтами передатчика, в середине длина падает обратно пропорционально скорости, а на низких скоростях её ограничивает сопротивление проводов — около 1200 м для кабеля 22 AWG. Калькулятор показывает обе оценки и отмечает линию зелёным, если она проходит по строгому правилу, и предупреждением — если только по мягкому.
Задержка в кабеле
Сигнал идёт по кабелю со скоростью v · c, где v — коэффициент укорочения из паспорта кабеля. Задержка в одну сторону:
У кабеля из примера TI в SLLA272 (Belden 3109A, 120 Ом, 11 пФ/фут) скорость — 78 % от скорости света, TI пишет 1,3 нс/фут; в метрах это 4,28 нс/м. Линия 300 м на таком кабеле задерживает сигнал на 1,28 мкс в одну сторону.
| Коэффициент v | Задержка, нс/м | 100 м | 1200 м |
|---|---|---|---|
| 0,66 | 5,05 | 505 нс | 6,06 мкс |
| 0,70 | 4,77 | 477 нс | 5,72 мкс |
| 0,78 | 4,28 | 428 нс | 5,13 мкс |
Когда нужны терминаторы
Линия ведёт себя как длинная, когда задержка в ней сравнима с фронтом сигнала: отражения от концов не успевают слиться с фронтом и видны как звон. У TI три формулировки, и калькулятор проверяет все, если задано время нарастания передатчика:
| Документ | Правило | Длинная линия при фронте 100 нс и v = 0,78 |
|---|---|---|
| SLLA070, 2.1.8 | терминация нужна, если скорость не ниже 200 кбит/с и фронт на нагрузке не длиннее 4tpd | от 5,85 м |
| SLLA036, 2.1 | терминировать, если 2tpd ≥ tt/5 | от 2,34 м |
| AN-1031 (SNLA044B), 3 | длинная, если tpd > tt/8, фронт измеряется от 0 до 100 % | от 2,92 м |
В даташитах время нарастания указано по уровням 10–90 %. Полный фронт от 0 до 100 % длиннее, а на дальнем конце кабель его ещё затягивает, — поэтому, подставляя значение из даташита, калькулятор оценивает линию с запасом. Итог для практики: для трансивера с фронтами в десятки–сотни наносекунд почти любая линия RS-485 длиннее нескольких метров — длинная. Без терминаторов она может работать только на низкой скорости, когда звон затухает задолго до середины бита: это и есть исключение «ниже 200 кбит/с» из SLLA070. Где ставить терминаторы и почему их ровно два — в статье про RS-485.
Отдельная проверка из SLLA036: чтобы соответствовать стандарту, фронт передатчика не должен быть длиннее 0,3 длительности бита. Медленный трансивер с ограниченной скоростью нарастания хорош для длинных линий, но для высокой скорости не годится — калькулятор предупредит об этом.
Длина отвода
Отвод — кусок кабеля от магистрали до трансивера, без терминатора на конце. По SLLA272 его электрическая длина должна быть меньше 1/10 времени нарастания передатчика:
TI считает с c = 9,8 · 108 фут/с и в табл. 6-1 отбрасывает дробную часть; калькулятор считает в метрах с точным значением c, разница — 0,4 %.
| Время нарастания tr | Табл. 6-1 SLLA272 | Калькулятор, v = 0,78 |
|---|---|---|
| 100 нс | 7 футов | 2,34 м |
| 250 нс | 19 футов | 5,85 м |
| 500 нс | 38 футов | 11,7 м |
Число узлов
Стандарт задаёт нагрузку через единицу нагрузки (UL): по SLLA036 это ток 1 мА при 12 В на входе, примерно 12 кОм. Передатчик должен работать на 32 UL. Современные трансиверы бывают на 1/2, 1/4 и 1/8 UL — это 64, 128 и 256 узлов (SLLA166). Резисторы смещения шины тоже нагружают линию, и TI в SLLA272 и SLLA112A оценивает типичную цепь смещения в 20 UL:
С узлами 1/8 UL и смещением 20 UL получается 96 узлов, с узлами 1/4 UL — 48. В SLLA166 приведён и другой пример: резисторы смещения около 1 кОм занимают 12 UL. Нагрузку своей цепи смещения можно оценить по току, который она берёт при 12 В на линии; сами резисторы для заданного напряжения в паузе посчитает калькулятор смещения в статье про RS-485.
Затухание в проводах
На низкой скорости длину ограничивает сопротивление проводов. TI в SLLA272 пишет, что когда сопротивление кабеля приближается к сопротивлению терминатора, делитель ослабляет сигнал на 6 дБ, и для кабеля 22 AWG это примерно 1200 м. Калькулятор считает такой делитель упрощённо — наша модель, не формула TI: петля из двух жил последовательно с терминатором на дальнем конце,
Сопротивление жилы r берётся для сплошной медной жилы выбранного калибра при 20 °C, как в калькуляторе проводов. Для 22 AWG (52,96 Ом/км) на 1133 м сопротивление петли равно терминатору, это −6,02 дБ (ровно −6,00 дБ — на ≈ 1128 м), близко к оценке TI; для 24 AWG то же получается на 712 м. Это не предел работы: передатчик по стандарту даёт не меньше 1,5 В, а приёмнику достаточно 200 мВ (SLLA272, рис. 4-1), так что запас есть и при большем ослаблении. Решает уровень помех: по SLLA070 длину на практике выбирают по тому, сколько шума готов допустить разработчик.
На высоких частотах добавляются потери в кабеле. SLLA036 предлагает правило: затухание на частоте, численно равной скорости в битах в секунду, не больше 6 дБ на всю длину. В примере записки для 500 м и 500 кбит/с это 0,36 дБ на 30 м, а у кабеля 24 AWG из её графика — чуть больше 0,5 дБ на 30 м; TI считает такое превышение допустимым ценой меньшего запаса по шуму. Если в паспорте кабеля есть затухание, введите его — калькулятор сравнит его с этим правилом.
Что ещё ограничивает линию
- Синфазное напряжение: разность потенциалов земель узлов должна оставаться в пределах −7…+12 В. Для длинных линий между зданиями нужна гальваническая развязка — подробнее в статье про RS-485.
- Топология: только шина с короткими отводами и двумя терминаторами на концах; звезда на длинной линии не работает.
- Протокол: Modbus RTU задаёт свои пределы на длину и отводы и требует терминаторы на концах шины.
Если нужно дальше, чем разрешают правила, — ставьте повторитель: каждый сегмент за ним — отдельная линия со своими 32 UL и терминаторами. Сколько данных пройдёт по линии на выбранной скорости с учётом кадра UART или Modbus, посчитает калькулятор полезной скорости. Отличия RS-422, где передатчик один, — в статье про RS-422.
Частые вопросы
Какая максимальная длина линии RS-485?
Стандарт длину не задаёт. TI в SLLA070 называет рекомендуемым пределом около 1200 м, в SLLA272 — 4000 футов при 100 кбит/с. На низких скоростях длину ограничивает сопротивление проводов, на высоких — потери кабеля и фронты. Для промежуточных скоростей TI даёт правило: скорость в бит/с, умноженная на длину в метрах, не больше 10⁸ (SLLA070) или меньше 10⁷ (SLLA272, с оговоркой, что это правило заметно осторожнее реального кабеля). На 115 200 бит/с это 868 и 87 м.
Нужны ли терминаторы на линии 50 м и 9600 бит/с?
По правилу SLLA070 — не обязательны: на скоростях ниже 200 кбит/с терминация не требуется. Но критерии длинной линии из SLLA036 и AN-1031 сравнивают задержку с фронтом передатчика, а не со скоростью, и для трансивера с фронтом 100 нс линия длиннее 2–6 м уже длинная — на фронтах будет звон. На 9600 бит/с он затухает задолго до середины бита. Если протокол требует терминаторы, как Modbus, ставьте их.
Сколько устройств можно подключить к одной линии RS-485?
Передатчик по стандарту должен нагружаться 32 единицами нагрузки (UL), одна UL — около 12 кОм. С трансиверами 1/8 UL это 256 узлов. Резисторы смещения тоже нагружают шину: TI оценивает типичную цепь в 20 UL, и с узлами 1/8 UL остаётся 96 мест (SLLA272), с узлами 1/4 UL — 48 (SLLA112A). Больше узлов — только через повторитель.
Откуда берётся «1200 м при 100 кбит/с»?
Это не формула, а точка на графике TI: на низких скоростях длину ограничивает сопротивление проводов, и для кабеля 22 AWG сигнал на дальнем конце падает на 6 дБ примерно на 1200 м (SLLA272, рис. 9-1). Ниже определённой скорости длина почти не растёт, а выше — падает. Делить 1200 м пропорционально скорости нельзя: для этого и даны правила 10⁷ и 10⁸.
Источники
- Texas Instruments. SLLA070D: RS-422 and RS-485 Standards Overview and System Configurations, 2002, rev. 2010 — разд. 2.1 — правило: скорость в бит/с, умноженная на длину в метрах, не больше 10⁸, пример 500 м → 200 кбит/с; 2.1.8 — терминация нужна, если скорость не ниже 200 кбит/с и фронт на нагрузке не длиннее четырёх задержек кабеля в одну сторону; 2.2 — рекомендуемая длина около 1200 м, 32 единицы нагрузки
- Texas Instruments. SLLA272D: The RS-485 Design Guide, 2008, rev. 2021 — разд. 2 — 10 Мбит/с на 40 футах, 4000 футов на 100 кбит/с; рис. 5-1 — кабель 120 Ом, 11 пФ/фут, скорость 78 % (1,3 нс/фут); разд. 6, формула 1 и табл. 6-1 — отвод не длиннее tr·v·c/10; разд. 8, формула 3 — (32 − 20) UL / нагрузку узла, 96 узлов по 1/8 UL; рис. 9-1 — длина и скорость, правило длина × скорость < 10⁷, −6 дБ около 1200 м для 22 AWG; разд. 10 — минимальное расстояние между узлами
- Texas Instruments. SLLA036D: Interface Circuits for TIA/EIA-485 (RS-485), 2007, rev. 2008 — разд. 1 — длина стандартом не задана, номинально около 1,2 км на кабеле 24 AWG; 2.1 — если 2·tpd ≥ tt/5, линию терминируют, единица нагрузки 1 мА при 12 В; 2.2 — допустимое затухание −6 дБ на частоте, равной скорости; разд. 3 — пример 500 м, 500 кбит/с: фронт не длиннее 0,3 длительности бита, 3333 > 120, 0,36 дБ/30 м
- Texas Instruments (National Semiconductor). SNLA044B: AN-1031 TIA/EIA-422-B Overview, 2000, rev. 2013 — разд. 3 — линия считается длинной, если задержка распространения больше 1/8 времени фронта, измеренного от 0 до 100 %
- Texas Instruments. SLLA166: RS-485 Unit Load and Maximum Number of Bus Connections, 2004 — понятие единицы нагрузки; табл. 1 — 1/2, 1/4 и 1/8 UL дают 64, 128 и 256 узлов; резисторы смещения около 1 кОм занимают 12 UL
- Texas Instruments. SLLA112A: RS-485 for E-Meter Applications, 2004 — смещение шины нагружает её примерно на 20 UL, с узлами 1/4 UL остаётся 48 узлов; на скоростях до 250 кбит/с затухание на высоких частотах для 1200 м пренебрежимо; сопротивление витой пары 7–10 Ом на 100 м
Где пригодится
Встроить калькулятор на свой сайт
Скопируйте код и вставьте его в HTML страницы, статьи или вики. Виджет бесплатный, без рекламы, счётчиков и cookie. Условие одно — ссылка на GAW под рамкой остаётся на месте. Подробнее о виджетах
<iframe src="https://gaw.ru/embed/rs485-cable-length/" title="Длина линии RS-485: скорость, задержка, терминаторы" width="100%" height="640" style="border:1px solid #e3e5e9;border-radius:8px" loading="lazy" allow="clipboard-write"></iframe>
<p style="margin:6px 0 0;font-size:14px">Калькулятор: <a href="https://gaw.ru/tools/rs485-cable-length/">Длина линии RS-485: скорость, задержка, терминаторы</a> — GAW.ru</p>Автоподстройка высоты рамки
Если сайт разрешает скрипты, добавьте этот код один раз в любом месте страницы: рамка будет менять высоту вместе с результатом расчёта.
<script>window.addEventListener("message",function(e){if(e.origin!=="https://gaw.ru"||!e.data||e.data.type!=="gaw:embed-height")return;var f=document.querySelectorAll('iframe[src^="https://gaw.ru/embed/"]');for(var i=0;i<f.length;i++)if(f[i].contentWindow===e.source)f[i].style.height=e.data.height+"px"})</script>Обновлено .
Нашли ошибку в расчёте?