НовостиСИГМА-группа компанийНаукаПроизводствоСтатьи и публикацииСертификатыЛицензииНаградыОтзывыКонтактыЦентральный офисСеверо-ЗападВакансииЛоготипы
| |
RS485: теория и практика. Часть 3
Алексей ОМЕЛЬЯНЧУК, эксперт
Топология кабеля. Формально, RS485 требует топологии типа «шина», то есть идет по возможности цельный кусок кабеля и прямо на нем висят устройства.
На картинке представлены различные варианты топологии сети. Теоретически допустимы только (b),(d),(f). На практике это не очень удобно, намного удобнее вариант (e) – от кабеля в клеммной коробке сделать ответвление и подвести это ответвление к устройству. А возле следующего устройства сделать новое ответвление, и так далее. Во-первых, не следует думать, что полное отсутствие ответвлений» (в англоязычной литературе такие ответвления называют “stub”) безусловно решает проблему. Микросхема-драйвер не расположена непосредственно на клеммах (так что ответвление в несколько сантиметров гарантировано). Кроме того, излом кабеля, подошедшего и отошедшего от прибора сам по себе (если кабель не экранированный) ведет себя подобно ответвлению. Наконец, любой подключенный прибор сам по себе является нарушением идеальности кабельной линии – входное сопротивление приемника не бесконечно, а потому нет смысла идеалистически полностью устранять ответвления, нарушающие идеальную картину непрерывной кабельной линии.
Каковы же реальные (на основе физических законов) ограничения на ответвления? Наиболее распространена рекомендация делать ответвления длиной не более четверти времени нарастания фронта сигнала на линии. В таком случае невозможны нарушения сигнала более чем на четверть амплитуды, а с учетом неизбежного затухания всег отражении – ими точно можно пренебречь в цифровой системе (кстати, в системах, передающих аналоговый сигнал – например, НЧ видеосигнал по коаксиальному кабелю – такие искажения были бы недопустимы, там возможны ответвления не более нескольких процентов от времени фронта самого быстрого сигнала). Не удивляйтесь, что я сравниваю длину кабеля и время – физики с очевидностью всегда пересчитывают время в расстояние через скорость света (точнее, через скорость распространения изучаемого сигнала, а электрические сигналы в проводах распространяются почти со скоростью света).
Итак, для стандартного RS485, типичное время нарастания фронта составляет менее 10 наносекунд, а потому допустимое ответвление получается примерно 1 метр. Совсем немного. Однако, вспомним, что типичной скоростью данных в охранных системах является 9600 бит в секунду. В лучшем случае 19200 бит в секунду. Зачем для этого передатчики, способные передавать наносекундные импульсы ? Конечно, это лишние траты энергии и создание себе лишних проблем. Широко выпускаются передатчики, у которых сознательно значительно снижена скорость нарастания. Они не могут передавать 15 Мбит в секунду, но нам это и не нужно. Типичная микросхема со специально ограниченной скоростью нарастания фронта обеспечивает надежную передачу сигналов до 250 кБит в секунду. Это тоже слишком много, но меньше практически не делают. У таких микросхем (практически все производители неторопливой охранной техники предпочитают именно их) время нарастания фронта составляет не менее 200 наносекунд, а, соответственно, допустимая длина ответвления – около 20 метров. Как правило, производители не пишут об этом в документации. Потому что вдруг иногда в спешке не ту микросхему поставят, да и вообще производители предпочитают иметь максимальный запас против возможных ошибок монтажа – но вы можете иметь в виду, что на самом деле в большинстве случаев ответвления до 100 метров вполне допустимы. Если надо, запросите производителя, он подтвердит. Или, если производитель не отвечает, опять применим реверс-инжиниринг: посмотрите какие применены микросхемы, их параметры (datasheet) легко найти в Интернете, вас интересует параметр «Driver Rise/Fall Time» (как вы понимаете, микросхемы импортные, и даташиты к микросхемам на импортном языке).
Кроме того, помните (см. предыдущие статьи), что в реальной жизни вообще проблемы согласования кабельной сети не столь важны. Отражения и дребезг, вызванные слишком большими ответвлениями, затухнут еще пока будут идти по этим ответвлениям, и уж точно не помешают передаче сигнала. Единственная рукотворная проблема, которая может помешать сигналу, это если монтажник на конце каждого такого ответвления поставит по согласующему резистору. Во всей кабельной сети должно быть не более двух резисторов. Что же делать, если ваша сеть похожа не на прямой отрезок, а на каракатицу или развесистое дерево (варианты (a) и (c) на картинке выше вполне могут образоваться, особенно в результате нескольких этапов улучшения и расширения системы). Выберите сами, какие два конца каких ветвей назначить основными (лучше самые длинные, и на которых много равномерно распределенных устройств) и там поставьте согласующие резисторы. А можете вообще их не ставить (если будут проблемы – тогда и попробуете подключить).
Теперь обговорим, сколько устройств может быть на одной сети RS485. Согласно стандарту – 32. Это обусловлено заложенными в стандарт требованиями на нагрузочную способность передатчика и на входное сопротивление приемника. Как вы уже догадались, большинство современных микросхем намного лучше, чем требовались в стандарте. Заглядываем в даташит – типичные значения допустимых количеств микросхем на линии 128 или 256. Однако в данном случае не все определяется микросхемой. Помните, RS485 по сути определяет лишь уровни напряжений на линии. Производители конкретного оборудования смаи придумывают логический протокол общения, а без определенных правил общения нельзя – ведь RS485 – протокол двунаправленный, все устройства могут и принимать и передавать информацию по одной и той же паре проводов, а потому должны быть строгие правила – когда кто передает, и пока один передает, все остальные обязательно слушают. Самое распространенное решение – система мастер-слэйв (по-русски ее раньше называли ведущий-ведомый, но я настолько уже привык к англоязычным калькам, что переучиваться не буду). Суть системы в том, что один прибор – мастер – решает кто и когда будет передавать. Изначально все слэйвы (пассивные, ведомые) слушают, и если мастер обратился к ним, то отвечают, а пока мастер к ним не обратится – сидят и не высовываются. У разных производителей бывают разные форматы команд. У одного производителя, например, адрес слэйва состоит из 24 бит, то есть в одной сети может быть формально до 16 миллионов устройств. Тут ограничение приходит от стандарта RS485 или от возможностей микросхемы – в любом случае можно включить не более 256 устройств. Однако, у другого известного мне производителя, протокол намного экономичнее. Типовой пакет занимает всего 1 байт, то есть 8 бит, из них 2 бита служебные и 6 бит задают адрес слэйва. Тут уж независимо от примененных микросхем можно задействовать не более 64 устройств.
Есть и еще более сложная проблема. Если применена опросная система (мастер по очереди опрашивает слэйвов), то время полного опроса всей системы пропорционально количеству устройств. Например, если опрос занимает передачу десятка байт туда и обратно, на скорости 9600 это займет 20 миллисекунд. Немного? а теперь умножьте на 256 – получите 5 секунд. Если для пожарной системы это еще может быть приемлемо, то для системы контроля доступа пожалуй тяжело найти клиента, готового ждать 5 секунд после поднесения карты – многие мои знакомые за это время выломают дверь и еще и настучат по голове тому, кто такую систему установил. Теперь понимаете, зачем был придуман упомянутый мной протокол, в котором один пакет занимает всего один байт? Увы, сколько именно времени занимает опрос всей системы – даже производитель представляет довольно смутно, ибо все зависит от ситуации. Чем более сложная и многофункциональная система, тем более вероятно, что после 30-ти устройств могут начаться изрядные задержки. А потому не стоит слепо верить рекламным утверждениям про 256 устройств на линии. Поставить-то 256 устройств можно, и работать система будет, но вот понравится ли вам как она работает ? Очень может быть, что все будет далеко не так прекрасно, как было на демонстрационном стенде с 2-мя или 3-мя устройствами.
Ну и, наконец, последний номер нашей программы. Усилители, разветвители и преобразователи сигнала.
Начнем с самого распространенного варианта – преобразователя RS232 в RS485. Суть проблемы в том, что, как упомянуто выше, в каждой системе приняты свои способы как решать, кто сейчас должен передавать данные и в каком направлении. Конвертор RS232/485, выпущенный уважаемой фирмой из континентального Китая, конечно, не знает, как устроен высокоуровневый протокол общения в системе, куда вы его применяете. RS232, к сожалению, изначально предназначен для передави данных в разные стороны по разным проводам, а потому ваш компьютер, к которому вы подключили конвертор, ВСЕГДА что-то передает по RS232. Конечно, чаще всего он передает «тишину», но конвертор не настолько умен, чтобы отличить «тишину» от длинной последовательности единиц. В большинстве случаев конвертор устроен просто – пока данные, передаваемые со стороны компьютера, меняются – он транслирует их на канал RS485. Как только компьютер задумался – конвертор отключает свой передатчик и слушает, что передают другие. Такие паузы очень нежелательны.
Абсолютно аналогично обстоит дело и с передатчиками RS485 по радиоканалу или по оптоволокну. Не существует гарантированного алгоритма, по которому конвертор RS485 в другой протокол может догадаться, когда в какую сторону он должен передавать данные. Я в свое время участвовал в производстве конверторов RS485 в оптоволокно. За несколько лет по требованиям разных клиентов для разных систем мы встроили в устройство 6 (шесть!) разных алгоритмов. Не от хорошей жизни, каждый новый алгоритм оказывался единственным, работающим в очередной системе.
То же самое относится и к «мостам» или «репитерам». Подобные устройства могут работать лишь в очень ограниченном числе случаев, и только если «репитеры» произведены тем же производителем, что и остальные RS485 устройства в системе. Тогда эти «репитеры» будут точно «знать», когда переключаться с приема на передачу и смогут работать, хотя бы даже в некоторых условиях.
А теперь немного более утешительных слов. Конверторы USB-RS485, а также конверторы Ethernet-RS485 работают значительно более надежно, поскольку USB и Ethernet – это очень грамотно стандартизованные протоколы, они содержат в себе всю необходимую информацию – когда, и какая информация, в какую сторону передается. Единственная проблема – Ethernet может добавлять непредсказуемую задержку при передаче данных, а многие протоколы типа мастер-слэйв, работающие по RS485 и не знающие о наличии промежуточных конверторов при передаче сигнала, воспримут задержку как потерю связи. В локальной сети при небольшой ее загрузке это пройдет, а если вы примените такие конверторы для передачи через Интернет – скорее всего, ничего не получится. Ну и в любом случае и конвертор USB-RS485 и конвертор Ethernet-RS485 может применяться только для связи компьютера с сетью устройств RS485. Для связи между двумя аппаратными устройствами применить такие конверторы не получится у них нет ни Ethernet ни USB.
Уффф! Вот и окончен многотомный труд по описанию особенностей и подводных камней, присутствующих в таком привычном протоколе связи, как RS485. Уже 40 лет этот протокол применяется по всему миру, но так и не был толком стандартизован, остался очень нишевым решением, применяемым в частных системах, не предназначенных для взаимодействия с другими системами. И хотя его почтенный возраст вызывает ощущение, что он прост, привычен и понятен, это ощущение ложно и легко приводит к проблемам при запуске реальных систем. Большинство фактов об RS485 на поверку оказываются не более чем традиционными заблуждениями. Тем не менее, для того, чтобы действительно понять, как он работает, достаточно школьных знаний – закона Ома и закона Ломоносова (про то, что ничего никуда не девается и не берется ниоткуда). Плюс, конечно, умение применять эти знания, которым и должен настоящий инженер выделяться среди, увы, многих носителей дипломов о высшем образовании.
Архив публикаций