- •Порядок обмена по интерфейсу rs-232c
- •Уровни сигналов rs-232c на передающем и принимающем концах линии связи.
- •Интерфейс rs-485.
- •§3.Международные и национальные стандарты основанные на стандарте rs-485.
- •Описание работы rs-485.
- •Общие рекомендации
- •Согласование
- •Уровни сигналов
- •Осциллограмма реального обмена
- •Cмещение
- •§7. Реализация приемопередатчиков(драйверов) rs-485.
- •Топология сети rs-485
- •§9. Программное обеспечение для работы в сетях rs-485
- •Микросхемы интерфейса rs-485
- •История и описание
- •5.8 Интерфейс i2c
- •5.9 Последовательные интерфейсы
Общие рекомендации
Лучшей средой передачи сигнала является кабель на основе витой пары.
Концы кабеля должны быть заглушены терминальными резисторами (обычно 120 Ом).
Сеть должна быть проложена по топологии шины, без ответвлений.
Устройства следует подключать к кабелю проводами минимальной длины.
Витая пара является оптимальным решением для прокладки сети, поскольку обладает наименьшим паразитным излучением сигнала и хорошо защищена от наводок. В условиях повышенных внешних помех применяют кабели с экранированной витой парой, при этом экран кабеля соединяют с защитной "землёй" устройства.
Согласование
Терминальные резисторы обеспечивают согласование "открытого" конца кабеля с остальной линией, устраняя отражение сигнала.
Номинальное сопротивление резисторов соответствует волновому сопротивлению кабеля, и для кабелей на основе витой пары обычно составляет 100 - 120 Ом. Например, широко распространённый кабель UTP-5, используемый для прокладки Ethernet, имеет импеданс 100 Ом. Специальные кабели для RS-485 марки Belden 9841 ... 9844 — 120 Ом. Для другого типа кабеля может потребоваться другой номинал.
Резисторы могут быть запаяны на контакты кабельных разъемов у конечных устройств. Иногда резисторы бывают смонтированы в самом устройстве и для подключения резистора нужно установить перемычку. В этом случае при отсоединении устройства линия рассогласовывается, и для нормальной работы остальной системы требуется подключение согласующей заглушки.
Уровни сигналов
Интерфейс RS-485 использует балансную (дифференциальную) схему передачи сигнала. Это означает, что уровни напряжений на сигнальных цепях А и В меняются в противофазе, как показано на приведенном ниже рисунке:
|
Передатчик должен обеспечивать уровень сигнала 1,5 В при максимальной нагрузке (32 стандартных входа и 2 терминальных резистора) и не более 6 В на холостом ходу. Уровни наряжений измеряют дифференциально, один сигнальный провод относительно другого.
На стороне приемника RS-485 минимальный уровень принимаемого сигнала должен быть не менее 200 мВ.
Осциллограмма реального обмена
Ниже приведена осциллограмма реального обмена (запрос и начало ответа) при обмене двух контроллеров ВАРИКОНТ по интерфейсу RS-485 (цепь A относительно цепи B). На осциллограмме цифрами отмечены некоторые ключевые моменты:
Включение передатчика ведущего контроллера. После включения выдержана пауза.
Начало передачи данных — стартовый бит первого фрейма (фреймы аналогичны фреймам RS-232: стартовый бит, биты данных, бит паритета, стоповый бит).
Завершение передачи данных — стоповый бит последнего фрейма.
Выключение передатчика.
Включение передатчика ведомого контроллера.
Cмещение
Как видно на осциллограмме выше, в отсутствие сигнала на сигнальных цепях имеется небольшое смещение. Это смещение предназначено для защиты приемников от ложных срабатываний.
Рекомендуется создавать смещение немногим более 200 мВ (зона недостоверности входного сигнала согласно стандарту). При этом цепь A "подтягивают" к положительному полюсу источника, а цепь B — к "общему". Один из вариантов реализации цепи смещения показан ниже:
|
Номиналы резисторов рассчитывают, исходя из требуемого смещения и напряжения источника питания. Например, мы хотим получить смещение 250 мВ при терминальных резисторах Rт = 120 Ом и напряжении источника 12 В. Учитывая, что 2 терминальных резистора включены параллельно и не принимая во внимание нагрузку от приемников, получаем ток смещения I = U / R = 0,250 В / 60 Ом = 0,0042 А. Общее сопротивление цепи смещения R = U / I = 12 В / 0,0042 А = 2857 Ом. Получаем Rсм = (2857 - 60) / 2 ~= 1400 Ом. Выбираем ближайший номинал — 1,3 или 1,5 кОм.
Описание обмена данными по стандарту 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 работают в режиме приёма и называются "ведомыми". Чтобы "ведомый" начал предавать данные в линию связи "ведущий" посылает ему специальную команду, которая дает прибору с указанным адресом право переключить свой драйвер в режим передачи на определенное время.
После передачи разрешающей команды "ведомому", "ведущий" отключает свой передатчик и ждет ответа "ведомого" в течение промежутка времени, который называется "таймаут". Если в течении таймаута ответ от "ведомого" не получен, то "ведущий" снова занимает линию связи. В роли "ведущего" обычно выступает программа, установленная на компьютер. Существуют и более сложная организация пакетных протоколов, которая позволяет циклически предавать роль "ведущего" от прибора к прибору. Обычно такие приборы называют "лидерами", либо говорят что приборы передают "маркер". Владение "маркером" делает прибор "ведущим", но он должен будет обязательно передать его другому прибору сети по определённому алгоритму. В основном, указанные выше протоколы, отличаются по этим алгоритмам.
Как мы видим, верхние протоколы имеют пакетную организацию и выполняются на программном уровне, они позволяют решить проблему с "коллизиями" данных и многоточечную организацию обмена данными.
