Углубленное описание стандарта EIA485 (RS485). Физические интерфейсы RS485 и RS422 Rs 485 интерфейс схема подключения

В условиях промышленного применения беспроводные линии передачи данных никогда не смогут полностью заменить проводные . Среди последних самым распространенным и надежным до сих пор остается последовательный интерфейс RS -485 . А производителем наиболее защищенных от внешних воздействий и разнообразных по конфигурации и степени интеграции приемопередатчиков для него, в свою очередь, остается компания Maxim Integrated .

Несмотря на рост популярности беспроводных сетей, наиболее надежную и устойчивую связь, особенно в жестких условиях эксплуатации, обеспечивают проводные. Правильно спроектированные проводные сети позволяют реализовать эффективную связь в промышленных приложениях и в системах автоматизированного управления производственными процессами, обеспечивая устойчивость к помехам, электростатическим разрядам и перенапряжениям. Отличительные особенности интерфейса RS-485 обусловили его широкое применение в индустрии.

Сравнение интерфейсов RS-485 и RS-422

Приемопередатчик RS-485 является наиболее распространенным интерфейсом физического уровня для реализации сетей с последовательной передачей данных, предназначенных для жестких условий эксплуатации в промышленных применениях и в системах автоматизированного управления зданиями. Данный стандарт последовательного интерфейса обеспечивает обмен данными с высокой скоростью на сравнительно большое расстояние по одной дифференциальной линии (витой паре). Основная проблема применения RS-485 в промышленности и в системах автоматизированного управления зданиями состоит в том, что электрические переходные процессы, возникающие при быстрой коммутации индуктивных нагрузок, электростатические разряды, а также импульсные перенапряжения, воздействуя на сети автоматизированных систем управления, способны исказить передаваемые данные или привести к выходу их из строя.

В настоящее время существует несколько типов интерфейсов передачи данных, каждый из которых разработан для конкретных применений с учетом требуемого набора параметров и структуры протокола. К числу интерфейсов последовательной передачи данных относятся CAN, RS-232, RS-485/RS-422, I 2 C, I 2 S, LIN, SPI и SMBus, однако RS-485 и RS-422 по-прежнему остаются наиболее надежными, особенно в жестких условиях эксплуатации.

Интерфейсы RS-485 и RS-422 во многом схожи, однако имеют некоторые существенные отличия, которые необходимо учитывать при проектировании систем передачи данных. В соответствии со стандартом TIA/EIA-422, интерфейс RS-422 специфицирован для промышленных применений с одним ведущим устройством шины данных, к которой может быть подключено до 10 ведомых устройств (рисунок 1). Он обеспечивает передачу на скорости до 10 Мбит/с, используя витую пару, что позволяет повысить помехоустойчивость и достичь максимально возможной дальности и скорости передачи данных. Типичные области применения RS-422 – автоматизация производственных процессов (производство химикатов, пищевое производство, бумажные фабрики), комплексная автоматизация производства (автомобильная и металлообрабатывающая промышленность), системы вентиляции и кондиционирования, системы безопасности, управление двигателями и контроль за перемещением объектов.

RS-485 обеспечивает более высокую гибкость благодаря возможности использования нескольких ведущих устройств на общей шине, а также увеличения максимального числа устройств на шине с 10 до 32. Согласно стандарту TIA/EIA-485, интерфейс RS-485 по сравнению с RS-422 имеет более широкий диапазон синфазного напряжения (-7…12 В вместо ±7В) и несколько меньший диапазон дифференциального напряжения (±1,5 В вместо ±2 В), что обеспечивает достаточный уровень сигнала приемника при максимальной нагрузке линии. Используя расширенные возможности многоточечной шины данных, можно создавать сети устройств, подключенных к одному последовательному порту RS-485. Благодаря высокой помехоустойчивости и возможности многоточечных подключений RS-485 является наилучшим среди последовательных интерфейсов для использования в промышленных распределенных системах, подключаемых к программируемому логическому контроллеру (PLC), графическому контроллеру (HMI) или другим контроллерам для сбора данных. Поскольку RS-485 является расширенным вариантом RS-422, все устройства RS-422 могут подключаться к шине, управляемой ведущим устройством RS-485. Типичные области применения для RS-485 аналогичны перечисленным выше областям применения RS-422, при этом более частое использование RS-485 объясняется его расширенными возможностями.

RS-485 – самый популярный промышленный интерфейс

Стандарт TIA/EIA-485 допускает использование RS-485 на расстоянии до 1200 м. На более коротких дистанциях скорости передачи данных – более 40 Мбит/с. Использование дифференциального сигнала обеспечивает интерфейсу RS-485 более высокую дальность, однако скорость передачи данных уменьшается по мере увеличения длины линии. На скорость передачи данных влияет также площадь сечения проводов линии и число устройств, подключенных к ней. При необходимости получения одновременно большой дальности и высокой скорости передачи данных рекомендуется использовать приемопередатчики RS-485 со встроенной функцией высокочастотной коррекции, например, MAX3291 . Интерфейс RS-485 может использоваться в полудуплексном режиме с применением одной витой пары проводов или в дуплексном режиме с одновременными передачей и приемом данных, что обеспечивается использованием двух витых пар (четыре провода). В многоточечной конфигурации в полудуплексном режиме RS-485 способен поддерживать до 32 передатчиков и до 32 приемников. Однако микросхемы приемопередатчиков нового поколения имеют более высокий входной импеданс, что позволяет снизить нагрузку приемника на линию от 1/4 до 1/8 стандартного значения. Например, при использовании приемопередатчика MAX13448E число приемников, подключаемых к шине RS-485, может быть увеличено до 256. Благодаря расширенному многоточечному интерфейсу RS-485 имеется возможность построения сетей различных устройств, подключенных к одному последовательному порту, как показано на рисунке 2.

Чувствительность приемника составляет ±200 мВ. Следовательно, для распознавания одного бита данных уровни сигнала в точке подключения приемника должны быть больше +200 мВ для нуля и меньше -200 мВ для единицы (рисунок 3). При этом приемник будет подавлять помехи, уровень которых находится в диапазоне ±200 мВ. Дифференциальная линия обеспечивает также эффективное подавление синфазных помех. Минимальное входное сопротивление приемника составляет 12 кОм, выходное напряжение передатчика находится в диапазоне ± 1,5…± 5 В.

Проблемы, связанные с использованием последовательного интерфейса в промышленной среде

Разработчики промышленных систем сталкиваются со сложными задачами по обеспечению их надежной эксплуатации в электромагнитной обстановке, способной вывести из строя оборудование или нарушить работу цифровых систем передачи данных. Одним из примеров подобных систем является автоматическое управление технологическим оборудованием на автоматизированном промышленном предприятии. Контроллер, управляющий процессом, измеряет его параметры, а также параметры окружающей среды, и передает команды исполнительным устройствам либо формирует аварийные оповещения. Промышленные контроллеры представляют собой, как правило, микропроцессорные устройства, архитектура которых оптимизирована для решения задач данного промышленного предприятия. Линии передачи данных топологии «точка-точка» в таких системах подвержены сильным электромагнитным помехам от воздействия окружающей среды.

Преобразователи постоянного напряжения, используемые в промышленном производстве, работают с высокими входными напряжениями и обеспечивают изолированные от входа напряжения для питания нагрузки. Для питания устройств распределенной системы, не имеющих собственного сетевого источника питания, используются напряжения 24 или 48 В DC. Питание оконечной нагрузки осуществляется напряжением 12 или 5 В, полученным путем преобразования входного напряжения. Системам, обеспечивающим связь с удаленными датчиками или исполнительными устройствами, требуется защита от переходных процессов, электромагнитных помех и разности потенциалов земли.

Многие компании, такие как Maxim Integrated, прилагают большие усилия, чтобы интегральные микросхемы для промышленных применений отличались высокой надежностью и устойчивостью к неблагоприятной электромагнитной обстановке. Приемопередатчики RS-485 производства компании Maxim содержат встроенные цепи защиты от высоковольтных электростатических разрядов и импульсных перенапряжений и обладают возможностью «горячей» замены без потери данных в линии.

Защита систем передачи данных от неблагоприятных внешних воздействий

Усиленная защита от ЭСР

Электростатический разряд (ЭСР) возникает при соприкосновении двух противоположно заряженных материалов, вследствие чего происходит перенос статических зарядов и формируется искровой разряд. ЭСР часто возникает при контакте людей с окружающими предметами. Искровые разряды, возникающие при небрежном обращении с полупроводниковыми приборами, могут существенно ухудшить их характеристики или привести к полному разрушению полупроводниковой структуры. ЭСР может возникнуть, например, при замене кабеля или простом прикосновении к порту ввода-вывода и привести к отключению порта вследствие выхода из строя одной или нескольких микросхем интерфейса (рисунок 4).

Подобные аварии могут приводить к значительным убыткам, так как повышают стоимость гарантийного ремонта и воспринимаются потребителями как следствие низкого качества продукта. В промышленном производстве ЭСР представляет собой серьезную проблему, способную причинить убытки в миллиарды долларов ежегодно. В реальных условиях эксплуатации ЭСР может привести к отказу отдельных компонентов, а иногда и системы в целом. Для защиты интерфейсов передачи данных могут использоваться внешние диоды, однако некоторые интерфейсные микросхемы содержат встроенные компоненты защиты от ЭСР и не требуют дополнительных внешних цепей защиты. На рисунке 5 показана упрощенная функциональная схема типовой встроенной цепи защиты от ЭСР. Импульсные помехи в сигнальной линии ограничиваются диодной схемой защиты на уровнях напряжения питания V CC и земли и, таким образом, защищают внутреннюю часть схемы от повреждений. Производимые в настоящее время микросхемы интерфейсов и аналоговые коммутаторы со встроенной защитой от ЭСР в основном соответствуют стандарту МЭК (IEC) 61000-4-2.

Компания Maxim Integrated инвестировала значительные средства в разработку микросхем с надежной встроенной защитой от ЭСР и в настоящее время занимает лидирующие позиции в производстве приемопередатчиков интерфейсов от RS-232 до RS-485. Данные устройства выдерживают воздействие испытательных импульсов ЭСР, соответствующих МЭК (IEC) 61000-4-2 и JEDEC JS-001, непосредственно на порты ввода-вывода. Решения компании Maxim в области защиты от ЭСР отличаются надежностью, доступностью, отсутствием дополнительных внешних компонентов и меньшей стоимостью по сравнению с большинством аналогов. Все микросхемы интерфейсов производства этой компании содержат встроенные элементы, обеспечивающие защиту каждого вывода от ЭСР, возникающих в процессе производства и эксплуатации. Приемопередатчики семейства MAX3483AE /MAX3485AE обеспечивают защиту выходов передатчиков и входов приемников от воздействия высоковольтных импульсов амплитудой до ±20 кВ. При этом сохраняется нормальный режим работы изделий, не требуется выключения и повторного включения питания. Кроме того, встроенные элементы защиты от ЭСР обеспечивают функционирование при включении и выключении питания, а также в дежурном режиме с низким энергопотреблением.

Защита от перенапряжений

