RS-485: различия между версиями
Admin (обсуждение | вклад) |
|||
(не показаны 182 промежуточные версии 10 участников) | |||
Строка 1: | Строка 1: | ||
'''RS-485''' - стандарт коммуникации по двухпроводной шине. По порту RS-485 к Wiren Board можно подключать периферийные устройства. | |||
'''RS-485''' | |||
== Краткое описание стандарта == | |||
RS-485 - стандарт физического уровня, в котором биты передаются разностью напряжений - смотрите [https://ru.wikipedia.org/wiki/RS-485 описание в Википедии]. Поверх него должен работать логический уровень - стандарт сообщений, которыми обмениваются устройства. Wiren Board из коробки поддерживает стандарт [https://ru.wikipedia.org/wiki/Modbus#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5 Modbus RTU], а также протоколы устройств [http://smart.uniel.ru/ Uniel] и [http://ydom.ru ydom.ru] - подробнее ниже. | |||
== Как подключить устройства == | |||
=== Прокладка шины === | |||
Все устройства RS-485 устанавливаются на одну шину. Хотя шина работает по двум проводам, удобно прокладывать четырёхжильным кабелем - дифпара для данных (сигналы А и В) и ещё пара проводов (GND и +12V) для питания периферийных устройств на шине. Можно использовать обычную витую пару CAT5 для Ethernet - тогда одна пара используется для данных, ещё две — для питания (так как по питанию идёт значительный ток, лучше и для 12В, и для земли использовать по два скрученных провода), одна остаётся свободной. | |||
'''В конце шины нужно установить терминальный резистор (примерно 150 Ом, подробнее в [https://ru.wikipedia.org/wiki/RS-485#.D0.A1.D0.BE.D0.B3.D0.BB.D0.B0.D1.81.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5 Википедии]).''' | |||
=== Подключение устройств === | |||
[ | {|align="right" | ||
|-valign="top" | |||
|[[Файл:Подлючение RS-485.jpeg|thumb|200px|Наконечники для шины]] | |||
|[[Файл:Подлючение RS-485 к WB.jpeg|thumb|300px|Подключение к шин RS-485]] | |||
|} | |||
Так как соединение осуществляется общей шиной, следует обратить внимание на качественное соединение всех узлов линии: | |||
*при обрыве линии устройства за обрывом не будут работать | |||
*при коротком замыкании не будут работать все устройства. | |||
Рекомендуем использовать [http://www.chipdip.ru/catalog-show/tips/ штыревые наконечники под обжимку]. Это позволяет легко подключать-отключать устройства без потери работоспособности остальных устройств на шине. | |||
Провод A на всех устрйоствах подключается к клеммнику с маркировкой А, провод B - всегда к B. На Wiren Board рядом с клеммниками А и В | |||
расположены клеммники GND и Vout - можно сразу подключить шины питания (сначала проверьте требования ваших устройств!). | |||
Лайфхак: так как внутри Wiren Board стоит растяжка линий, после подключения его к шине напряжение на линии A будет больше чем на B примерно на 0.5 В. Поэтому подключая периферийные устройства вы легко можете определить линии шины вольтметром. | |||
== | === Преимущества RS-485 === | ||
#Дифференциальная линия дает хорошую помехозащищенность. Длина линии до 1200 метров. | |||
#Общая шина - один кабель на все устройства. | |||
#При прокладке шины нужно соблюдать [http://www.gaw.ru/html.cgi/txt/interface/rs485/app.htm определённые правила], но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления. | |||
== | == Программное конфигурирование устройств == | ||
Чтобы подключённая по RS-485 периферия появилась в веб-интерфейсе контроллера, надо отредактировать конфигурационный файл <code>/etc/wb-homa-modbus.conf</code>, находящийся на контроллере. | |||
Ниже будет дана инструкция по конфигурированию при подключении [[WB-MRM2 Реле 2х канальное | двухканального модуля реле WB-MRM2]]. Подробное руководство по конфигурированию для разной периферии RS-485 смотрите в статье [[Драйвер wb-homa-modbus]]. | |||
=== Конфигурирование при подключении [[WB-MRM2 Реле 2х канальное | двухканального модуля реле WB-MRM2]] === | |||
* | |||
==== Скорость, чётность ==== | |||
Стандарт де-факто: 9600 бит/с, нет контроля чётности, два стоп-бита - 8N2. | |||
==== Краткое описание протокола Modbus RTU ==== | |||
Обмен информацией происходит по принципу запрос-ответ: контроллер посылает запрос, устройство отвечает. Каждое устройство на шине имеет свой восьмибитный адрес. Адрес может быть как жестко задан, так и устанавливаться при предварительной настройке - это указывается в документации к устройству. | |||
==== Настройка Wiren Board для работы с периферией ==== | |||
В стандартном ПО Wiren Board идут драйверы как для работы с [[Периферийные устройства с интерфейсом Modbus серии WB-xxxx | периферией производства компании "Бесконтактные устройства"]], так и для некоторой другой - смотрите [[Поддерживаемые_устройства#RS-485]]. | |||
Полное описание смотрите в [https://github.com/contactless/wb-homa-drivers#wb-homa-modbus документации к драйверу на Github]. | |||
== Низкоуровневая работа с портом RS-485 в Wiren Board == | |||
Ознакомьтесь с инструкцией [[Работа с последовательным портом из Linux]]. | |||
== Реализация портов в разных версиях Wiren Board == | |||
=== Wiren Board 4 === | |||
Порты определяются в системе как: | |||
* ''/dev/ttyNSC0'' - изолированный (RS-485-ISO), | |||
* ''/dev/ttyNSC1'' - неизолированный порт. | |||
=== Wiren Board Smart Home rev. 3.5 === | |||
[[Файл:Перемычки.png|thumb|300px|Перемычки терминаторов в 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]] |
Версия 18:12, 6 мая 2015
RS-485 - стандарт коммуникации по двухпроводной шине. По порту RS-485 к Wiren Board можно подключать периферийные устройства.
Краткое описание стандарта
RS-485 - стандарт физического уровня, в котором биты передаются разностью напряжений - смотрите описание в Википедии. Поверх него должен работать логический уровень - стандарт сообщений, которыми обмениваются устройства. Wiren Board из коробки поддерживает стандарт Modbus RTU, а также протоколы устройств Uniel и ydom.ru - подробнее ниже.
Как подключить устройства
Прокладка шины
Все устройства RS-485 устанавливаются на одну шину. Хотя шина работает по двум проводам, удобно прокладывать четырёхжильным кабелем - дифпара для данных (сигналы А и В) и ещё пара проводов (GND и +12V) для питания периферийных устройств на шине. Можно использовать обычную витую пару CAT5 для Ethernet - тогда одна пара используется для данных, ещё две — для питания (так как по питанию идёт значительный ток, лучше и для 12В, и для земли использовать по два скрученных провода), одна остаётся свободной.
В конце шины нужно установить терминальный резистор (примерно 150 Ом, подробнее в Википедии).
Подключение устройств
Так как соединение осуществляется общей шиной, следует обратить внимание на качественное соединение всех узлов линии:
- при обрыве линии устройства за обрывом не будут работать
- при коротком замыкании не будут работать все устройства.
Рекомендуем использовать штыревые наконечники под обжимку. Это позволяет легко подключать-отключать устройства без потери работоспособности остальных устройств на шине.
Провод A на всех устрйоствах подключается к клеммнику с маркировкой А, провод B - всегда к B. На Wiren Board рядом с клеммниками А и В расположены клеммники GND и Vout - можно сразу подключить шины питания (сначала проверьте требования ваших устройств!).
Лайфхак: так как внутри Wiren Board стоит растяжка линий, после подключения его к шине напряжение на линии A будет больше чем на B примерно на 0.5 В. Поэтому подключая периферийные устройства вы легко можете определить линии шины вольтметром.
Преимущества RS-485
- Дифференциальная линия дает хорошую помехозащищенность. Длина линии до 1200 метров.
- Общая шина - один кабель на все устройства.
- При прокладке шины нужно соблюдать определённые правила, но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления.
Программное конфигурирование устройств
Чтобы подключённая по RS-485 периферия появилась в веб-интерфейсе контроллера, надо отредактировать конфигурационный файл /etc/wb-homa-modbus.conf
, находящийся на контроллере.
Ниже будет дана инструкция по конфигурированию при подключении двухканального модуля реле WB-MRM2. Подробное руководство по конфигурированию для разной периферии RS-485 смотрите в статье Драйвер wb-homa-modbus.
Конфигурирование при подключении двухканального модуля реле WB-MRM2
Скорость, чётность
Стандарт де-факто: 9600 бит/с, нет контроля чётности, два стоп-бита - 8N2.
Краткое описание протокола Modbus RTU
Обмен информацией происходит по принципу запрос-ответ: контроллер посылает запрос, устройство отвечает. Каждое устройство на шине имеет свой восьмибитный адрес. Адрес может быть как жестко задан, так и устанавливаться при предварительной настройке - это указывается в документации к устройству.
Настройка Wiren Board для работы с периферией
В стандартном ПО Wiren Board идут драйверы как для работы с периферией производства компании "Бесконтактные устройства", так и для некоторой другой - смотрите Поддерживаемые_устройства#RS-485.
Полное описание смотрите в документации к драйверу на Github.
Низкоуровневая работа с портом RS-485 в Wiren Board
Ознакомьтесь с инструкцией Работа с последовательным портом из Linux.
Реализация портов в разных версиях Wiren Board
Wiren Board 4
Порты определяются в системе как:
- /dev/ttyNSC0 - изолированный (RS-485-ISO),
- /dev/ttyNSC1 - неизолированный порт.
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