Информационное взаимодействие с "таблетками"?логгерами 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 линию! Кроме того, ассортимент устройств с этим интерфейсом весьма широк. Наконец, протокол обмена по этому интерфейсу очень прост и легко реализуется программно практически на любых микроконтроллерах (МК).


На рисунке показана упрощённая схема аппаратной реализации интерфейса 1-Wire. Вывод DQ устройства представляет собой вход КМОП-логического элемента, который может быть зашунтирован (замкнут на общий провод) полевым транзистором. Сопротивление канала этого транзистора в открытом состоянии - около 100 Ом. Когда транзистор заперт - имеется небольшой ток утечки (примерно 5 мкА) на общий провод.

Шина 1-Wire должна быть подтянута отдельным резистором к напряжению питания устройств (которое, кстати, может быть от 3 до 5В - уточняется по характеристикам конкретного устройства). Сопротивление этого резистора 4.7 К, однако, это значение рекомендовано только для достаточно коротких линий. Если шина 1-Wire используется для подключения удалённых на большое расстояние устройств, то сопротивление этого резистора следует уменьшить. Ниже будут описаны причины необходимости такого уменьшения сопротивления. Минимально допустимое сопротивление этого резистора - около 300 Ом, а максимальное - около 30 кОм. Данные величины - ориентировочные, точные значения следует уточнить по характеристикам конкретного устройства 1-Wire (по его максимальному втекающему току линии DQ, который, собственно, и определяет минимум внешнего сопротивления).

Подключение шины 1-Wire к МК показано условно в двух вариантах: с использованием двух отдельных выводов МК (один в качестве выхода, а другой в качестве входа), так и одного, работающего и на ввод и на вывод. Разделение этих способов показано пунктирной линией, условно обозначающей границу корпуса МК.

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

Рассмотрим обмен информацией по шине 1-Wire:

  1. Обмен всегда ведется по инициативе одного ведущего устройства, которое в большинстве случаев является микроконтроллером (МК)
  2. Любой обмен информацией начинается с подачи импульса сброса ("Reset Pulse" или просто RESET) в линию 1-Wire ведущим устройством
  3. Для интерфейса 1-Wire в общем случае предусматривается "горячее" подключение и отключение устройств
  4. Любое устройство, подключенное к 1-Wire после получения питания выдает в линию DQ импульс присутствия ("Presence pulse" или просто PRESENCE). Этот же импульс устройство всегда выдает в линию, если обнаружит сигнал RESET
  5. Появление в шине 1-Wire импульса PRESENCE после выдачи RESET однозначно свидетельствует о наличии хотя бы одного подключенного устройства
  6. Обмен информацией ведётся так называемыми тайм-слотами: один тайм-слот служит для обмена одним битом информации
  7. Данные передаются побайтно, бит за битом, начиная с младшего бита. Достоверность переданных/принятых данных проверяется контрольной суммой CRC

На нижеприведённом рисунке показана диаграмма сигналов RESET и PRESENCE, с которых всегда начинается любой обмен данными.


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

Длительность большинства временных интервалов очень приблизительная и имеет ограничение только по минимуму.

Импульс RESET формирует ведущий МК, переводя в низкий логический уровень шину 1-Wire и удерживая её в этом состоянии минимум 480 микросекунд. Затем МК должен "отпустить" шину. Через некоторое время, зависящее от ёмкости линии и сопротивления подтягивающего резистора, в линии установится высокий логический уровень. Протокол 1-Wire ограничивает это время "релаксации" диапазоном от 15 до 60 мкс, что и является определяющим для выбора подтягивающего резистора (как правило, ёмкость линии существенно изменить сложно, а именно она оказывает наибольшее влияние на время возврата линии к высокому логическому уровню).

Обнаружив импульс RESET, ведомое устройство приводит свои внутренние узлы в исходное состояние и формирует ответный импульс PRESENCE, как следует из рисунка - не позже 60 микросекунд после завершения импульса RESET. Для этого устройство переводит в низкий уровень линию DQ и удерживает её в этом состоянии от 60 до 240 мкс. Конкретное время удержания зависит от многих параметров, но всегда находится в указанном диапазоне. После этого устройство так же "отпускает" шину.