В промышленных применениях входы и выходы драйверов RS-485 подвержены сбоям, возникающим в результате импульсных перенапряжений. Параметры импульсных перенапряжений отличаются от ЭСР – в то время как длительность ЭСР обычно находится в диапазоне до 100 нс, длительность импульсных перенапряжений может составлять 200 мкс и более. Причинами возникновения перенапряжений могут быть ошибки проводного монтажа, плохие контакты, поврежденные или неисправные кабели, а также капли припоя, которые могут образовывать токопроводящее соединение между силовыми и сигнальными линиями на печатной плате или в разъеме. Поскольку в промышленных системах электропитания используются напряжения, превышающие 24 В, воздействие таких напряжений на стандартные приемопередатчики RS-485, не имеющие защиты от перенапряжений, приведет к их выходу из строя в течение нескольких минут или даже секунд. Для защиты от импульсных перенапряжений обычные микросхемы интерфейса RS-485 требуют дорогостоящих внешних устройств, выполненных на дискретных компонентах. Приемопередатчики RS-485 со встроенной защитой от перенапряжений способны выдерживать синфазные помехи в линии передачи данных до ±40, ±60 и ±80 В. Компания Maxim производит линейку приемопередатчиков RS-485/RS-422 MAX13442E …MAX13444E , устойчивых к постоянным напряжениям на входах и выходах до ±80 В относительно земли. Элементы защиты функционируют независимо от текущего состояния микросхемы, – включена ли она, выключена или находится в дежурном режиме, – что позволяет характеризовать данные приемопередатчики как наиболее надежные в отрасли, идеально подходящие для промышленных применений. Приемопередатчики производства компании Maxim сохраняют работоспособность при перенапряжениях, обусловленных замыканием силовых и сигнальных линий, ошибками проводного монтажа, неправильным подключением разъемов, дефектами кабелей и неправильной эксплуатацией.

Устойчивость приемников к неопределенным состояниям линии

Важной характеристикой микросхем интерфейса RS-485 является невосприимчивость приемников к неопределенным состояниям линии, что гарантирует установку высокого логического уровня на выходе приемника при разомкнутых или замкнутых входах, а также при переходе всех передатчиков, подключенных к линии, в неактивный режим (высокоимпедансное состояние выходов). Проблема корректного восприятия приемником сигналов замкнутой линии данных решается путем смещения порогов входного сигнала до отрицательных напряжений -50 и -200 мВ. Если входное дифференциальное напряжение приемника V A – V B больше или равно -50 мВ – на выходе R 0 устанавливается высокий уровень. Если V A – V B меньше или равно -200 мВ – на выходе R 0 устанавливается низкий уровень. При переходе всех передатчиков в неактивное состояние и наличии в линии оконечной нагрузки дифференциальное входное напряжение приемника близко к нулю, вследствие чего на выходе приемника устанавливается высокий уровень. При этом запас помехоустойчивости по входу составляет 50 мВ. В отличие от приемопередатчиков предыдущего поколения, пороги -50 и -200 мВ соответствуют значениям ±200 мВ, установленным стандартом EIA/TIA-485.

Возможность «горячей» замены

Литература

  1. Application note 4491, «Damage from a Lightning Bolt or a Spark–It Depends on How Tall You Are!»;
  2. Application note 5260, «Design Considerations for a Harsh Industrial Environment»;
  3. Application note 639, «Maxim Leads the Way in ESD Protection».

Цель настоящей статьи - предоставить базовые рекомендации по выбору схемы соединений для сетей на основе RS-485. Спецификация RS-485 (официальное название TIA/EIA-485-A) не дает конкретных пояснений по поводу того, как должна осуществляться разводка сетей RS-485. Однако она предоставляет некоторые рекомендации. Эти рекомендации и инженерная практика в области обработки звука положены в основу этой статьи. Однако представленные здесь советы ни в коем случае не охватывают всего разнообразия возможных вариантов построения сетей.

RS-485 передает цифровую информацию между многими объектами. Скорость передачи данных может достигать 10 Мбит/с, а иногда и превышать эту величину. RS-485 предназначен для передачи этой информации на значительные расстояния, и 1000 метров хорошо укладывается в его возможности. Расстояние и скорость передачи данных, с которыми RS-485 может успешно использоваться, зависят от многих моментов при разработке схемы межсоединений системы.

Кабель

RS-485 спроектирован как балансная система. Проще говоря, это означает, что, помимо земляного, имеется два провода, которые используются для передачи сигнала.

Рис. 1. Балансная система использует, помимо земляного, два провода для передачи данных.

Система называется балансной, потому что сигнал на одном проводе является идеально точной противоположностью сигнала на втором проводе. Другими словами, если один провод передает высокий уровень, другой провод будет передавать низкий уровень, и наоборот. См. Рис. 2.

Рис. 2. Сигналы на двух проводах балансной системы идеально противоположны.

Несмотря на то, что RS-485 может успешно осуществлять передачу с использованием различных типов передающей среды, он должен использоваться с проводкой, обычно называемой "витая пара".

Что такое витая пара и почему она используется?

Как следует из ее названия, витая пара - это просто пара проводов, которые имеют равную длину и свиты вместе. Использование передатчика, отвечающего требованиям спецификации RS-485, с кабелем на основе витой пары, уменьшает два главных источника проблем для разработчиков быстродействующих территориально распределенных сетей, а именно излучаемые электромагнитные помехи и индуцируемые электромагнитные помехи (наводка).

Излучаемые электромагнитные помехи

Как показано на рисунке 3, всякий раз, когда для передачи информации используются импульсы с крутыми фронтами, в сигнале присутствуют высокочастотные составляющие. Эти крутые фронты нужны при более высоких скоростях, чем способен обеспечить RS-485.

Рис. 3. Форма сигнала последовательности прямоугольных импульсов с частотой 125 кГц и ее БПФ

Полученные в итоге высокочастотные компоненты этих крутых фронтов вместе с длинными проводами могут привести к излучению электромагнитных помех (EMI). Балансная система, использующая линии связи на основе витой пары, уменьшает этот эффект, делая систему неэффективным излучателем. Это работает на очень простом принципе. Поскольку сигналы на линиях равны, но инверсны, излучаемые от каждого провода сигналы будут также иметь тенденцию быть равными, но инверсными. Это создает эффект подавления одного сигнала другим, что, в свою очередь, означает отсутствие электромагнитного излучения. Однако, это основано на предположении, что провода имеют точно одинаковую длину и точно одинаковое расположение. Поскольку невозможно одновременно иметь два провода абсолютно одинаково расположенными, провода должны быть близко друг к другу насколько возможно. Скручивание проводов помогает нейтрализовать любое остаточное электро-магнитное излучение из-за конечного расстояния между двумя проводами.

Индуцируемые электромагнитные помехи

Индуцируемые электромагнитные помехи - в основном та же самая проблема, что и излучаемые, но наоборот. Межсоединения, используемые в системе на основе RS-485, также действуют как антенна, которая получает нежелательные сигналы. Эти нежелательные сигналы могут искажать полезные сигналы, что, в свою очередь, может привести к ошибкам в данных. По той же самой причине, по которой витая пара помогает предотвращать излучение электромагнитных помех, она также поможет снизить влияние наводимых электромагнитных помех. Поскольку два провода расположены вместе и скручены, шум, наведенный на одном проводе будет иметь тенденцию быть тем же самым, что и наведенный на втором проводе. Этот тип шума называют "синфазным шумом". Поскольку приемники RS-485 предназначены для обнаружения сигналов, которые являются противоположностью друг друга, они могут легко подавлять шум, который является общим для обоих проводов.

Волновое сопротивление витой пары

В зависимости от геометрии кабеля и материалов, используемых в изоляции, витая пара будет обладать соответствующим "волновым сопротивлением (характеристическим импедансом)", которое обычно определяется ее производителем. Спецификация RS-485 рекомендует, но явно не навязывает, чтобы это волновое сопротивление было равно 120 Ом. Рекомендация этого импеданса необходима для вычисления наихудшей нагрузки и диапазонов синфазных напряжений, определенных в спецификации RS-485. По всей видимости, спецификация не диктует этот импеданс в интересах гибкости. Если по каким-либо причинам не может использоваться 120-омный кабель, рекомендуется, чтобы наихудший вариант нагрузки (допустимое число передатчиков и приемников) и наихудшие диапазоны синфазных напряжений были повторно рассчитаны, дабы удостовериться, что проектируемая система будет работать. Публикация TSB89 содержит раздел, специально посвященный таким вычислениям.

Число витых пар на каждый передатчик

Теперь, когда мы понимаем, какой нужен тип кабеля, возникает вопрос о том, каким количеством витых пар может управлять передатчик. Ответ короткий - точно одной. Хотя передатчик и может при некоторых обстоятельствах управлять более чем одной витой парой, это не предусмотрено спецификацией.

Согласующие резисторы

Поскольку затронуты высокие частоты и большие расстояния, должное внимание должно быть уделено эффектам, возникающим в линиях связи. Однако, детальное обсуждение этих эффектов и корректных методов согласования далеко выходит за рамки настоящей статьи. Помня об этом, техника согласования будет кратко рассмотрена в своей простейшей форме, постольку, поскольку она имеет отношение к RS-485.

Согласующий резистор - это просто резистор, который установлен на крайнем конце или концах кабеля (Рис. 4). В идеале, сопротивление согласующего резистора равно волновому сопротивлению кабеля.

Рис 4. Согласующие резисторы должны иметь сопротивление, равное волновому сопротивлению витой пары и должны размещаться на дальних концах кабеля.

Если сопротивление согласующих резисторов не равно волновому сопротивлению кабеля, произойдет отражение, т.е. сигнал вернется по кабелю обратно. Это описывается уравнением (Rt-Zo)/(Zo+Rt), где Zo - сопротивление кабеля, а Rt - номинал согласующего резистора. Хотя, в силу допустимых отклонений в кабеле и резисторе, некоторое отражение неизбежно, значительные расхождения могут вызвать отражения, достаточно большие для того, чтобы привести к ошибкам в данных. См. рисунок 5.

Рис. 5. Используя схему, показанную на верхнем рисунке, сигнал слева был получен с MAX3485, нагруженным на 120-омную витую пару, и 54-омным согласующим резистором. Сигнал справа был получен при корректном согласовании с помощью 120-омного резистора.

Помня об этом, важно обеспечить максимально-возможную близость значений сопротивления согласующего резистора и волнового сопротивления. Место установки согласующего резистора так-же очень важно. Согласующие резисторы должны всегда размещаться на дальних концах кабеля.

Как общее правило, согласующие резисторы должны быть помещены на обоих дальних концах кабеля. Хотя правильное согласование обоих концов абсолютно критично для большинства системных дизайнов, можно утверждать, что в одном специальном случае необходим только один согласующий резистор. Этот случай имеет место в системе, в которой имеется единственный передатчик, и этот единственный передатчик расположен на дальнем конце кабеля. В этом случае нет необходимости размещать согласующий резистор на конце кабеля с передатчиком, поскольку сигнал всегда распространяется от этого передатчика.

Максимальное число передатчиков и приемников в сети

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

В идеальном мире, все приемники и неактивные передатчики будут иметь бесконечный импеданс и никогда не будут нагружать систему. В реальном мире, однако, так не бывает. Каждый приемник, подключенный к сети и все неактивные передатчики увеличивают нагрузку. Чтобы помочь разработчику сети на основе RS-485 выяснить, сколько устройств могут быть добавлены к сети, была создана гипотетическая единица, называемая "единичная нагрузка (unit load)". Все устройства, которые подключаются к сети RS-485, должны характеризоваться отношением множителей или долей единичной нагрузки. Два примера - MAX3485, который специфицирован как 1 единичная нагрузка, и MAX487, который специфицирован как 1/4 единичной нагрузки. Максимальное число единичных нагрузок на витой паре (принимая, что мы имеем дело с должным образом согласованным кабелем, имеющим волновое сопротивление 120 Ом или больше) - 32. Для приведенных выше примеров это означает, что в одну сеть могут быть включены до 32 устройств MAX3485 или до 128 MAX487.

Примеры правильных сетей

Вооружившись приведенной выше информацией, мы готовы разработать некоторые сети на основе RS-485. Вот несколько простых примеров.

Один передатчик, один приемник

Простейшая сеть - это один передатчик и один приемник (Рисунок 6). В этом примере, согласующий резистор показан на кабеле на стороне передатчика. Хотя здесь это необязательно, вероятно хорошей привычкой было бы проектировать сети с обоими согласующими резисторами. Это позволят перемещать передатчик в места, отличные от дальнего конца кабеля, а также позволяет, если в этом возникнет необходимость, добавить в сеть дополнительные передатчики.

