Протокол rs 485 что это
RS-485 для чайников
(c) 2003 Евгений Александрович Бень
Отзывы и предложения принимаются на yben@mail.ru
Содержание
Вступление
В этой статье я попытался собрать начальную информацию об устройствах, полезные добытые сведения (с ссылками) и собственный опыт.
1. Универсальный асинхронный приемопередатчик (UART)
Возможно, связь через асинхронный последовательный порт уходит в прошлое, однако сложно найти контроллер, не имеющего в составе своей периферии UART. Поэтому хоронить его, думаю, рановато. Раз так, то будет нелишним сказать пару слов о том, как оно работает. Описание конкретной реализации последовательного порта есть в datasheet на каждый контроллер, поэтому опишу общее для всех.
Электрический сигнал кадра посылки выглядит так:
Перед началом связи между двумя устройствами необходимо настроить их приемопередатчики на одинаковую скорость связи и формат кадра.
Формат кадра определяет число стоп-битов (1 или 2), число бит данных (8 или 9), а также назначение девятого бита данных. Все это зависит от типа контроллера.
Поскольку бодрейт устанавливается делением системной частоты, при переносе программы на устройство с другим кварцевым резонатором, необходимо изменить соответствующие настройки UART.
2. Интерфейс RS-485
3. Согласование и конфигурация линии связи
Эффект отражения и необходимость правильного согласования накладывают ограничения на конфигурацию линии связи.
Линия связи должна представлять собой один кабель витой пары. К этому кабелю присоединяются все приемники и передатчики. Расстояние от линии до микросхем интерфейса RS-485 должно быть как можно короче, так как длинные ответвления вносят рассогласование и вызывают отражения.
В оба наиболее удаленных конца кабеля (Zв=120 Ом) включают согласующие резисторы Rt по 120 Ом (0.25 Вт). Если в системе только один передатчик и он находится в конце линии, то достаточно одного согласующего резистора на противоположном конце линии. Более подробно о правильных и неправильных конфигурациях сети можно прочитать в статье «Правильная разводка сетей RS-485».
4. Защитное смещение
Обратите внимание: в расчете номинала Rзс учитывается нагрузка. Если на линии висит много приемников, то номинал Rзс дожен быть меньше. В длинных линиях передачи необходимо так же учитывать сопротивление витой пары, которое может «съедать» часть смещающей разности потенциалов для удаленных от места подтяжки устройств. Для длинной линии лучше ставить два комплекта подтягивающих резисторов в оба удаленных конца рядом с терминаторами.
Многие производители приемопередатчиков заявляют о функции безотказности (failsafe) своих изделий, заключающейся во встроенном смещении. Следует различать два вида такой защиты:
Безотказность в открытых цепях. (Open circuit failsafe.) В таких приемопередатчиках применяются встроенные подтягивающие резисторы. Эти резисторы, как правило, высокоомные, чтобы уменьшить потребление тока. Из-за этого необходимое смещение обеспечивается только для открытых (ненагруженных) дифференциальных входов. В самом деле, если приемник отключен от линии или она не нагружена, тогда в среднем плече делителя остается только большое входное сопротивление, на котором и падает необходимая разность потенциалов. Однако, если приемопередатчик нагрузить на линию с двумя согласующими резисторами по 120 Ом, то в среднем плече делителя оказывается меньше 60 Ом, на которых, по сравнению с высокоомными подтяжками, ничего существенного не падает. Поэтому, если в нагруженной линии нет активных передатчиков, то встроенные резисторы не обеспечивают достаточное смещение. В этом случае, остается необходимость устанавливать внешние резисторы защитного смещения, как это было описано выше.
6. «Горячее» подключение к линии связи
7. Рекомендации по организации протокола связи
В централизованной сети одно устройство всегда ведущее (мастер). Оно генерирует запросы и команды остальным (ведомым) устройствам. Ведомые устройства могут передавать только по команде ведущего. Как правило, обмен между ведомыми идет только через ведущего, хотя для ускорения обмена можно организовать передачу данных от одного ведомого к другому по команде ведущего.
В децентрализованной сети роль ведущего может передаваться от устройству к устройству либо по некоторому алгоритму очередности, либо по команде текущего ведущего к следующему (передача маркера ведущего). При этом ведомое устройство может в своем ответе ведущему передать запрос на переход в режим ведущего и ожидать разрешения или запрета.
В общем случае посылка по последовательному каналу состоит из управляющих байтов (синхронизация посылки, адресов отправителя и получателя, контрольной суммы и пр.) и собственно байтов данных.
Протоколов существует множество и можно придумать еще больше, но лучше пользоваться наиболее употребительными из них. Одним из стандартных протоколов последовательной передачи является MODBUS, его поддержку обеспечивают многие производители промышленных контроллеров. Но если Вам нужно буквально «два байта переслать» или просто освоить методы связи и не хочется из-за этого изучать систему команд модбаса и писать для него драйвер, предлагаю варианты относительно простых протоколов. (И все-таки в дальнейшем стоит ориентироваться именно на MODBUS.)
1). Часто встречаются протоколы на основе ASCII-кода. Управляющие символы и данные передаются в виде обыкновенных ASCII символов. Посылка может выглядеть так:
UART некоторых контроллеров, например C167 (Infineon) может в особом режиме (wakeup) автоматически распознавать в полученном байте девятый бит и генерировать прерывание при получении только управляющего символа. Адресуемое устройство при этом нужно переключить в режим обычного приема до следующего управляющего символа. Это позволяет остальным устройствам сэкономить время на обработке прерываний при получении байтов данных, адресованных не им.
Если требуется сопряжение системы и компьютера с Windows, такой протокол лучше не применять, так как у Windows могут быть проблемы с распознанием девятого бита в UART.
8. Программные методы борьбы со сбоями
Для повышения надежности связи обязательно нужно предусмотреть программные методы борьбы со сбоями. Их можно условно разделить на две группы: защита от рассинхронизации и контроль достоверности.
1). Защита от рассинхронизации. Несмотря на защитное смещение, сильная помеха может пробиться в линию без активных передатчиков и нарушить правильную последовательность приема посылок. Тогда возникает необходимость первой же нормальной посылкой вразумить принимающие устройства и не дать им принять помеху за посылку. Делается это с помощью синхронизации кадров (активная пауза) и синхронизации посылок (преамбула).
Защита от рассинхронизации кадров. Обязательная мера! Все последующие меры синхронизации посылок имеют смысл только совместно с этой. Помеха ложным старт-битом может сбить правильный прием кадров последующей посылки. Чтобы вернуться к верной последовательности, нужно сделать паузу между включением приемопередатчика на передачу и посылкой данных. Все это время передатчик удерживает в линии высокий уровень, через который помехе трудно пробиться (активная пауза). Паузы длительностью в 1 кадр на данной скорости связи (10-11 бит) будет достаточно для того, чтобы любое устройство, принимавшее помехи приняло стоп-бит. Тогда следующий кадр будет приниматься с нормального старт-бита.
Стартовый символ. В ASCII протоколе роль преамбулы играет специальный управляющий символ начала посылки. По каждому приему такого символа нужно сбрасывать буфер: обнулять число принятых байт, перемещать указатель на начало буфера и т.п. То же самое нужно делать при переполнении буфера. Это позволит настоящему управляющему символу сбросить предыдущую «посылку», начатую ложным символом.
Пример. Последний управляющий символ «:» сбросит предыдущую ложную посылку:
____ : ) ____ : 1 2 R S 4 8 5 /ПС/ ____
Вариант 1. Посылка начинает заново приниматься после приема «go!» (вместо символов могут быть любые 8-битные данные):
Вариант 2. Посылка начинает заново приниматься после приема не менее трех «E» подряд и стартового байта «:» (вместо символов могут быть любые 8-битные данные):
2). Контроль достоверности. Особо сильная помеха может вклиниться в посылку, исказить управляющие символы или данные в ней, а то и вовсе уничтожить ее. Кроме того, одно из подключенных к линии устройств (абонент) может выйти из строя и перестать отвечать на запросы. На случай такой беды существуют контрольная сумма, тайм-ауты и квитирование.
9. Защита устройств от перенапряжений в линии связи
Гальваническая развязка линии и устройств осуществляется либо опторазвязкой цифровых сигналов (RO, DI, RE, DE) с организацией изолированного питания микросхем приемопередатчиков, либо применением приемопередатчиков со встроенной гальванической развязкой сигналов и питания (например, MAX1480). Тогда вместе с дифференциальными проводниками прокладываются провод изолированной «земли» (сигнальной «земли») и, возможно, провод изолированного питания линии.
Замыкание на высоковольтные цепи. Если существует опасность попадания на линию или одну из местных «земель» высокого напряжения, следует применять опторазвязку или шунтирующие ограничители напряжения. А лучше и то и другое.
Напряжение пробоя опторазвязанного интерфейса составляет сотни и даже тысячи вольт. Это хорошо защищает устройство от перенапряжения, общего для всех проводников линии. Однако, при дифференциальных перенапряжениях, когда высокий потенциал оказывается на одном из проводников, сам приемопередатчик будет поврежден.
10. Дополнительные меры защиты от помех
Экранирование и заземление. В промышленных условиях, тяжелых в плане электромагнитного шума, рекомендуется применять экранированный кабель с витой парой. Экран, охватывающий проводники линии, защищает их от паразитных емкостных связей и внешних магнитных полей. Экран следует заземлять только в одной из крайних точек линии. Заземление в нескольких точках недопустимо: из-за разности потенциалов местных «земель» по экрану могут протекать существенные токи, которые будут создавать наводки на сигнальные проводники. Некоторые разработчики рекомендуют для защиты от радиопомех дополнительно включать в нескольких местах между экраном и заземлением специальные высокочастотные конденсаторы емкостью 1. 10 нФ.
Индуктивные фильтры. Если в линию все же попадают высокочастотные помехи, их можно отсеять индуктивными фильтрами. Существуют специальные индуктивные фильтры, предназначенные для подавления высокочастотных помех в линиях связи. Они последовательно включаются в линию непосредственно у приемников. Например, B82790-S**** фирмы Epcos, выполненный в виде четырехполюсника, через который витая пара подсоединяется к приемнику.
Заключение
Я не претендую на полноту сведений о физических и программных тонкостях связи по интерфейсу RS-485. Однако, полагаю, что еще одно изложение темы, немного по другому сформулированное, и к тому же дополненное личным опытом не будет лишним для разработчиков, только начинающих разбираться в этой области. Надеюсь, приведенная информация поможет Вам в организации беспроблемной и надежной связи.
RS485 — стандарт промышленных сетей. Какими особенностями обладает микросхема приемопередатчика?
При построении сети для общения между большим количеством устройств, можно задуматься: а какой интерфейс выбрать? У каждого интерфейса есть свои плюсы и минусы, которые определяют их применение: CAN – автомобилестроение, RS485/RS232 – промышленность, Ethernet – потребительская электроника/сервера. Какие “фичи” микросхемы приёмопередатчика помогают обезопаситься от множества проблем при монтаже и эксплуатации? Как происходит процесс измерений и исследования микросхем приемопередатчиков? Новая микросхема RS485 готова к выходу на рынок!
RS485 – что ты такое?
Итак, прежде, чем говорить о самой микросхеме необходимо разобраться что из себя представляет сам стандарт передачи данных.
В RS-485 для передачи и приёма данных используется витая пара. Передача данных осуществляется с помощью дифференциальных сигналов, а это в свою очередь обеспечивает высокую устойчивость к синфазной помехе. Разница напряжений одной полярности означает логическую единицу, разница другой полярности означает логический ноль.
Устойчивость к синфазной помехе
Устойчивость к синфазной помехе является очень важным свойством для приемопередатчиков данного типа – когда к сети подключено множество устройств, очень часто возникают всплески напряжения.
На практике для реализации топологии RS485 нужны микросхемы приемо-передатчиков. При этом, разумеется, характеристики микросхемы должны полностью соответствовать требованиям стандарта.
По интерфейсу RS485 при организации сети микросхема, которая передает информацию называется Master, а которая принимает информацию — Slave. Максимальное количество устройств в линии может быть 256.
Типовая схема применения микросхем приемо-передатчиков RS485
Для того, чтобы создать сеть на основе RS485 для микроконтроллеров, необходимо использовать дополнительную микросхему приемопередатчика. Микроконтроллер подключается к ней по протоколу UART после чего приемопередатчик начинает вещание.
Мы уже выпускаем серийно микросхему К5559ИН10БSI, но ввиду того как быстро увеличиваются объемы данных, которые передают контроллеры скорости 2.5Мбит уже не достаточно. Итак далее будем рассматривать нашу новую микросхему К5559ИН86SI – теперь 30 Мбит. Возникает вопрос: зачем вообще тратить деньги на разработку данной схемы?
Новое поколение RS485 — К5559ИН86SI
И правда, зачем выпускать микросхему, аналогов которой на рынке большое множество? Тут, наверное, можно выделить несколько причин:
Микросхема нового поколения приемопередачика RS485 выполнена в простом и дешевом 8-ми выводном пластиковом корпусе SO-8. Такое решение продиктовано потребностью выпуска микросхемы большими партиями с минимальной ценой.
Кристалл получился довольно маленький (1.3мм * 1.3мм), что позволит нам конкурировать в цене с сильными мира сего:
Более подробно о характеристиках микросхемы можно прочитать в спецификации. Сравним основные параметры К5559ИН86SI с зарубежными аналогами.
Параметр | К5559ИН86SI | MAX14783EEUA | ST3485EB | ADM3490E | THVD14xx |
Напряжение питания | 3,0–5,5 В | 3,0–5,5 В | 3–3,6 В | 3–3,6 В | 3,0–5,5 В |
Скорость передачи данных (макс.) | 30 Мбит/с | 30 Мбит/с | 15 Мбит/с | 12 Мбит/с | 50 Мбит/с |
Ток потребления в рабочем режиме | 1,4 (макс. 2) мА | 1,9 (макс. 4) мА | 1,3 (макс. 2,2) мА | 1,1 (макс. 2,2) мА | 2,4 (макс. 3) мА |
Ток потребления в режиме «выкл.» | 1,5 В | >1,5 В | >1,5 В | >1,5 В | >1,5 В |
Расположение порога переключения приемника, В | –0,210…–0,030 В | –0,200…–0,010 В | –0,200…–0,010 В | –0,200…–0,010 В | -0,25…-0,05 В |
Задержка распространения сигнала передатчика | 25 нс | 20 нс | 30 нс | 35 нс | 20 нс |
Время включения передатчика (приемник включен) | 60 нс | 30 нс | 50 нс | 90 нс | 50 нс |
Время включения передатчика (приемник выключен) | 10 мкс | 6 мкс | 0,05 мкс | 0,9 мкс | 6 мкс |
Параметры получились сравнимыми c зарубежными аналогами, что для разработчиков микросхемы является хорошей новостью. Однако достижение хороших показателей параметров является лишь верхушкой айсберга. Давайте попробуем более детально заглянуть внутрь микросхемы. Помимо того, что описано в стандарте, в любой микросхеме есть свои «фичи». Попробуем поделиться некоторыми из них и приоткрыть дверь в мир процесса исследования «в железе».
Защита от короткого замыкания
При организации сетей на базе RS485 возможна ситуация, когда передатчик “вещает” в линию, в которой устойчиво присутствует другой потенциал. Чаще всего такая ситуация встречается при одновременном “вещании” двух или более передатчиков. Что же будет с микросхемами передатчиков в таком включении? В принципе ничего хорошего. Рассмотрим на простом примере. Подключим напрямую два передатчика (берем только одно соединение для витой пары, для другой все будет тоже самое, но с инверсией): на выходе передатчика 1 будет потенциал +5В (питание), на выходе передатчика 2 будет 0 (Земля).
Транзисторы P1 и N2 будут открыты, и без наличия дополнительной защиты через них будет идти ток короткого замыкания, который будет ограничен только незначительными сопротивлениями самих транзисторов и проводника. Чаще всего в такой ситуации исход один – тепловой пробой транзисторов или любимое всеми на хабре слово – “выгорание”.
Угловой фрагмент фотографии кристалла (чипа) микросхемы RS485 неудачной ревизии
Простейший способ обезопасить схему от КЗ – добавить ограничивающие резисторы для каждого транзистора выходного буфера. Суть заключается в следующем: добавляем резисторы в систему, когда ток через них становится довольно приличным по закону Ома — – напряжение на резисторе начинает расти. Когда становится равным порогу срабатывания транзистора (на картинке ниже Pfb и Nfb), включается обратная связь, и ток КЗ уходит в насыщение. В одной ревизии мы так и сделали, но это оказался еще тот фейл…
Из-за того, что в цепи напряжение может быть выше питания, появляется обратный ток. Если бы система питалась от внешнего источника, он мог бы подавить это напряжение, но он питался от внутреннего LDO (линейный регулятор напряжения). Обратный ток повышал напряжение LDO, и схема сгорала. Решение, которое было придумано, выглядит следующим образом:
Источники опорного тока задают ток через транзисторы N3 и P3. Схема токового зеркала определяет максимальный ток, который может проходить через транзисторы N2 и P2, тем самым ограничивает как прямой ток КЗ, так и обратный. Решение получилось рабочим по моделированию, теперь осталось протестировать в железе.
Переходим к измерениям. Нам понадобится источник питания, точный источник-измеритель Keithley2602А и ПО, позволяющее управлять источником-измерителем и снимать ВАХ. Для автоматизации измерений нашими application инженерами был разработан матричный коммутатор, который позволяет автоматически переключать источник-измеритель к различным выводам микросхемы. Для общения с приборами используем LabView.
На коммутаторе остановимся отдельно, естественно, есть зарубежные аналоги, но конкретно данный экземпляр коммутатора 64х8 — собственная разработка нашей команды измерителей, с упором на их каждодневные задачи, позволяет коммутировать 64 вывода микросхемы на 8 каналов (к которым можно подключить какое-либо оборудование), избавляя от действий руками перед каждым измерением.
Ну и конечно же сам измерительный прибор:
Итого, получаем следующие ВАХ (Вольт-Амперные-Характеристики) для выхода передатчика:
Транзисторы микросхемы при коротком замыкании (при потенциале в линии) не разрушаются! Защита от короткого замыкания работает – проверено.
Однако если подержать в режиме КЗ какое-то время (около 2-х минут), то сработает следующая “фича” – термозащита и схема выключится.
Встроенная термозащита
Защита от перегрева встроена почти во все зарубежные микросхемы приемопередатчиков RS485 и является неотъемлемой функциональной частью схемы. При повышенной температуре параметры транзисторов начинают деградировать, а при токе короткого замыкания разогрев неизбежен и важно вовремя перевести микросхему в выключенное состояние.
Ситуацию с перегревом усугубляет и пластиковый корпус, который весьма плохо отводит тепло. Да и топология кристалла прошла серьезную оптимизацию, чтоб разместить максимум функционала на минимум площади. Если провести аналогию с реальным миром, то пластиковый корпус для кристалла — это как куртка-пуховик для человека.
Гарантированный диапазон температур, в котором должна функционировать микросхема: –40…+85 °С.
В К5559ИН86АSI порог срабатывания термодатчика расположен в районе температуры 165 ºС — при достижении этого значения произойдет выключение микросхемы. Но это речь о температуре кристалла, а не корпуса, цифра 165 ºС также не случайна: при такой температуре кристалл стопроцентно не получит повреждений и продолжит функционировать после остывания. Рабочий же диапазон температур в документации приводится относительно температуры среды, да и, справедливости ради, ее проще контролировать.
Проверка работы микросхемы в температуре происходила при помощи испытательной камеры тепла и холода SU-262. Камера позволяет задать температуру от –60 °С до 150 °С.
Испытательная камера тепла и холода – вид снаружи
Испытательная камера тепла и холода – вид внутри
В процессе измерений нужно проверить следующее: какой запас по температуре есть у кристалла в рабочем режиме?
Подключаем генератор ко входу микросхемы, и смотрим сигнал выхода. При данном тесте температура внешней среды меняется в диапазоне –60 °С до 125 °С. Итого на выходе передатчика видим следующую осциллограмму:
Осциллограмма: DI – информационный входной сигнал передачика, AY, BY – выходные сигналы передатчика, RO – выходной сигнал приёмника.
Во всем диапазоне температур схема функционировала нормально. Однако остается вопрос, а какой запас по температуре? Для того, чтобы ответить на данный вопрос, нужно понять какова температура самого кристалла, вне корпуса. Для измерения температуры кристалла мы придумали достаточно интересный подход, о котором могу поведать.
Практически во всех микросхемах существует ESD защита (защита от электростатических разрядов). В простейшем случае представляет из себя 2 диода, используемых в обратном включении (один на землю, другой на питание). Воспользуемся тем свойством, что физика полупроводников такова, что напряжение падения на диоде (pn-переходе) зависит от температуры. Используем следующую схему включения:
Используем ту же камеру тепла и холода. Задача стоит следующая: построить зависимость напряжения на диоде от температуры, что поможет вычислить температурный коэффициент. Режим измерения производился с выключенной схемой, которая исключает саморазогрев, то есть позволяет нам откалибровать шкалу:
Получено следующее значение температурного коэффициента напряжения: 1,78мВ/°С.
Откалибровав шкалу, можно перейти к оценке разогрева микросхемы внутри пластикового корпуса в рабочем режиме при штатных нагрузках и в случае короткого замыкания выходных каскадов. Режим измерения, следующий:
Температура окружающей среды, °С | Температура на кристалле, °С | |
К5559ИН86АSI | MAX1478 | |
35 | 52,21 | 53,82 |
85 | 100,16 | 108,1 |
100 | 126,04 | 124,24 |
Вывод-1: кристалл нагревается в рабочем режиме на 26 °С при температуре внешней среды 100 градусов. Порог срабатывания термозащиты (165 ºС) еще далеко.
Вывод-2: в режиме короткого замыкания термозащита срабатывает, по имеющимся измерениям уже при 55 ºС внешней среды, но микросхема не выходит из строя и через некоторое время после того, как она охлаждается – может снова функционировать.
Так мы экспериментально подтвердили, что разработанные схемотехнические решения надежно защищают микросхему от нештатных ситуаций (таких как КЗ или конфликт драйверов) и не оказывает влияния на штатные режимы.
Заключение
В данной статье я постарался познакомить читателей с особенностями такого популярного интерфейса, как RS485. Процесс разработки микросхемы очень тесно переплетается с процессами измерений и прототипирования. И тут большая заслуга наших application инженеров, которые постоянно находят у нас косяки и недостатки. Наверное, двигатель любого прогресса – это конструктивная критика.
PS Образцы микросхемы можно получить бесплатно, оставив заявку на сайте. Да-да, только ленивый нас еще не пнул за то, как все туго с заказами для обычных пользователей. Мы все читаем, и понимаем, насколько это важно. В будущем будет улучшаться наш сайт, чтобы заказ коммерческих микросхем и отладочных плат стал проще.