После завершения импульса PRESENCE устройству даётся ещё некоторое время для завершения внутренних процедур инициализации, таким образом, МК должен приступить к любому обмену с устройством не ранее, чем через 480 микросекунд после завершения импульса RESET.

Таким образом процедура инициализации интерфейса 1-Wire, с которой начинается любой обмен данными между устройствами, длится минимум 960 микросекунд и состоит из передачи от МК сигнала RESET и приёма от устройства сигнала PRESENCE. Если сигнал PRESENCE не обнаружен - значит на шине 1-Wire нет готовых к обмену устройств.

Теперь рассмотрим процедуры обмена битами информации, которые осуществляются определёнными тайм-слотами. Тайм-слот - это определённая, довольно жёстко лимитированная по времени последовательность смены уровней сигнала в линии 1-Wire. Различают 4 типа тайм-слотов:

  • Передача "1" от МК
  • Передача "0" от МК
  • Приём "1" от устройства
  • Приём "0" от устройства

Любой тайм-слот всегда начинает МК путём перевода шины 1-Wire в низкий логический уровень. Длительность любого тайм-слота должна находиться в пределах от 60 до 120 микросекунд. Между отдельными тайм-слотами всегда должен предусматриваться интервал не менее 1 микросекунды (конкретное значение определяется параметрами ведомого устройства). Тайм-слоты передачи отличаются от тайм-слотов приёма поведением МК: при передаче он только формирует сигналы, при приёме ещё и опрашивает уровень сигнала в линии 1-Wire.

Следующй рисунок демонстрирует временные диаграммы тайм-слотов всех четырёх типов: вверху показаны тайм-слоты передачи от МК, внизу - приёма от устройства.


Тайм-слот передачи "0" заключается просто в удержании шины 1-Wire в низком уровне в течение всей длительности тайм-слота. Передача "1" осуществляется путём "отпускания" шины 1-Wire со стороны МК не ранее, чем через 1 мкс после начала тайм-слота, но не позже чем через 15 мкс.

Ведомое устройство опрашивает уровень в шине 1-Wire в течение временного интервала, условно показанного в виде серого прямоугольника, то есть, начиная с 15-ой микросекундой от начала тайм-слота и заканчивая 60-ой микросекундой от начала. Типичный момент ввода уровня в устройство - около 30-ой микросекунды от начала тайм-слота.

Заштрихованная область - это область "нарастания" уровня в шине 1-Wire, которая зависит от ёмкости линии и сопротивления подтягивающего резистора, она приведена для справки.

Тайм-слоты приёма информации отличаются тем, что МК формирует только начало тайм-слота (абсолютно так же, как при передаче "1"), а затем управление уровнем шины 1-Wire берёт на себя устройство, а МК осуществляет ввод этого уровня так же в определённой зоне временных интервалов. Эта зона, как видно из рисунка, довольно мала. Как и раньше, заштрихованная область - область неопределённости, поэтому для ввода МК остаётся даже не промежуток, а скорее конкретный момент, когда он должен ввести уровень сигнала из линии. Этот момент времени - 14-ая или 15-ая микросекунда от начала тайм-слота. Разумеется, если линия имеет малую ёмкость, а подтягивающий резистор мал, зона опроса несколько расширяется, однако рекомендуетя ориентироваться на худший вариант, чтобы всегда обеспечить надёжный обмен данными.

Таким образом МК начинает тайм-слот с выдачи в шину 1-Wire "0" в течение 1 мкс. Последующий уровень зависит от типа тайм-слота: для приёма и передачи "1" уровень должен стать высоким, а для передачи "0" - оставаться низким вплоть до конца тайм-слота, то есть не менее 60 и не более 120 мкс. Если МК принимает данные, то опрос уровня в шине он должен сделать на промежутке от 13-jй до 15-jй микросекунде тайм-слота. МК должен обеспечить интервал между отдельными тайм-слотами не менее 1 мкc.

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

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

Если разрабатывается схема, которая целиком умещается на одной плате вместе со всеми устройствами на шине 1-Wire, то в результате получается практически идеальная линия. Фронты нарастания высокого уровня в шине будут минимальными, а это избавит от большинства проблем.

