smarty-home-1.jpg
В предыдущих статьях мы рассматривали само понятие умного дома и обзор шины KNX, теперь же перейдем к самой простой платформе для создания умного дома — 1-WIRE. Платформа разрабатывалась с конца 80-х до конца 90-х годов компанией Dallas Semiconductor (с 2001 года — Maxim Integrated) и предназначалась для задач контактной идентификации объектов, в т.ч. с функциями измерения и регистрации температуры, влажности, параметров автономного электропитания, а также с функциями съема, хранения и переноса данных. Пожалуй, самым известным примером применения этой платформы является iButton — ключ-таблетка для домофона:
10pcs-lot-rewritable-RFID-Touch-Memory-Key-RW1990-font-b-iButton-b-font-Copy-Card-Sauna.jpg
В данном случае компонент 1-Wire размещается внутри небольшой «таблетки» из нержавеющей стали и подключается к системам шины 1-Wire посредством розеток с контактами, которые касаются «крышки» и «дна» таблетки. Однако в дальнейшем, благодаря умению работы с температурой, шину стали использовать при создании умного дома, в первую очередь в системах контроля микроклимата.

Архитектура платформы 1-WIRE

Интерфейс 1-Wire имеет всего два провода — один общий (GND, земля), второй для питания и данных; в некоторых случаях используют и отдельный провод питания. Шина двунаправленная, скорость обычно 15,4 Кбит/с, максимум 125 Кбит/с в режиме overdrive. Напряжение питания абонентов при этом формируется путем пикового детектирования напряжения на сигнальном проводе, т.е. используется «паразитное» питание (сигнал, который является скачком напряжения, и питает устройства на шине) — это оказывается возможно благодаря низкому энергопотреблению разработанной для 1-Wire элементной базы. Но, разумеется, в сети могут быть устройства с собственным источником питания, а так же для устройств, имеющих повышенное энергопотребление, питание подается по отдельной линии.

Возможность подключения устройств в «горячем» режиме

Протокол 1-Wire предусматривает выдачу устройством, подключаемым к магистрали в «горячем» режиме, импульса, оповещающего о появлении на магистрали нового устройства. Иными словами, в сеть можно добавлять новые устройства и они тут же смогут работать.

Уникальный идентификатор устройства

Каждая микросхема 1-Wire содержит уникальный 64-битный код, записываемый на этапе производства. Данный код позволяет индивидуализировать все выпускаемые устройства 1-Wire, для чего производитель гарантирует отсутствие одинаковых кодов (аналогично MAC-адресам сетевых адаптеров). При подключении к магистрали данный код считывается контроллером и используется для идентификации связанного с этим устройством объекта, а также для определения типа устройства. При подключении к магистрали нескольких устройств их коды могут использоваться в качестве их адресов, что позволяет строить технологические сети, получившие название MicroLAN.

Топология

В сети обязательно есть центральный контроллер-мастер, благодаря которому происходит обмен информацией, и адаптер — для согласования контроллера с магистралью. Все остальные устройства-слэйвы (подчиненные) подсоединены к двум проводам, сигнальному и общему:
1.jpg
Так как шина двунаправленная, то при наличии одного контроллера топология (принцип устройства сети) — линия, то есть все устройства нанизаны на один общий кабель. Однако при наличии нескольких взаимосвязанных контроллеров возможно сделать и и ветвящуюся древовидную структуру.

Основные параметры интерфейса 1-Wire следующие:
  • максимальная длина магистрали при использовании витой пары - до 300 м;
  • максимальное количество абонентов на магистрали максимальной длины - до 250;
  • скорость обмена по магистрали максимальной длины - до 16,3 кбит/c.
Принцип работы сети

Обмен данными по магистрали включает три фазы:

  • фазу сброса, включающую импульс сброса от контроллера и ответный импульс подтверждения присутствия от абонента (абонентов);
  • фазу выборки устройства, включающую команду его выборки (по коду, без кода, групповую, поиска) и его код, если командой он предусмотрен;
  • фазу записи/чтения данных, включающую код команды и данные.

2.png

Логика всех устройств тактируется отрицательным фронтом сигналов контроллера как в режиме записи, так и в режиме чтения. Биты кодируются длительностью положительного импульса: «1» передается длинным импульсом, а «0» - коротким. В режиме записи все импульсы данных формируются контроллером. В режиме чтения контроллер формирует последовательность единиц, а абонент накладывает на них свою маску нулей:

05.png

Иными словами контроллер пускает в сеть последовательность единиц, подключенное к сети устройство в нужном месте меняет 1 на 0 (тем самым обеспечивая себе питание), а на контроллер приходит последовательность нулей и единиц — ответ от слэйва.

Программное обеспечение

Фирма Maxim Integrated (создатель шины 1-WIRE) предоставляет для программирования систем на базе 1-Wire библиотеки API и SDK для широкого ряда платформ — персональных компьютеров с ОС Windows/Linux/MacOS, мобильных устройств, микроконтроллеров, .NET и JAVA. Так же предлагается программный cканер сети OneWire Viewer, позволяющий находить и идентифицировать подключенные к сети устройства и отображать полный перечень их параметров и данных.

Из сторонних разработок наибольший интерес представляют следующие:

  • OWFS - One Wire File System. Свободно распространяется по лицензии GPLv2. Предназначен для UNIX-платформ, но при использовании UNIX-эмулятора cygWin может работать и в среде Windows. Имеет веб-интерфейс, что делает возможным удаленный доступ, например, через Интернет. OWFS является самой популярной программной средой для домашней автоматизации на базе платформы 1-Wire.
  • Бенукс — программная среда для различных задач автоматизации. Является коммерческим продуктом. Позволяет взаимодействовать с системой автоматизации по различным каналам, в т.ч. с помощью веб-интерфейса и SMS. Предоставляет возможности автоматизированного управления по сценариям.
  • jHomeNet — свободно распространяемый программный комплекс для сервера 1-Wire на Java.