Интерфейс RS-485
Интерфейс RS-485, наверное, самый распространенный интерфейс для организации малых сетей промышленной автоматизации.
Этому способствуют его высокие технические характеристики при простоте реализации. Интерфейс RS-485 позволяет простыми аппаратными средствами создавать сети:
- шинной топологии ;
- с витой парой в качестве среды передачи данных;
- длина линии связи может достигать 1200 м;
- скорость передачи данных до 10 Мбит/сек.
Для управления распределенными системами на базе RS-485 могут быть использованы многие стандартные протоколы, в том числе и ModBus. Интерфейс позволяет создавать сети и со специализированными протоколами. Для аппаратной реализации RS-485 достаточно добавить к микроконтроллеру только одну микросхему малой степени интеграции.
RS-485 описан в стандарте ANSI TIA/EIA–485–A :1998. Стандарт задает только электрические и временные параметры. Он не оговаривает:
- протокол обмена;
- типы кабелей и разъемов;
- гальваническую развязку абонентов сети.
Основные параметры стандарта RS-485.
Параметр | Значение |
Топология сети | Шина |
Линия связи | Витая пара |
Гальваническая развязка | Стандартом не оговаривается |
Режим обмена данными | Полудуплекс |
Способ передачи данных | Дифференциальные сигналы |
Число абонентов сети | До 32, может быть увеличено за счет повторителей |
Максимальная длина линии связи | 1200 м |
Максимальная скорость передачи данных | 10 мБит/сек |
Способ передачи данных RS-485.
Стандарт интерфейса RS-485 определяет следующие сигналы:
- A – неинвертирующий;
- B – инвертирующий;
- C – общая линия (необязательный сигнал).
Иногда используют альтернативные обозначения сигналов:
- Data+ / Data-;
- D+ / D-;
- + / -.
В интерфейсе применяется дифференциальный способ передачи данных. Информация передается с помощью двух противофазных сигналов A и B, а состояние шины RS-485 определяется разностью потенциалов между линиями A и B относительно общей линии C. Напряжение каждой линии относительно земли может быть любым, но в пределах диапазона -7 … +12 В.
RS-485 требует применения дифференциальных приемников и передатчиков.
Передатчики формируют 2 противофазных сигнала с разностью напряжений не менее 1,5 В (согласно стандарту).
Для приема данных используются дифференциальные приемники, которые выделяют разность напряжений между линиями A и B. При разности более 200 мВ, но до +12 В состояние линии считается равным логической единицы. При разности напряжений менее – 200 мВ, но не ниже – 7 В линия находится в состоянии логического нуля.
- Va > Vb соответствует лог. 1;
- Va < Vb соответствует лог. 0.
Нетрудно посчитать, что уровень помех и падение напряжения на активном сопротивлении линии могут достигать 1,3 В (выходное напряжение передатчика 1,5 В минус порог срабатывания приемников 0,2 В). Такой запас обеспечивает работу интерфейса на длинных линиях связи со значительным активным сопротивлением. Максимальная длина линии связи (1200 м) определяется именно этим параметром. Реальная разность напряжений на выходе передатчиков может достигать 5 В.
Линии A и B симметричны относительно земли C. Помехи и наводки в них наводятся близкие по форме и величине. В дифференциальных приемниках напряжения на линиях вычитаются, выделяется сигнал, а напряжение помех оказывается равным нулю. Конечно, в реальных условиях всегда существует незначительная асимметрия линий и нагрузок, что ведет к появлению помехи в выходном сигнале, но она существенно ослабляется.
Благодаря симметричности передатчиков и приемников интерфейса значительный эффект в борьбе с электромагнитными помехами дает применение в качестве линии связи витой пары. Токи наводок в соседних витках направлены противоположно друг другу и взаимно компенсируются.
Стандарт RS-485 определяет следующие электрические параметры передатчиков и приемников.
Параметр | Условия | Значение | Единица измерения | |
Мин. | Макс. | |||
Выходное напряжение передатчика без нагрузки | Rнагр = ∞ | 1,5 -1,5 |
6 -6 |
В |
Выходное напряжение передатчика под нагрузкой | Rнагр = 54 Ом | 1,5 -1,5 |
5 -5 |
В |
Выходное сопротивление передатчика | 54 | Ом | ||
Ток короткого замыкания передатчика | Замыкание выхода на источник питания +12 В или – 7В | — | ±250 | мА |
Синфазное напряжение на выходе передатчика | Rнагр = 54 Ом | -1 | 3 | В |
Чувствительность приемника | Синфазное напряжение от -7 В до +12 В | — | ±200 | мВ |
Синфазное напряжение на входе приемника | -7 | +12 | В | |
Входное сопротивление приемника | 12 | — | кОм | |
Суммарное входное сопротивление | 375 | — | Ом |
Топология сети RS-485.
Как правило, устройства с интерфейсами RS-485 объединяют в сеть с топологией ”Общая шина”. Абоненты подключаются параллельно одной двухпроводной линией связи с дополнительным общим проводом.
Каждый абонент подключается к сети через дифференциальные передатчик (D) и приемник (R). В один момент времени активным (включенным) может быть только один передатчик сети. Все остальные передатчики должны находиться в третьем (высокоомном) состоянии. Управление состоянием передатчика происходит отдельным сигналом (DE).
Общая последовательность обмена данными выглядит так. Ведущее устройство включает свой передатчик, передает данные, затем отключает и принимает ответ. Все остальные устройства в этот момент находятся в состоянии с отключенными передатчиками. Ведомое устройство принимает данные, затем включает свой передатчик и передает ответ ведущему устройству.
Естественно, возникают моменты, когда все передатчики отключены, “линия висит в воздухе”. Если не принять специальных мер, то состояние линии будет неопределенно. На выходах приемников может быть любой уровень.
Устранить эту неопределенность можно, если подключить через резисторы неивертирующий вход приемника к шине питания, а инвертирующий вход к земле.
Сопротивления резисторов должны быть такими, чтобы создать смещение между входами приемников не менее порога срабатывания (200 мВ). Эти резисторы должны быть учтены при расчете концевых резисторов – терминаторов.
Существуют другие варианты устранения неопределенности состояния сети в момент, когда все передатчики отключены. Но они все на уровне протоколов.
Можно в начале обмена передавать служебную последовательность кодов. Но это значительно усложняет обмен, требует передачи лишних данных.
Если в сети всегда есть активное устройство, то существует вариант – выключение передатчика в момент, когда второй передатчик уже включен, но оба находятся в состоянии лог. 1. Допустим, ведущее устройство передает данные. Затем оно переводит выход своего передатчика в состояние лог. 1. Ведомое устройство включает свой передатчик, также в состоянии лог. 1. Далее Ведущее устройство отключает передатчик , и ведомое начинает передавать данные. Линия никогда не остается отключенной. Такой алгоритм требует четкой синхронизации, отработки временных интервалов коммутации передатчиков.
Еще одна неприятность эхо. Все, что передает передатчик устройства, воспринимает его собственный приемник. Надо это учитывать. В некоторых системах данные эха обрабатываются, как часть протокола. В других – запрещается работа приемника в момент передачи. В моих билиотеках Tiny_ModBusRTU_Master и Tiny_ModBusRTU_Slave после каждой передачи данных ведущее устройство очищает приемный буфер.
Согласование линии связи.
При передаче данных на значительное расстояние может происходить заметное искажение сигнала в линии связи. Электромагнитная волна отражается от конца кабеля, возвращается к передатчику, возникают резонансные явления.
Причина – распределенные емкостные и индуктивные свойства кабеля. На практике кабель имеет однородную конструкцию на протяжении все длины, следовательно, одинаковые распределенные параметры. Поэтому свойство кабеля можно характеризовать одним параметром – волновым сопротивлением. Так вот, искажение сигнала в кабеле можно значительно уменьшить, если на приемном конце подключить резистор сопротивлением, равным волновому сопротивлению кабеля. Такой резистор называется терминатором. В сетях RS-485 терминаторы ставятся на оба конца кабеля, т.к. обе стороны могут быть как приемными, так и передающими.
Волновое сопротивление витых пар, как правило, составляет 100 … 150 Ом. Для сетей RS-485 разработаны специальные кабели с волновым сопротивлением 120 Ом. Именно это сопротивление терминаторов считается стандартным. Часто терминаторы с сопротивлением 120 Ом уже установлены в устройствах с интерфейсом RS-485 и могут быть отключены переключателем.
На практике используются терминаторы и с большим сопротивлением, чем волновое сопротивление кабеля. Если активное сопротивление кабеля велико и сравнимо с сопротивлением терминаторов, то на приемной стороне амплитуда сигнала может значительно снизиться. В этом случае необходимо искать компромисс между допустимыми искажениями сигнала и его амплитудой. На низких скоростях передачи, 9600 бод и ниже, применение низкоомных терминаторов может даже уменьшить качество приема.
На искажения сигнала в линии связи также влияет топология сети. Отражения сигнала происходят от любой неоднородности линии, в том числе и за счет ответвлений. Поэтому линия связи физически должна последовательно обходить устройства сети, без длинных отводов.
Исключения это сети с низкими скоростями передачи данных и сети, использующие повторители. За счет повторителей также может быть увеличена общая длина линии связи RS-485.
Гальваническая развязка.
Стандарт RS-485 не предусматривает гальваническую развязку интерфейса от линии связи. Но если устройства сети расположены на большом расстоянии друг от друга, то потенциалы их земляных проводов могут разойтись на значительное напряжение. В этом случае не спасут дифференциальные сигналы, их потенциалы могут разойтись больше чем допустимые -7 … + 12 В. Это приведет к неработоспособности интерфейса и даже выходе его из строя.
Поэтому практически все промышленные варианты устройств с RS-485 имеют гальваническую развязку от линии связи. Это необходимо еще и с точки зрения электробезопасности.