RS-485

Материал из Wiren Board

RS-485 - стандарт коммуникации по двухпроводной шине. По порту RS-485 к Wiren Board можно подключать периферийные устройства.

Краткое описание стандарта

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

Как подключить устройства

Прокладка шины

Все устройства RS-485 устанавливаются на одну шину. Хотя шина работает по двум проводам, удобно прокладывать четырёхжильным кабелем - дифпара для данных (сигналы А и В) и ещё пара проводов (GND и +12V) для питания периферийных устройств на шине. Можно использовать обычную витую пару CAT5 для Ethernet - тогда одна пара используется для данных, ещё две — для питания (так как по питанию идёт значительный ток, лучше и для 12В, и для земли использовать по два скрученных провода), одна остаётся свободной.

В конце шины нужно установить терминальный резистор (примерно 150 Ом, подробнее в Википедии).

Подключение устройств

Наконечники для шины
Подключение к шин RS-485

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

Для удобства подключения шины на контроллере WB рядом с клеммниками А и В расположены клеммники GND и Vout. Подключаем А к А, В к В.

Небольшая хитрость: т.к. внутри контроллера стоит растяжка линий, то при отсутствии передачи напряжение на линии A (~2,6V) больше чем на B(~2V). Подключая периферийные устройства вы легко можете определить линии шины вольтметром.

Преимущества RS-485

  1. Дифференциальная линия дает хорошую помехозащищенность. Длина линии до 1200 метров.
  2. Общая шина - один кабель на все устройства.
  3. При прокладке шины нужно соблюдать определённые правила, но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления.


Особенности работы Modbus RTU

Обмен информацией по шине осуществляется по принципу запрос-ответ.

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

Как правило, датчики опрашиваются по кругу.

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

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

Логические уровни кроме Modbus RTU

Работа с портом RS-485 в Wiren Board

Ознакомьтесь с инструкцией Работа с последовательным портом из Linux.

Последовательные порты RS-485 в Linux на Wiren Board имеют названия /dev/ttyNSC0 и /dev/ttyNSC1.

Детали реализации портов в разных версиях Wiren Board

Wiren Board Smart Home rev. 3.5

Перемычки терминаторов в Wiren Board Smart Home rev. 3.5

Контроллер имеет два полудуплексных порта. Трансивер подключен к чипу SC16IS752.

Порты определяются в системе как:

  • /dev/ttyNSC0 - зелёная пара клеммников
  • /dev/ttyNSC1 - синяя пара клеммников

Для уменьшения эффектов отражения, линии RS-485 должны заканчиваться "терминаторами" - резисторами, равными волновому сопротивлению линии. На плате установлены резисторы по 150 Ом между линиями A и В. Для их отключения распаяйте соответствующие SMD-перемычки (по умолчанию запаяны), см. фото.

Wiren Board rev. 2.8

Wiren Board 2.8 может поставляться с трансивером RS-485. Поддерживается полудуплексный режим работы, линии A и B выведены на клеммники.

Трансивер подключен к чипу SC16IS752. Соответсвующий последовательный порт определяется системой как /dev/ttyNSC0. См. SC16IS752#UART0