1-Wire устройство дистанционной коммутации
Товар временно отсутствует на складе
Устройство дистанционной коммутации, предназначено для коммутации нагрузки сигналом управления поступающим по одно проводной шине 1-wire и обеспечивает гальваническую развязку цепей нагрузки и управления, также устройство в своем составе имеет двунаправленный восьми разрядный порт ввода вывода.
Данное устройство может найти свое применение как в системах "Умный дом",так и в любых других требущих удаленной коммутации силовых цепей. На одной шине параллельно может находится любое разумное количество устройств, доступ к устройствам адресный.
Состояние как порта ввода-вывода так и реле можно сохранить в энергонезависимую память, чтобы при перезагрузке (например потеря питания), устройство восстанавливало свое состояние.
Если надо управлять более одной нагрузкой, это легко можно сделать подключив к порту ввода-вывода "Модуль реле" вплоть до 8 канального расширив количество нагрузок до девяти.
Характеристики
- Питание модуля: 12В; (Есть 5 вольтовый вариант)
- Ток потребления: до 100 мА без учета тока на порт ВВ;
- Коммутируемые модулем выходные цепи: 10А
- Разрядность порта В/В: 8 бит;
- Сопротивление изоляции реле: выше 100 МОм;
- Время срабатывания реле при включении: до 10 мс;
- Время срабатывания реле при выключении: до 5 мс;
- Максимальный выходной ток цепи +5в (12 вольтовый вариант): 50 мА
- Рабочая температура: -25 ... +70 °C;
- Рабочая влажность: 45 ... 85%;
Доступ к устройству осуществляется по шине 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, поддерживаются следующие команды.
- 0xF0 : Поиск устройств на шине.
- 0x33 : Устройство выдаст 8 байтный адрес.
- 0x55 : Читает с шины адрес, и если он соответствует адресу устройства, переходит в режим приема команд.
- 0xCC : Выбор устройства без использование адреса. Пойдет если устройство одно на шине, либо надо выполнить широковещательную команду.
После того как устройство будет выбрано и перейдет в режим приема команд, ему можно будет передать всего две комманды 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 | Резерв | |||||||||||||||
0x20 | EEPROM Общего назначения | |||||||||||||||
0x30 | ||||||||||||||||
0x40 | ||||||||||||||||
0x50 | ||||||||||||||||
0x60 | ||||||||||||||||
0x70 | ||||||||||||||||
Read/Write | Read Only | Write Only | Не определено |
(0x00 - 0x04) - это проекция части серийного номера, та часть что отличается у разных изделий. смотрите рисунок.
(0x05 - 0x07) - PORT/DDR/PIN, три регистра отвечающие за восьмиразрядный порт ВВ, более подробно можно ознакомится напрмер
- PORT - регистр отвечает за состояние выводов порта.
- DDR - регистра направления.
- PIN - регистр чтения из порта.
(0x08) - Порт реле, запись в этот порт числа отличного от нуля, включит реле, ноль соответсвенно отключит.
(0x09-0x0A) - RESTR/ACTION. Регистр RESTR отвечает за восстановление состояния портов ввода-вывода при перезагрузке (включении питания), данный регистр можно записывать в любой момент времени. если бит установлен то при перезагрузке состояние порта будет восстановлено.
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 |