Подключение датчиков температуры к умному дому Loxone. Монтаж линии датчиков (1-wire) 1 wire датчик температуры

Информационное взаимодействие с "таблетками"?логгерами iButton и любая их поддержка осуществляется посредством т.н. 1-Wire-интерфейса, разработанного в конце 90?х годов фирмой Dallas Semiconductor, которая с 2001 году является частью компании Maxim Integrated. Этот интерфейс регламентирован разработчиками для применения в четырех основных сферах?приложениях:

  • обслуживание устройств, упакованных в специальные корпуса can F# (ранее MicroCAN), для решения задач идентификации, аутентификации, авторизации, защиты информации, контроля доступа, обеспечения электронных платежей, переноса или преобразования информации (технология iButton),
  • программирование встроенной памяти интегральных компонентов,
  • идентификация элементов оборудования и защита доступа к ресурсам электронной аппаратуры,
  • элементы и системы автоматизации (технология 1-Wire-сетей).

Первое из этих направлений, связанное в том числе с обслуживанием "таблеток"?логгеров iButton, очень широко распространено в мире, как и сами устройства iButton (подробнее см. здесь). Второе с успехом обеспечивает возможность легкой перестройки функций полупроводниковых компонентов, производимых компанией Maxim Integrated и имеющих малое количество внешних выводов. Третье позволяет обеспечить недорогую, но достаточно эффективную идентификацию и надежную защиту самого разнообразного оборудования. Что касается четвертого применения, то реализация локальных распределенных систем на базе 1-Wire-сетей является оптимальным для многих практических задач автоматизации.

Так в чем же особенность этого сетевого стандарта? Ведь в качестве среды для передачи информации по 1-Wire-магистрали чаще всего возможно использование обычного телефонного кабеля и, следовательно, скорость обмена в этом случае невелика. Однако если внимательно проанализировать большинство реальных объектов, требующих автоматизации, то больше чем для 60% из них предельная скорость обслуживания в 16,3 Кбит/с будет более чем удовлетворительной. А другие преимущества 1-Wire-технологии, такие как:

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

Основные принципы

1-Wire-net представляет собой информационную сеть, использующую для осуществления цифровой связи 1-Wire-магистраль, состоящую из шины данных (DATA) и возвратной шины (RET). Таким образом, для реализации среды обмена этой сети могут быть применены доступные кабели, содержащие неэкранированную витую пару той или иной категории, и даже обычный телефонный шнур. Такие кабели при их прокладке не требуют наличия какого?либо специального оборудования, а ограничение максимальной протяжённость кабеля 1-Wire-магистрали регламентировано разработчиками на уровне 300 м.

Основой архитектуры 1-Wire-сетей является топология общей шины, когда каждый из абонентов подключён непосредственно к единой магистрали, без каких?либо каскадных соединений или ветвлений. При этом в качестве базовой используется структура сети с одним ведущим или мастером и многочисленными ведомыми абонентами (подробнее см. здесь).

Конфигурация любой 1-Wire-сети может произвольно меняться в процессе её работы, не создавая помех дальнейшей эксплуатации и работоспособности всей системы в целом, если при этих изменениях соблюдаются принципы организации 1-Wire-интерфейса. Эта возможность достигается благодаря присутствию в протоколе 1-Wire-интерфейса специальной команды поиска ведомых устройств (Поиск ПЗУ), которая позволяет быстро определить новых участников информационного обмена. Стандартная скорость отработки такой команды составляет ~75 узлов сети в секунду.

[Каждый из 1-Wire-компонентов имеет уникальный номер (адрес), как и денежные знаки] Благодаря наличию в составе любого устройства, снабженного 1-Wire-интерфейсом, индивидуального адреса, столь же уникального, как и номер денежной купюры (отсутствие совпадения адресов для компонентов, когда?либо выпускаемых Maxim Integrated, гарантируется самой фирмой?производителем), такая сеть имеет практически неограниченное адресное пространство. При этом каждый из 1-Wire-компонентов сразу готов к использованию в составе 1-Wire-сети, без каких?либо дополнительных аппаратно?программных модификаций.

1-Wire-компоненты являются самотактируемыми полупроводниковыми устройствами, в основе обмена информацией между которыми лежит управление длительностью импульсных сигналов, предаваемых по 1-Wire-магистрали, и их измерение. Передача сигналов для 1-Wire-интерфейса - асинхронная и полудуплексная, а вся информация, циркулирующая в сети, воспринимается абонентами либо как команды, либо как данные. Команды сети генерируются мастером и обеспечивают различные варианты поиска и адресации ведомых устройств, определяют активность на 1-Wire-магистрали даже без непосредственной адресации отдельных абонентов, управляют обменом данными в сети и т.д.

[Схема порта мастера 1-Wire-сети] Стандартная скорость работы 1-Wire-сети, изначально нормированная на уровне 16,3 Кбит/с, была выбрана, во?первых, исходя из обеспечения максимальной надёжности передачи данных на большие расстояния, и, во?вторых, с учётом быстродействия наиболее широко распространённых типов универсальных микроконтроллеров, которые в основном должны использоваться при реализации ведущих устройств 1-Wire-сети. Эта скорость обмена может быть снижена до любой возможной, благодаря введению принудительной задержки при передаче по магистрали отдельных битов данных (т.е. растягиванию временных слотов протокола). Однако увеличение скорости обмена в 1-Wire-сети с длиной кабеля магистрали более 1 м выше значения 16,3 Кбит/с приводит к сбоям и ошибкам. Если же протяженность 1-Wire-магистрали не превышает 0,5 м, то скорость обмена может быть значительно увеличена за счёт перехода на специальный режим ускоренной передачи (Overdrive ? до 125 Кбит/с), который допускается для отдельных типов 1-Wire-компонентов. Как правило, такой режим обмена аппаратно реализован для 1-Wire-компонентов, имеющих большой объём встроенной памяти, предназначенных для эксплуатации в составе небольшой, но качественной и не перегруженной другими устройствами 1-Wire-сети. Типичным примером таких компонентов являются микросхемы семейства iButton.

[Вид оболочки пакета OneWireViewer (для боле подробного просмотра щелкните левой кнопкой мыши)] Пожалуй, особенно привлекательным качеством 1-Wire-технологии является исключительная простота настройки, отладки и обслуживания сети практически любой конфигурации, построенной по этому стандарту. Действительно, для начала работы достаточно любого персонального компьютера, недорогого адаптера 1-Wire-интерфейса, а также свободно распространяемого компанией Maxim Integrated тестового программного пакета разработчика OneWireViewer. При наличии этого небольшого числа составляющих организация функционирования 1-Wire-сети практически любой сложности, построенной на базе стандартных 1-Wire-компонентов, реализуется буквально в течении нескольких минут. Возможности, предоставляемые программным пакетом OneWireViewer, позволяют с максимальным комфортом для разработчика идентифицировать любой 1-Wire-компонент, подключённый к 1-Wire-магистрали, ведомой компьютером через адаптер, и проверить в полном объёме правильность его функционирования в составе конфигурируемой 1-Wire-сети. Организация ведущих

