RS-485: различия между версиями

Материал из Wiren Board
Строка 56: Строка 56:
Wiren Board также поддерживает протоколы устройств [http://smart.uniel.ru/ Uniel] и [http://ydom.ru ydom.ru]. Они поддерживаются драйвером [[MQTT]], но не могут работать с устройствами Modbus RTU на одной шине - их нужно подключить на отдельную шину и подключить к другому порту RS-485 Wiren Board.
Wiren Board также поддерживает протоколы устройств [http://smart.uniel.ru/ Uniel] и [http://ydom.ru ydom.ru]. Они поддерживаются драйвером [[MQTT]], но не могут работать с устройствами Modbus RTU на одной шине - их нужно подключить на отдельную шину и подключить к другому порту RS-485 Wiren Board.


== Работа с портом RS-485 в Wiren Board ==
== Нихкоуровневая работа с портом RS-485 в Wiren Board ==


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

Версия 22:29, 28 апреля 2015

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

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

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

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

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

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

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

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

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

Так как соединение осуществляется общей шиной, следует обратить внимание на качественное соединение всех узлов линии:

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

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

Провод A на всех устрйоствах подключается к клеммнику с маркировкой А, провод B - всегда к B. На Wiren Board рядом с клеммниками А и В расположены клеммники GND и Vout - можно сразу подключить шины питания (сначала проверьте требования ваших устройств!).

Лайфхак: так как внутри Wiren Board стоит растяжка линий, после подключения его к шине напряжение на линии A будет больше чем на B примерно на 0.5 В. Поэтому подключая периферийные устройства вы легко можете определить линии шины вольтметром.

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

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


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

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

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

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

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

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

Протоколы кроме Modbus RTU

Wiren Board также поддерживает протоколы устройств Uniel и ydom.ru. Они поддерживаются драйвером MQTT, но не могут работать с устройствами Modbus RTU на одной шине - их нужно подключить на отдельную шину и подключить к другому порту RS-485 Wiren Board.

Нихкоуровневая работа с портом 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