Но если несколько устройств подключается через длинный соединительный шлейф - придётся бороться с погонной ёмкостью линии. При это следует учитывать, что соединение по свитым вручную обычным монтажным проводам при типовом подтягивающем резисторе возможно на расстоянии до 10 м, а для соединения по очень длинной телефонной "лапше" может потребовать уменьшения подтягивающего резистора до 510 ом и даже менее.

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

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

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

Решение первой проблемы осуществляется двумя путями:

  • Автоматическое определение адресов всех подключенных устройств
  • Ручное заданите адреса

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

iButton - зарегистрированная торговая марка, права на которую принадлежат Dallas Semiconductor®, дополнительная информация об этом семействе изделий находится .

Итак, после того, как стали известны номера всех устройств 1-Wire на шине, работа с ними ведётся следующим образом. МК посылает импульс RESET, и все имеющиеся устройства выдают PRESENCE. Затем МК посылает команду, которую принимают все устройства. Определено несколько общих команд для всех типов 1-Wire-устройств, остальные команды уникальны для отдельных типов. Наибольшую важность среди общих команд имеют следующие:

Команда Значение байта Описание
READ ROM 0x33 Чтение адреса устройства - используется для определения адреса единственного устройства на шине
MATCH ROM 0x55 Выбор адреса - используется для обращения к конкретному адресу устройства из многих подключенных
SKIP ROM 0xCC Игнорировать адрес - используется для обращения к единственному устройству на шине, при этом адрес устройства игнорируется (можно обращаться к неизвестному устройству)

Команда READ ROM позволяет определить адрес имеющегося устройства перед его установкой в готовое изделие. После того, как МК выдаст команду READ ROM, от устройства поступит 8 байт его собственного уникального адреса - МК должен их принять.

Если отправлена команда MATCH ROM, то после неё МК должен передать так же и 8 байт конкретного адреса устройства, с которым будет осуществляться последующий обмен данными. Это равносильно выставлению адреса на параллельной шине в микропроцессорных устройствах. Приняв эту команду, каждое устройство сравнивает передаваемый адрес со своим собственным. Все устройства, адрес которых не совпал, прекращают анализ и выдачу сигналов в линии 1-Wire, а опознавшее адрес устройство продолжает работу. Теперь все данные, передаваемые МК будут попадать только к этому "адресованному" устройству.

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

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

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

Список некоторых кодов семейств 1-Wire-устройств приведён ниже:

Код семейства (HEX) Устройство iButton Описание
01 DS1990A, DS2401 Уникальный серийный номер-ключ
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 ***
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 + счётчик циклов записи
1D DS2423 4 КБ NV RAM + внешний счётчик
20 DS2450 Четырёхканальный АЦП
24 DS1904, DS2415 Часы реального времени
26 DS2438 Датчик температуры, АЦП
2C DS2890 Цифровой потенциометр
30 DS2760 Датчик температуры, тока, АЦП

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

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

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

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

Подытожим основные шаги по его успешной реализации:

  • Любой обмен информацией начинается с передачи импульса RESET и приёма имульса PRESENCE
  • Если импульса PRESENCE не обнаружено - на шине нет устройств
  • МК всегда инициирует обмен, начиная каждый тайм-слот обмена битом информации
  • Временные параметры каждого тайм-слота следует соблюдать с максимально возможной точностью
  • Для выбора одного из нескольких устройств на шине 1-Wire МК должен передать в шину команду MATCH ROM, а затем 8 байт адреса устройства, последний байт - контрольная сумма предыдущих семи
  • Если устройство на шине одно - МК может узнать его адрес путём посылки команды READ ROM, после чего принять от устройства 8 байтов адреса, последний из которых также будет контрольной суммой
  • Для работы с единственным устройством на шине можно отказаться от указания его адреса, для этого МК должен передать устройству команду SKIP ROM, после чего можно начинать обычный обмен данными
  • Любая начатая процедура обмена может длиться сколь угодно долго за счёт пауз между отдельными тайм-слотами, но всегда должна быть завершена полностью
  • Прервать начатый обмен можно в любой момент путём выдачи импульса RESET в шину 1-Wire

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

В настоящее время Бенукс поддерживает следующие разновидности оборудования:

Оборудование с доступом по WiFi на базе модуля ESP8266