Рис. 6. Сеть RS-485 с одним передатчиком и одним приемником

Один передатчик, несколько приемников

На рисунке 7 представлена сеть с одним передатчиком и несколькими приемниками. Здесь важно, чтобы расстояния от витой пары до приемников были как можно короче.

Рис. 7. Сеть RS-485 с одним передатчиком и несколькими приемниками

Два приемопередатчика

На рисунке 8 представлена сеть с двумя приемопередатчиками.

Рис. 8. Сеть RS-485 с двумя приемопередатчиками

Несколько приемопередатчиков

На рисунке 8 представлена сеть с несколькими приемопередатчиками. Как и в примере с одним передатчиком и несколькими приемниками, важно, чтобы расстояния от витой пары до приемников были как можно короче.

Рис. 9. Сеть RS-485 с несколькими приемопередатчиками

Примеры неправильных сетей

Ниже представлены примеры неправильно сконфигурированных систем. В каждом примере сравнивается форма сигнала, полученного от некорректно разработанной сети, с формой сигнала, полученного от должным образом разработанной системы. Форма сигнала измерялась дифференциально в точках A и B (A-B).

Несогласованная сеть

В этом примере, на концах витой пары отсутствуют согласующие резисторы. Поскольку сигнал распространяется от источника, он сталкивается с открытой цепью на конце кабеля. Это приводит к рассогласованию импедансов, вызывая отражение. В случае открытой цепи (как показано ниже), вся энергия отражается назад к источнику, вызывая сильное искажение формы сигнала.

Рис. 10. Несогласованная сеть RS-485 (вверху) и ее итоговая форма сигнала (слева) по сравнению с сигналом, полученным на правильно согласованной сети (справа)

Неправильное расположение терминатора

На рисунке 11 согласующий резистор (терминатор) присутствует, но его размещение отличается от дальнего конца кабеля. Поскольку сигнал распространяется от источника, он сталкивается с двумя рассогласованиями импеданса. Первое встречается на согласующем резисторе. Даже при том, что резистор согласован с волновым сопротивлением кабеля, есть еще кабель за резистором. Этот дополнительный кабель вызывает рассогласование, а значит и отражение сигнала. Второе рассогласование, это конец несогласованного кабеля, ведет к дополнительным отражениям.

Рис. 11. Сеть RS-485 с неправильно размещенным согласующим резистором (верхний рисунок) и ее итоговая форма сигнала (слева) по сравнению с сигналом, полученным на правильно согласованной сети (справа)

Составные кабели

На рисунке 12 имеется целый ряд проблем с организацией межсоединений. Первая проблема заключается в том, что драйверы RS-485 разработаны для управления только одной, правильным образом согласованной, витой парой. Здесь же каждый передатчик управляет четырьмя параллельными витыми парами. Это означает, что требуемые минимальные логические уровни не могут гарантироваться. В дополнение к тяжелой нагрузке, имеется рассогласование импедансов в точке, где соединяются несколько кабелей. Рассогласование импедансов в очередной раз означает отражения и, как следствие, искажение сигнала.

Рис. 12. Сеть RS-485, некорректно использующая несколько витых пар

Длинные ответвители

На рисунке 13, кабель корректно согласован и передатчик нагружен только на одну витую пару; однако сегмент провода в точке подключения (ответвитель - stub) приемника чрезмерно длинный. Длинные ответвители вызывают значительное рассогласование импедансов и, таким образом, отражение сигнала. Все ответвители должны быть как можно короче.


Рис. 13. Сеть RS-485 использующая 3-метровый ответвитель (рисунок сверху) и ее итоговый сигнал (слева) по сравнению с сигналом, полученным с коротким ответвлением

Интерфейс RS-485 предполагает использование соединения между приборами типа «шина», когда все приборы соединяются по интерфейсу одной парой проводов (линии A и B). Линия связи должна быть согласована с двух концов оконечными резисторами

Максимально возможная длина линии RS-485 определяется, в основном, характеристиками кабеля и электромагнитной обстановкой на объекте эксплуатации. При использовании кабеля с диаметром жил 0,5 мм (сечение около 0,2 кв. мм) рекомендуемая длина линии RS-485 - не более 1200 м, при сечении 0,5 кв. мм - не более 3000 м. Использование кабеля с сечением жил менее 0,2 кв. мм нежелательно. Рекомендуется использовать кабель типа «витая пара» для уменьшения восприимчивости линии к электромагнитным помехам, а также уменьшения уровня излучаемых помех. При протяжённости линии RS-485 от 100 м использование витой пары обязательно.
Для подключения приборов к интерфейсу RS-485 необходимо контакты «А» и «В» приборов подключить соответственно к линиям A и B интерфейса.

Для согласования используются резисторы сопротивлением 620 Ом, которые устанавливаются на первом и последнем приборах в линии. Большинство приборов имеет встроенное согласующее сопротивление, которое может быть включено в линию установкой перемычки («джампера») на плате прибора. Поскольку в состоянии поставки перемычки установлены, их нужно снять на всех приборах, кроме первого и последнего в линии RS-485. В преобразователях-повторителях «С2000-ПИ» согласующее сопротивление для каждого (изолированного и неизолированного) выхода RS-485 включается переключателями. В приборах «С2000-К» и «С2000-КС» встроенное согласующее сопротивление и перемычка для его подключения отсутствуют. Если прибор такого типа является первым или последним в линии RS-485, необходимо установить между клеммами «А» и «В» резистор сопротивлением 620 Ом. Этот резистор входит в комплект поставки прибора. Пульт «С2000М» («С2000») может быть установлен в любом месте линии RS-485. Если он является первым или последним прибором в линии, между клеммами «А» и «В» устанавливается согласующий резистор 620 Ом (входит в комплект поставки).

Для увеличения длины линии связи могут быть использованы повторители-ретрансляторы интерфейса RS-485 с автоматическим переключением направления передачи (см. рис.).

Например, преобразователь-повторитель интерфейсов с гальванической изоляцией «С2000-ПИ» позволяет увеличить длину линии максимум на 1500 м, обеспечивает гальваническую изоляцию между сегментами линии и автоматически отключает короткозамкнутые сегменты интерфейса RS-485. Каждый изолированный сегмент линии RS-485 должен быть согласован с двух сторон - в начале и конце. Следует обратить внимание на включение согласующих резисторов в каждом сегменте линии RS-485: они должны быть включены переключателями в повторителях «С2000-ПИ», а не перемычками в приборах, поскольку переключатели не только подключают согласующее сопротивление, но также выдают в линию RS 485 напряжение смещения, которое необходимо для правильной работы этих повторителей.

ВНИМАНИЕ! Цепи «0 В» изолированных сегментов линии между собой не объединяются. Более того, нельзя питать изолированные приборы от общего источника питания во избежание гальванической связи через общие цепи питания.

С помощью повторителей «С2000-ПИ» можно делать длинные ответвления от основной магистрали RS-485 для построения топологии «звезда». При этом должен быть согласован и сегмент, от которого делается ответвление, и каждое из ответвлений, как показано на рис. 83. Следует обратить особое внимание, что согласующие резисторы на «С2000-ПИ» должны устанавливаться переключателями.


Ответвления на линии RS-485 нежелательны, так как они увеличивают искажение сигнала в линии, но практически допустимы при небольшой длине ответвлений (не более 50 м). Согласующие резисторы на отдельных ответвлениях не устанавливаются. Ответвления большой длины рекомендуется делать с помощью повторителей «С2000-ПИ», как показано на рис.

В распределенной системе, в которой подключенные к одной линии RS-485 пульт и приборы питаются от разных источников питания, необходимо объединение цепей «0 В» всех приборов и пульта для выравнивания их потенциалов. Несоблюдение этого требования может привести к неустойчивой связи пульта с приборами. При использовании кабеля с несколькими витыми парами проводов для цепи выравнивания потенциалов можно использовать свободную пару. Допускается использовать для этой цели экран экранированной витой пары при условии, что экран не заземлен. Схема подключения приборов и пульта к линии RS-485 приведена на рис.
На объектах с тяжелой электромагнитной обстановкой для линии RS-485 можно использовать кабель «экранированная витая пара». Максимальная дальность связи при использовании экранированного кабеля может быть меньше из-за более высокой емкости такого кабеля. Экран кабеля нужно заземлять только в одной точке


Иногда возникает необходимость передачи информационного протокола системы «Орион» по локальной вычислительной сети Ethernet. Одним из решений поставленной задачи является использование преобразователей интерфейса «С2000-Ethernet».

При использовании преобразователя возможны два режима работы:

  • Прозрачный режим. Осуществляет передачу данных из интерфейса RS-232 или RS-485 в Ethernet и обратно. Предназначен для использования как в составе системы «Орион» (протокол «Орион» и «Орион Про»), так и в составе других систем;
  • Режим с сохранением событий. Обеспечивает увеличение скорости обмена между устройствами системы «Орион» и уменьшение объема информации, передаваемой по локальной сети. Режим используется только в системе с протоколом обмена «Орион».

В случае использования топологии типа «точка-многоточие», к одному «С2000-Ethernet» на стороне опросчика допускается подключать до 8 «С2000-Ethernet» на клиентской стороне.

Структурная схема использования «С2000-Ethernet» с «С2000М»


Для подключения удаленных приборов к сетевому контроллеру по волоконно-оптической линии используются два преобразователя «RS-FX-MM» (для многомодовых ВОЛС) или «RS-FX-SM40» (для одномодовых ВОЛС): один – на стороне сетевого контроллера, второй – на стороне удаленных приборов системы «Орион».

Компания «Болид» поставляет сертифицированные в соответствии с преобразователи информационных интерфейсов ИСО «Орион» в ВОЛС, которые могут применяться в том числе в системах АПС и пожарной автоматики. Максимальная длина передачи данных для преобразователя «RS-FX-MM» составляет 2 км, для преобразователя «RS-FX-SM40» - 40 км. Схема подключения приборов по интерфейсу RS-485 с использованием преобразователей в ВОЛС приведена на рис.


В ряде случаев возникает необходимость передачи информационного протокола системы «Орион» по радиоканалу. Основными достоинствами данной сети являются:

  • искро-взрывобезопасность;
  • отсутствие необходимости прокладывать кабель.

Для решения поставленной задачи можно применить радиомодемы «С2000-РПИ» (частота 2,4 ГГц) и «Невод-5» (433, 92 МГц).


Радиоканальный повторитель интерфейсов «С2000-РПИ» (далее - РПИ) позволяет подключать различное оборудование (с интерфейсом RS-232/RS-485) по радиоканалу и транслировать данные интерфейсов RS-232/RS-485 в диапазоне частот от 2405 до 2483,5 МГц. Предназначен для использования как в составе системы «Орион», так и в составе других систем, использующих пакетную передачу данных. Поддерживает работу в радиосетях с топологиями «Точка-точка», «Точка-многоточие» и ретрансляцию пакетов. Имеет два исполнения: «С2000-РПИ» - с внешней антенной и «С2000-РПИ исп. 01» - без внешней антенны.

Длина радиоканала между двумя РПИ в пределах прямой видимости:

на мощности 10 мВт:

  • «С2000-РПИ» - до 200 м (со штатной антенной);
  • «С2000-РПИ исп. 01» - до 150 м;

на мощности 100 мВт:

  • «С2000-РПИ» - до 600 м (со штатной антенной);
  • «С2000-РПИ исп. 01» - до 350 м.
Возможны два режима работы РПИ:
  • Дежурный режим. Осуществляет передачу данных из интерфейса RS-232 или RS-485 в радиоканал и обратно;
  • Режим ретрансляции. Осуществляет прием и передачу (ретрансляцию пакетов) в радиоканале с одновременной выдачей информации в выбранный проводной интерфейс.