Компания Maxim Integrated выпускает несколько видов адаптеров, которые позволяют наделить любой персональный компьютер функциями мастера 1-Wire-сети. К ним относятся адаптеры семейства DS9097U для COM?порта и адаптеры семейства DS9490R для USB?порта. А адаптер типа DS9481R обеспечивает возможность реализации на базе компьютера мастера 1-Wire-сети по спецификации USB 2.0. Эти устройства имеют различные функциональные возможности и конструктивные особенности, что обеспечивает разработчику максимальную свободу выбора при конструировании.

Часто в качестве ведущего 1-Wire-сети выступает не компьютер, а простейший универсальный микроконтроллер. Для организации его сопряжения с 1-Wire-магистралью используются различные программно?аппаратные методы. От простейшего, когда управляющая программа контроллера полностью реализует протокол 1-Wire-интерфейса на одном из своих функциональных двунаправленных выводов, связанных с шиной данных 1-Wire-магистрали, до вариантов, позволяющих высвободить значительные ресурсы контроллера, благодаря использованию специализированных микросхем поддержки взаимодействия с 1-Wire-сетью. Такие микросхемы подключаются к процессору, играющему роль ведущего 1-Wire-сети, через периферийные узлы ввода/вывода, входящие в состав любого универсального микроконтроллера. Например, драйвера семейства DS2482 позволяют управлять 1-Wire-сетью, используя популярный микроконтроллерный интерфейс I2C. Если же мастер 1-Wire-сети должен быть организован на базе типового узла последовательного интерфейса UART микроконтроллера, используется микросхема DS2480В. Эта микросхема, также как микросхемы DS2482 и DS2483, реализует так называемый программируемый механизм активной подтяжки шины данных 1-Wire-магистрали. Использование активной подтяжки гарантирует качественную передачу сигналов в проблемных 1-Wire-сетях с протяжённой магистралью. Также применение активной подтяжки обеспечивает увеличение нагрузочной способности ведущего по количеству обслуживаемых им ведомых абонентов сети. Кстати, адаптеры семейства DS9097U для COM?порта персонального компьютера, также построены именно на базе микросхемы DS2480В. Более того, учитывая особенности современных операционных сред Windows, именно использование микросхемы?драйвера DS2480В, которая по своей сути является управляемым по последовательному интерфейсу цифровым автоматом, способным взять на себя значительную часть функций по реализации сетевого протокола, и обеспечивает полномасштабное обслуживание 1-Wire-сети в реальном масштабе времени.

Ведомые 1-Wire-компоненты

[Кристалл 1-Wire в корпусе MicroCAN] [Так выглядят кристаллы 1-Wire-компонентов] Ведомые 1-Wire-компоненты, содержащие в составе своей схемы узел 1-Wire-интерфейса, выпускаются в двух различных видах. Либо в корпусах MicroCAN, похожих внешне на дисковый металлический аккумулятор, либо в обычных корпусах для монтажа на печатную плату. Футляр MicroCAN полый внутри. Он выполняет функцию защиты содержащегося в нём полупроводникового кристалла микросхемы с узлом 1-Wire-интерфейса, который соединён с внешним миром лишь через две, изолированные друг от друга, половинки металлического корпуса, являющиеся, по существу, контактными площадками для подключения 1-Wire-магистрали. В подобных “таблеточных” корпусах поставляются устройства iButton. Компоненты, которые предназначены для использования в составе 1-Wire-сетей, упаковываются в пластиковые корпуса, используемые для изготовления транзисторов и интегральных схем. Такой подход объясняется тем, что в отличие от устройств iButton компоненты, специально ориентированные для применения в составе 1-Wire-сетей, часто имеют более двух выводов. Помимо выводов, которые требуются для обмена данными по 1-Wire-магистрали, они располагают дополнительными выводами, необходимыми для обеспечения их питания и организации внешних цепей, связывающих такие устройства с объектами автоматизации, например, датчиками или исполнительными устройствами.

К наиболее простым ведомым 1-Wire-компонентам относятся кремниевый серийный номер DS2401 (или модифицированный вариант этого устройства с внешним питанием DS2411) и электронный ключ DS2413P, управляемый по 1-Wire-интерфейсу. Первое из этих устройств часто используется в качестве электронной метки, которая позволяет идентифицировать состояние, например, механического переключателя, коммутирующего шину данных 1-Wire-магистрали. С помощью DS2413P можно дистанционно осуществить простейшие функции переключения внешнего оборудования, изменяя состояние управляемого ключа относительно возвратной шины 1-Wire-магистрали (в настоящее время ключ DS2405 уже не поставляется, поскольку доступна более функционально совершенная замена – DS2413P).