В последнее время широкую популярность получили недорогие малогабаритные модули с доступом по Wi-Fi на базе чипа ESP8266, который представляет собой 32-битный контроллер со схемой обвязки. Помимо большого разнообразия аппаратных модификаций этого модуля, существует и много вариантов прошивок для контроллера. Система Бенукс поддерживает прошивку от "homes-smart", в которой обмен происходит по Http-протоколу. Есть модули со встроенной внутренней антенной, есть модули с подключением внешней антенны. Небольшие габариты модулей позволяют их легко встраивать в другие блоки или аппаратуру, а так-же в интерьер жилища или офиса. В системе Бенукс используются модули с прошивкой от homes-smart.ru

Одним из удачных законченных решений является оборудование интернет-магазина radioseti.ru в котором датчики и модули управления размещены в корпусах и готовы к использованию. В номенклатуре датчики температуры, влажности, протечки воды. Для управления оборудованием существуют модули в корпусах для монтажа на DIN-рейку. Начальная настройка модулей производится через ВЭБ-интерфейс, а затем в программе Бенукс это оборудование заводится в справочник устройств и используется в программе наравне с оборудованием других протоколов и технологий.

Основой сети 1-Wire является так называемый "мастер линии" - адаптер



Что значит "облегчённый"? - При малом количестве датчиков и небольшой длине микросети в качестве адаптера можно использовать очень простенькие схемы из нескольких деталей. В интернете можно найти несколько вариантов таких схем. Схема одного из них приведена: Этот адаптер используется для подключения около 3 устройств при длине линии не более 5 метров.

Если же организация 1-Wire-системы на базе персонального компьютера связана с особыми трудностями (большая длина линии, большое количество ведомых устройств, плохое качество кабеля или сложная топология, много помех и т.п.), то наиболее оптимально использование интеллектуального адаптера для COM-порта типа LINK. Он реализован на базе микропроцессора. При этом устройство полностью эмулирует со стороны последовательного порта работу популярного адаптера DS9097U производства Dallas Semiconductor и, таким образом, поддерживает все разработанное ранее для персональных компьютеров программное обеспечение. Но главное, что благодаря собственным интеллектуальным ресурсам этот адаптер реализует льготный режим работы однопроводных устройств на проблемных 1-Wire-линиях, в условиях сложной помеховой обстановки. LINK многократно улучшает механизм активной подтяжки на линии, что позволяет действительно получать идеальные сигналы обмена при длинах кабеля до 300 метров и числе сопровождаемых однопроводных компонентов до 250 шт, а использование процессором такого адаптера специальных алгоритмов цифровой фильтрации многократно улучшает устойчивость обслуживаемой 1-Wire-линии к электромагнитным помехам, шумам и отражениям сигналов.

Примечание: если USB-адаптер подключается к компьютеру через USB-расширитель, то обычно количество ошибок 1-Wire увеличивается, поэтому такое подключение нежелательно.


Конструктивно микросхема может устанавливаться в стандартную телефонную розетку со схемой стабилизатора внешнего питания. Приводим внешний вид модуля в сборе.

Конструктивно микросхема может устанавливаться в стандартную телефонную розетку со схемой стабилизатора внешнего питания. Приводим внешний вид модуля в сборе.



схема подключения к цифровому модулю внешних герконовых датчиков или датчиков типа "сухой контакт" показана
схема подключения к цифровому модулю цепи для управления оборудованием показана

В системе Бенукс может применяться восьмиканальная микросхема DS2408 в качестве как цифрового ввода, так и управления оборудованием. Причём часть каналов может использоваться для ввода, а часть для вывода.

Датчик питания 220V.

Один из вариантов применения цифрового универсального модуля - контроль наличия напряжения. Для этого стандартный модуль дополняется оптроном типа АОТ166А и двумя резисторами на 110 Ком. Благодаря тому, что используемый оптрон имеет широкий диапазон входного тока, на вход полученного модуля допускается подавать напряжение от 12 до 380 Вольт. А наличие двух встречно включенных светодиодов внутри оптрона позволяет подавать напряжение любой полярности, а значит как переменного тока, так и постоянного. На фото показан модуль, используемый в качестве датчика наличия 220В. Кроме примера, показанного на фото, описываемый модуль можно использовать и в других применениях, например как датчик наличия питания на электромагнитном клапане или задвижке и т.д.