Особенности в работе системы с использованием РПИ:
  • Следует учитывать состояние радиоэфира, наличие технологических источников радиопомех, и возможность помех природного характера;
  • Для РПИ с внутренней антенной необходимо выбирать место с максимально возможным уровнем сигнала.

В следующих примерах система может работать как с ПК, так и без него.

Соединение «точка-точка»

Соединение «точка-многоточка»

В случае использования топологии типа «точка-многоточие», к одному «С2000-РПИ» на серверной стороне допускается подключать до 6 «С2000-РПИ» на клиентской стороне.

Работа РПИ в режиме ретрансляции пакетов по радиоканалу

Данные, получаемые РПИ №1 по интерфейсу RS-485, передаются по радиоканалу широковещательным пакетом. При приёме пакета по радиоканалу РПИ №2…4 выдают его по интерфейсу RS-485 приборам системы «Орион». РПИ №3 находится в режиме «Ретрансляция» и передаёт принятый пакет по радиоканалу на РПИ №4 и по интерфейсу RS-485 приборам системы «Орион».


Специалистами компании «Болид» были проведены испытания системы «Орион» с применением радиомодемов «Невод-5» производства фирмы «Геолинк Электроникс» (далее «Невод-5»), работающим на частоте 433,92 ± 0,2% МГц.

Соединение «точка-многоточка»

В случае использования топологии типа «точка-многоточка», количество «Невод-5» на клиентской стороне ограничивается только необходимой скоростью работы системы.

Повторяем, что в следующих примерах система может работать как с ПК, так и без него.
Работа в режиме ретрансляции пакетов по радиоканалу

Особенности в работе системы с использованием радиомодемов «Невод-5»:
  • При использовании стандартных антенн для волны с частотой 433,92 МГц нельзя располагать передатчики на расстоянии ближе 6 метров друг от друга.
  • Следует учитывать состояние радиоэфира, наличие технологических источников радиопомех и возможность помех природного характера

Для охранных систем и систем контроля доступа возможно построение схем без пульта «С2000М», при этом «C2000-Ethernet», помимо передачи интерфейса, осуществляют преобразование интерфейса RS-232 в RS-485.
Преобразователи «RS-FX-MM» и «RS-FX-SM40» не могут использоваться в таком режиме.


Если для сегментов интерфейса RS-485 используется воздушная прокладка, следует применять Блоки защиты линии «БЗЛ».

Для гальванической развязки сегментов интерфейса целесообразно использовать повторители «С2000-ПИ». При этом питание приборов, подключенных до и после «С2000-ПИ», следует производить от разных источников питания. Шины «0В» данных приборов объединять не следует. Рекомендуемая схема на примере объекта из 3-х зданий представлена на рисунке.

Описание

RS-485 (Recommended Standard 485 или EIA/ TIA -485-A) – рекомендованный стандарт передачи данных по двухпроводному полудуплексному многоточечному последовательному симметричному каналу связи. Совместная разработка ассоциаций: Electronic Industries Alliance (EIA) и Telecommunications Industry Association (TIA). Стандарт описывает только физические уровни передачи сигналов (т.е. только 1-й уровень модели взаимосвязи открытых систем OSI). Стандарт не описывает программную модель обмена и протоколы обмена. RS-485 создавался для расширения физических возможностей интерфейса RS232 по передаче двоичных данных.

Выпуски стандарта RS-485

Название: Recommended Standard 485
Electrical Characteristics of Generators and Receivers for Use in Balanced Multipoint Systems
Электрические характеристики генераторов и приёмников для использования в балансных многоточечных системах.

Разработчик: Electronics Industries Association (EIA) . Ассоциация промышленной электроники.
Выпуски стандарта:
RS-485A (Recommended Standard 485 Edition: A) год выпуска 1983.
EIA 485-A год выпуска 1986.
TIA /EIA 485-A год выпуска 1998.
TIA /EIA 485-A год редакции 2003.

Международные и национальные стандарты основанные на стандарте RS-485

ISO/IEC 8482 (1993г. действующий)
Издатель: ISO, IEC
Название: Information technology - Telecommunications and information exchange between Systems - Twisted pair multipoint interconnections .
Старые редакции:
ISO 8284 (1987г. не действующий)

ITU-T v.11 (1996г. действующий)
Издатель: INTERNATIONAL TELECOMMUNICATION UNION
Название: Electrical characteristics for balanced double-current interchange circuits opertiong at data signalling rates up to 10 Mbit/s .
Старые редакции:
ITU-T v.11 (1993г. не действующий)
CCITT v.11 (1988г. не действующий)

ANSI/ TIA -485-A (1998г. действующий)
Издатель: American National Standards Institute, ANSI
Название: Electrical Characteristics of Generators and Receivers for Use in Balanced Digital Multipoint Systems .

Свойства интерфейса стандарта RS-485

    Двунаправленная полудуплексная передача данных. Поток последовательных данных передаётся одновременно только в одну сторону, передача данных в другую сторону требует переключения приёмопередатчика. Приёмопередатчики принято называть "драйверами"(driver), это устройство или электрическая цепь, которая формирует физический сигнал на стороне передатчика.

    Симметричный канал связи. Для приёма/передачи данных используются два равнозначных сигнальных провода. Провода означаются латинскими буквами "А" и "В". По этим двум проводам идет последовательный обмен данными в обоих направлениях (поочередно). При использовании витой пары симметричный канал существенно повышает устойчивость сигнала к синфазной помехе и хорошо подавляет электромагнитные излучения создаваемые полезным сигналом.

    Дифференциальный (балансный способ передачи данных). При этом способе передачи данных на выходе приёмопередатчика изменяется разность потенциалов, при передаче "1" разность потенциалов между AB положительная при передаче "0" разность потенциалов между AB отрицательная. То есть, ток между контактами А и В, при передачи "0" и "1", течёт (балансирует) в противоположных направлениях.

    Многоточечность. Допускает множественное подключение приёмников и приёмопередатчиков к одной линии связи. При этом допускается подключение к линии только одного передатчика в данный момент времени, и множество приёмников, остальные передатчики должны ожидать освобождения линии связи для передачи данных.

    Низкоимпендансный выход передатчика. Буферный усилитель передатчика имеет низкоомный выход, что позволяет передавать сигнал ко многим приёмникам. Стандартная нагрузочная способность передатчика равна 32-м приёмникам на один передатчик. Кроме этого, токовый сигнал используется для работы "витой пары" (чем больше рабочий ток "витой пары", тем сильнее она подавляется синфазные помехи на линии связи).

    Зона нечувствительности. Если дифференциальный уровень сигнала между контактами АВ не превышает ±200мВ, то считается, что сигнал в линии отсутствует. Это увеличивает помехоустойчивость передачи данных.

Технические характеристики RS-485

    Допустимое число приёмопередатчиков (драйверов) 32

    Максимальная длина линии связи 1200 м (4000ft)

    Максимальная скорость передачи 10 Мбит/с

    Минимальный выходной сигнал драйвера ±1,5 В

    Максимальный выходной сигнал драйвера ±5 В

    Максимальный ток короткого замыкания драйвера 250 мА

    Выходное сопротивление драйвера 54 Ом

    Входное сопротивление драйвера 12 кОм

    Допустимое суммарное входное сопротивление 375 Ом

    Диапазон нечувствительности к сигналу ±200 мВ

    Уровень логической единицы (Uab) >+200 мВ

    Уровень логического нуля (Uab) ←200 мВ

Входное сопротивление для некоторых приёмников может быть более 12 кОм (единичная нагрузка). Например, 48 кОм (1/4 единичной нагрузки) или 96 кОм (1/8), что позволяет увеличить количество приёмников до 128 или 256. При разных входных сопротивлениях приёмников необходимо, чтобы общее входное сопротивление не было меньше 375 Ом.

Описание работы RS-485

Так как стандарт, RS-485 описывает только физический уровень процедуры обмена данными, то все проблемы обмена, синхронизации и квитирования, возлагаются на более высокий протокол обмена. Как мы уже говорили, наиболее часто, это стандарт RS-232 или другие верхние протоколы (ModBus , DCON и т.п.).

Сам RS-485 выполняет только следующие действия:

    Преобразует входящую последовательность "1" и "0" в дифференциальный сигнал.

    Передает дифференциальный сигнал в симметричную линию связи.

    Подключает или отключает передатчик драйвера по сигналу высшего протокола.

    Принимает дифференциальный сигнал с линии связи.

Если подключить осциллограф к контактам А-В (RS-485) и контактам GND-TDx(RS-232), то вы не увидите разницы в форме сигналов передаваемых в линиях связи. На самом деле, форма сигнала RS-485 полностью повторяет форму сигнала RS-232, за исключением инверсии (в RS-232 логическая единица передается напряжением -12 В, а в RS-485 +5 В).

Рис.1 Форма сигналов RS-232 и RS-485 при передаче двух символов "0" и "0".

Как видно из рис.1 происходит простое преобразование уровней сигнала по напряжению.

Хотя форма сигналов одинаковая у выше указанных стандартов, но способ их формирования и мощность сигналов различны.

Рис.2 Формирование сигналов RS-485 и RS-232

Преобразование уровней сигналов и новый способ их формирования позволил решить ряд проблем, которые в своё время не были учтены при создании стандарта RS-232.

Преимущества физического сигнала RS-485 перед сигналом RS-232

    Используется однополярный источник питания +5В, который используется для питания большинства электронных приборов и микросхем. Это упрощает конструкцию и облегчает согласование устройств.

    Мощность сигнала передатчика RS-485 в 10 раз превосходит мощность сигнала передатчика RS-232. Это позволяет подключать к одному передатчику RS-485 до 32 приёмников и таким образом вести широковещательную передачу данных.

    Использование симметричных сигналов, у которой имеется гальваническая развязка с нулевым потенциалом питающей сети. В результате исключено попадание помехи по нулевому проводу питания (как в RS-232). Учитывая возможность работы передатчика на низкоомную нагрузку, становится возможным использовать эффект подавления синфазных помех с помощью свойств "витой пары". Это существенно увеличивает дальность связи. Кроме этого появляется возможность "горячего" подключения прибора к линии связи (хотя это не предусмотрено стандартом RS-485). Заметим что в RS-232 "горячее" подключение прибора обычно приводит к выходу из строя СОМ порта компьютера.

Описание обмена данными по стандарту RS-485

Каждый приёмопередатчик (драйвер) RS-485 может находиться в одном из двух состояний: передача данных или приём данных. Переключение драйвера RS-485 происходит с помощью специального сигнала. Например, на рис.3 показан обмен данными с использованием преобразователя АС3 фирмы Овен. Режим преобразователя переключается сигналом RTS. Если RTS=1 (True) АС3 передает данные, которые поступают к нему от СОМ порта в сеть RS-485. При этом все остальные драйверы должны находиться в режиме приёма (RTS=0). По сути дела RS-485 является двунаправленным буферным мультиплексированным усилителем для сигналов RS-232.

Рис.3 Пример использования преобразователя Овен АС3.

Ситуация когда в одно время будет работать более одного драйвера RS-485 в режиме передатчика приводит к потере данных. Эта ситуация называется "коллизией". Чтобы коллизии не возникали в каналах обмена данными необходимо использовать более высокие протоколы (OSI). Такие как MODBUS, DCON, DH485 и др. Либо программы, которые напрямую работают с RS-232 и решают проблемы коллизий. Обычно эти протоколы называют 485-тыми протоколами. Хотя на самом деле, аппаратной основой всех этих протоколов служит, конечно, RS-232. Он обеспечивает аппаратную обработку всего потока информации. Программную обработку потока данных и решение проблем с коллизиями занимаются протоколы высшего уровня (Modbus и др.) и ПО.

