Усилители/буферы для физической шины OneWire Печать
Добавил(а) microsin   

На основе популярной шины OneWire (1-Wire) решают многие задачи по подключению датчиков температуры. Отличительная особенность этой шины - всего лишь один сигнал данных, причем на шину можно параллельно подключить множество датчиков. Если их число небольшое (обычно до 5 штук), и линия связи короткая (несколько метров), то шину можно напрямую подключить к любому микроконтроллеру. Если же задача усложняется, и нагрузка на шину получается слишком большой, то необходимы специальные усилители/буферы сигнала данных OneWire.

Существует несколько микросхем для буфера шины OneWire.

DS2480B - микросхема драйвера с подключением через TTL UART.
DS2482-100 - микросхема драйвера с подключением через I2C.
DS28E17 - микросхема драйвера мастера шины I2C с подключением через OneWire.

Эти микросхемы представляют собой три разных подхода к работе с 1-Wire, и их нагрузочная способность кардинально отличается. Нагрузочная способность определяется не столько самими чипами, сколько встроенным в них активным подтягивающим резистором (Active Pull-Up), который и борется с емкостной нагрузкой линии.

Сравнительная таблица:

ПараметрDS2480B (Серийный адаптер)DS2482-100 (Драйвер на I²C)DS28E17 (I²C Мастер на 1-Wire)
Основная функция Преобразователь интерфейса (UART/RS-232 -> 1-Wire) Драйвер и мост (I²C -> 1-Wire) Удаленный I²C Мастер (1-Wire -> I²C)
Кто мастер? Сама DS2480B (управляется по UART) Внешний MCU (управляет по I²C) Внешний MCU (управляет по 1-Wire, сама DS28E17 становится мастером на своей I²C шине)
Активный Pull-Up Есть, и он ОЧЕНЬ мощный (типовое значение 100 Ом) Есть, программируемый ( typ. 50 Ом, настраивается) Нет (только пассивная подтяжка)
Нагрузочная способность ОЧЕНЬ ВЫСОКАЯ (наибольшая среди всех) ВЫСОКАЯ (хорошо программируется) НИЗКАЯ (как у стандартного мастера)
Макс. емкость линии ~3000 пФ (или длина провода > 300м)* ~800 пФ (или длина провода ~100м)* ~500 пФ (или длина провода ~50м)*
Подключение устройств Устройства на одной 1-Wire шине Устройства на одной 1-Wire шине Само устройство является мостом для своей собственной I²C шины
Кол-во устройств Много на одной длинной шине Много на одной длинной шине Одно (сам чип DS28E17) на 1-Wire шине, но к нему можно подключить много I²C устройств

Расчетные значения длины очень приблизительны и зависят от типа кабеля.

[Детальный анализ по каждому устройству]

DS2480B — "Тяжелый буксир"

Суть: Это автономный 1-Wire мастер с интерфейсом UART. Его ключевая особенность — встроенный мощный MOSFET-транзистор с сопротивлением всего около 100 Ом для подтяжки линии к питанию.
Нагрузочная способность: Максимальная. Он предназначен для работы в самых тяжелых условиях: длинные линии, большое количество устройств, сильно зашумленная среда. Он не просто буферизует сигнал, а активно и очень быстро "заряжает" емкость линии до логической единицы.
Идеальное применение: Промышленные системы, длинные кабели, считыватели ключей iButton на большом расстоянии, системы мониторинга.

DS2482-100 — "Программируемый универсал"

Суть: Это не самостоятельный мастер, а мост между I²C и 1-Wire. Внешний микроконтроллер управляет им по I²C, а DS2482-100 берет на всю "грязную работу" с 1-Wire шиной.
Нагрузочная способность: Высокая, благодаря программируемому активному подтягивающему резистору. Вы можете программно задать его параметры (силу и длительность включения), чтобы оптимально согласовать с конкретной линией (ее длиной и емкостью). Это гибкое решение.
Идеальное применение: Встраиваемые системы, где основной MCU имеет I²C, но нет надежного 1-Wire драйвера. Позволяет легко организовать надежную 1-Wire шину средней длины.

DS28E17 — "Специалист по I²C"

Суть: Это 1-Wire слейв-устройство, которое выступает в роли I²C мастера на своей собственной, изолированной I²C шине.
Нагрузочная способность:Низкая (для 1-Wire линии)! Это самый важный пункт для понимания. У него нет активного подтягивающего резистора для 1-Wire шины. Он рассчитан на то, чтобы быть одним из многих устройств на стандартной 1-Wire шине. Вся его "мощь" уходит на управление устройствами на его локальной I²C шине.
Идеальное применение: Когда нужно вынести шину I²C на большое расстояние или добавить всего одно устройство (сам DS28E17), которое, в свою очередь, управляет множеством I²C-устройств (например, датчиков, EEPROM, АЦП) в другой части системы.

[Итоговое сравнение по нагрузочной способности (на 1-Wire шине)]

DS2480B — Бесспорный лидер по нагрузочной способности благодаря встроенному силовому драйверу.
DS2482-100 — Прочное второе место с очень хорошими и гибкими возможностями по управлению нагрузкой.
DS28E17 — Аутсайдер в этом сравнении, так его задача не усиливать 1-Wire шину, а быть на ней обычным устройством, предоставляющим доступ к другой шине (I²C).

Выбор зависит от задачи:

Нужно протянуть одну длинную и нагруженную 1-Wire шину? Берите DS2480B или DS2482-100.
Нужно вынести на расстояние группу I²C-устройств? Тогда DS28E17 будет идеальным выбором, но саму 1-Wire линию к нему, возможно, придется усиливать с помощью того же DS2480B или DS2482-100.

[Ссылки]

1. DS18B20: цифровой термометр с интерфейсом 1-Wire.
2. DS2430A: работа с EEPROM по шине 1-Wire.
3. AVR318: мастер шины 1-Wire.
4. iButton: описание протокола, электронный замок на ключах-таблетках.
5. Отличия DS1820, DS18S20 и DS18B20.
6. Примеры чтения датчика температуры DS18B20.