Схема подключения внешнего сигнала к модулю показана
Стоит отметить, что если в описанном модуле использовать двухканальную микросхему DS2406P и два оптрона, то такой модуль можно использовать для контроля двух различных напряжений. Видеокоммутаторы с интерфейсом 1-Wire изготавливается на основе микросхем DS2406, DS2406P, DS2408 и DS2413. В настоящее время система "Бенукс" обслуживает следующие типы видеокоммутаторов:


Двухканальный на основе DS2406. В таком коммутаторе микросхема управляет одним реле с переключающимися контактами. Таким образом, на выход коммутатора подаётся видеосигнал либо с одного видеовхода, либо с другого.


Четырёхканальный на основе DS2406P или DS2413. В таком коммутаторе сигналы с двухканальной микросхемы поступают на двоичный дешифратор, который управляет четырьмя электромеханическими реле. В зависимости от двоичного кода на выходе микросхемы DS2406P, включается один из четырёх видеоканалов.

Розетка с интерфейсом 1-Wire

Для управления всевозможными бытовыми электроприборами имеется типовая розетка 220 вольт в пластиковом корпусе. Внутри корпуса размещается плата с микросхемой DS2413P и интегральный стабилизатор для её питания. Микросхема управляет силовым симистором со схемой опторазвязки. Симистор крепится на радиаторе, что позволяет управлять нагрузками до 1000 ватт. Кроме силовой розетки, наружу корпуса выведены два гнезда RJ для подключения микросети 1-Wire. Светодиодный индикатор сигнализирует о включенной розетке. Вместо микросхемы DS2413P можно использовать DS2406(DS2406P), которая так-же позволяет управлять внешними устройствами, но имеет иное расположение выводов на корпусе.
Ниже по тексту имеется ссылка на схему этого устройства.

Безкорпусные сборки управления нагрузкой 220В с 1-Wire
Для промышленного использования в системах управления рекомендуем использовать безкорпусные модули, коммутирующие нагрузки 220в. Для примера приводим модуль с электромагнитным реле.

Датчик движения с интерфейсом 1-Wire

Это устройство представляет собой типовой датчик движения SRP100 с дополнительной встроенной платой. На плате расположена микросхема DS2406P и интегральный стабилизатор для её питания. На один канал микросхемы заведён сигнал от датчика движения, а на второй канал - концевик, срабатывающий при открывании корпуса датчика движения. Питание датчика движения выполняется от микросети 1-Wire.
Для того, чтобы не ограничивать пользователя использованием только датчика SRP100 и чтобы пользователь мог по своему усмотрению выбрать датчик движения из множества вариантов исходя из своих требований, используется специальный модуль для подключения любых датчиков движения с подобным интерфейсом. То есть, пользователь отдельно приобретает понравившийся ему датчик движения и подключает его к этому модулю. Единственное ограничение: чтобы датчик позволял запитывать его от напряжения +12В и тип выходного сигнала этого датчика должен быть типа "сухой контакт" или подобный. Модуль изготовлен на основе универсального двухканального цифрового ввода-вывода с дополнительным встроенным стабилизатором питания +12В. На выходную колодку этого модуля выводятся два цифровых канала и питание +12В.

Пример подключения двухканального цифрового модуля к датчику движения SRP-100
Датчик протечки воды с интерфейсом 1-Wire

Это устройство представляет собой транзисторный ключ, срабатывающий от малых токов, возникающих при попадании воды на контакты сенсорной платы. Сигнал от транзисторного ключа поступает на микросхему DS2406, а затем обрабатывается системой "Бенукс".

Датчик освещённости и влажности

Этот модуль собран на основе микросхемы DS2438. В качестве датчика освещённости используется фотодиод ФД256, а измерителем влажности является дактчик HIH-4000-004 фирмы Honeywell Inc.

Модуль аналоговых сигналов на основе DS2438

Основное назначение этого модуля - завести типовой аналоговый сигнал (0-10В) в персональный компьютер для цифровой обработки. Источником такого сигнала может быть датчик влажности, датчик давления (водяного, атмосферного и т.д.), датчик усилия, потребляемого тока и т.д., т.е. любой датчик, у которого выходной сигнал имеет диаппозон от 0 до 10 вольт.
Этот модуль собран на основе микросхемы DS2438. Особенность этой микросхемы в том, что в ней имеется два входа для аналоговых сигналов. На первый вход подаётся сигнал от 0 до +10 вольт. На второй вход может подаваться двуполярный сигнал от -250 милливольт до +250 милливольт.