Основные принципы реализации протоколов верхнего уровня (типа MODBUS)

Кратко рассмотрим эти протоколы, хотя они не имеют отношение к стандарту RS-485. Обычно протокол верхнего уровня включает в себя пакетную, кадровую или фреймовую организацию обмена. То есть, информация передаётся логически завершенными частями. Каждый кадр обязательно маркируется, т.е. обозначается его начало и конец специальными символами. Каждый кадр содержит адрес прибора, команду, данные, контрольную сумму, которые необходимы для организации многоточечного обмена. Чтобы избежать коллизий обычно применяют схему "ведущий"(master)-"ведомый"(slave). "Ведущий" имеет право самостоятельно переключать свой драйвер RS-485 в режим передачи, остальные драйверы RS-485 работают в режиме приёма и называются "ведомыми". Чтобы "ведомый" начал предавать данные в линию связи "ведущий" посылает ему специальную команду, которая дает прибору с указанным адресом право переключить свой драйвер в режим передачи на определенное время.

После передачи разрешающей команды "ведомому", "ведущий" отключает свой передатчик и ждет ответа "ведомого" в течение промежутка времени, который называется "таймаут". Если в течении таймаута ответ от "ведомого" не получен, то "ведущий" снова занимает линию связи. В роли "ведущего" обычно выступает программа, установленная на компьютер. Существуют и более сложная организация пакетных протоколов, которая позволяет циклически предавать роль "ведущего" от прибора к прибору. Обычно такие приборы называют "лидерами", либо говорят что приборы передают "маркер". Владение "маркером" делает прибор "ведущим", но он должен будет обязательно передать его другому прибору сети по определённому алгоритму. В основном, указанные выше протоколы, отличаются по этим алгоритмам.

Как мы видим, верхние протоколы имеют пакетную организацию и выполняются на программном уровне, они позволяют решить проблему с "коллизиями" данных и многоточечную организацию обмена данными.

Реализация приемопередатчиков (драйверов) RS-485

Многие фирмы изготовляют приемопередатчики RS485. Называют их обычно конверторы RS232 - RS485 или преобразователи RS232-RS485. Для реализации этих приборов выпускается специальные микросхемы. Роль этих микросхем сводится к преобразованию уровней сигналов RS232C к уровню сигналов RS485 (TTL/CMOS) и обратно, а также обеспечение работы полудуплексного режима.

По способу переключения в режим передачи различают приборы:

    Переключающиеся с помощью отдельного сигнала. Для перехода в режим передачи необходимо выставить активный сигнал на отдельном входе. Обычно это сигнал RST (СОМ порта). Эти приемопередатчики сейчас редко встречаются. Но, тем не менее, они иногда не заменимы. Допустим нужно прослушивать обмен данными между контроллерами промышленного оборудования. При этом, ваш приёмопередатчик не должен переходить в режим передачи, чтобы не создать коллизию в данной сети. Использование приёмопередатчика с автоматическим переключением здесь не допустимо. Пример такого конвертера Овен АС3.

    С автоматическим переключением и без проверки состояния линии. Наиболее распространённые конверторы, которые переключаются автоматически при появлении на их входе информационного сигнала. При этом они не контролируют занятость линии связи. Эти конверторы требуют осторожного применения из-за высокой вероятности возникновения коллизий. Пример конвертора Овен АС3М.

    С автоматическим переключением и с проверкой состояния линии. Наиболее продвинутые конверторы, которые могут передавать данные в сеть только при условии, что сеть не занята другими приёмопередатчиками и на входе имеется информационный сигнал.

Аппаратная реализация RS485 на примере преобразователя RS232-RS485 АС3 Овен

Рис.4 Принципиальная схема АС3 Овен.

На рис.4 представлена принципиальная схема преобразователя АС3 Овен. Этот преобразователь имеет отдельный сигнал для включения режима передачи данных. В качестве управляющего сигнала используется выходной сигнал СОМ порта RST. Если RST=1 (+12В) преобразователь передает данные с TD(Сом порта) в сеть RS485, если RST=0 (-12 В), то данные принимаются из сети RS-485 на вход RD (СОМ порта). Преобразователь работает от промышленной сети переменного тока напряжением 220 вольт. Блок питания преобразователя выполнен по импульсной схеме на базе микросхемы ТОР232N (DA1). Блок питания выдает два независимых напряжения +5В. Для приёма и преобразования полярных сигналов RS232 (±12 В) в однополярные сигналы TTL/CMOS уровня (+5 В) используется микросхема MAX232N (DD1). Данная микросхема интересна тем, что она питается от однополярного напряжения +5 В и имеет встроенные источники напряжения, которые необходимы для работы с полярными сигналами ±12 В. Для правильной работы встроенных источников напряжения к микросхеме MAX232N подключают внешние конденсаторы С14,С15,С17,С18. Кроме этого микросхема имеет по два преобразователя уровней сигналов RS-232C к TTL/CMOS в обоих направлениях.

Назначение сигналов:
RST -для переключения преобразователя в режим передачи/приёма
TD -передача данных из RS232 в RS485
RD -приём данных в RS232 из RS485

Далее сигналы RS232 преобразованные к уровню TTL/CMOS подаются на оптопары 6N137, которые осуществляют гальваническую развязку сигналов RS232 и RS485. Для передачи/приёма данных на стороне интерфейса RS485 используется микросхема DS75176 (многоточечный трансивер RS485). Данная микросхема запитана от отдельного источника напряжением +5 В. Микросхема представляет собой усилитель сигналов TTL/COMOS уровня с переключением направления передачи. Выходы DS75176 подключаются к контактам А и В через сопротивления 100 Ом, что обеспечивает ток короткого замыкания А-В в 250мА. Мощность сигнала RS485 примерно в 10 раз превышает мощность сигналов RS232. Эта микросхема усиливает сигнал до нужной мощности и обеспечивает полудуплексный режим работы.

Топология сети RS-485

Сеть RS-485 строится по последовательной шиной(bus) схеме, т.е. приборы в сети соединяются последовательно симметричными кабелями. Концы линий связи при этом должны быть нагружены согласующими резисторами- "терминаторами"(terminator), величина которых должна быть равна волновому сопротивлению кабеля связи.

Терминаторы выполняют следующие функции:

    Уменьшают отражение сигнала от конца линии связи.

    Обеспечивают достаточный ток через всю линию связи, что необходимо для подавления синфазной помехи с помощью кабеля типа "витая пара".

Если расстояние сегмента сети превышает 1200 м или количество драйверов в сегменте более 32 штук, нужно использовать повторитель (repeater), для создания следующего сегмента сети. При этом каждый сегмент сети должен быть подключен к терминаторам. Сегментом сети при этом считается кабель между крайним прибором и повторителем или между двумя повторителями.

Стандарт RS-485 не определяет, какой тип симметричного кабеля нужно использовать, но де-факто используют кабель типа "витая пара" с волновым сопротивлением 120 Ом.

Рис.6 Промышленный кабель Belden 3106A для сетей RS485

Рекомендовано использовать промышленный кабель Belden3106A для прокладки сетей RS485. Данный кабель имеет волновое сопротивление 120 Ом и двойной экран витой пары. Кабель Belden3106A содержит 4 провода. Оранжевый и белый провод представляют собой симметричную экранированную витую пару. Синий провод кабеля используется для соединения нулевого потенциала источников питания приборов в сети и называется "общий"(Common). Провод без изоляции используется для заземления оплетки кабеля и называется "дренажный" (Drain). В сегменте сети дренажный провод заземляется через сопротивление на шасси прибора, с одного из концов сегмента, чтобы не допустить протекания блуждающих токов через оплетку кабеля, при разном потенциале земли в удалённых точках.

Обычно сопротивления терминаторов и защитного заземления находится внутри прибора. Необходимо правильно подключить их с помощью перемычек или переключателей. В технической документации фирмы изготовителя приборов необходимо найти описание этих подключений.

Рис.7 Схема подключения 1747-AIC (Allen Bradley)

На рис.7 показаны соединения кабеля с промежуточными приборами сегмента сети. Для первого прибора в сегменте сети DH-485 необходимо установить перемычку 5-6 (она подключает терминатор 120 Ом, который находится внутри прибора 1747-AIC) и перемычку 1-2 (подключает дренажный провод к шасси прибора через внутреннее сопротивление). Для последнего прибора в сегменте сети нужно установить только перемычку 5-6 (подключить терминатор)

При использовании других симметричных кабелей, в особенности, когда не известно их волновое сопротивление, величину терминаторов подбирают опытным путем. Для этого необходимо установить осциллограф в середину сегмента сети. Контролируя форму прямоугольных импульсов передаваемых одним из драйверов можно сделать вывод о необходимости корректировки величины сопротивления терминатора.

Программное обеспечение для работы в сетях RS-485

Интерфейс RS-485, стал основным физическим интерфейсом для промышленных сетей передачи данных. Такие протоколы как ModBus, ProfiBus DP, DCON, DH-485 , работают по на физическом уровне RS-485.

Промышленные протоколы передачи данных часто бывают засекречены фирмами производителями. Информацию по тому или иному протоколу связи приходится собирать по крупицам.

Специалисту, работающему с промышленными сетями необходима программа для чтения всей информации передаваемой в информационных сетях. Основные секреты промышленных протоколов можно обнаружить только при всестороннем анализе переданных и полученных данных. Программа ComRead v.2.0 предназначена для сохранения и отображения данных и сервисных сигналов передаваемых в информационных сетях, которые работают по стандартам RS-232, RS-485, Bell-202 и др. Программа не только сохраняет всю информацию, но и создает временную развертку данных и сервисных сигналов. Программа ComRead v.2.0 сканирует информационный канал не влияя на его работу, то есть работает в режиме прослушивания физической среды передачи информации. Кроме того, программа может работать в режиме транслятора данных и сервисных сигналов. При этом она становится непосредственной частью информационного канала связи. Более подробно можно ознакомится с программой здесь

Возможность широковещательной передачи.

Многоточечность соединения.

Недостатки RS485

    Большое потребление энергии.

    Отсутствие сервисных сигналов.

    Возможность возникновения коллизий.

  • 2. Интерфейс RS-485
  • 4. Защитное смещение
  • 6. «Горячее» подключение к линии связи
  • 7. Рекомендации по организации протокола связи
  • Заключение

Вступление

Как следует из названия, статья эта - попытка объяснить начинающим что к чему и помочь обойти грабли, на которые уже кто-то наступал. Если кто-нибудь, потратив 15 минут на прочтение, сэкономит пару дней на отладке системы, я буду считать свою задачу выполненной.

Столкнувшись с необходимостью организовать связь между несколькими устройствами на базе микроконтроллеров, я стал собирать информацию по этой теме. Из конструктивных соображений определился с методом связи - последовательный канал и линия связи на основе интерфейса RS-485. Затем последовал отсев излишних теоретических рассуждений и отбор практических рекомендаций по наладке линии связи. Особое внимание я уделял описанию различных "подводных камней". На бумаге, как известно, всегда все работает, а вот на практике вскрываются неприятные особенности, притом нигде не описанные. Так и оказалось - сделали все по инструкции, а потом не одну неделю отлавливали глюки.

В этой статье я попытался собрать начальную информацию об устройствах, полезные добытые сведения (с ссылками) и собственный опыт.

1. Универсальный асинхронный приемопередатчик (UART)

Возможно, связь через асинхронный последовательный порт уходит в прошлое, однако сложно найти контроллер, не имеющего в составе своей периферии UART. Поэтому хоронить его, думаю, рановато. Раз так, то будет нелишним сказать пару слов о том, как оно работает. Описание конкретной реализации последовательного порта есть в datasheet на каждый контроллер, поэтому опишу общее для всех.

