RS-485: различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
'''RS-485''' - стандарт коммуникации по двухпроводной шине. По порту RS-485 к [[Wiren Board]] можно подключать периферийные устройства. | '''RS-485''' - стандарт коммуникации по двухпроводной шине. По порту RS-485 к [[Wiren Board]] можно подключать периферийные устройства. | ||
== Какие устройства можно подключать к Wiren Board == | |||
== Поддерживаемые протоколы == | === Поддерживаемые протоколы === | ||
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 - стандарт физического уровня, в котором биты передаются разностью напряжений - смотрите [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]. | ||
=== Краткое описание протокола Modbus RTU === | === Краткое описание протокола Modbus RTU === | ||
Обмен информацией происходит по принципу запрос-ответ: контроллер посылает запрос, устройство отвечает. Каждое устройство на шине имеет свой восьмибитный адрес. Адрес может быть как жестко задан, так и устанавливаться при предварительной настройке - это указывается в документации к устройству. | Обмен информацией происходит по принципу запрос-ответ: контроллер посылает запрос, устройство отвечает. Каждое устройство на шине имеет свой восьмибитный адрес. Адрес может быть как жестко задан, так и устанавливаться при предварительной настройке - это указывается в документации к устройству. | ||
== Поддерживаемые устройства == | === Поддерживаемые устройства === | ||
Однако даже если Wiren Board поддерживает протокол, по которому работает устройство, Wiren Board не обязательно поддерживает само это устройство. В стандартном ПО Wiren Board идут драйверы как для работы с [[Периферийные устройства с интерфейсом Modbus серии WB-xxxx | периферией производства компании "Бесконтактные устройства"]], так и для некоторой другой - смотрите список [[Поддерживаемые_устройства#RS-485]]. | Однако даже если Wiren Board поддерживает протокол, по которому работает устройство, Wiren Board не обязательно поддерживает само это устройство. В стандартном ПО Wiren Board идут драйверы как для работы с [[Периферийные устройства с интерфейсом Modbus серии WB-xxxx | периферией производства компании "Бесконтактные устройства"]], так и для некоторой другой - смотрите список [[Поддерживаемые_устройства#RS-485]]. | ||
== Как подключить устройства == | == Как физически подключить устройства == | ||
<div class="toccolours mw-collapsible mw-collapsed"> | <div class="toccolours mw-collapsible mw-collapsed"> | ||
Строка 48: | Строка 48: | ||
#При прокладке шины нужно соблюдать [http://www.gaw.ru/html.cgi/txt/interface/rs485/app.htm определённые правила], но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления. | #При прокладке шины нужно соблюдать [http://www.gaw.ru/html.cgi/txt/interface/rs485/app.htm определённые правила], но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления. | ||
== Программное конфигурирование устройств == | ==Как настроить контроллер для работы с подключенными устройствами== | ||
===Программное конфигурирование устройств === | |||
Чтобы подключённая по RS-485 периферия появилась в веб-интерфейсе контроллера, надо отредактировать конфигурационный файл <code>/etc/wb-homa-modbus.conf</code>, находящийся на контроллере. Для этого смотрите инструкцию [[Драйвер wb-homa-modbus#Конфигурационный файл]]. | Чтобы подключённая по RS-485 периферия появилась в веб-интерфейсе контроллера, надо отредактировать конфигурационный файл <code>/etc/wb-homa-modbus.conf</code>, находящийся на контроллере. Для этого смотрите инструкцию [[Драйвер wb-homa-modbus#Конфигурационный файл]]. | ||
== Низкоуровневая работа с портом RS-485 в Wiren Board == | === Низкоуровневая работа с портом RS-485 в Wiren Board === | ||
Если вы хотите работать с портом RS-485 самостоятельно, не используя [[Драйвер wb-homa-modbus]], то сначала проверьте, что в файле <code>/etc/wb-homa-modbus.conf</code> нет конфигурации для этого порта - иначе стандартный драйвер будет писать в этот порт. Также ознакомьтесь с инструкцией [[Работа с последовательным портом из Linux]]. | Если вы хотите работать с портом RS-485 самостоятельно, не используя [[Драйвер wb-homa-modbus]], то сначала проверьте, что в файле <code>/etc/wb-homa-modbus.conf</code> нет конфигурации для этого порта - иначе стандартный драйвер будет писать в этот порт. Также ознакомьтесь с инструкцией [[Работа с последовательным портом из Linux]]. | ||
== Реализация портов в разных версиях Wiren Board == | === Реализация портов в разных версиях Wiren Board === | ||
=== Wiren Board 5 === | ==== Wiren Board 5 ==== | ||
Порты определяются в системе как: | Порты определяются в системе как: | ||
* ''/dev/''ttyAPP1'' - неизолированный порт на клемниках A и B (подпись "RS-485"). | * ''/dev/''ttyAPP1'' - неизолированный порт на клемниках A и B (подпись "RS-485"). | ||
Строка 62: | Строка 63: | ||
На линиях установлены терминаторы. | На линиях установлены терминаторы. | ||
=== Wiren Board 4 === | ==== Wiren Board 4 ==== | ||
Порты определяются в системе как: | Порты определяются в системе как: | ||
* ''/dev/ttyNSC0 ''- изолированный (RS-485-ISO), | * ''/dev/ttyNSC0 ''- изолированный (RS-485-ISO), | ||
* ''/dev/ttyNSC1'' - неизолированный порт. | * ''/dev/ttyNSC1'' - неизолированный порт. | ||
=== [[Wiren Board NETMON-1]] === | ==== [[Wiren Board NETMON-1]] ==== | ||
Контроллер имеет два полудуплексных порта. Трансиверы подключен к чипу [[SC16IS752]]. | Контроллер имеет два полудуплексных порта. Трансиверы подключен к чипу [[SC16IS752]]. | ||
Строка 74: | Строка 75: | ||
* ''/dev/ttyNSC1'' - разъём и6 | * ''/dev/ttyNSC1'' - разъём и6 | ||
=== Wiren Board Smart Home rev. 3.5 === | ==== Wiren Board Smart Home rev. 3.5 ==== | ||
[[Файл:Перемычки.png|thumb|300px|Перемычки терминаторов в Wiren Board Smart Home rev. 3.5]] | [[Файл:Перемычки.png|thumb|300px|Перемычки терминаторов в Wiren Board Smart Home rev. 3.5]] | ||
Строка 86: | Строка 87: | ||
Для уменьшения эффектов отражения, линии RS-485 должны заканчиваться "терминаторами" - резисторами, равными волновому сопротивлению линии. На плате установлены резисторы по 150 Ом между линиями A и В. Для их отключения распаяйте соответствующие SMD-перемычки (по умолчанию запаяны), см. фото. | Для уменьшения эффектов отражения, линии RS-485 должны заканчиваться "терминаторами" - резисторами, равными волновому сопротивлению линии. На плате установлены резисторы по 150 Ом между линиями A и В. Для их отключения распаяйте соответствующие SMD-перемычки (по умолчанию запаяны), см. фото. | ||
=== Wiren Board rev. 2.8 === | ==== Wiren Board rev. 2.8 ==== | ||
Wiren Board 2.8 может поставляться с трансивером RS-485. Поддерживается полудуплексный режим работы, линии A и B выведены на клеммники. | Wiren Board 2.8 может поставляться с трансивером RS-485. Поддерживается полудуплексный режим работы, линии A и B выведены на клеммники. | ||
Трансивер подключен к чипу [[SC16IS752]]. Соответсвующий последовательный порт определяется системой как ''/dev/ttyNSC0''. См. [[SC16IS752#UART0]] | Трансивер подключен к чипу [[SC16IS752]]. Соответсвующий последовательный порт определяется системой как ''/dev/ttyNSC0''. См. [[SC16IS752#UART0]] |
Версия 19:31, 9 февраля 2016
RS-485 - стандарт коммуникации по двухпроводной шине. По порту RS-485 к Wiren Board можно подключать периферийные устройства.
Какие устройства можно подключать к Wiren Board
Поддерживаемые протоколы
RS-485 - стандарт физического уровня, в котором биты передаются разностью напряжений - смотрите описание в Википедии. Поверх него должен работать логический уровень - стандарт сообщений, которыми обмениваются устройства. Wiren Board из коробки поддерживает стандарт Modbus RTU, а также протоколы устройств Uniel и ydom.ru.
Краткое описание протокола Modbus RTU
Обмен информацией происходит по принципу запрос-ответ: контроллер посылает запрос, устройство отвечает. Каждое устройство на шине имеет свой восьмибитный адрес. Адрес может быть как жестко задан, так и устанавливаться при предварительной настройке - это указывается в документации к устройству.
Поддерживаемые устройства
Однако даже если Wiren Board поддерживает протокол, по которому работает устройство, Wiren Board не обязательно поддерживает само это устройство. В стандартном ПО Wiren Board идут драйверы как для работы с периферией производства компании "Бесконтактные устройства", так и для некоторой другой - смотрите список Поддерживаемые_устройства#RS-485.
Как физически подключить устройства
Прокладка шины
This text is not collapsible; but the next is collapsible and hidden by default:
Все устройства RS-485 устанавливаются на одну шину. Хотя шина работает по двум проводам, удобно прокладывать четырёхжильным кабелем - дифпара для данных (сигналы А и В) и ещё пара проводов (GND и +12V) для питания периферийных устройств на шине. Можно использовать обычную витую пару CAT5 для Ethernet - тогда одна пара используется для данных, ещё две — для питания (так как по питанию идёт значительный ток, лучше и для 12В, и для земли использовать по отдельной паре), одна пара остаётся свободной.
Прокладка шины
Все устройства RS-485 устанавливаются на одну шину. Хотя шина работает по двум проводам, удобно прокладывать четырёхжильным кабелем - дифпара для данных (сигналы А и В) и ещё пара проводов (GND и +12V) для питания периферийных устройств на шине. Можно использовать обычную витую пару CAT5 для Ethernet - тогда одна пара используется для данных, ещё две — для питания (так как по питанию идёт значительный ток, лучше и для 12В, и для земли использовать по отдельной паре), одна пара остаётся свободной.
Важно: при подключении внешних устройств к Wiren Board по шине RS-485, нужно соединять не только линии передачи данных A и B, но и земли (общий провод) контроллера Wiren Board и внешних устройств. Подключение общего провода необходимо в случае подключения к неизолированному порту RS-485 и рекомендуется в случае подключения к гальванически изолированному порту. Клемма общего провода обозначается, в зависимости от оборудования, как SC, SG, G, GND, ground или reference. На контроллерах Wiren Board эта клемма обозначена как GND. При подключении к изолированному порту, нужно подключаться к изолированной земле данного порта (клеммы "GND iso").
При большой длине шины, в конце шины нужно установить терминальный резистор (примерно 150 Ом, подробнее в Википедии).
Подключение устройств
Так как соединение осуществляется общей шиной, следует обратить внимание на качественное соединение всех узлов линии:
- при обрыве линии устройства за обрывом не будут работать
- при коротком замыкании не будут работать все устройства.
Рекомендуем использовать штыревые наконечники под обжимку. Это позволяет легко подключать-отключать устройства без потери работоспособности остальных устройств на шине.
Провод A на всех устройствах подключается к клеммнику с маркировкой А, провод B - всегда к B. На Wiren Board 4 рядом с клеммниками А и В расположены клеммники GND и Vout - можно сразу подключить шины питания (сначала проверьте требования к питанию ваших устройств!).
Лайфхак: так как внутри Wiren Board стоит растяжка линий, после подключения его к шине напряжение на линии A будет больше чем на B примерно на 0.5 В. Поэтому подключая периферийные устройства вы легко можете определить линии шины вольтметром.
Дополнительная информация
- Дифференциальная линия дает хорошую помехозащищенность. Длина линии до 1200 метров.
- При прокладке шины нужно соблюдать определённые правила, но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления.
Как настроить контроллер для работы с подключенными устройствами
Программное конфигурирование устройств
Чтобы подключённая по RS-485 периферия появилась в веб-интерфейсе контроллера, надо отредактировать конфигурационный файл /etc/wb-homa-modbus.conf
, находящийся на контроллере. Для этого смотрите инструкцию Драйвер wb-homa-modbus#Конфигурационный файл.
Низкоуровневая работа с портом RS-485 в Wiren Board
Если вы хотите работать с портом RS-485 самостоятельно, не используя Драйвер wb-homa-modbus, то сначала проверьте, что в файле /etc/wb-homa-modbus.conf
нет конфигурации для этого порта - иначе стандартный драйвер будет писать в этот порт. Также ознакомьтесь с инструкцией Работа с последовательным портом из Linux.
Реализация портов в разных версиях Wiren Board
Wiren Board 5
Порты определяются в системе как:
- /dev/ttyAPP1 - неизолированный порт на клемниках A и B (подпись "RS-485").
- /dev/ttyAPP4 - неизолированный порт на клемниках L и H (подпись "CAN", мультиплексирован с CAN).
На линиях установлены терминаторы.
Wiren Board 4
Порты определяются в системе как:
- /dev/ttyNSC0 - изолированный (RS-485-ISO),
- /dev/ttyNSC1 - неизолированный порт.
Wiren Board NETMON-1
Контроллер имеет два полудуплексных порта. Трансиверы подключен к чипу SC16IS752.
Порты определяются в системе как:
- /dev/ttyNSC0 - разъём и8
- /dev/ttyNSC1 - разъём и6
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