Для увеличения надо кликнуть на картинке.

Модуль-приёмник ИК-команд с передачей сигнала в 1-Wire

Это устройство даёт возможность управлять восемью устройствами на расстоянии, с помощью ИК пульта. Сигналами с ИК пульта одна из восьми DS2401 подключается непосредственно к сети 1-WIRE. ПК с системой БЕНУКС обнаруживает активность на шине DS2401 и подает команды на включение или выключение устройств, а так же выполнение команд по заданному сценарию.
Система Бенукс определяет микросхему DS2401 как тип iButton, поэтому допускается использование микросхем DS* с такими "групповыми" номерами: 01,04,06,08,09,11,12,20,35,45,55.
Тем кто любит попаять. Девайс так же можно модернизировать и сделать автономное устройство, которое управляет всевозможными бытовыми электроприборами. Для этого вместо микросхем DS2401 нужно установить, согласно схеме, силовой каскад из симистров или реле. Тогда у Вас получится устройство, которое управляет восемью устройствами с ИК пульта.

Примечание:
Этот модуль является отдельной разработкой одного из пользователей системы "Бенукс",
по всем вопросам обращайтесь на E-mail [email protected]

Примечания.
Во всех представленных выше устройствах микросхемы DS2406, DS2406P и DS2408 могут могут работать либо как цифровой датчик, либо как устройство управления, в зависимости от электрической схемы подключения. Микросхема DS2413 в системе Бенукс не используется как цифровой датчик, потому что не поддерживает команду 1-Wire "поиск активных". Эта микросхема используется только для устройства управления.
Схемотехника большинства устройств заимствована с сайта Московской фирмы ЭлИн.
Производители оборудования с протоколом 1-Wire

Большой выбор датчиков и устройств с 1-Wire в Интернет-магазине www.radioseti.ru
Кроме того, в этом же магазине можно приобрести модули ESP8266 с доступом по Wi-Fi. Более подробно о таких модулях ethernet usb (может быть использован для адаптера 1-Wire)
Миникомпьютеры серии eBox
AMD LX800

Цель этой статьи - рассказать, как использовать эти датчики (или другие устройства сети) в суровых "полевых условиях". Не секрет, что на столе под лампой светлой цифровой датчик DS18B20 или его бюджетный брат DS18S20 замечательно работает с минимальным обвязом со стороны микроконтроллера в т.н. двухпроводной схеме:







Дополнительная выделенная линия питания сулит нам следующие "бонусы":
  1. Длина сетевого кабеля 100 метров и более;
  2. Количество одновременно подключенных датчиков - не менее 32шт.;
  3. Разрешающая способность АЦП - 0,0625 °C и точность измерения - 1°C.

Однако, еще остается борьба с помехами на длинных линиях связи. Простейшей защитой является включенный в обратном направлении диод Шоттки между линией данный и общим проводом, именно так советует поступать Brian C. Lane , автор популярного проекта DigiTemp . Мы лишь немного расширим данное решение для трехпроводной схемы включения:


L1, L2 - фербиды BLM21AG221SN1D - индуктивности для защиты от высокочастотных помех, возникающих при коммутации сильноточных потребителей;

C1 - керамический конденсатор, естественный спутник ножек питания цифровой микросхемы;

IC1 - собственно цифровой датчик температуры DS18B20Z в корпусе SOIC8.

Все компоненты - SMD (0805 и SOT23) для уменьшения размера платы датчика:



После сборки, плата температурного датчика выглядит следующим образом:


Обязательно защищаем плату датчика от влаги (цапонлаком или акриловым лаком):


Для монтажа датчика на поверхность, например на трубопровод, очень хорошо подходит самовулканизирующаяся резиновая изолента. Кроме того, необходимо хорошо теплоизолировать точку установки датчика. Я использую пористую самоклеющуюся ленту.

Контактные площадки для пайки кабеля сети 1-Wire сознательно сделаны крупными и вот почему...

Трактат о проводочках кабеля

Самой распространенной ошибкой при построении сети 1-Wire является выбор в пользу Ethernet-кабеля Cat.5 ! Подавляющее большинство читателей скажет - "у нас все очень хорошо и бодро работает на обрезках сетевухи ". Не спорю ни в коем случае, кабель Cat.5 длиной 10..30 м вполне годится для 3-х проводного способа подключения датчиков, более того - вот вам рекомендованная схема использования народного кабеля, которую и сам использую на даче для водоснабжения дома:





"Ну таки и в чем дело?" - скажет проницательный читатель. А вот в чем: в кардинальном различии "физики и логики" сетей Ethernet и 1-Wire. Не вдаваясь в сложности организации сети Ethernet, просто прошу поверить (и с мультиметром про верить) в то, что из-за значительного падения напряжения на длинных и весьма тонких проводах кабеля Cat.5e датчику сети 1-Wire банально не хватает напряжения питания !

Для одного из проектов по автоматизации потребовалось сделать устройство, которое является подчинённым 1-Wire устройством, принимает команды от мастера и выставляет на своих выходах значение аналогового сигнала в диапазоне от 0 до 10В.
Проанализировав линейку стандартных микросхем 1-Wire от Maxim, стало ясно, что нет микросхемы, которая позволит реализовать подобный функционал.
Потому было принято решение реализовывать 1-Wire slave на микроконтроллере. Надеюсь, данный материал будет интересен и полезен людям, которые делают «умный дом» своими руками, т.к. 1-Wire достаточно популярная шина в подобных проектах. В качестве камня был выбран МК Cortex M0+ ATSAMD20G16 от Atmel, но о реализации в коде расскажем во второй части. Забегая немного вперед, скажу что в третьей части цикла пойдет речь о реализации собственного семейства устройств для линуксовой библиотеки OWFS (One Wire File System). А сегодня расскажем о некоторых аппаратных решениях, к которым мы пришли в процессе разработки.

Речь в основном пойдет о том как подключить ногу микроконтроллера к 1-Wire шине с минимальным вредом для здоровья. Будем двигаться от простого к сложному.

Преобразование уровней


Самый простой вариант - двунаправленный преобразователь уровня на транзисторе. Для него потребуется где-то брать 5В со стороны шины 1-Wire.
Первый вариант - делать 5В на своем устройстве (помимо 3.3В) для «запитки» шины. Как следствие, усложнение схемотехники.
Второй вариант - прокладывать шину 1-Wire в три провода . Третьим проводом идёт линия питания +5В. Из проблем - лишний провод, просадка напряжения на длинном проводе.

Согласование уровней

Если очень не хочется использовать +5В можно разделить сигнальную линию на 2 составляющих (вход и выход)

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

Повышаем устойчивость

Для того что бы сделать прием данных по 1-Wire более уверенным необходимо сделать крутые фронты импульсов со стороны микроконтроллера. Для этого воспользуемся компаратором от TI LMV331 , который обеспечит более точный и резкий переход между логическими «0» и «1», а так же гистерезис 160mV. Еще заменим выходной би-полярный транзистор BC547 на полевой IRLML6346 и поставим защитный TVS диод ESD5Z6 на 6В.


Для данной схемы компаратор потребуется запитать от 5В. Где их можно взять было сказано выше.

Развязанный 1-Wire

Для обеспечения электрической развязки шины 1-Wire и внутренней электроники устройства воспользуемся изолированным транслятором уровней ADuM1201 , и изолированным DC/DC конвертор TES 1-1211 . Как и в предыдущем случае, линию данных 1-Wire делим на 2 линии: 1W_Rx и 1W_Tx.


DC/DC конвертор с 12 на 5 вольт взят для примера, можно использовать аналогичный 3.3/5.

Остальная схемотехника

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




Т.к. протокол 1-Wire требует наличие уникального адреса для каждого устройства на шине, на плату ставим 1-Wire UID от Maxim DS2411 . Будучи для неё мастером шины будем считывать её UID и использовать его в качестве собственного адреса. У DS2411 код семейства 0x01 (family code - старший байт UID’а). Мы же на сайте OWFS выберем незанятый код семейства для нашего нового устройства и будем подменять первый байт.

Как уже было сказано, во второй части приступим к программной реализации протокола 1-Wire Slave.