UART можно разделить на приемник (Receiver) и передатчик (Transmitter). В состав UART входят: тактовый генератор связи (бодрейт-генератор), управляющие регистры, статусные регистры, буферы и сдвиговые регистры приемника и передатчика. Бодрейт-генератор задает тактовую частоту приемопередатчика для данной скорости связи. Управляющие регистры задают режим работы последовательного порта и его прерываний. В статусном регистре устанавливаются флаги по различным событиям. В буфер приемника попадает принятый символ, в буфер передатчика помещают передаваемый. Сдвиговый регистр передатчика - это обойма, из которой в последовательный порт выстреливаются биты передаваемого символа (кадра). Сдвиговый регистр приемника по биту накапливает принимаемые из порта биты. По различным событиям устанавливаются флаги и генерируются прерывания (завершение приема/отправки кадра, освобождение буфера, различные ошибки).

UART - полнодуплексный интерфейс, то есть приемник и передатчик могут работать одновременно, независимо друг от друга. За каждым из них закреплен порт - одна ножка контроллера. Порт приемника обозначают RX, передатчика - TX. Последовательной установкой уровней на этих портах относительно общего провода ("земли") и передается информация. По умолчанию передатчик устанавливает на линии единичный уровень. Передача начинается посылкой бита с нулевым уровнем (старт-бита), затем идут биты данных младшим битом вперед (низкий уровень - "0", высокий уровень - "1"), завершается посылка передачей одного или двух битов с единичным уровнем (стоп-битов).

Электрический сигнал кадра посылки выглядит так:

Перед началом связи между двумя устройствами необходимо настроить их приемопередатчики на одинаковую скорость связи и формат кадра.

Скорость связи или бодрейт (baudrate) измеряется в бодах - число передаваемых бит в секунду (включая старт и стоп-биты). Задается эта скорость в бодрейт-генераторе делением системной частоты на задаваемый коэффициент. Типичный диапазон скоростей: 2400 … 115200 бод.

Формат кадра определяет число стоп-битов (1 или 2), число бит данных (8 или 9), а также назначение девятого бита данных. Все это зависит от типа контроллера.

Приемник и передатчик тактируются, как правило, с 16-кратной частотой относительно бодрейта. Это нужно для смплирования сигнала. Приемник, поймав падающий фронт старт-бита, отсчитывает несколько тактов и следующие три такта считывает (семплирует) порт RX. Это как раз середина старт-бита. Если большинство значений семплов - "0", старт-бит считается состоявшимся, иначе приемник принимает его за шум и ждет следующего падающего фронта. После удачного определения старт-бита, приемник точно также семплирует серединки битов данных и по большинству семплов считает бит "0" или "1", записывая их в сдвиговый регистр. Стоп-биты тоже семплируются, и если уровень стоп-бита не "1" - UART определяет ошибку кадра и устанавливает соответствующий флаг в управляющем регистре.

Поскольку бодрейт устанавливается делением системной частоты, при переносе программы на устройство с другим кварцевым резонатором, необходимо изменить соответствующие настройки UART.

2. Интерфейс RS-485

Интерфейс RS-485 (другое название - EIA/TIA-485) - один из наиболее распространенных стандартов физического уровня связи. Физический уровень - это канал связи и способ передачи сигнала (1 уровень модели взаимосвязи открытых систем OSI).

Сеть, построенная на интерфейсе RS-485, представляет собой приемопередатчики, соединенные при помощи витой пары - двух скрученных проводов. В основе интерфейса RS-485 лежит принцип дифференциальной (балансной) передачи данных. Суть его заключается в передаче одного сигнала по двум проводам. Причем по одному проводу (условно A) идет оригинальный сигнал, а по другому (условно B) - его инверсная копия. Другими словами, если на одном проводе "1", то на другом "0" и наоборот. Таким образом, между двумя проводами витой пары всегда есть разность потенциалов: при "1" она положительна, при "0" - отрицательна.

Именно этой разностью потенциалов и передается сигнал. Такой способ передачи обеспечивает высокую устойчивость к синфазной помехе. Синфазной называют помеху, действующую на оба провода линии одинаково. К примеру, электромагнитная волна, проходя через участок линии связи, наводит в обоих проводах потенциал. Если сигнал передается потенциалом в одном проводе относительно общего, как в RS-232, то наводка на этот провод может исказить сигнал относительно хорошо поглощающего наводки общего ("земли"). Кроме того, на сопротивлении длинного общего провода будет падать разность потенциалов земель - дополнительный источник искажений. А при дифференциальной передаче искажения не происходит. В самом деле, если два провода пролегают близко друг к другу, да еще перевиты, то наводка на оба провода одинакова. Потенциал в обоих одинаково нагруженных проводах изменяется одинаково, при этом информативная разность потенциалов остается без изменений.

Аппаратная реализация интерфейса - микросхемы приемопередатчиков с дифференциальными входами/выходами (к линии) и цифровыми портами (к портам UART контроллера). Существуют два варианта такого интерфейса: RS-422 и RS-485.

RS-422 - полнодуплексный интерфейс. Прием и передача идут по двум отдельным парам проводов. На каждой паре проводов может быть только по одному передатчику.

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

  • D (driver) - передатчик;
  • R (receiver) - приемник;
  • DI (driver input) - цифровой вход передатчика;
  • RO (receiver output) - цифровой выход приемника;
  • DE (driver enable) - разрешение работы передатчика;
  • RE (receiver enable) - разрешение работы приемника;
  • A - прямой дифференциальный вход/выход;
  • B - инверсный дифференциальный вход/выход;
  • Y - прямой дифференциальный выход (RS-422);
  • Z - инверсный дифференциальный выход (RS-422).

Остановлюсь поподробнее на приемопередатчике RS-485. Цифровой выход приемника (RO) подключается к порту приемника UART (RX). Цифровой вход передатчика (DI) к порту передатчика UART (TX). Поскольку на дифференциальной стороне приемник и передатчик соединены, то во время приема нужно отключать передатчик, а во время передачи - приемник. Для этого служат управляющие входы - разрешение приемника (RE) и разрешения передатчика (DE). Так как вход RE инверсный, то его можно соединить с DE и переключать приемник и передатчик одним сигналом с любого порта контроллера. При уровне "0" - работа на прием, при "1" - на передачу.

Приемник, получая на дифференциальных входах (AB) разность потенциалов (UAB) переводит их в цифровой сигнал на выходе RO. Чувствительность приемника может быть разной, но гарантированный пороговый диапазон распознавания сигнала производители микросхем приемопередатчиков пишут в документации. Обычно эти пороги составляют ± 200 мВ. То есть, когда UAB > +200 мВ - приемник определяет "1", когда UAB < -200 мВ - приемник определяет "0". Если разность потенциалов в линии настолько мала, что не выходит за пороговые значения - правильное распознавание сигнала не гарантируется. Кроме того, в линии могут быть и не синфазные помехи, которые исказят столь слабый сигнал.

Все устройства подключаются к одной витой паре одинаково: прямые выходы (A) к одному проводу, инверсные (B) - к другому.

Входное сопротивление приемника со стороны линии (RAB) обычно составляет 12 КОм. Так как мощность передатчика не беспредельна, это создает ограничение на количество приемников, подключенных к линии. Согласно спецификации RS-485 c учетом согласующих резисторов передатчик может вести до 32 приемников. Однако есть ряд микросхем с повышенным входным сопротивлением, что позволяет подключить к линии значительно больше 32 устройств.

Максимальная скорость связи по спецификации RS-485 может достигать 10 Мбит/сек. Максимальное расстояние - 1200 м. Если необходимо организовать связь на расстоянии большем 1200 м или подключить больше устройств, чем допускает нагрузочная способность передатчика - применяют специальные повторители (репитеры).Стандартные параметры интерфейсов RS-422 RS-485:

Стандартные параметры интерфейсов RS-422 RS-485

Допустимое число передатчиков / приемников

1 / 10 32 / 32

Максимальная длина кабеля

1200 м 1200 м

Максимальная скорость связи

10 Мбит/с 10 Мбит/с

Диапазон напряжений "1" передатчика

+2...+10 В +1.5...+6 В

Диапазон напряжений "0" передатчика

-2...-10 В -1.5...-6 В

Диапазон синфазного напряжения передатчика

-3...+3 В -1...+3 В

Допустимый диапазон напряжений приемника

-7...+7 В -7...+12 В

Пороговый диапазон чувствительности приемника

±200 мВ ±200 мВ

Максимальный ток короткого замыкания драйвера

150 мА 250 мА

Допустимое сопротивление нагрузки передатчика

100 Ом 54 Ом

Входное сопротивление приемника

4 кОм 12 кОм

Максимальное время нарастания сигнала передатчика

10% бита 30% бита

3. Согласование и конфигурация линии связи

При больших расстояниях между устройствами, связанными по витой паре и высоких скоростях передачи начинают проявляться так называемые эффекты длинных линий. Причина этому - конечность скорости распространения электромагнитных волн в проводниках. Скорость эта существенно меньше скорости света в вакууме и составляет немногим больше 200 мм/нс. Электрический сигнал имеет также свойство отражаться от открытых концов линии передачи и ее ответвлений. Грубая аналогия - желоб, наполненный водой. Волна, созданная в одном конце, идет по желобу и, отразившись от стенки в конце, идет обратно, отражается опять и так далее, пока не затухнет. Для коротких линий и малых скоростей передачи этот процесс происходит так быстро, что остается незамеченным. Однако, время реакции приемников - десятки/сотни нс. В таком масштабе времени несколько десятков метров электрический сигнал проходит отнюдь не мгновенно. И если расстояние достаточно большое, фронт сигнала, отразившийся в конце линии и вернувшийся обратно, может исказить текущий или следующий сигнал. В таких случаях нужно каким-то образом подавлять эффект отражения.

Наука Электротехника предлагает решение этой проблемы. У любой линии связи есть такой параметр, как волновое сопротивление Zв. Оно зависит от характеристик используемого кабеля, но не от длины. Для обычно применяемых в линиях связи витых пар Zв=120 Ом. Оказывается, что если на удаленном конце линии, между проводниками витой пары включить резистор с номиналом равным волновому сопротивлению линии, то электромагнитная волна дошедшая до "тупика" поглощается на таком резисторе. Отсюда его названия - согласующий резистор или "терминатор".

Большой минус согласования на резисторах - повышенное потребление тока от передатчика, ведь в линию включается низкоомная нагрузка. Поэтому рекомендуется включать передатчик только на время отправки посылки. Есть способы уменьшить потребление тока, включая последовательно с согласующим резистором конденсатор для развязки по постоянному току. Однако, такой способ имеет свои недостатки. Для коротких линий (несколько десятков метров) и низких скоростей (меньше 38400 бод) согласование можно вообще не делать. Подробнее можно почитать в статье "Обрежьте жирок с RS-485".

Эффект отражения и необходимость правильного согласования накладывают ограничения на конфигурацию линии связи.

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

В оба наиболее удаленных конца кабеля (Zв=120 Ом) включают согласующие резисторы Rt по 120 Ом (0.25 Вт). Если в системе только один передатчик и он находится в конце линии, то достаточно одного согласующего резистора на противоположном конце линии.

4. Защитное смещение

Как уже упоминалось, приемники большинства микросхем RS-485 имеют пороговый диапазон распознавания сигнала на входах A-B - ±200мВ. Если |Uab| меньше порогового (около 0), то на выходе приемника RO могут быть произвольные логические уровни из-за несинфазной помехи. Такое может случиться либо при отсоединении приемника от линии, либо при отсутствии в линии активных передатчиков, когда никто не задает уровень. Чтобы в этих ситуациях избежать выдачи ошибочных сигналов на приемник UART, необходимо на входах A-B гарантировать разность потенциалов Uab > +200мВ. Это смещение при отсутствии входных сигналов обеспечивает на выходе приемника логическую "1", поддерживая, таким образом, уровень стопового бита.

