16.04.2011

Сеть 1-Wire в "полевых условиях"

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



Фактически, весь "обвяз" состоит из резистора 4К7, между шиной питания VCC (+5В) и шиной данных VDO, который и позволяет датчику паразитно питаться от этой же шины. Схема проста, наглядна и кроме этого, позволяет экономить на одном проводе в кабеле сети. Для расстояний менее 10 метров - вполне оправдано, правда точность преобразования будет не лучше 2°C (разрядность АЦП датчика DS18B20 снижается с 12 до 10 бит), что во многих случаях будет вполне достаточно.

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




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


D1 - сборка быстродействующих диодов Шоттки BAV199, механизм действия такой защиты подробно описан в блоге Уважаемого киберсатаниста DI HALT;
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 банально не хватает напряжения питания!

Вывод напрашивается простой и логичный - использовать кабель с проводами бОльшего сечения и желательно - экранированный! Для своих целей, я выбрал вполне доступный по цене (и наличию в магазинах) кабель МКЭШ-3х0.5 - схема подключения датчиков будет выглядит так:


Несколько худший, но вполне приемлемый результат, можно получить с кабелем МКЭШ-2х0.35 и следующей схемой подключения:




Наконец, можно использовать вполне приличный провод от торшера - ПВС3х0.75...ПВС3х1

Заключение


Нынешний владелец торговой марки 1-Wire - компания Maxim, для защиты нежных ножек микропроцессора от "суровых полевых условий", предлагает приборчик DS9503, который по сути - просто быстродействующий диод Шоттки + токоограничивающие резисторы в линиях питания и данных. Сам я его еще в руках не держал, но как только это случиться - немедленно опишу полученные впечатления.

Послесловие


C огромным удовольствием - благодарю Илью Данилова за помощь словом и хардвером в освоении платформы Ардуино, конструктивные замечания и неоценимую поддержку в разработке проекта ОткрытогоПЛК!


  • Скачать проект платы-подавителя помех в формате Eagle.

12 комментариев:

  1. Большое спасибо за такую познавательную статью!
    У меня возник вопрос. Есть микроконтроллер (какой нить Atmega) и датчик DS18B20, можно ли их соединить кабелем 100м без всяких усилителей (на транзисторах и т.д.), тоесть просто подключить к какому нить пину микроконтроллера. Питание не паразитное.

    ОтветитьУдалить
  2. Да, вполне возможно! Именно такое подключение я и описывал. 100м - "серьезная дистанция" для нежной ножки MCU, посему очень рекомендую, использовать экранированный 3-х проводный кабель сечением 0,75мм и как минимум - два диода Шотки между GND, Data и VCC.

    ОтветитьУдалить
  3. спасибо за ответ!
    Еще вопрос: я хочу подключить датчик к одной ноге так как мне надо сделать сеть типа "звезда" в которой будет 10 датчиков (на каждой ветви по одному). Я решил к 10 ножкам микроконтроллера подключить по 1 датчику проводом 100м. Но может вы знаете более подходящее решение? Подключение звездой обязательно

    ОтветитьУдалить
  4. а автор не экспереметировал с датчиками попроще ? то есть цифровыми и БЕЗ 1-WIRE

    а то роюсь по прайсам местных магазинов и ничего кроме датчиков от 10 уе (без 1-wire) и DS18B20 не могу найти

    а интересно покрутить термодатчик с встроенным АЦП без всякого лишнего и дешевле по идее должно быть

    ОтветитьУдалить
  5. Прошу прощения, что встреваю: а о каких таких датчиках "цифровыми, но не 1-Wire" идет речь?

    DS18B20 в своем классе точности и диапазоне - самое удачное решение среди полупроводниковых термодатчиков, 1-Wire позволяет для подключения N датчиков использовать всего один DIO MCU. Мнимая сложность программирования компенсируется многочисленными примерами кода и библиотеками в свободном доступе.

    Ну а цена его - 2-3 USD, и если речь про экземпляры за 10 у.е. - это скорее всего не полупроводниковый или лучшая точность (диапазон у полупроводникового шире быть не может).

    ОтветитьУдалить
  6. да действительно порылся на предмет датчиков подешевле - ничего нет :( подороже с более высоким классом точности или в более сложным исполнением

    и еще вопросик вы опрашиваете все подряд или или каждый по отдельности

    если каждый по отдельности поделитесь или скетчем или куском кода а то роюсь уже несколько часов ничкго путного найти не могу :(

    ОтветитьУдалить
  7. А чем Вас стандартный пример из библиотеки oneWire не устраивает?

    Там вполне все вполне прозрачно, лишнее просто выкидывается (или комментируется),а остаток оформляется как своя функция.

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

    Проблема решается когда cat5 используется в качестве 4х проводной линии с внешним дополнительным питанием: GND, DATA, +12В, +18В.

    Схема немного усложняется, добавляется 5В стабилизатор на шину +12В (для питания датчиков), и 12В стабилизатор на шину +18В (для питания относительно слаботочных исполнительных устройств если это необходимо)

    ОтветитьУдалить
  9. Здравствуйте! Прислали из Китая сотню SMD-чипов, написали что это фербиды BLM21AG221. Маркировки на них никакой нет, тестер показывает почти нулевое сопротивление. Это похоже на правду? Есть ли какие-то другие способы проверить что это действительно они?

    ОтветитьУдалить
  10. перезалейте картинки, не видно

    ОтветитьУдалить
    Ответы
    1. Картинки, которые не показаны, из заблокированного аккаунта автора. Связаться с автором уже не представляется возможным :(

      Удалить
    2. О, картинки восстановились!

      Удалить