[Термометры с 1-Wire-интерфейсом применяют во многих лабораториях мира] Однако наиболее популярными ведомыми 1-Wire-компонентами, на базе которых реализовано, пожалуй, наибольшее количество практических приложений, безусловно, являются цифровые термометры типа DS18S20 (более известные до 2001 года под обозначением уже давно снятого с производства устройства DS1820, успевшего стать международным брендом). Преимущества этих цифровых термометров с точки зрения организации магистрали, по сравнению с любыми другими интегральными температурными сенсорами, а также неплохие метрологические характеристики и хорошая помехоустойчивость, уже на протяжении двух десятков лет неизменно выводят их на первое место при построении многоточечных систем температурного контроля в диапазоне от –55°С до +125°С. Такие сенсоры позволяют не только осуществлять непосредственный мониторинг температуры в режиме реального времени, но и благодаря наличию встроенной энергонезависимой памяти температурных уставок, могут обеспечивать [Внешний вид популярнейших цифровых термометров семейства DS18#2# от Maxim Integrated] приоритетную оперативную сигнализацию в 1-Wire-сети о факте выхода контролируемого параметра за пределы заданных значений. Также поставляются более совершенные термометры DS18В20, у которых скорость преобразования определяется разрядностью результата, программируемой непосредственно по 1-Wire-интерфейсу. Цифровой код, считываемый с такого термометра, является прямым результатом измеренного значения температуры и не нуждается в дополнительных преобразованиях. Некалиброванная, но в тоже время более дешёвая версия микросхемы DS18B20 под обозначением DS1822 представляется оптимальным решением для разработчиков недорогих многоточечных систем контроля температурных процессов.

До 2010 года компания Maxim Integrated также поставляла целый спектр дискретных микросхем, оснащённых 1-Wire-интерфейсом и реализующих функции отдельных элементов систем автоматизации. Среди них: четырехканальный 16?разрядный АЦП типа DS2450, двухканальный счетчик, совмещённый с буферной памятью, типа DS2423, цифровой потенциометр на 256 градаций типа DS2890, узлы часов реального времени и календаря типа DS2415 и типа DS2417, причём последнее устройство через особый вывод прерывания, обеспечивало управление по времени переключением внешнего оборудования. Однако, как показал десятилетний опыт развития 1-Wire-сетей, для реальных объектов автоматизации, 1-Wire-компоненты, исполняющие отдельные функции, [Микросистемы, содержащие множество функциональных узлов, обеспечивают эффективную поддержку управления питанием многих портативных устройств] менее востребованы по сравнению с устройствами ориентированными на реализацию сразу нескольких функций на одном кристалле. Такие решения получили название 1-Wire-микросистем. Наиболее характерным представителем 1-Wire-микросистемы является микросхема DS2438, которая помимо узла 1-Wire-интерфейса также содержит узлы: цифрового термометра, АЦП с недифференциальным входом, токовый АЦП с дифференциальным входом, программируемый таймер, Flash?память, набор регистров для хранения данных общего назначения. Весь этот арсенал в составе одного 1-Wire-компонента позволяет легко решить, например, задачу по эффективному обслуживанию и сопровождению энергетических элементов питания различных типов. В настоящее время компания Maxim Integrated выпускает более эффективные 1-Wire-микросистемы: DS2760, DS2775, DS2776, DS2777, DS2781 и т.п.

[Сдвоенный ключ DS2406 – самый универсальный и востребованный элемент 1-Wire-сетей] Тем не менее наиболее незаменимыми «кирпичиками», лежащими в основе фундамента 1-Wire-сетей автоматизации, оказались универсальные сдвоенные адресуемые транзисторные ключи типа DS2406P. На базе этих устройств может быть реализована масса применений и, прежде всего, узлы контроля логических состояний (уровней) и схемы обслуживания датчиков «сухого контакта», а также разнообразные ключевые схемы. Таким образом, именно благодаря использованию этих компонентов осуществляется сбор дискретной информации с территориально рассредоточенных датчиков (мониторов дверей, контакторов положения арматуры, любых сенсоров, имеющих выход ДА/НЕТ, как?то: датчики положения, прохода, присутствия, пожарной и охранной сигнализации и т.д.).

[Универсальный двунаправленный порт DS2408 значительно расширяет возможности 1-Wire-сетей] Однако при всём многообразии 1-Wire-компонентов, все?таки наиболее универсальным из них является уникальная микросхема DS2408. Это двунаправленный восьмиразрядный свободно поразрядно программируемый по 1-Wire-магистрали порт ввода/вывода, который позволяет реализовать любой интерфейс между всяким цифровым устройством и 1-Wire-сетью. Использование порта DS2408 позволяет посредством 1-Wire-интерфейса обеспечить простое и гибкое управление вводом/выводом по 8 независимым каналам. Таким образом, на базе этого устройства возможна организация привода светодинамических или жидкокристаллических индикаторов и дисплеев различных видов, осуществление сканирования матричных клавиатур и дискретных датчиков самых различных типов.

Если же эксплуатация 1-Wire-сети или любого иного электронного оборудования, имеющего минимум выводов для реализации обмена данными, требует обеспечения хранения дополнительных объёмов информации, в распоряжении разработчика имеются специальные 1-Wire-компоненты, содержащие только лишь узлы ЕPROM (DS2502/ DS2505/ DS2506) или EЕPROM (DS2431/ DS2432/ DS2433/ DS28E02/ DS28E04/ DS28EC20) различных объёмов. Причём некоторые из этих микросхем имеют специальные узлы механизма шифрования SHA, что позволяет довольно просто обеспечить достаточно высокий уровень криптографической защиты данных, как при их передаче, так и при их хранении. "Таблетки" iButton и 1-Wire-сеть

[На базе устройств iButton также возможно построение 1-Wire-сетей] Целый ряд компонентов семейства iButton в корпусах MicroCAN также может быть использован в составе 1-Wire-сетей в качестве ведомых абонентов, которые решают специфические задачи идентификации, преобразования, накопления, хранения и переноса информации. Например, для реализации процедуры идентификации в системах промышленной автоматизации обычно достаточно применения распространённых носимых электронных меток DS1990A. Более сложное устройство DS1904 позволяет синхронизовать работу узлов часов/календаря микропроцессорных систем. [Устройство ТЕРМОХРОН DS1921 является удобным защищённым автономным логгером] А многоточечный температурный контроль может быть выполнен сетью из нескольких “таблеток” DS1920. Если же использовать “таблетки”-логгеры DS1921/DS1922/DS1923/DS1925 или иначе устройства ТЕРМОХРОН и устройства ГИГРОХРОН, каждое из которых регистрирует или температурные значения, или значения температуры и относительной влажности, измеренные через определённые, заранее заданные, промежутки времени и сохраняет полученную информацию в собственной энергонезависимой памяти, легко построить территориально распределённую систему мониторинга микроклимата любой сложности.

Для решения проблемы переноса данных, накопленных территориально удалённой автономной 1-Wire-системой, к стационарному персональному компьютеру удобны различные типы микросхем памяти из семейства iButton, которые в этом случае играют роль так называемых «транспортных таблеток». К подобным устройствам относятся, прежде всего, устройства энергонезависимой памяти, включающие в состав своей конструкции литиевый элемент питания. Это целый ряд “таблеток”: DS1992L (1 Кбит), DS1993L (4 Кбита), DS1995L (16 Кбит), DS1996L (64 Кбита). Кроме того, для целей транспорта информации могут быть использованы устройства с памятью типа EEPROM модификаций DS1971(32 байта), DS1972(128 байт), DS1973(512 байт) и DS1977(32 Кбайта). «Транспортные таблетки» входящие в состав семейства микросхем iButton EPROM?памяти? DS1982 (1 Кбит), DS1985 (16 Кбит), DS1986 (64 Кбита), ? удобны для заполнения памяти микропроцессорных систем (например, калибровочными константами или начальными установочными значениями).

Для сопряжения устройств в корпусах MicroCAN с шинами 1-Wire-магистрали используют специальные защелки типа DS9100 или DS9098P, или же более простые зажимы типа DS9094. Однако следует учитывать, что при организации 1-Wire-сети на базе “таблеток” iButton с помощью таких приспособлений теряется весь смысл в суперзащитных свойствах их корпуса. Поскольку подобные варианты включения этих “таблеток” в состав абонентов 1-Wire-сети делают соединение в любом случае уязвимым для внешних воздействий (воды, пыли, грязи, инея и т.д.). Поэтому вопрос об организации защищённых от внешних воздействий 1-Wire-сетей, реализованных на базе устройств iButton, требует особого подхода.

Магистраль и топология 1-Wire-сети

Большую роль при построении 1-Wire-сетей играет исполнение 1-Wire-магистрали. Как правило, протяжённые 1-Wire-магистрали имеют структуру, состоящую из трёх основных проводников: DATA ? шина данных, RET (GND) – возвратная шина или земляной провод, EXT_POWER – внешнее питание не только обслуживаемых ведомых абонентов, но и внешних относительно них цепей датчиков и органов управления. В зависимости от технологии прокладки кабеля, способа его сопряжения с ведомыми абонентами, особенностей используемых приёмов монтажа и качества применяемых материалов, в соответствии с нижеследующей Таблицей, различают четыре основных варианта организации 1-Wire-сетей, каждый из которых подразумевает использование особой технологии и аксессуаров при реализации магистрали.

Классификация 1-Wire-сети Протяжённость кабеля магистрали Количество ведомых абонентов Тип используемого кабеля Топология Мастер 1-Wire-сети
Миниатюрная До 5 м До 10 шт Любой Свободная Любой ведущий с пассивной подтяжкой (резистор к питанию)
Короткая До 30 м До 50 шт 4-х проводный телефонный Общая шина с патчами до 0,5 м Адаптеры на базе дискретных компонентов DS9097E, DS1410E
Средняя До 100 м До 100 шт Витая пара 3 категории Строгая общая шина Активная подтяжка (DS2480В, DS2482, DS2483 или специальное схемное решение (MAX6314))
Длинная До 300 м До 250 шт Витая пара 5 категории или IEEE1394 (Firewire) Общая шина без разрыва ствола Link или программная модификация временных слотов 1-Wire-протокола

[Адаптер LinkUSB – наиболее эффективный привод для проблемных 1-Wire-сетей] Если же организация 1-Wire-сети на базе персонального компьютера связана с особыми трудностями (большая протяжённость кабеля магистрали, большое количество ведомых абонентов, плохое качество кабеля или сложная топология, много помех и т.д.), то наиболее оптимально использование интеллектуального адаптера для COM-порта типа Link или его аналога для USB-порта адаптера LinkUSB. Основой любого из таких адаптеров является микропроцессор, оснащённый специализированной программой управления. При этом все устройства, реализованные по технологии Link, полностью эмулируют со стороны последовательного порта работу популярного адаптера DS9097U производства Maxim Integrated. Поэтому всё программное обеспечение, ранее разработанное для поддержки адаптеров DS9097U, также подходит для взаимодействия с любым из адаптеров Link. Но главное, что благодаря собственным интеллектуальным ресурсам адаптеры Link и LinkUSB обеспечивают льготный режим работы ведомых абонентов в составе проблемных 1-Wire-сетей, в условиях сложной помеховой обстановки. Адаптеры Link и LinkUSB многократно улучшают механизм активной подтяжки шины данных 1-Wire-магистрали, что позволяет действительно получать идеальные сигналы обмена при длинах кабеля до 300 метров и числе ведомых абонентов до 250 шт. Кроме того, использование процессором Link?адаптера специальных алгоритмов цифровой фильтрации многократно улучшает устойчивость обслуживаемой им 1-Wire-сети к электромагнитным помехам, шумам и отражениям сигналов.

Разработчиком платформы 1-Wire является Dallas Semiconductor Corporation (US). В 2001 году она была приобретена гигантом мировой микроэлектроники фирмой Maxim Integrated Products (US). Платформа включает серию микросхем и устройств iButton на их основе, а также различные адаптеры, наборы для макетирования и программное обеспечение.

Производство микросхем и устройств iButton является исключительной прерогативой фирмы Maxim, их клонирование другими производителями политикой лицензирования не предусмотрено. В то же время сторонние фирмы разрабатывают и производят на основе микросхем данной платформы разнообразные модули для систем автоматизации, адаптеры, контроллеры, системы макетирования, а также ПО.

Рис.1. Компоненты платформы 1-Wire.

Платформа разрабатывалась с конца 80-х до конца 90-х годов и предназначалась для задач контактной идентификации объектов, в т.ч. с функциями измерения и регистрации температуры, влажности, параметров автономного электропитания, а также с функциями съема, хранения и переноса данных. Широко распространенным образцом такого рода применения является ключ-таблетка для домофона. Менее известным, но также широко распространенным является использование платформы 1-Wire для решения задач идентификации и регистрации параметров картриджей, материнских плат, биологических объектов, идентификации и защиты от несанкционированного доступа различных боксов, контейнеров и т.п. Суть данного целевого назначения и принципа действия отражена в термине «Touch Memory» (контактная память), который часто используют для упоминания устройств iButton. Подробную информацию о штатных областях применения и достоинствах платформы 1-Wire можно найти на следующих страницах сайта фирмы Maxim Integrated:

Несмотря на такое изначально узкоцелевое назначение, платформа 1-Wire по своим технико-экономическим характеристикам оказалась весьма подходящей для бюджетных решений определенных категорий АСУ ТП. Продвижение платформы в нишу автоматизации явилось предпосылкой ее использования в дальнейшем и в системах «умного» дома, в первую очередь в системах контроля микроклимата и метеоусловий, что обусловлено составом датчиков. Особо по вкусу платформа пришлась мелким частным компаниям и разного рода умельцам, разработавшим для нее ряд программных средств, контроллеров, периферийных модулей, а также создавшим ряд проектов домашней автоматизации.

Оценки доли платформы на рынке систем домашней автоматизации отсутствуют.

Базовыми решениями, на которых основана платформа, являются следующие:

A. Двухпроводный интерфейс.

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

Ограничение магистрали всего двумя линиями позволяет обеспечить гарантированный контакт внешних цепей устройства iButton с цепями контактного устройства магистрали «легким движением руки», т.к. для этого требуется механическое сопряжение всего двух пар элементов. Именно в этом, собственно говоря, и заключается главное достоинство «двухпроводности» применительно к первоначальным задачам платформы 1-Wire.

B. Индикация подключения в горячем режиме.

Протокол 1-Wire предусматривает выдачу устройством, поключаемым к магистрали в горячем режиме, импульса, оповещающего о появлении на магистрали нового устройства. Необходимость такого оповещения также дикутется особенностями целевого назначения платформы, поскольку обмен с устройством iButton должен инициироваться в момент его подключения к магистрали.

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

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

Замечание. Для задач автоматизированного управления, к которым, в том числе, относятся и задачи «умного дома», данные решения не дают каких-либо преимуществ. Так, нет ощутимой разницы при использовании в современном интерьере двухпроводного и, например, четырехпроводного кабеля, тем более, что использование исполнительных устройств все равно потребует отдельной линии питания. Также не актуальна для домашней автоматики возможность подключения устройства в «горячем» режиме, если только это не ключ электронного замка. Использование же в качестве адреса устройства его идентификатора вместо установки фиксированного, регламентированного проектом, вообще сопряжено с определенными неудобствами наладки и ремонта сети, хотя разработчик и предлагает соответствующие алгоритмы самонастройки и адаптации, а также возможность установки с помощью внешних перемычек для ряда устройств дополнительного 4-х битного локального адреса. Пригодность платформы для отдельных ниш автоматизации вытекает из ее дешевизны, простоты применения, наличия в составе ряда востребованных датчиков, устройств сопряжения со стандартными интерфейсами, драйверов для распространенных операционных систем, а также наличием возможности расширения функционала за счет применения элементной базы общего назначения.

Сеть на базе протокола 1-Wire имеет централизованную архитектуру. Информационный обмен происходит под управлением центрального контроллера - «мастера», остальные сетевые устройства имеют статус «слэйв» (рис.3). В качестве контроллера сети может использоваться любое программируемое устройство, имеющее внешний интерфейс. Для согласования контроллеров с магистралью 1-Wire в составе программно-технических средств платформы имеются адаптеры и драйверы для проводных последовательных интерфейсов RS-232, RS-485, I2C, SPI, Ethernet, для параллельного интерфейса LPT, а также для Wi-Fi.

Рис.3. Конфигурация сети MicroLAN на базе протокола 1-Wire

Топология сети может иметь как линейную, так и ветвящуюся древовидную структуру. Основные параметры интерфейса 1-Wire следующие:

  • максимальная длина магистрали при использовании витой пары - до 300 м;
  • максимальное количество абонентов на магистрали максимальной длины - до 250;
  • скорость обмена по магистрали максимальной длины - до 16,3 кбит/c;

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

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

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

Рис.4. Циклограмма обмена данными

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

Рис.5. Тактирование и кодирование на физическом уровне

Более подробные сведения об архитектуре магистрали 1-Wire приведены в следующих официальных документах фирмы Maxim:

Архитектура ЗУ и регистров периферийных устройств платформы организована таким образом, что совокупность всех сетевых устройств может быть представлена как единая файловая система, что позволяет работать с сетью как с интегрированным носителем данных. Описание ее структуры приведено в AN114 1-Wire File Structure .

Номенклатура микросхем платформы 1-Wire и устройств iButton включает как простые носители кода идентификации, так и носители кода идентификации с дополнительными функциями, в т.ч.

  • с функциями различных типов ЗУ - Memory EPROM, EEPROM, ROM, NV SRAM ;
  • с функциями измерения температуры - Temperature Sensors ;
  • с функциями мониторинга, защиты и конфигурирования элементов электропитания - Battery Monitors, Protectors, and Selectors и Battery ID and Authentication ;
  • с функциями хронирования - Timekeeping & Real-Time Clocks ,
а также интерфейсные микросхемы для сопряжения контроллеров с магистралью 1-Wire - 1-Wire Interface Products .

Вся схемотехника, реализующая архитектуру, уже заложена в микросхемах платформы. При разработке периферийных устройств разработчику остается только добавить обвязку для сопряжения с датчиками, актюаторами и устройствами индикации, элементы защиты внешних цепей и, если потребуется, элементы внешнего электропитания. При разработке интерфейсных адаптеров необходима, соответственно, обвязка для сопряжения микросхем - драйверов магистрали с интерфейсом контроллера сети. На рис. 6 в качестве примера приведен фрагмент схемы модуля дискретного ввода-вывода фирмы ЭлИн.

Рис.6. Фрагмент схемы модуля дискретного ввода-вывода фирмы ЭлИн

На базе комплектующих 1-Wire, выпускаемых фирмой Maxim, производится достаточно большое разнообразие конструктивно и функционально законченных устройств для систем автоматизации, в т.ч. для «умного» дома. Такие устройства включают различные адаптеры и серверы магистрали, модули ввода-вывода дискретных и аналоговых сигналов, датчики, кабели и пр. Номенклатура, характеристики и цены таких устройств приведены на сайтах их производителей, к числу наиболее известных из которых относятся:

Наиболее развитую номенклатуру OEM-устройств, включающую в т.ч. и управляемые розетки для коммутации электропитания, предлагает НТЛ ЭлИн. За рубежом наибольшей популярностью пользуются модули фирмы Embedded Data Systems. Однако в целом число OEM-производителей невелико, они не относятся к категории «гигантов» индустрии средств автоматизации и, кроме того, в значительной степени ориентированы на рынок домашних умельцев.

Рис.7. Примеры OEM-модулей 1-Wire

Фирма Maxim Integrated предоставляет для программирования систем на базе 1-Wire библиотеки API и SDK для широкого ряда платформ - персональных компьютеров с ОС Windows/Linux/MacOS, мобильных устройств, микроконтроллеров, .NET и JAVA. Их общее описание приведено в AN155 , а описание конкретных пакетов со ссылками на скачивание дистрибутивов и документации приведено в следующих документах:

Предлагается также программный cканер сети OneWire Viewer , позволяющий находить и идентифицировать подключенные к сети устройства и отображать полный перечень их параметров и данных.

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

Существует также большое число специализированных программ, разрабатываемых под узкие задачи (см., например, для модулей НТЛ ЭлИн).

Датчики температуры 1-Wire используются с терминалами, которые поддерживают устройства 1-Wire DS18b20.
Датчики температуры 1-Wire не требует калибровки , просты в установке, имеет низкую стоимость.
Датчики температуры 1-Wire имеют внешнее питание , что значительно увеличивает длину трассы от датчика до терминала, и дает возможность использовать большое количество устройств на одной шине 1-Wire.
Датчики температуры 1-Wire могут работать с любым напряжением на шине 1-Wire (от 3.3 В до 5.5 В).
Датчики температуры 1-Wire имеют удобные корпуса крепления.

Датчики температуры 1-Wire выпускаются в двух модификациях:
– 1. Для эксплуатации в температурном диапазоне от -40°C до +80 °C . Длина экранированного провода – 10 метров.
– 2. Для эксплуатации в температурном диапазоне от -55
°C до +125 °C . Длина экранированного термостойкого провода – 1 метр. (Любая длинна провода под заказ. +120 руб. за каждый дополнительный метр).

Цены

Количество от 100 от 75 до 99 от 60 до 74 от 45 до 59 от 30 до 44 от 15 до 29 до 14

Цена 1-Wire -40 °C до +80 °C (руб).
Длинна экранированного провода – 10 метров.

700 730 760 790 820 850 880

Цена 1-Wire -55 °C до +125 °C (руб).
Длина экранированного термостойкого провода – 1 метр.
Любая длинна провода под заказ. +120 руб за каждый дополнительный метр.

700 730 760 790 820 850 880

Технические характеристики датчика измерения температуры 1-Wire

Диапазон измеряемых температур

от – 55 до + 125 °C
Температура эксплуатации
от – 40 до + 80 °C
или
от – 55 до + 125 °C​

Погрешность измерений

-10°C to +85°C – ±0.5 °C
-30°C to +100°C – ±1 °C
-55°C to +125°C – ±2 °C​

Напряжение на шине 1-Wire

от 3.3 до 5.5 В

Напряжение питания датчика

9-36 В

Ток потребления в режиме ожидания

0.1 mA

Ток потребления в режиме измерения

1 mA
Длина соединительного кабеля, входящего в комплект датчика
(в зависимости от выбранной модификации)
10 метров +/- 2 %
или
1 метр +/- 2 %

Класс защиты сенсора датчика

IP 68

Гарантия производителя

18 месяцев

Подключение датчика 1-Wire. Модификация № 1 (от -40 °C до +80°C)

Цвета проводов в кабеле с экранирующей оплеткой

Выводы датчика Описание
Красный-Белый Красный
Экранирующая оплетка кабеля "Масса" (Минус питания)
Белый К шине 1-Wire
Красный-Синий Красный Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Синий К шине 1-Wire
Красный-Желтый Красный Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Желтый К шине 1-Wire
Красный-Серый Красный Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Серый К шине 1-Wire
Красный-Черный Красный Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Черный К шине 1-Wire
Оранжевый-Зеленый Оранжевый Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Зеленый К шине 1-Wire
Желтый-Синий Желтый Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Синий К шине 1-Wire
Желтый-Зеленый Желтый Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Зеленый К шине 1-Wire
Желтый-Серый Желтый Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Серый К шине 1-Wire
Желтый-Черный Желтый Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Черный К шине 1-Wire
Желтый-Белый Желтый Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Белый К шине 1-Wire
Прозрачный-Зеленый Прозрачный Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Зеленый К шине 1-Wire
Жёлтый-Оранжевый Жёлтый Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Оранжевый К шине 1-Wire
Жёлтый-Коричневый Жёлтый Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Коричневый К шине 1-Wire
Красный-Прозрачный Красный Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Прозрачный К шине 1-Wire

Подключение датчика 1-Wire. Модификация № 2 (от -55 °C до +125°C)

Цвета проводов в термостойком кабеле
с экранирующей оплеткой

Выводы датчика Описание
Красный-Черный Красный Плюс питания (через предохранитель 1А)
Экранирующая оплетка кабеля "Масса" (Минус питания)
Черный К шине 1-Wire

1-Wire – протокол передачи данных в обе стороны по одному проводу.

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

Режим связи в этом протоколе – асинхронный и полудуплексный (об этом подробнее ), а также "остроконечный" (при отсылке многобайтовых целых передача идёт от младшего байта к старшему).

При этом у нас всегда есть ведущий – одно устройство на шине, которое отсылает команды, и ведомые – устройства, которые эти команды принимают и отвечают на них, если необходимо; каждое из ведомых устройств подключается непосредственно к общей шине.

Ещё раз подчеркнём – на шине может быть только ОДИН ведущий – иначе возникнут конфликты, когда оба ведущих будут тянуть одеяло на себя (на самом деле, есть некоторые приёмы организации сетей 1-Wire в режиме мультимастера – например, с помощью ветвителя сети DS2409 – но в "обычной" жизни все-таки предпочтительней иметь только одного ведущего на шине).

Протокол 1-Wire хорош тем, что не сложен в реализации и требует для связи всего два-три провода (шина данных, земля и при необходимости питание); однако при этом он не лишён и недостатков – этот протокол весьма чувствителен ко времени и к помехам. Также 1-Wire не предназначена для передачи больших объёмов информации и для скоростного обмена данными – максимальная скорость 9600 Бод/с.

Протокол 1-Wire описывает физический, канальный, сетевой и транспортный уровни взаимодействия (см. модель OSI).
На физическом уровне даются описания способов подключения, требования к шине данных и питанию и т.д.
Канальный уровень описывает способы чтения и передачи битов по протоколу.
Сетевой уровень описывает способы адресации к различным устройствам на линии.
Наконец, транспортный уровень описывает функциональные команды, используемые устройствами 1-Wire.

Физический уровень протокола

Рисунок 1. Пример подключения ведущего и ведомых устройств по протоколу 1-Wire.

К слову, о питании – согласно даташиту, шина данных должна быть подтянута к питанию резистором 4.7 кОм, однако данный номинал используется при относительно коротких линиях; если же расстояние между устройствами достаточно велико, то сопротивление резистора можно уменьшить.

Канальный уровень протокола

Обмен информацией ведётся так называемыми временными, или тайм-слотами (60 мкс): один тайм-слот служит для обмена одним битом информации. Данные передаются бит за битом, начиная с младшего бита младшего байта – это, кстати, достаточно часто приводит к ошибкам у новичков – кажется, что нужно передавать данные слева направо, так, как они хранятся в памяти (то есть, следите за словами: кажется, что нужно начинать со старшего бита младшего байта (вы уже запутались, да?) – но нет! При передаче по 1-Wire, например, двухбайтового числа порядок передачи будет таким:
Имеем число 1023410 – в двоичном виде выглядит так: 00100111 11111010 2
В памяти (так как у нас "остроконечный" порядок хранения данных) выглядит так: 11111010 00100111.
А передача по 1-Wire будет выглядеть так:
0→1→0→1→1→1→1→1→1→1→1→0→0→1→0→0
Если вы запутались так же, как и я – самое время выпить чая с шоколадкой и немного утрясти все в голове.

Идём дальше. При обмене информацией ведущий инициирует каждую связь на битном уровне. Это означает, что передача каждого бита, независимо от направления (передача или приём), должна быть инициирована ведущим. Шина данных по умолчанию подтягивается к "единице", поэтому для начала как приёма, так и для передачи ведущий опускает линию в "ноль" на некоторое время.

Внимание : ни ведущий, ни ведомые не выставляют на шине "единицу" - это черевато коротким замыканием: если одно устройство выставит на шине "1", а другое – "0"; поэтому как ведущий, так и ведомый могут использовать только два состояния: "на выход в ноль" и "z-состояние" (на вход без подтяжки). Подтяжка к питанию осуществляется резистором (!).

Рассмотрим 5 основных команд для связи по шине 1-Wire: "Запись 1", "Запись 0", "Чтение", "Сброс" и "Присутствие". При этом на рисунках красным выделено управление линией от ведущего, синим – управление линией от ведомого, черным – освобожденная линия (с помощью подтяжки шина автоматически переходит в "единицу").

Сигнал "Запись 1" . Ведущий устанавливает низкий уровень в течение 1…15 мкс. После этого, в течение оставшейся части временного слота он освобождает шину.

Сигнал "Запись 0" . Ведущий формирует низкий уровень в течение не менее 60 мкс, но не дольше 120 мкс.

Сигнал "Чтение" . Ведущий устанавливает низкий уровень в течение 1…15 мкс. После этого подчинённый, если хочет передать 0, удерживает шину в низком состоянии до 60 мкс; если же подчинённых хочет передать 1, то он просто освобождает линию. Ведущий обычно сканирует состояние шины по истечении 15 мкс после установки низкого уровня на шине.

Так, ведомый удерживает линию к земле, если хочет передать "0", и просто отпускает линию, если хочет передать "1".
Таким образом при чтении получаем следующие диаграммы.

Сигнал "Чтение при получении 1" :

Сигнал "Чтение при получении 0" :

Основные проблемы, которые возникают при реализации чтения-записи – это проблемы со временем, то есть "невыдерживание", или наоборот, "передерживание" временных задержек при чтении линии. Возникают эти проблемы из-за того, что часто не делают поправку на медленность языков программирования высокого уровня. Особенно это касается различных "дополнительных" функций и ништяков. Подробнее

Сигнал "Сброс/присутствие" . Здесь временные интервалы импульсов отличаются. Ведущий устанавливает низкий уровень в течение 8 временных слотов (480 мкс), а затем освобождает шину. Данный длительный период низкого состояния называется сигнал "Сброс".
Если на шине присутствует подчинённый, то он должен в течение 60 мкс после освобождения ведущим шины установить низкий уровень длительностью не менее 60 мкс. Данный отклик носит название "Присутствие". Если такой сигнал не обнаруживается, то ведущий должен полагать, что нет подключённых устройств к шине и дальнейшая связь невозможна.
Данная связка сигналов всегда начинает любой обмен информацией между устройствами.
Помимо этого, нужно учитывать, что любое ведомое устройство после получения питания сразу же выдаёт сигнал присутствия.
Сигнал же "Сброс" позволяет ведущему досрочно завершить обмен информацией – например, если датчик температуры передаёт нам всю свою память, а нам нужны только первые два байта, которые содержат значение температуры, то после получения этих двух байт микросхема просто может опустить линию в ноль на нужное количество времени – датчик поймет, что больше ничего пересылать не нужно.

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

Сетевой и транспортный уровни протокола

Рассмотрим "более высокий" уровень протокола 1-Wire – последовательность действий при взаимодействии ведущего и ведомого, а также основные команды. При этом нужно отметить, все данные, в том числе команды, отсылаются побитно последовательно, начиная с младшего бита.

Алгоритм взаимодействия:

  1. Ведущий посылает на линию сигнал reset ("Сброс"). После линия освобождается для "ответных действий". Если на шине присутствует ведомый, то в течение 60 мкс он сообщает о "присутствии".
    Если же ведущий не получает отклика-"присутствия", то он считает, что подключённых к шине устройств нет.
  2. Далее следует сетевой уровень протокола: ведущий должен определить, к какому из устройств на шине данных он будет дальше обращаться. Данный выбор обеспечивается отсылкой одной из ROM-команд (длиной в 1 байт), которые работают с уникальными кодами устройств:
    • Search ROM ($F0) – "поиск ROM". Если коды подключённых устройств не известны, то эта команда позволяет ведущему определить их. Подробное описание данной команды представлено ниже.
    • Read ROM ($33) – "чтение ROM" – команда используется, если мы точно знаем, что у нас только одно подчинённое устройство (например, только один датчик температуры или один домофонный ключ), тогда для считки его кода можно не париться с поиском ROM. При получении данной команды все ведомые устройства на шине отсылают свой уникальный код.
    • Skip ROM ($CC) – "пропуск ROM". Это команда используется, когда необходимо дать команду всем устройствам на шине – например, нужно, чтобы все подключённые датчики одновременно считали температуру.
    • Match ROM ($55) – "совпадение ROM". Используется для выбора конкретного подчинённого устройства на шине. После отсылки команды ведущий передаёт 64-разрядный код. По завершении только тому подчинённому устройству, которое приняло свой идентификатор, разрешается отвечать после приёма следующего импульса сброса – остальные же молча ждут импульса сброса.
    Естественно, для отдельных устройств какие-то ROM-команды могут добавляться.
  3. Если были отправлены команды "Match ROM" или "Skip ROM", то далее ведущий отправляет какую-либо функциональную команду – это уже транспортный уровень протокола; при этом набор функциональных команд и дальнейшее поведение (должен ли ведущий быть готов принимать данные от выбранного ведомого устройства, например) зависит от конкретного устройства 1-Wire.

Так, например, если у нас есть микроконтроллер и DS18S20 – датчик температуры, и мы хотим получить от этого датчика значение температуры, то алгоритм работы будет следующим:

  1. МК отсылает импульс сброса
  2. - так как датчик у нас на линии один, то нам нет необходимости работать с "адресами"
  3. МК отсылает функциональную команду "Convert T" - по этой команде датчик температуры начнёт однократное температурное преобразование; результат же этого преобразования будет записан в память датчика
  4. МК ждёт, пока датчик закончит преобразование (ведомое устройство никоим образом не может само сообщить, что оно "освободилось", поэтому микроконтроллер просто ждёт время, указанное в даташите)
  5. МК отсылает импульс сброса
  6. Датчик отвечает импульсом приветствия
  7. МК отсылает адресную команду "Skip ROM"
  8. МК отсылает функциональную команду "Read Scratchpad" - по этой команде датчик отсылает 9 байт своей памяти
  9. МК считывает нужное количество байт (значение температуры содержится в первых двух)
  10. При необходимости МК завершает сеанс связи, отсылая импульс сброса

При этом нужно помнить, что ведомые устройства могут поломаться и, например, опускать линию всегда на 0. Допустим, у нас так закоротило датчик температуры в термостате печки. Тогда, если ведущий не проверит, что линия возвращается в единицу, то вероятна следующая ситуация:

  1. МК отсылает импульс сброса
  2. Датчик коротит линию на ноль – МК обнаруживает, что есть импульс приветствия
  3. МК отсылает адресную команду "Skip ROM" - не проверяя при этом линию, конечно
  4. МК отсылает функциональную команду "Convert T" - датчик всё ещё в коме
  5. МК ждёт
  6. МК отсылает импульс сброса
  7. история повторяется, датчик отсылает ноль
  8. МК отсылает адресную команду "Skip ROM"
  9. МК отсылает функциональную команду "Read Scratchpad"
  10. МК считывает нужное количество байт - и получает, естественно, все нули. Даже если мы считываем всю память вместе с CRC, CRC от нуля будет равно нулю – то есть ошибки не произойдет МК конвертирует температуру, получает ноль, отправляет команду нагревать печь. И так до бесконечности!

Выглядит все это довольно печально – и черевато большими проблемами! Так что на протокол полагайся, но сам не плошай.

Вернёмся к алгоритму взаимодействия ведущего и ведомого по протоколу. Как видно, реализовать работу ведущего устройства не так уж сложно – при этом есть как уже готовые библиотеки с кодом, так и аппаратные реализации – например, от той же фирмы Maxim Integrated. Так, например, для AVR-ок написан целый даташит для реализации 1-Wire .

А вот реализовать ведомое устройство не так уж просто – и если библиотеки существуют (например, ), то аппаратных реализаций именно протокола 1-Wire мне не встречалось. Принцип же работы ведомых устройств подробно описан в их документации, обычно в виде блок-схемы.

Существует целый ряд устройств, использующих интерфейс 1-Wire, - так, например, всем известная "таблетка" - домофонный ключ – работает в большинстве случаев именно через данный протокол: микроконтроллер в замке просто спрашивает уникальный код "таблетки", и если этот код содержится в списке разрешённых устройств, микроконтроллер открывает замок.

Помимо всевозможных устройств для идентификации и авторизации (ключи, карточки пропуска), многие датчики – будь то датчики температуры, датчики влажности, освещения и др. – также используют для связи интерфейс 1-Wire. Помимо этого, есть также ряд микросхем для "мониторинга, менеджмента, защиты и управления восстановлением заряда автономных источников питания самых различных типов и назначений".

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

Пару слов об уникальных кодах устройств, с которыми и работают ROM-команды. Каждое "одноварное" устройство имеет свой 64-хбитный код, состоящий из трёх частей:

Младший байт – это код семейства, к которому относится устройство, 6 следующих байт – уникальный в семействе серийный номер, ну и наконец, старший байт – это CRC, который служит для проверки правильности приёма всего кода. Так, например, на родных даллосовских (сейчас максимовских) "таблетках" часть уникального кода – а именно, 48-битный серийный номер – пишется на металле в шестнадцатиричном виде (все дружно посмотрели на свои домофонные ключи).

Рассмотрим подробнее, какие коды семейств устройств 1-Wire бывают:

Код семейства (HEX) Устройство iButton Описание
01 DS1990A, DS1990R, DS2401, DS2411 Уникальный серийный номер-ключ
02 DS1991 Мультиключ, 1152-битная защищённая EEPROM
04 DS1994, DS2404 4 КБ NV RAM + часы, таймер и будильник
05 DS2405 Одиночный адресуемый ключ
06 DS1993 4 КБ NV RAM
08 DS1992 1 КБ NV RAM
09 DS1982, DS2502 1 КБ PROM
0A DS1995 16 КБ NV RAM
0B DS1985, DS2505 16 КБ EEPROM
0C DS1996 64 КБ NV RAM
0F DS1986, DS2506 64 КБ EEPROM
10 DS1920, DS1820, DS18S20, DS18B20 Датчик температуры
12 DS2406, DS2407 1 КБ EEPROM + двухканальный адресуемый ключ
14 DS1971, DS2430A 256 бит EEPROM и 64 бита PROM
1A DS1963L 4 КБ NV RAM + счётчик циклов записи
1C DS28E04-100 4 КБ EEPROM + двухканальный адресуемый ключ
1D DS2423 4 КБ NV RAM + внешний счётчик
1F DS2409 Двухканальный адресуемый ключ с возможностью коммутации на возвратную шину
20 DS2450 Четырёхканальный АЦП
21 DS1921G, DS1921H, DS1921Z Термохронный датчик с функцией сбора данных
23 DS1973, DS2433 4 КБ EEPROM
24 DS1904, DS2415 Часы реального времени
26 DS2438 Датчик температуры, АЦП
27 DS2417 Часы реального времени с прерыванием
29 DS2408 Двунаправленный 8-разрядный порт ввода/вывода
2C DS2890 Одноканальный цифровой потенциометр
2D DS1972, DS2431 1 КБ EEPROM
30 DS2760 Датчик температуры, датчик тока, АЦП
37 DS1977 32 КБ защищённой паролем EEPROM
3A DS2413 Двухканальный адресуемый коммутатор
41 DS1922L, DS1922T, DS1923, DS2422 Термохронные и гигрохронные датчики высокого разрешения с функцией сбора данных
42 DS28EA00 Цифровой термометр с программируемым разрешением, возможностью работать в режиме подключения к последовательному каналу и программируемыми портами ввода/вывода
43 DS28EC20 20 КБ EEPROM

NV RAM – Non-Volatile Random-Access Memory (энергонезависимое ОЗУ)
PROM – Programmable Read-Only Memory (однократно программируемое ПЗУ)
EEPROM – Electrically Erasable Programmable Random-Access Memory (электрически стираемое перепрограммируемое ПЗУ)

Как было обещано ранее, предлагаю поговорить о подключении датчиков температуры к контроллеру умного дома Loxone Miniserver.
В предыдущей статье вы може прочитать как подключить сервоприводы .

И так, в системе умного дома Loxone в основном используются датчики температуры, основанные на шине 1-Wire. Это очень миниатюрные датчики, благодаря чему мы имеем возможность устанавливать их даже в выключатели, не испортив дизайн интерьера. Помимо этого, еще одним плюсом этих датчиков является то, что они цифровые, то есть преобразование из аналогово сигнала в цифровой происходит непосредственно в самом датчике, что гарантирует отсутствие искажения сигнала (показания значения температуры).

Фото 1. Датчик температуры 1-Wire DS18B20.

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


Loxone предлагает два варианта датчика с легким подключением:

Фото 2. Датчик температуры Loxone 1-Wire.

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


Фото 3. Герметичны датчик температуры Loxone 1-Wire.

Как можно видеть на данной фотографии - датчик герметичный, и подойдет для установки в местах возможного контакта с водой или влагой. Например его можно вмонтировать в пол, для контроля температуры поверхности пола.


Отметим, что датчики 1-Wire напрямую нельзя подключить к Miniserver’у, поэтому подключение нужно осуществлять через расширение Loxone 1-Wire.

Фото 4. Расширение Loxone 1-Wire для системы умного дома Loxone.

На одно расширение можно подключить до двадцати датчиков.


Длина шины, в зависит от способа подключения:

Пример классического шинного соединения.
При данном варианте подключения мы имеем наибольшую длину - 350м.

Соединение шиной с одиночными ответвлениями.
Суммарная длина шины при таком подключении, немного меньше классической - 300м.

На данной схеме представлено соединение, не имеющее конкретной конфигурации.
В таком варианте подключения суммарная длина не должна превышать 100м.

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


Надо заметить, что во всех вышеизложенных схемах, указана приблизительная длина. И в разных системах она может варьироваться.

В независимости от выбранного варианта подключения шины, рекомендуется использовать кабель “витая пара” с попарным экранированием.

Схема подключения расширения 1-Wire к Loxone Miniserver

Схема 1. Подключение расширение Loxone 1-Wire к контроллеру умного дома Loxone Miniserver.

Схема 2. Способы подключения датчиков 1-Wire.

Подключение с питанием от шины (на схеме слева), стоит использовать в случаях, когда количество жил в витой паре ограниченно. Например Вам нужно подключить 5-ть кнопок в выключателе. В обычной витой паре 8 проводов (т.е. 4 пары), 6 из них идут на выключатель, один питающий и пять сигнальных проводов. В итоге у Вас остается всего одна пара - под датчик. В остальных случаях лучше использовать вариант подключения с отдельным питанием, так как это позволит на одно расширение подключить большее количество датчиков.
Стоит напомнить, что подключения могут быть комбинированными, то есть одновременно к одному расширению можно подключить как датчики с питанием от шины, так и с автономным питанием.

Схема подключения нескольких датчиков 1-Wire при питании от шины

Схема 3. Схема подключения нескольких датчиков 1-Wire при питании от шины к контроллеру умного дома Loxone Miniserver.

Схема подключения нескольких датчиков 1-Wire при отдельном питании

Схема 4. Схема подключения нескольких датчиков 1-Wire при отдельном питании к контроллеру умного дома Loxone Miniserver.


В обоих вариантах представлены схемы с использованием соединения звездой, где суммарная длина шины не должна превышать 100 метров.

Так же, помимо датчиков 1-Wire, есть и аналоговые, у которых на выходе сигнал 0-10В, однако они дороже и имеют большие габариты, что не позволяет их незаметно монтировать в помещении.

Надо отметить, что при наличии датчиков 1-Wire необходимость в аналоговых практически отсутствует, поскольку двадцать датчиков, которые можно подключить к 1-wire, более чем достаточно для одного объекта. Однако применение аналоговых оправдано в случае их монтажа в помещении с высокой температурой и влажностью, например в сауне.

Фото 5. Датчик температуры для сауны Loxone 0-10В.

Схема подключения датчика температуры 0-10В для сауны

Схема 5. Схема подключения датчика температуры 0-10В для сауны к контроллеру умного дома Loxone Miniserver.

Рассмотрим вариант если Вы планируете подключить только один датчик, например для сауны. В этом случае есть возможность применить более простой вариант подключения - напрямую, т.е. без клемм.
Надо заметить, что в датчике температуры для сауны так же встроен датчик влажности, который тоже передает сигнал по 0-10В. Именно поэтому на представленной схеме от датчика идут два сигнальных провода и соответственно им нужно два входа 0-10В на Miniserver’е.

Предлагаю так же рассмотреть пример подключения двух датчиков: температуры/влажности 0-10В. Количество датчиков обусловлено техническими особенностями Miniserver’а, а именно - всего четыре входа 0-10В. Больше количество подключается по аналогии, но уже к расширению Loxone Extension.

Схема подключения двух датчиков температуры/влажности 0-10В

Схема 6. Схема подключения двух датчиков температуры/влажности 0-10В к контроллеру умного дома Loxone Miniserver.

К сожалению нормальной клеммы на четыре контакта нет, поэтому мы используем Phoenix Contact UTTB и как для раздачи питания, и как проходные.