|
На основе популярной шины 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. |