1-Wire устройство дистанционной коммутации


Товар отсутствует на складе

Товар временно отсутствует на складе

Устройство дистанционной коммутации, предназначено для коммутации нагрузки сигналом управления поступающим по одно проводной шине 1-wire и обеспечивает гальваническую развязку цепей нагрузки и управления, также устройство в своем составе имеет двунаправленный восьми разрядный порт ввода вывода.

Данное устройство может найти свое применение как в системах "Умный дом",так и в любых других требущих удаленной коммутации силовых цепей. На одной шине параллельно может находится любое разумное количество устройств, доступ к устройствам адресный.

Состояние как порта ввода-вывода так и реле можно сохранить в энергонезависимую память, чтобы при перезагрузке (например потеря питания), устройство восстанавливало свое состояние.

Если надо управлять более одной нагрузкой, это легко можно сделать подключив к порту ввода-вывода "Модуль реле" вплоть до 8 канального расширив количество нагрузок до девяти.

Характеристики

Доступ к устройству осуществляется по шине 1-Wire.

1-Wire – протокол передачи данных в обе стороны по одному проводу. Режим связи в этом протоколе – асинхронный и полудуплексный.
Данный протокол разработан корпорацией Dallas Semiconductor, именно на 1-Wire работает большинство домофонных чипов (DS1990A), карточек доступа, а также через 1-Wire общаются популярные датчики температуры (DS18S20 и DS18B20), транзисторные ключи (DS2405, DS2406), программируемые порты ввода-вывода (DS2408), часы реального времени (DS2417) и многое другое.
При этом у нас всегда есть ведущий – одно устройство на шине, которое отсылает команды, и ведомые – устройства, которые эти команды принимают и отвечают на них, если необходимо, каждое из ведомых устройств подключается непосредственно к общей шине. Протокол 1-Wire не сложен в реализации и требует для связи всего два-три провода (шина данных, земля и при необходимости питание), однако он не лишён и недостатков – этот протокол весьма чувствителен ко времени и к помехам.

В стандартной конфигураци устройство питается напряжением 12 В, связано это с тем, что данное напряжение активно применяется в системах контроля доступа, для чего собственно устройство и разрабатывалось. Так же есть 5 вольтовая версия.


Работа устройства.

Работа с устройством осществляется посредством чтением или записью данных в его адресное пространство, все адресное пространство составляет 128 байт. Начало адресного пространство носит дополнительную функциональность (Смотрите таблицу), после адреса 0x20 обычная EEPROM и ее можно использовать по своему усмотрению.

Коммуникации с устройством осуществляются по шине 1-wire, поддерживаются следующие команды.

После того как устройство будет выбрано и перейдет в режим приема команд, ему можно будет передать всего две комманды WRITE_BYTE, READ_BYTE, первой соответственно мы можем записать в ячейку памяти, второй прочитать.

Процесс чтения/записи состоит в передаче мастером 1-ым байтом комманды чтения(READ_BYTE:0x20) или записи(WRITE_BYTE:0x1F) и вторым байтом адреса ячейки, далее в зависимости от комманды. При чтении: устройство передает последовательно 2 байта, из которых первый байт значение ячейки, а второй это контрольная сумма (crc8) двух байт - адреса ячейки и его значения. При записи в устройство, все тоже самое, только мастер ничего не читает, а передает 2 байта: значение и контрольную сумму.

Внимание: Для работы с шиной 1-wire, она должна быть притянута к +5V резистором, величина которого обычнно равна 4.7К, но если у вас длинная шина - величину надо взять поменьше.


Распределение адресного пространства

Адресное пространство устройства
  0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F
0x00 Serial number PORT DDR PIN PWR RESTR ACTION Резерв
0x10Резерв
0x20EEPROM Общего назначения
0x30
0x40
0x50
0x60
0x70
  Read/WriteRead Only Write OnlyНе определено

(0x00 - 0x04) - это проекция части серийного номера, та часть что отличается у разных изделий. смотрите рисунок.

(0x05 - 0x07) - PORT/DDR/PIN, три регистра отвечающие за восьмиразрядный порт ВВ, более подробно можно ознакомится напрмер

(0x08) - Порт реле, запись в этот порт числа отличного от нуля, включит реле, ноль соответсвенно отключит.

(0x09-0x0A) - RESTR/ACTION. Регистр RESTR отвечает за восстановление состояния портов ввода-вывода при перезагрузке (включении питания), данный регистр можно записывать в любой момент времени. если бит установлен то при перезагрузке состояние порта будет восстановлено.

Назначение битов конфигурационного байта RESTR (0x09)
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
SPWR SPRT Резерв

Портов всего два, это восьмибитный порт ввода/вывода (бит 0x01), и порт реле установленного на устройстве (бит 0x00). Состотяние же которое будет восстановлено, предварительно необходимо сохранить, делается это при помощи записи тех же битов в регистр ACTION, при записи в этот регистр (соответствующего бита) в память EEPROM будет сохранено текущее состояние порта ввода/вывода. В случае сохранения восьмибитного порта сохранено будет состояние всех трех регистров (PORT/DDR/PIN) отвечающих за работу порта.


В качестве примера простой скетч для Ардуино

 
#include      
#include 

OneWire dv (19);      // Вывод куда подключена шина 1-wire
dg2313w device (dv);  // Создание объекта и связываание его с объектом OneWire
/*  Адрес устройства  */
byte addr[8]      = {0xA7,0x0D,0x02,0x00,0x00,0x00,0x07,0x81};

void setup() {
  device.select (addr);         // Выбрать устройство  
  if (device.set (PORT_DDR,0xff)){  // Все выводы порта настроить на выход
                                    // если удалось записать можно что-нибудь
                                    // вывести в порт
      device.set (PORT_OUT,0x01);   // например 0x01
  }
}

void loop() {
  // Здесь "пощелкаем" реле устройства 
  device.power (true);
  delay (500);
  device.power (false);
  delay (500);
}
  

Для работы данного скетча необходимо скачать и установить прилагаемую библиотеку dg2313w, также потребуются библиотека OneWire из стандартных библиотек.

Файлы для скачивания
Прошивка 5299 bytes
Библиотека для Ардуино 2089 bytes
Принципиальная схема 118290 bytes