Добиться этого просто - прямой вход (А) следует подтянуть к питанию, а инверсный (B) - к "земле". Получается делитель:

Rвх - входное сопротивление приемника (обычно 12 кОм);

Rc - согласующие резисторы (120 Ом);

Rзс - резисторы защитного смещения.

Величины сопротивлений для резисторов защитного смещения (Rзс) нетрудно рассчитать по делителю. Необходимо обеспечить Uab > 200мВ. Напряжение питания - 5В. Сопротивление среднего плеча - 120Ом//120Ом//12КОм на каждый приемник - примерно 57 Ом (для 10 приемников). Таким образом, выходит примерно по 650 Ом на каждый из двух Rзс. Для смещения с запасом - сопротивление Rзс должно быть меньше 650 Ом. Традиционно ставят 560 Ом.

Обратите внимание: в расчете номинала Rзс учитывается нагрузка. Если на линии висит много приемников, то номинал Rзс должен быть меньше. В длинных линиях передачи необходимо так же учитывать сопротивление витой пары, которое может "съедать" часть смещающей разности потенциалов для удаленных от места подтяжки устройств. Для длинной линии лучше ставить два комплекта подтягивающих резисторов в оба удаленных конца рядом с терминаторами.

Многие производители приемопередатчиков заявляют о функции безотказности (failsafe) своих изделий, заключающейся во встроенном смещении. Следует различать два вида такой защиты:

Безотказность в открытых цепях. (Open circuit failsafe.) В таких приемопередатчиках применяются встроенные подтягивающие резисторы. Эти резисторы, как правило, высокоомные, чтобы уменьшить потребление тока. Из-за этого необходимое смещение обеспечивается только для открытых (ненагруженных) дифференциальных входов. В самом деле, если приемник отключен от линии или она не нагружена, тогда в среднем плече делителя остается только большое входное сопротивление, на котором и падает необходимая разность потенциалов. Однако, если приемопередатчик нагрузить на линию с двумя согласующими резисторами по 120 Ом, то в среднем плече делителя оказывается меньше 60 Ом, на которых, по сравнению с высокоомными подтяжками, ничего существенного не падает. Поэтому, если в нагруженной линии нет активных передатчиков, то встроенные резисторы не обеспечивают достаточное смещение. В этом случае, остается необходимость устанавливать внешние резисторы защитного смещения, как это было описано выше.

Истинная безотказность. (True failsafe.) В этих устройствах смещены сами пороги распознавания сигнала. Например: -50 / -200 мВ вместо стандартных порогов ±200 мВ. То есть при Uab>-50мВ на выходе приемника RO будет логическая "1", а при Uab<-200 - на RO будет "0". Таким образом, и в разомкнутой и в пассивной линии при разности потенциалов Uab близкой к нулю, приемник выдаст "1". Для таких приемопередатчиков внешнее защитное смещение не требуется. Тем не менее, для лучшей помехозащищенности все-таки стоит дополнительно немного подтягивать линию.

Сразу виден минус внешнего защитного смещения - через делитель постоянно будет протекать ток, что может быть недопустимо в системах малого потребления. В таком случае можно сделать следующее:

а). Уменьшить потребление тока, увеличив сопротивления Rзс. Хотя производители приемопередатчиков и пишут о пороге распознавания в 200мВ, на практике вполне хватает 100мВ и даже меньше. Таким образом, можно сразу увеличить сопротивления Rзс раза в два-три. Помехозащищенность при этом несколько снижается, но во многих случаях это не критично.

б). Использовать true failsafe приемопередатчики со смещенными порогами распознавания. Например, у микросхем MAX3080 и MAX3471 пороги: -50мВ / -200мВ, что гарантирует единичный уровень на выходе приемника при отсутствии смещения (Uab=0). Тогда внешние резисторы защитного смещения можно убрать или значительно увеличить их сопротивление.

в). Не применять без необходимости согласование на резисторах. Если линия не будет нагружена на 2 по 120 Ом, то для обеспечения защитного смещения хватит подтяжек в несколько килоом в зависимости от числа приемников на линии.

Для опторазвязанной линии подтягивать следует к питанию и "земле" изолированной линии. Если не применяется опторазвязка, подтягивать можно к любому питанию, так как делитель создаст лишь небольшую разность потенциалов между линиями A и B. Нужно только помнить о возможной разности потенциалов между "землями" устройств, расположенных далеко друг от друга.

5. Исключение приема при передаче в полудуплексном режиме

При работе с полудуплексным интерфейсом RS-485 (прием и передача по одной паре проводов с разделением по времени) можно забыть, что UART контроллера - полнодуплексный, то есть принимает и передает независимо и одновременно.

Обычно во время работы приемопередатчика RS-485 на передачу, выход приемника RO переводится в третье состояние и ножка RX контроллера (приемник UART) "повисает в воздухе". В результате, во время передачи на приемнике UART вместо уровня стопового бита ("1") окажется неизвестно что, и любая помеха будет принята за входной сигнал. Поэтому нужно либо на время передачи отключать приемник UART (через управляющий регистр), либо подтягивать RX к единице. У некоторых микроконтроллеров это можно сделать программно - активировать встроенные подтяжки портов.

Примечание: у микроконтроллера AT90S8535 (AVR Atmel) есть глючок - при отключенном UART он все равно принимает, и после включения на прием первый принятый байт может быть испорчен. Так что активировать подтяжку RX ему нужно обязательно.

6. "Горячее" подключение к линии связи

Насколько я знаю, спецификацией RS-485 не предусмотрено "горячее" подключение - включение новых приемопередатчиков в линию связи во время работы системы. Тем не менее, подобную операцию система переносит практически безболезненно, если учесть один нюанс. Это важно, когда питание на устройство подается в момент подключения, например, когда плата в виде кассеты вставляется в разъем. Дело в том, что во время любого сброса: по включению питания, по сигналу на входе "Reset", по срабатыванию сторожевого таймера - контроллеру требуется время на инициализацию, которое может составлять до нескольких десятков миллисекунд. Пока контроллер находится в состоянии сброса, он принудительно настраивает все порты на вход. Получается ситуация, при которой питание на микросхему приемопередатчика RS-485 уже подано, но входы разрешения приемника /RE и передатчика DE "висят в воздухе". В результате, приемопередатчик может по помехе открыться на передачу и все время пока микроконтроллер в отключке пускать в работающую линию мусор. Избежать этого легко - достаточно через резистор в несколько килоом подтянуть вход разрешения приемника /RE к нулю. Этим приемопередатчик сразу по включении питания настраивается на прием и не лезет на линию.

На физическом уровне линия связи готова к работе, однако, нужен еще и протокол - договоренность между устройствами системы о формате посылок.

По природе интерфейса RS-485 устройства не могут передавать одновременно - будет конфликт передатчиков. Следовательно, требуется распределить между устройствами право на передачу. Отсюда основное деление: централизованный (одномастерный) обмен и децентрализованный (многомастерный).

В централизованной сети одно устройство всегда ведущее (мастер). Оно генерирует запросы и команды остальным (ведомым) устройствам. Ведомые устройства могут передавать только по команде ведущего. Как правило, обмен между ведомыми идет только через ведущего, хотя для ускорения обмена можно организовать передачу данных от одного ведомого к другому по команде ведущего.

В децентрализованной сети роль ведущего может передаваться от устройству к устройству либо по некоторому алгоритму очередности, либо по команде текущего ведущего к следующему (передача маркера ведущего). При этом ведомое устройство может в своем ответе ведущему передать запрос на переход в режим ведущего и ожидать разрешения или запрета.

Последовательный канал по меркам контроллера - штука медленная. На скорости 9600 бод передача одного символа занимает больше миллисекунды. Поэтому, когда контроллер плотно загружен вычислениями и не должен их останавливать на время обмена по UART, нужно использовать прерывания по завершению приема и передачи символа. Можно выделить место в памяти для формирования посылки на передачу и сохранения принятой посылки (буфер посылки), а также указатели на позицию текущего символа. Прерывания по завершению приема или передачи символа вызывают соответствующие подпрограммы, которые передают или сохраняют очередной символ со сдвигом указателя и проверкой признака конца сообщения, после чего возвращают управление основной программе до следующего прерывания. По завершению отправки или приема всей посылки либо формируется пользовательский флаг, отрабатываемый в основном цикле программы, либо сразу вызывается подпрограмма обработки сообщения.

В общем случае посылка по последовательному каналу состоит из управляющих байтов (синхронизация посылки, адресов отправителя и получателя, контрольной суммы и пр.) и собственно байтов данных.

Протоколов существует множество и можно придумать еще больше, но лучше пользоваться наиболее употребительными из них. Одним из стандартных протоколов последовательной передачи является MODBUS, его поддержку обеспечивают многие производители промышленных контроллеров. Но если Вам нужно буквально "два байта переслать" или просто освоить методы связи и не хочется из-за этого изучать систему команд модбаса и писать для него драйвер, предлагаю варианты относительно простых протоколов. (И все-таки в дальнейшем стоит ориентироваться именно на MODBUS.)

Основная задача в организации протокола - заставить все устройства различать управляющие байты и байты данных. К примеру, ведомое устройство, получая по линии поток байтов, должно понимать, где начало посылки, где конец и кому она адресована.

1). Часто встречаются протоколы на основе ASCII-кода. Управляющие символы и данные передаются в виде обыкновенных ASCII символов. Посылка может выглядеть так:

В HEX виде: 3Ah 31h 32h 52h 53h 34h 38h 35h 0Dh

В ASCII виде: ":" "1" "2" "R" "S" "4" "8" "5" /ПС/

В начале управляющий символ начала посылки ":", следующие две цифры - адрес получателя (12), затем символы данных (RS485) и в конце - управляющий символ конца посылки 0Dh (перевод строки). Все устройства на линии, приняв символ ":", начинают записывать в память посылку до символа конца строки 0Dh. Затем сравнивают адрес из посылки со своим адресом. Устройство с совпавшим адресом обрабатывает данные посылки, остальные - игнорируют посылку. Данные могут содержать любые символы, кроме управляющих (":", 0Dh).

Достоинство этого протокола в удобстве отладки системы и простоте синхронизации посылок. Можно через преобразователь RS485-RS232 подключить линию к COM-порту компьютера и в любой терминалке увидеть всю проходящую информацию "на человеческом языке". Недостатки - относительно большой размер посылки при передаче большого количества двоичной информации, ведь на передачу каждого байта нужно два ASCII символа (7Fh - "7", "F"). Кроме того, надо преобразовывать данные из двоичного вида в ASCII и обратно.

2). Можно организовать протокол с непосредственной передачей двоичных данных. При этом управляющие символы и байты данных различаются с помощью настройки дополнительного девятого бита в UART. Для управляющих символов этот бит устанавливается в "1". Первым в посылке передается управляющий символ с единичным девятым битом - остальные его "нормальные" биты могут содержать адрес устройства-получателя, признак начала/конца посылки и что-нибудь еще. Затем передаются байты данных с нулевым девятым битом. Все принимающие устройства узнают по девятому биту управляющий символ и по содержанию его остальных битов определяют, кому адресованы последующие данные. Адресуемое устройство принимает данные, а все остальные игнорируют их до следующего управляющего символа.

UART некоторых контроллеров, например C167 (Infineon) может в особом режиме (wakeup) автоматически распознавать в полученном байте девятый бит и генерировать прерывание при получении только управляющего символа. Адресуемое устройство при этом нужно переключить в режим обычного приема до следующего управляющего символа. Это позволяет остальным устройствам сэкономить время на обработке прерываний при получении байтов данных, адресованных не им.

Если требуется сопряжение системы и компьютера с Windows, такой протокол лучше не применять, так как у Windows могут быть проблемы с распознанием девятого бита в UART.

