Команды 1-Wire: полный справочник

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

О протоколе 1-Wire

🔌

Что такое 1-Wire?

1-Wire - это протокол связи с одним проводом, разработанный Dallas Semiconductor (ныне Maxim Integrated).

📊

Основные характеристики

Низкоскоростная передача данных (до 16.3 кбит/с), питание через data-линию, уникальные 64-битные адреса.

🛠️

Применение

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

Основные команды 1-Wire

READ ROM (0x33)

Чтение 64-битного ROM-кода устройства (только для single-drop)

  • Формат: [0x33] [Данные ROM]
  • Применение: идентификация устройства
  • Поддержка: все устройства

MATCH ROM (0x55)

Обращение к конкретному устройству по его ROM-коду

  • Формат: [0x55] [64-битный ROM]
  • Применение: выбор устройства в multi-drop
  • Поддержка: все устройства

SKIP ROM (0xCC)

Пропуск адресации (broadcast команда для всех устройств)

  • Формат: [0xCC] [Команда]
  • Применение: single-drop или одинаковые команды
  • Поддержка: все устройства

SEARCH ROM (0xF0)

Поиск устройств на шине (алгоритм двоичного поиска)

  • Формат: [0xF0] [Бит конфликта]
  • Применение: перечисление устройств
  • Поддержка: все устройства

CONVERT T (0x44)

Запуск преобразования температуры (DS18B20)

  • Формат: [0x44]
  • Применение: датчики температуры
  • Поддержка: температурные датчики

WRITE SCRATCHPAD (0x4E)

Запись в временную память устройства

  • Формат: [0x4E] [Данные]
  • Применение: настройка параметров
  • Поддержка: многие устройства

Популярные устройства 1-Wire

DS18B20

Цифровой термометр с разрешением 9-12 бит (±0.5°C точность). Команды: CONVERT T, READ SCRATCHPAD, WRITE SCRATCHPAD.

DS2431

EEPROM память 1024 бит. Команды: WRITE MEMORY, READ MEMORY, COPY SCRATCHPAD.

DS2401

Электронный ключ с уникальным 64-битным кодом. Только команды ROM.

DS2413

Двойной программируемый порт ввода-вывода. Команды: PIO ACCESS READ/WRITE.

DS28E05

Защищенный EEPROM с аутентификацией. Команды: READ MEMORY, WRITE MEMORY с SHA-1.

DS2438

Монитор батареи с измерением напряжения, тока, температуры. Специальные команды измерения.

Примеры использования команд 1-Wire

1

Чтение температуры с DS18B20

1. Инициализация
2. SKIP ROM (0xCC)
3. CONVERT T (0x44) - ожидание
4. Инициализация
5. SKIP ROM (0xCC)
6. READ SCRATCHPAD (0xBE)
7. Чтение 9 байт данных
2

Поиск устройств на шине

1. Инициализация
2. SEARCH ROM (0xF0)
3. Алгоритм двоичного поиска:
 - Чтение бита от всех устройств
 - Чтение комплементарного бита
 - Выбор направления поиска
4. Повтор до получения всех адресов
3

Запись в EEPROM DS2431

1. Инициализация
2. MATCH ROM (0x55) + адрес
3. WRITE MEMORY (0x0F)
4. Адрес, данные
5. Чтение CRC для проверки
6. Чтение для подтверждения

Часто задаваемые вопросы о командах 1-Wire

Как определить, какое устройство на шине поддерживает какие команды?

По семейному коду (1-й байт ROM-адреса). Например, 0x28 - DS18B20 (термометр), 0x23 - DS2431 (EEPROM). Полный список семейных кодов есть в документации Maxim Integrated.

Почему команда SKIP ROM не работает в multi-drop системе?

SKIP ROM - это broadcast команда, которая адресуется всем устройствам на шине одновременно. Если устройства ожидают разные команды после SKIP ROM, возникнет конфликт. В multi-drop системах используйте MATCH ROM.

Как увеличить скорость работы с 1-Wire устройствами?

1. Используйте overdrive режим (до 142 кбит/с) если устройство его поддерживает. 2. Минимизируйте длину шины. 3. Используйте активный подтягивающий резистор. 4. Оптимизируйте алгоритм поиска устройств.

Какие особенности питания по data-линии (parasite power)?

При parasite power: 1. Нужен сильный pull-up (обычно 1.5kΩ). 2. Во время преобразования (например, CONVERT T) нельзя выполнять другие операции. 3. Максимальная длина шины сокращается.

Как обрабатывать CRC в 1-Wire протоколе?

Многие команды возвращают CRC для проверки целостности данных. Используйте 8-битный CRC (полином x⁸ + x⁵ + x⁴ + 1). Готовые реализации есть в документации и примерах кода от Maxim.

Профессиональная поддержка 1-Wire

🔧

Разработка устройств

Помощь в проектировании устройств с интерфейсом 1-Wire, подбор компонентов, схемотехника.

💻

Программная реализация

Оптимизированные драйверы для различных платформ (AVR, ARM, ESP, Raspberry Pi).

📚

Обучение

Обучающие материалы и семинары по работе с 1-Wire, разбор сложных случаев.

🔍

Диагностика проблем

Анализ и решение проблем в существующих 1-Wire системах, поиск неисправностей.

Консультация по 1-Wire

Свяжитесь с нами

Телефон:  +7 (495) 645-21-53

Email:  order@avtograf-gsm.ru

Адрес: 117405, г.Москва, ул.Дорожная, д.60Б, оф.415

Режим работы: Пн-Пт: 9:00-18:00, Сб-Вс: выходной

🚨 Срочная техническая поддержка

Для экстренных случаев:  +7 (495) 645-21-53