Команды 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
Чтение температуры с DS18B20
1. Инициализация 2. SKIP ROM (0xCC) 3. CONVERT T (0x44) - ожидание 4. Инициализация 5. SKIP ROM (0xCC) 6. READ SCRATCHPAD (0xBE) 7. Чтение 9 байт данных
Поиск устройств на шине
1. Инициализация 2. SEARCH ROM (0xF0) 3. Алгоритм двоичного поиска: - Чтение бита от всех устройств - Чтение комплементарного бита - Выбор направления поиска 4. Повтор до получения всех адресов
Запись в 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