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

Материал из Wiren Board
Строка 53: Строка 53:
</syntaxhighlight>
</syntaxhighlight>
#Файл имеет структуру ''порты (ports) -> устройства (devices)''.
#Файл имеет структуру ''порты (ports) -> устройства (devices)''.
#:<syntaxhighlight lang="javascipt">
#:<syntaxhighlight lang="javascript">
// Configuration options
// Configuration options
{
{

Версия 19:00, 6 мая 2015

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

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

Поддерживаемые протоколы

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

Поддерживаемые устройства

Однако даже если Wiren Board поддерживает протокол, по которому работает устройство, Wiren Board не обязательно поддерживает само это устройство. В стандартном ПО Wiren Board идут драйверы как для работы с периферией производства компании "Бесконтактные устройства", так и для некоторой другой - смотрите список Поддерживаемые_устройства#RS-485.

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

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

Все устройства 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. При прокладке шины нужно соблюдать определённые правила, но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления.


Программное конфигурирование устройств

Чтобы подключённая по RS-485 периферия появилась в веб-интерфейсе контроллера, надо отредактировать конфигурационный файл /etc/wb-homa-modbus.conf, находящийся на контроллере.

Ниже будет дана инструкция по конфигурированию при подключении двухканального модуля реле WB-MRM2. Подробное руководство по конфигурированию для разной периферии RS-485 смотрите в статье Драйвер wb-homa-modbus.

Конфигурирование при подключении двухканального модуля реле WB-MRM2

  1. Зайдите в консоль устройства через Debug UART или по SSH
  2. Создайте файл конфигурации, скопировав файл-образец:
    cp /etc/wb-homa-modbus.conf.sample /etc/wb-homa-modbus.conf #скопировать файл-образец в файл настроек
    
  3. Откройте созданный файл для редактирования:
    mcedit /etc/wb-homa-modbus.conf #открыть файл в псевдографическом редакторе
    
  4. Файл имеет структуру порты (ports) -> устройства (devices).
    // Configuration options
    {
        "debug": false,
        "ports": [
            {
                "path" : "/dev/ttyNSC0",
                "baud_rate": 9600,
                "parity": "N",
                "data_bits": 8,
                "stop_bits": 2,
                "poll_interval": 10,
                "enabled": true,
                "devices" : [
                    {
                        "device_type" : "WB-MRM2",
                        "slave_id": 25,
                        "enabled": true
                    }
                ]
            }
        ]
    }
    



Скорость, чётность

Стандарт де-факто: 9600 бит/с, нет контроля чётности, два стоп-бита - 8N2.

Краткое описание протокола Modbus RTU

Обмен информацией происходит по принципу запрос-ответ: контроллер посылает запрос, устройство отвечает. Каждое устройство на шине имеет свой восьмибитный адрес. Адрес может быть как жестко задан, так и устанавливаться при предварительной настройке - это указывается в документации к устройству.

Настройка Wiren Board для работы с периферией

В стандартном ПО Wiren Board идут драйверы как для работы с периферией производства компании "Бесконтактные устройства", так и для некоторой другой - смотрите Поддерживаемые_устройства#RS-485.

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

Если вы хотите работать с портом RS-485 самостоятельно, не используя стандартный драйвер, то сначала удалите конфигурацию для этого порта из файла /etc/wb-homa-modbus.conf. Также ознакомьтесь с инструкцией Работа с последовательным портом из Linux.

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

Wiren Board 4

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

  • /dev/ttyNSC0 - изолированный (RS-485-ISO),
  • /dev/ttyNSC1 - неизолированный порт.

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