3) Протокол может быть "чисто" двоичным, то есть без выделения специальных управляющих символов. Синхронизация посылок в этом случае может осуществляться за счет отслеживания паузы между принятыми байтами. Принимающее устройство отсчитывает время с момента последнего приема байта до следующего, и если эта пауза оказывается больше какой-то величины (например, 1.5 - 3.5 байта), делается вывод о потере предыдущей посылки и начале новой. Даже если предыдущая посылка была незакончена - приемный буфер сбрасывается. Можно также синхронизировать посылки по уникальной стартовой последовательности байтов (по аналогии со стартовым символом в ASCII протоколе). В таких протоколах надо принимать особые меры для защиты от приема ложной посылки, начатой из-за помехи.

8. Программные методы борьбы со сбоями

Для повышения надежности связи обязательно нужно предусмотреть программные методы борьбы со сбоями. Их можно условно разделить на две группы: защита от рассинхронизации и контроль достоверности.

1). Защита от рассинхронизации. Несмотря на защитное смещение, сильная помеха может пробиться в линию без активных передатчиков и нарушить правильную последовательность приема посылок. Тогда возникает необходимость первой же нормальной посылкой вразумить принимающие устройства и не дать им принять помеху за посылку. Делается это с помощью синхронизации кадров (активная пауза) и синхронизации посылок (преамбула).

Защита от рассинхронизации кадров. Обязательная мера! Все последующие меры синхронизации посылок имеют смысл только совместно с этой. Помеха ложным старт-битом может сбить правильный прием кадров последующей посылки. Чтобы вернуться к верной последовательности, нужно сделать паузу между включением приемопередатчика на передачу и посылкой данных. Все это время передатчик удерживает в линии высокий уровень, через который помехе трудно пробиться (активная пауза). Паузы длительностью в 1 кадр на данной скорости связи (10-11 бит) будет достаточно для того, чтобы любое устройство, принимавшее помехи приняло стоп-бит. Тогда следующий кадр будет приниматься с нормального старт-бита.

Того же эффекта можно добиться передачей символа FFh перед первым байтом посылки, так как кроме старт-бита, все его биты - "1". (Если старт-бит символа FFh попадет на стоп-бит ложного кадра, будет просто засчитана ошибка кадра).

Защита от рассинхронизации посылок. Применяется совместно с предыдущей защитой! Особо подлая помеха может замаскироваться под управляющий символ и сбить принимаемую затем посылку. Кроме того предыдущая посылка может быть прервана. Из-за этого крайне желательно в подпрограмме приема и сохранения данных предусмотреть меры по опознанию настоящего начала посылки и сбросу приемного буфера посылки (области памяти, куда сохраняются принимаемые байты). Для этого служит преамбула - предварительный признак начала посылки.

Стартовый символ. В ASCII протоколе роль преамбулы играет специальный управляющий символ начала посылки. По каждому приему такого символа нужно сбрасывать буфер: обнулять число принятых байт, перемещать указатель на начало буфера и т.п. То же самое нужно делать при переполнении буфера. Это позволит настоящему управляющему символу сбросить предыдущую "посылку", начатую ложным символом.

Пример. Последний управляющий символ ":" сбросит предыдущую ложную посылку:

____ :) ____ : 1 2 R S 4 8 5 /ПС/ ____

Стартовая пауза. В двоичном протоколе, где не предусмотрен уникальный управляющий символ, и синхронизация посылок идет по заданной паузе между байтами, достаточно увеличить активную паузу, описанную в синхронизации кадров, до длительности паузы между байтами, по которой начинается прием новой посылки. То есть, между включением приемопередатчика на передачу и отправкой первых байтов посылки нужно сделать паузу длительностью в 1.5 - 3.5 кадра UART. При активном передатчике во время такой преамбулы помехе трудно будет прорваться к приемникам, они зафиксируют нужную паузу, сбросят буфер посылки и настроятся на прием новой посылки. Этот метод применяется, в частности, для протокола MODBUS RTU.

Стартовая последовательность. Если в двоичном протоколе синхронизация осуществляется лишь по корректному началу посылки, то отфильтровать ложную посылку можно только по логике ее структуры. Преамбула в данном случае - некоторая стартовая последовательность символов, которая не может встретиться в данных посылки, и которую вряд ли сформирует помеха. Преамбула отсылается перед основной посылкой. Принимающее устройство отслеживает в поступающих данных эту стартовую последовательность. Где бы она не состоялась, принимающее устройство сбрасывает буфер посылки и начинает принимать новую.

Вариант 1. Посылка начинает заново приниматься после приема "go!" (вместо символов могут быть любые 8-битные данные):

____ : - Ь ___ g o ! 1 2 R S 4 8 5 ____

Вариант 2. Посылка начинает заново приниматься после приема не менее трех "E" подряд и стартового байта ":" (вместо символов могут быть любые 8-битные данные):

____ > : - E ___ E E E: 1 2 R S 4 8 5 ____

Даже если до стартовой последовательности было два таких символа подряд, посылка начнет сохраняться только за последовательностью из не менее чем трех подряд (лишние игнорируются) и стартового символа. Если вместо "Е" использовать байт FFh - можно совместить синхронизацию кадров и посылок. Для этого посылаются четыре FFh, а принимающее устройство ожидает не менее трех, с учетом того, что первый байт FFh может уйти на синхронизацию кадров.
2). Контроль достоверности. Особо сильная помеха может вклиниться в посылку, исказить управляющие символы или данные в ней, а то и вовсе уничтожить ее. Кроме того, одно из подключенных к линии устройств (абонент) может выйти из строя и перестать отвечать на запросы. На случай такой беды существуют контрольная сумма, тайм-ауты и квитирование.
Контрольная сумма - в общем случае 1-2 байта кода, полученного некоторым преобразованием из данных посылки. Самое простое - "исключающее или" всем байтам данных. Контрольная сумма рассчитывается и включается в посылку перед отправкой. Принимающее устройство производит ту же операцию над принятыми данными и сверяет рассчитанную контрольную сумму с полученной. Если посылка была повреждена, то, скорее всего, они не совпадут. В случае применения ASCII протокола - код контрольной суммы также передается ASCII-символами.
Тайм-аут - максимальное время ожидания ответа от запрашиваемого устройства. Если посылка была повреждена или запрашиваемое устройство вышло из строя, то ведущее устройство не повиснет в ожидании ответа, а по истечении определенного времени признает наличие сбоя. После чего можно еще пару раз повторить запрос и, если сбой повторяется, перейти на отработку аварийной ситуации. Тайм-аут отсчитывается с момента завершения передачи запроса. Его длительность должна с небольшим запасом превышать максимальное время ответной передачи плюс время, необходимое на обработку запроса и формирование ответа. Ведомому устройству тоже не помешает отработка тайм-аутов. Особенно в ситуациях, когда отсутствие регулярного обновления данных или новых команд от ведущего устройства критично для работы устройств системы. Самая простая реализация для ведомого - сброс сторожевого таймера по приему посылки. Если по какой-либо причине данные перестали поступать - устройство сбросится по переполнению сторожевого таймера. После сброса устанавливается безопасный режим до приема первой команды.
Квитирование - подтверждение доставки (квитанция). Когда важно, чтобы ведомый обязательно получил данные или команду, возникает необходимость проконтролировать получение им посылки. Ведущее устройство, отправив ведомому данные, ждет ответа с подтверждением. Ведомое устройство, получив данные, в случае их корректности посылает ответ, подтверждающий доставку. Если по истечении тайм-аута ведущее устройство не получает подтверждение, делается вывод о сбое в связи или в ведомом устройстве. Дальше обычные меры - повтор посылки. Но тут есть нюанс: повреждена и не получена может быть сама квитанция. Ведущее устройство, не получив квитанцию, повторяет посылку, и ведомое отрабатывает ее повторно. Не всегда это существенно, но если перепосылалась команда типа "увеличить параметр на 1" это может привести к незапланированному двойному увеличению параметра. В таком случае надо предусмотреть что-нибудь типа циклической нумерации посылок, чтобы ведомое устройство отличало повторные посылки от новых и не отрабатывало их.

9. Защита устройств от перенапряжений в линии связи

Разность потенциалов между проводниками линии и между линией и "землей" приемопередатчика, как правило, не должна выходить за пределы -7...+12 В. Следовательно, может потребоваться защита от разности потенциалов между "землями" и от перенапряжений из-за замыкания на высоковольтные цепи.

Разность потенциалов между "землями". При организации сети на основе интерфейса RS-485 следует учитывать неявное присутствие третьего проводника - "земли". Ведь все приемопередатчики имеют питание и "землю". Если устройства расположены недалеко от начального источника питания, то разность потенциалов между "землями" устройств в сети невелика. Но если устройства находятся далеко друг от друга и получают местное питание, то между их "землями" может оказаться существенная разность потенциалов. Возможные последствия - выход из строя приемопередатчика, а то и всего устройства. В таких случаях следует применять гальваническую развязку или дренажный провод.
Гальваническая развязка линии и устройств осуществляется либо опторазвязкой цифровых сигналов (RO, DI, RE, DE) с организацией изолированного питания микросхем приемопередатчиков, либо применением приемопередатчиков со встроенной гальванической развязкой сигналов и питания (например, MAX1480). Тогда вместе с дифференциальными проводниками прокладываются провод изолированной "земли" (сигнальной "земли") и, возможно, провод изолированного питания линии.
Дренажный провод - провод, прокладываемый вместе с витой парой и соединяющий "земли" удаленных устройств. Через этот провод уравниваются потенциалы "земель". При включении устройства в линию дренажный провод следует подсоединять первым, а при отключении - отсоединять последним. Для ограничения тока через дренажный провод его заземляют в каждом устройстве через резистор в 100 Ом (0.5 Вт).

Замыкание на высоковольтные цепи. Если существует опасность попадания на линию или одну из местных "земель" высокого напряжения, следует применять опторазвязку или шунтирующие ограничители напряжения. А лучше и то и другое.
Напряжение пробоя опторазвязанного интерфейса составляет сотни и даже тысячи вольт. Это хорошо защищает устройство от перенапряжения, общего для всех проводников линии. Однако, при дифференциальных перенапряжениях, когда высокий потенциал оказывается на одном из проводников, сам приемопередатчик будет поврежден.
Для защиты от дифференциальных перенапряжений все проводники линии, включая изолированный общий, шунтируются на локальные "земли" при помощи ограничителей напряжения. Это могут быть варисторы, полупроводниковые ограничители напряжения и газоразрядные трубки. Физический принцип их действия разный, но суть одна - при напряжении выше порогового их сопротивление резко падает, и они шунтируют линию. Газоразрядные трубки могут шунтировать очень большие токи, но имеют высокий порог пробоя и низкое быстродействие, поэтому их лучше применять по трехступенчатой схеме вместе с полупроводниковыми ограничителями. Когда заземление линии невозможно, проводники линии шунтируют ограничителями между собой. Но это защитит только от дифференциальных перенапряжений - защиту от общего должна взять на себя опторазвязка.

Защита ограничителями напряжения действенна при кратковременных перенапряжениях. При длительных - токи короткого замыкания могут вывести ограничители из строя, и устройства на линии окажутся без защиты. Для защиты от коротких замыканий в линию можно последовательно включить плавкие предохранители. Подробнее о защите от перенапряжений можно прочитать в руководстве B&B Electronics "RS-422 and RS-485 Application Note" (англ.).

10. Дополнительные меры защиты от помех


Заключение

Я не претендую на полноту сведений о физических и программных тонкостях связи по интерфейсу RS-485. Однако, полагаю, что еще одно изложение темы, немного по другому сформулированное, и к тому же дополненное личным опытом не будет лишним для разработчиков, только начинающих разбираться в этой области. Надеюсь, приведенная информация поможет Вам в организации беспроблемной и надежной связи.

(c) 2003 Евгений Александрович Бень

Статьи по теме: