Осветительные приборы

Датчик давления воды 1 wire. Подключение датчиков температуры к умному дому Loxone

Датчик давления воды 1 wire. Подключение датчиков температуры к умному дому Loxone

Информационное взаимодействие с "таблетками"?логгерами 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-сети к электромагнитным помехам, шумам и отражениям сигналов.

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

В статье приводится подробное описание интегрального датчика температуры DS18B20 на русском языке. Информация переведена на русский из официальной документации производителя датчика – компании Dallas Semiconductor.

Общее описание.

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

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

Диапазон измерения температуры составляет от -55 до +125 °C. Для диапазона от -10 до +85 °C погрешность не превышает 0,5 °C.

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

Коротко об особенностях DS18B20.

  • Для однопроводного интерфейса 1-Wire достаточно одного порта связи с контроллером.
  • Каждое устройство имеет уникальный серийный код длиной 64 разряда.
  • Возможность подключения нескольких датчиков через одну линию связи.
  • Нет необходимости во внешних компонентах.
  • Возможность получать питание непосредственно от линии связи. Напряжение питания в пределах 3,0 В … 5,5 В.
  • Диапазон измерения температуры -55 ... +125 °C.
  • Погрешность не превышает 0,5 °C в диапазоне -10 ... +85 °C.
  • Разрешение преобразования 9 … 12 бит. Задается пользователем.
  • Время измерения, не превышает 750 мс, при максимально возможном разрешении 12 бит.
  • Возможность программирования параметров тревожного сигнала.
  • Тревожный сигнал передает данные об адресе датчика, у которого температуры вышла за заданные пределы.
  • Совместимость программного обеспечения с DS1822.
  • Крайне широкие области применения.

Назначение выводов.

Обзор датчика DS18B20.

На рисунке 1 блок-схема датчика DS18B20. 64-битное ПЗУ (ROM) хранит уникальный серийный код устройства. Оперативная память содержит:

  • значение измеренной температуры (2 байта);
  • верхний и нижний пороговые значения срабатывания тревожного сигнала (Th, Tl);
  • регистр конфигурации (1 байт).

Через регистр конфигурации можно установить разрешение преобразования термодатчика. Разрешение может быть задано 9, 10, 11 или 12 бит. Регистр конфигурации и пороги тревожного сигнала содержатся в энергонезависимой памяти (EEPROM).

Режим – измерение температуры.

Основная функция DS18B20 – преобразование температуры датчика в цифровой код. Разрешение преобразования задается 9, 10, 11 или 12 бит. Это соответствует разрешающей способность - 0,5 (1/2) °C, 0,25 (1/4) °C, 0,125 (1/8) °C и 0,0625 (1/16) °C. При включении питания, состояние регистра конфигурации устанавливается на разрешение 12 бит.

После включения питания DS18B20 находится в низко-потребляющем состоянии покоя. Чтобы инициировать измерение температуры мастер (микроконтроллер) должен выполнить команду ПРЕОБРАЗОВАНИЯ ТЕМПЕРАТУРЫ . После завершения преобразования, результат измерения температуры будет находиться в 2 байтах регистра температуры, и датчик опять перейдет в состояние покоя.

Если DS18B20 включен по схеме с внешним питанием, то мастер может контролировать состояние команды конвертации. Для этого он должен читать состояние линии (выполнять временной слот чтения), по завершению команды, линия перейдет в высокое состояние. Во время выполнения команды конвертации линия удерживается в низком состоянии.

DS18B20 измеряет температуру в градусах по шкале Цельсия. Результат измерения представляется как 16-разрядное, знаковое число в дополнительном коде (рис. 2.) . Бит знака (S) равен 0 для положительных чисел и равен 1 для отрицательных. При разрешении 12 бит, у регистра температуры все биты значащие, т.е. имеют достоверные значения. Для разрешения 11 бит, не определен бит 0. Для 10-битного разрешения не определены биты 0, 1. При разрешении 9 бит, не достоверное значение имеют биты 0, 1 и 2. В таблице 2 показаны примеры соответствия цифровых кодов значению температуры.

Для людей не искушенных в двоичной математике, напишу, что для вычисления температуры надо:

  • При положительном значении (S=0) код перевести в десятичный и умножить на 0,0625 °C.
  • При отрицательном значении (S=1) сначала необходимо перевести дополнительный код в прямой. Для этого надо инвертировать каждый разряд двоичного кода и прибавить 1. А затем перевести в десятичный и умножить на 0,0625 °C.

Режим – передача тревожного сигнала.

После выполнения команды преобразования температуры, измеренное значение сравнивается с верхним и нижним порогами из регистров Th, Tl (формат на рисунке 3). Это байтовые значения, знаковые, в дополнительном коде, S =0 означает, что число положительное, а S=1 – отрицательное. Хранятся пороговые значения в энергонезависимой памяти (EEPROM). Th и Tl доступны для чтения и записи через байты 2, 3 оперативной памяти. Подробно об этом в разделе .

Из-за разной длины регистров TH, TL и температуры, они сравниваются только с битами 11 по 4 регистра температуры. Если значение измеренной температуры превышает TH или ниже, чем TL, то формируется признак аварии в DS18B20. Признак перезаписывается с каждым измерением температуры, и если температура возвращается в заданные пределы, то он сбрасывается.

Ведущее устройство может проверить состояние признака аварии с помощью команды ПОИСК ТРЕВОЖНОГО СИГНАЛА . Любой датчик с активным признаком ответит на команду поиска. Таким образом, мастер точно определит, какой DS18B20 вырабатывает сигнал тревоги. После изменения значений регистров TH и TL, только следующее преобразование температуры сформирует достоверный признак тревоги.

Питание термодатчика DS18B20.

Однако когда DS18B20 выполняет операцию преобразования температуры или копирования данных памяти в EEPROM, потребляемый ток может достигать величины 1,5 мА. Такой ток может вызвать снижение напряжения питания устройства до недопустимого значения. Тока подтягивающего резистора и энергии, запасенной на Cpp, не достаточно для питания в этих двух режимах. Для того чтобы гарантировать достаточное питание устройства, необходимо обеспечить мощную подтяжку шины к высокому уровню в то время, когда происходит преобразование температуры или копирование данных памяти в EEPROM. Это можно сделать с помощью MOSFET транзистора, как показано на схеме (рисунок 4). Шина данных должна быть подключена к мощному питанию:

  • в течение 10 мкс после команд КОНВЕРТИРОВАНИЯ и КОПИРОВАНИЯ ПАМЯТИ ;
  • в течение времени преобразования (tconv) и передачи данных (не менее t WR =10мс).

Никаких других операций в это время на шине допускать нельзя.

Как правило, у современных микроконтроллеров выходного тока высокого уровня вполне достаточно для питания DS18B20. Тогда в MOSFET транзисторе необходимости нет.

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

Я, в таких случаях, использую следующую схему подключения DS18B20.

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

64-разрядный серийный код устройства.

Память датчика.

Организация памяти DS18B20 показана на рисунке 7. Вся память включает в себя оперативную (SRAM) и энергонезависимую (EEPROM) память. В EEPROM хранятся регистры TH, TL и регистр конфигурации. Если функция тревожного сигнала не используется, то регистры TH и TL могут использоваться как регистры общего назначения. Все команды управления памятью подробно описаны в разделе .

В байтах с адресами 0 и 1 хранятся младший и старший байты регистра измеренной температуры. Эти байты доступны только для чтения. 2й и 3й байты – TH и TL регистры. Байт 4 – регистр конфигурации. Подробно об этом регистре в разделе РЕГИСТР КОНФИГУРАЦИИ. Байты 5, 6, 7 зарезервированы, не могут быть записаны и, при чтении, всегда возвращают 1.

Байт 8 доступен только для чтения. Он содержит циклический код (CRC) для первых восьми байтов. DS18B20 формирует этот код по способу, описанному в части .

Запись данных в байты 2, 3 и 4 происходит командой ЗАПИСЬ ПАМЯТИ . Данные должны передаваться, начиная с младшего бита байта 2. Для проверки записи данных можно прочитать память командой ЧТЕНИЕ ПАМЯТИ [код BEh]. При чтении данные передаются по шине, в последовательности начиная с младшего бита байта 0. Запись данных TH, TL и регистра конфигурации в EEPROM происходит по команде КОПИРОВАНИЕ ПАМЯТИ .

При включении питания, данные из энергонезависимой памяти EEPROM перегружаются в оперативную память (SRAM). Перезагрузку данных из EEPROM можно также сделать командой ПЕРЕЗАГРУЗКА E 2 . Мастер должен контролировать состояние шины, чтобы определить завершение перезагрузки. Слот чтения низкого уровня означает, что перезагрузка еще не закончилась. По завершению перезагрузки DS18B20 передает слот чтения 1.

Регистр конфигурации термодатчика.

Байт 4 памяти это регистр конфигурации (формат на рисунке 8). Битами R0, R1 можно установить разрешение преобразования (коды в таблице 3). При включении питания состояние битов R0, R1 = 11, что соответствует разрешению 12 бит. Надо помнить, что существует прямая зависимость времени преобразования от разрешающей способности. Биты 7 и 0…4 зарезервированы, не могут использоваться, при чтении возвращают 1.

Генерация циклического кода (CRC)

Байты циклического кода (CRC) расположены в 64-битовом ROM коде и в девятом байте памяти SRAM. Циклический код из ROM вычисляется для 56ти битов кода ROM и располагается в старшем байте ROM. Циклический код из SRAM вычисляется из байтов 0…7 SRAM. Циклический код позволяет контролировать правильность чтения данных из DS18B20. Мастер вычисляет циклический код для полученных данных и сравнивает с принятым кодом. На основании этого принимается решение о корректности данных.

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

C R C = X 8 + X 5 + X 4 + 1

Мастер может вычислить циклический код используя генератор полинома, по схеме на рисунке 9. Он состоит из регистра сдвига и логических элементов типа “исключающее ИЛИ”. Регистр сдвига изначально находится в состоянии 0. Биты поступают в регистр сдвига, начиная с младшего бита, кода из ROM или из SRAM, один бит в один такт сдвига. После сдвига 56го бита ROM или старшего бита 7го байта SRAM, в регистре сдвига будет вычисленный циклический код. Если сдвинуть в генератор 8 бит ROM или SRAM, принятые из DS18B20, то в случае правильных данных, регистр сдвига будет содержать все 0.

Однопроводной интерфейс 1-Wire

Система с шиной 1-Wire состоит из одного ведущего устройства (МАСТЕР), которое управляет одним или несколькими ведомыми устройствами (СЛЕЙВ). DS18B20 может быть только ведомым. Система, в которой одно ведомое устройство, называется одноточечной. Система с несколькими ведомыми – многоточечной. Все команды и данные обмена передаются по шине младшим битом вперед. В дальнейшей информации об интерфейсе 1-Wire выделены три раздела: аппаратная конфигурация, последовательность операций и сигналы (типы и временные требования).

Аппаратная конфигурация.

Интерфейс 1-Wire имеет одну линию связи. Каждое устройство (ведущее или ведомое) подключено к шине данных портом с выходом типа открытый коллектор или с тремя состояниями. Такая конфигурация позволяет каждому устройству системы не занимать линию связи, когда оно не активно, и держать шину свободной для других устройств. В микросхеме DS18B20 выход (DQ) – открытый сток. Его эквивалентная схема приведена на рисунке 10. Шина 1-Wire требует применения внешнего подтягивающего резистора сопротивлением приблизительно 5 кОм, для обеспечения высокого уровня сигнала при неактивном состоянии устройств. Если операция должна быть приостановлена, шина должна быть установлена в неактивное состояние до следующей операции. Шина может находиться в состоянии высокого уровня сколь угодно долгое время. Перевод шины в состояние низкого уровня на время более чем 480 мкс приведет к тому, что все компоненты системы будут сброшены.

Последовательность операций.

Очередность операций для доступа к термодатчику DS18B20 выглядит так.

  • Инициализация.
  • Команда ROM (необходима для любого обмена данными).
  • Функциональная команда (необходима для любого обмена данными).

Такая последовательность должна строго соблюдаться. В противном случае DS18B20 не будет реагировать на команды. Исключением являются команды ПОИСК ПЗУ [код F0h] и ПОИСК АВАРИИ [код ECh]. После формирования этих двух команд, ведущее устройство (мастер) должно вернуться к первому шагу (инициализация).

Инициализация.

Обмен по шине всегда начинается с операции ИНИЦИАЛИЗАЦИИ. Для инициализации ведущее устройство вырабатывает импульс сброса, за ним должен последовать импульс присутствия от ведомого устройства. Импульс присутствия сообщает ведущему устройству, что ведомое устройство присутствует в системе и готово к выполнению операции. Временные параметры импульсов сброса и присутствия описаны в разделе .

Команды ROM кодов.

После того как ведущее устройство получит импульс присутствия, оно может оперировать командами ROM. Это команды для операций с 64-битными индивидуальными кодами каждого ведомого устройства. Они позволяют ведущему устройству выбрать конкретное ведомое устройство среди многих других. Также, используя эти команды, можно узнать, сколько ведомых устройств подключено к шине, их типы, выделить устройства в состоянии тревоги. Существует 5 команд ROM, длиной 8 бит каждая. Ведущее устройство должно послать команду ROM перед выполнением функциональных команд DS18B20. Блок-схема выполнения ROM команд изображена на рисунке 11.

Поиск ROM

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

Чтение ROM

Команда применяется в одноточечных системах, с одним ведомым устройством. Она дает возможность ведущему устройству прочитать 64-битный ROM код, без использования команды ПОИСК ROM. Применение команды ЧТЕНИЕ ROM в многоточечной системе приведет к конфликтам данных между ведомыми устройствами.

Совпадение ROM

Команда СОВПАДЕНИЕ ROM, после которой должен следовать 64-битный код ROM, позволяет мастеру обращаться к конкретному ведомому устройству. Только одно ведомое устройство, код которого совпадает с переданным кодом, прореагирует на функциональные команды. Другие ведомые устройства будут неактивными до следующего импульса сброса.

Пропуск ROM

Команда позволяет ведущему устройству обращаться ко всем устройствам шины одновременно, без использования ROM кодов. Например, можно запустить на всех устройствах операцию преобразования температуры, выполнив команду ПРОПУСК ROM, а затем КОНВЕРТАЦИЯ ТЕМПЕРАТУРЫ. Команда ЧТЕНИЕ ПАМЯТИ может следовать за командой ПРОПУСК ROM только при одном ведомом устройстве, подключенным к линии связи. Такая последовательность команд значительно экономит время обмена с датчиками. Особенно она эффективна при использовании в системе одного ведомого устройства.

Поиск тревожного сигнала

Команда действует идентично команде ПОИСК ROM. Отличается тем, что на нее ответят только ведомые устройства в состоянии тревоги. Команда позволяет ведомому устройству определить, какие термодатчики находятся в состоянии тревоги после последнего преобразования температуры. После каждого ПОИСКА ТРЕВОГИ необходимо возвращаться на ИНИЦИАЛИЗАЦИЮ.

Группа функциональных команд

После выполнения ROM команды для выбора DS18B20 с нужным кодом, ведущее устройство может посылать функциональные команды датчика. Они позволяют записать и прочитать данные из оперативной памяти DS18B20, инициировать преобразование температуры и определить режим питания. Функциональные команды DS18B20 описываются ниже, собраны в таблице 4, алгоритм работы с ними приведен на рисунке 12.

Преобразование температуры

Запись памяти

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

Чтение памяти

Команда используется для чтения памяти устройства. Передача данных происходит начиная с младшего бита байта 0 памяти, и продолжается до тех пор, пока все 9 байтов будут считаны. Если требуется только часть данных, ведущее устройство может прервать передачу, сформировав импульс сброса.

Копирование памяти

Команда перезагружает значения регистров Th, Tl и регистра конфигурации из EEPROM в оперативную память. После посылки команды ПЕРЕЗАГРУЗКА, ведущее устройство может выполнить слот чтения, и DS18B20 сообщит состояние перезагрузки. Передача 0 будет означать, что операция еще выполняется, 1 – операция завершена. Операция перезагрузки автоматически происходит при включении питания. Поэтому в оперативной памяти содержатся достоверные данные сразу после подачи питания.

Чтение режима питания

Таблица 4. Функциональные команды DS18B20.

КОМАНДА ОПИСАНИЕ КОД ОПЕРАЦИИ НА ШИНЕ ПРИМЕЧАН.
КОМАНДА КОНВЕРТИРОВАНИЯ ТЕМПЕРАТУРЫ
Измерение температуры Инициализирует измерение температуры 44h DS18B20 передает мастеру состояние операции преобразования температуры 1
КОМАНДЫ РАБОТЫ С ПАМЯТЬЮ
Чтение памяти Читает всю оперативную память, включая циклический код CRC BEh DS18B20 передает мастеру до 9 байт 2
Запись памяти Записывает в оперативную память байты 2, 3 и 4
(TH, TL и регистр конфигурации)
4Eh Мастер передает 3 байта на DS18B20. 3
Копирование памяти Копирует TH, TL, и регистр конфигурации из оперативной памяти в EEPROM 48h 1
Перегружает TH, TL, и регистр конфигурации из EEPROM в оперативную память. B8h DS18B20 передает состояние перезагрузки мастеру
Чтение режима питания Информирует мастера о режиме питания DS18B20. B4h DS18B20 передает мастеру режим питания

Примечания.

Интерфейс 1-Wire

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

  • импульс сброса,
  • импульс присутствия,
  • запись бита со значением 0,
  • запись бита со значением 1,
  • чтения бита со значением 0,
  • чтения бита со значением 1.

Все эти сигналы, кроме импульса присутствия, формирует ведущее устройство.

Инициализация – импульсы сброса и присутствия

Любые коммуникационные операции DS18B20 начинаются с последовательности инициализации, которая состоит из импульса сброса от ведущего устройства ведомому, и ответного импульса присутствия из DS18B20. Этот процесс показан на рисунке 13. Термодатчик посылает импульс присутствия в ответ на импульс сброса, чтобы сообщить ведущему устройству, что он подключен к шине и готов к использованию.

Во время последовательности инициализации ведущее устройство передает импульс сброса (Tx), формируя на шине сигнал низкого уровня в течение времени не менее 480 мкс. Далее, ведущее устройство освобождает шину и переходит в режим приема (Rx). Когда шина освобождается, она подтягивается к высокому логическому уровню резистором 5 кОм. Датчик выделяет положительный фронт, ждет 15-60 мкс и передает импульс присутствия, удерживая низкий уровень линии на время 60-240 мкс.

Временные слоты чтения и записи.

Обмен данными по шине 1-Wire происходит временными слотами (тайм-слотами). Один временной слот передает один бит информации.

Временные слоты записи.

Протокол определяет два типа тайм-слотов записи данных в DS18B20: для записи значения 1 и записи значения 0. Длительность слота записи - не менее 60 мкс с паузой на восстановление между слотами 1,0 мкс, как минимум. Инициируется любой слот записи отрицательным фронтом сигнала шины (рис. 14).

Для формирования слота записи 1, после перевода шины в низкое состояние, ведущее устройство должно освободить шину на время 15 мкс. Подтягивающий резистор 5 кОм создаст на шине напряжение высокого уровня.

Для формирования слота записи 0, после перевода шины в низкое состояние, ведущее устройство должно продолжать удерживать шину в низком состоянии в продолжение всего времени слота (как минимум 60 мкс).

DS18B20 проверяет состояние сигнала в отрезке времени между 15 и 60 мкс, отсчитывая его от начала слота записи. Состояние шины на этом отрезке соответствует значению бита для записи в датчик.

Временные слоты чтения.

Длительность слота чтения, как и слота записи, должна быть не менее 60 мкс с паузой на восстановление между слотами 1 мкс, как минимум. Инициируется любой слот чтения отрицательным фронтом сигнала шины (рисунок 14).

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

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

На рис. 15 показано, что общая сумма временных интервалов слота чтения Tinit , TRC и TSAMPLE должна быть не более 15 мкс.

Рис. 16 показано, что для максимальной надежности приема данных необходимо уменьшить Tinit и TRC и читать состояние шины в конце отрезка 15 мкс.

Пример 1 работы с DS18B20.

РЕЖИМ МАСТЕРА

ДАННЫЕ ШИНЫ

ПОЯСНЕНИЯ

TX Reset RX Presence TX 55h TX 64-бит ROM код TX 44h Мастер посылает команду конвертирования температуры. TX TX Reset Мастер формирует импульс сброса. RX Presence DS18B20 отвечают импульсом присутствия. TX 55h Мастер выполняет команду соответствия ROM кода. TX 64-бит ROM код Мастер посылает ROM код DS18B20. TX BEh RX 9 байтов данных

Пример 2 работы с DS18B20.

РЕЖИМ МАСТЕРА

ДАННЫЕ ШИНЫ

ПОЯСНЕНИЯ

TX Reset Мастер формирует импульс сброса.
RX Presence
TX CCh
TX 4Eh Мастер выполняет команду записи памяти.
TX 9 байта данных Мастер посылает три байта (TH, TL, и регистр конфигурации).
TX Reset Мастер формирует импульс сброса.
RX Presence DS18B20 отвечает импульсом присутствия.
TX CCh Мастер выполняет команду пропустить ROM.
TX BEh Мастер посылает команду чтения памяти.
RX 9 байтов данных Мастер читает всю оперативную память, включая циклический код CRC. Затем вычисляет CRC для первых восьми байтов и сравнивает с принятым кодом. Если коды не равны, мастер повторяет операцию чтения.
TX Reset Мастер формирует импульс сброса.
RX Presence DS18B20 отвечает импульсом присутствия.
TX CCh Мастер выполняет команду пропустить ROM.
TX 48h Мастер выполняет команду копирования памяти.
TX DQ линия подключена к шине питания Мастер подключает DQ к шине питания на время преобразования.

Предельно-допустимые параметры DS18B20

Указаны предельные величины параметров. Превышение этих параметров недопустимо. Эксплуатация длительное время с предельными значениями параметров может уменьшить надежность устройства.

Примечания:

Электрические характеристики EEPROM переменного тока (- 55 … + 125 °C, V DD = 3,0 ... 5,5 В).

ПАРАМЕТР ОБОЗНАЧЕНИЕ УСЛОВИЯ МИН. ТИП. МАКС. ЕД. ИЗМ.
Время цикла записи t wr 2 10 мс
Число записей N EEWR -55°C - +55°C 50000 цикл
Время хранения t EEDR -55°C - +55°C 10 лет

Электрические характеристики переменного тока (- 55 … + 125 °C, V DD = 3,0 ... 5,5 В).

ПАРАМЕТР ОБОЗНАЧЕНИЕ УСЛОВИЯ МИН. ТИП. МАКС. ЕД. ИЗМ. ПРИМЕ
ЧАНИЕ
Время преобразования температуры t CONV разрешение 9 бит 93.75 мс 1
разрешение
10 бит
187.5 мс 1
разрешение
11 бит
375 мс 1
разрешение
12 бит
750 мс 1
Время подключения к мощному питанию t SPON Посылка команды конвертации температуры 10 мкс
Время слота t SLOT 60 120 мкс 1
Время восстановления t REC 1 мкс 1
Время записи 0 r LOW0 60 120 мкс 1
Время записи 1 t LOW1 1 15 мкс 1
Время чтения данных t RDV 15 мкс 1
Время высокого уровня сброса t RSTH 480 мкс 1
Время низкого уровня сброса t RSTL 480 мкс 1,2
Время высокого уровня присутствия t PDHIGH 15 60 мкс 1
Время низкого уровня присутствия t PDLOW 60 240 мкс 1
Емкость C IN/OUT 25 пкФ

Примечания:

Рисунок 18. Временные диаграммы.

Описание получилось большим. С датчиками работать не просто. Они требуют достаточно сложных программных функций, но с аппаратной точки зрения DS18B20 просто подключаются, точно измеряют, не требуют АЦП и т.д.

Как пример использования термодатчиков DS18B20, могу привести мою разработку - . Используются два термодатчика. Один измеряет температуру воздуха в , второй - температуру радиатора .

Рубрика: . Вы можете добавить в закладки.

Подскажите, проблема следующая, к WB5 по 1 wire подключены 4 температурных датчика DS18B20 не герметичные, работают и определяются нормально. Подключаю дополнительно ваш герметичный датчик DS18B20 совместно с 4 мя, герметичный датчик не определяется и данные не отображает. (подключение напрямую к WB5) По отдельности все работает, а вместе никак.

Негерметичные датчики (GND-GND, 1W - DAT, +5V - VCC)
Герметичный (GND- черный, 1W - желтый, +5V - красный), на сайте у вас распиновка не верно указана, только так он работает у меня в ед числе.

Только что взял два таких же датчика с трёхметровым кабелем, дополнительно взял выводной DS18B20 без кабеля, зажал всё в клеммники Wiren Board, и всё вместе заработало.
Собственно, то, что купленный у нас датчик в одиночестве работает, уже скорее всего значило, что дело не в нём, а в конфигурации шины. Основной способ её “починить” - свериться с подробным руководством по организации 1-Wire шины: https://www.maximintegrated.com/en/app-notes/index.mvp/id/148 .
Случай однозначно негарантийный, но можем вместе с вами попробовать понять, в чём тут дело. Для начала четыре вопроса:

  1. Надеюсь, все датчики подключены тремя проводами (то есть каждый подключён отдельным проводом к 5В, никто не питается от шины данных)?
  2. Какие длины кабелей до ваших датчиков?
  3. Какие кабели в них используются? Не может ли быть наводок?
  4. Работает ли конфигурация “наш датчик + один ваш датчик”?

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

Расстояния 30 см - 1 для шины 1-wire вообще незаметны при любой топологии подключения, если все исправно.
Работает ли конфигурация “наш датчик + один ваш датчик”?

в логах wirenboard-ABZ4PE4F user.warn kernel: [ 1484.461380] w1_slave_driver 28-0000073ba74b: Read failed CRC check. Напряжение когда все не работает ровно 5.00

wirenboard-ABZ4PE4F user.info kernel: [ 1242.799168] w1_master_driver w1_bus_master1: w1_search: max_slave_cou
nt 64 reached, will continue next search. Еще вот это

wirenboard-ABZ4PE4F user.info kernel: [ 1242.799168] w1_master_driver w1_bus_master1: w1_search: max_slave_count 64 reached, will continue next search. Еще вот это

Вот это обычно значит, что у вас потенциал на линии 1-Wire ноль. Где-то КЗ.

Напишите пожалуйста идентификаторы всех датчиков, наших и ваших.

Посмотрел вашу ссылку: у вас не собственно сам датчик DS18B20, а модуль (платка), на которой есть ещё резистор (как я понял, это подтяжка 4.7КОм линии DATA к VCC), и ещё конденсатор (скорее всего, между VCC и GND).
Если это так, то четыре таких модуля дают в сумме подтяжку 1.2КОм. При этом подтяжка на линии должна быть одна - в мастере (контроллере Wiren Board), и она там уже есть - 3КОм. Итоговая подтяжка получается 0.8КОм, и наш датчик на трёхметровом кабеле не может её “перетянуть”.

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

Технология достаточно старая и широко употребляемая

Изначально, выведена на рынок компанией Dallas - Все помнят таблетки для домофонов iButton- это оно

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

Я провел массу экспериментов с данным стандартом. Изначально, предполагая очень широко использовать его для управления Умным Домом

Хуже всего, если для управления 1-wire шиной не использовать никаких специализированных контроллеров (подключение напрямую к PIN у Arduino устройств) - в этом случае, проблемы возникают уже при длине кабеля более 3-х метров

Для моих целей такое расстояние не подходило, поэтому я использовал I2C to 1-wire мост DS2482-100

Стоимость чипа на Aliexpress менее 100 руб, чип имеет аппаратный драйвер шины с режимом strong-pullup, что в разы увеличивает надежность работы системы.

Альтернативные решения, как правило, используют USB контроллеры шины 1-Wire на основе DS2490 но это подразумевает использование компьютера в составе контура управления. По опыту, надежность комплексного решения, включающего в себя PC, операционную систему, ПО, сетевую инфраструктуру, в любом случае ниже решения, локализованного в пределах одного контроллера. Поэтому ответственные задачи регулирования я реализовывал таким образом, что это регулирование происходит автономно, контроллером.

У себя я использую шлейф длиной около 150 м.

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

Контроллер опрашивает датчики циклично, поэтому, единичные сбои не влияют на функционирование.

Кроме термометров, я пробовал использовать самую разнообразную перефирию, вооружившись Datasheet - ами написав множество процедур для управления следующими чипами и устройствами на их базе:

Если коротко - себя это не оправдало

Основная проблема - все же не очень хорошая помехозащищенность

Борьба с помехами в сети 1-Wire

Это, пожалуй, самое непростое в данной технологии. Описываю свой опыт:

  • Шину 1-Wire прокладывайте на расстоянии от высоковольтных проводов, трансформаторов LED освещения и проводов LED освешения (провода дают сильную помеху за счет того, что сила тока велика и используется ШИМ модулирование)
  • Не надо использовать экранированную витую пару. Я проложил STP 5-й категории, но при попытке заземлить экран - связь полностью теряется. Предполагаю, что это связано с увеличением емкости проводника.
  • По отзывам, невитая пара (самый дешевый двужильный провод) дает лучший результат.
  • Хороший опыт - подтягивать дальний конец провода через резистор 3-4 КОм к стабилизированному фильтрованному источнику питания 5Вольт.
  • Отводы от шины в 2-3 метра, в целом, не ухудшают качества работы системы, но прилично упрощают монтаж.