Введение
Система шин связи устройств 1-Wire — это проводная последовательная полудуплексная шина, разработанная компанией Dallas Semiconductor, обеспечивающая передачу данных с низкой скоростью (16,3 кбит/с) и питание по одному проводнику. 1-Wire концептуально схожа с I2C, но имеет более низкую скорость передачи данных и больший радиус действия. Обычно она используется для связи с небольшими недорогими устройствами, такими как цифровые термометры и метеорологические приборы. Сеть устройств 1-Wire с подключенным главным устройством называется MicroLAN. Этот протокол также используется в небольших электронных ключах, известных как ключ Dallas или iButton. Одной из отличительных особенностей шины является возможность использования всего двух проводников — для передачи данных и земли. Для этого устройства 1-Wire интегрируют небольшой конденсатор (~800 пФ) для накопления заряда, который питает устройство во время активности линии данных.
1 Wire is a wired half duplex serial bus designed by Dallas Semiconductor that provides low speed (16.3 kbit/s) data communication and supply voltage over a single conductor. 1 Wire is similar in concept to I2C, but with lower data rates and longer range. It is typically used to communicate with small inexpensive devices such as digital thermometers and weather instruments. A network of 1 Wire devices with an associated master device is called a MicroLAN. The protocol is also used in small electronic keys known as a Dallas key or
One distinctive feature of the bus is the possibility of using only two conductors — data and ground. To accomplish this, 1 Wire devices integrate a small capacitor (~800pF) to store charge, which powers the device during periods when the data line is active.
Пример использования
1 Wire устройства доступны в различных корпусах: интегральные схемы, корпус типа TO 92 (как обычно используется для транзисторов) и портативная форма, называемая ключом или Dallas, представляющая собой небольшой корпус из нержавеющей стали, напоминающий батарейку от часов. Производители также выпускают устройства, более сложные, чем отдельный компонент, использующие шину 1 Wire для связи. 1 Wire устройства могут быть установлены в различных частях системы. Они могут быть одним из многих компонентов на печатной плате внутри продукта, либо отдельным компонентом в устройстве, например, температурным зондом. Их можно присоединять к контролируемому устройству. Некоторые лабораторные системы подключаются к 1 Wire устройствам с помощью кабелей с модульными разъемами или кабеля CAT 5. В таких системах популярны разъемы RJ11 (6P2C или 6P4C, обычно используемые для телефонов). Системы датчиков и исполнительных механизмов можно создавать, соединяя между собой множество 1 Wire компонентов. Каждый 1 Wire компонент содержит всю необходимую логику для работы с шиной 1 Wire. Примеры включают регистраторы температуры, таймеры, датчики напряжения и тока, мониторы батарей и память. Их можно подключить к ПК через преобразователь шины. USB, последовательные порты RS 232 и параллельные порты – популярные решения для подключения MicroLan к хост-ПК. 1 Wire устройства также могут быть напрямую подключены к микроконтроллерам различных производителей. Подключаются к 1 Wire шине через разъемы с контактами, соприкасающимися с "крышкой" и "основанием" корпуса. Альтернативно, соединение может быть полупостоянным, с разъемом, в который защелкиваются контакты, но из которого устройство легко извлекается. Каждый 1 Wire чип имеет уникальный идентификационный код. Эта особенность делает чипы, особенно, подходящими в качестве электронных ключей. Области применения включают замки, охранную сигнализацию, компьютерные системы, аксессуары, одобренные производителем, электронные часы, а также ключи для курьеров и обслуживания интеллектуальных сейфов. Использовались в качестве "умных" билетов Akbil для общественного транспорта в Стамбуле.
Электропитание
Блоки питания, дисплеи и ноутбуки Mac, оснащенные разъемами Apple MagSafe и MagSafe 2, используют протокол 1 Wire для отправки и получения данных от подключенного ноутбука Mac через средний контакт разъема. Эти данные включают модель блока питания, мощность и серийный номер, а также команды ноутбуку для подачи полной мощности и включения красного или зеленого светодиода в разъеме. Оригинальные блоки питания для ноутбуков Dell используют протокол 1 Wire для передачи данных о мощности, силе тока и напряжении на ноутбук через третий провод. Ноутбук откажется от зарядки, если адаптер не соответствует установленным требованиям.
Протокол связи
В любой MicroLan всегда есть один мастер, который может быть персональным компьютером или микроконтроллером. Мастер инициирует активность на шине, что упрощает предотвращение коллизий. Протоколы встроены в программное обеспечение мастера для обнаружения коллизий. После коллизии мастер повторяет необходимую коммуникацию. Сеть 1 Wire представляет собой один открытый коллектор с одним подтягивающим резистором. Подтягивающий резистор поднимает уровень сигнала на линии до 3 или 5 вольт. У главного устройства и всех подчиненных устройств есть одно открытое коллекторное соединение для управления линией и возможность определения ее состояния. Несмотря на название "1 Wire", все устройства также должны иметь второй проводник для заземления, чтобы обеспечить обратный ток через линию данных. Коммуникация происходит, когда мастер или подчиненное устройство кратковременно опускает уровень сигнала на шине, то есть подключает подтягивающий резистор к земле через выходной MOSFET. Линия данных находится в высоком состоянии, когда неактивна, и поэтому может также питать ограниченное количество подчиненных устройств. Достижимые скорости передачи данных составляют 16,3 кбит/с. Также имеется режим ускорения, который увеличивает скорость коммуникации в 10 раз. Короткую шину 1 Wire можно управлять с помощью одного цифрового пина ввода-вывода микроконтроллера. Также может использоваться универсальный асинхронный приемопередатчик (UART). Доступны специализированные драйверы и мостовые микросхемы 1 Wire. Доступны также мостовые микросхемы для универсальной последовательной шины (USB). Мостовые микросхемы особенно полезны для работы с кабелями длиной более 100 м. Производитель протестировал до 300 метров витой пары, то есть телефонных кабелей. Для таких больших длин требуется корректировка подтягивающих резисторов с 5 до 1 кОм. Мастер начинает передачу с импульса сброса, который опускает уровень сигнала на линии до 0 вольт не менее чем на 480 мкс. Это сбрасывает все подчиненные устройства на шине. После этого любое подчиненное устройство, если оно присутствует, подтверждает свое наличие импульсом "присутствия": оно удерживает шину в низком состоянии не менее 60 мкс после того, как мастер отпустит шину. Для отправки двоичной "1" мастер шины посылает очень короткий (1–15 мкс) импульс низкого уровня. Для отправки двоичной "0" мастер посылает импульс низкого уровня длительностью 60 мкс. Падающий фронт импульса используется для запуска моностабильного мультивибратора в подчиненном устройстве. Мультивибратор в подчиненном устройстве считывает линию данных примерно через 30 мкс после падающего фронта. Внутренний таймер подчиненного устройства – это недорогой аналоговый таймер. Он имеет аналоговые допуски, которые влияют на точность его синхронизации. Поэтому длительности импульсов рассчитываются с учетом запаса. Следовательно, импульсы "0" должны быть длительностью 60 мкс, а импульсы "1" не должны превышать 15 мкс. При приеме данных мастер посылает импульс 0 вольт длительностью 1–15 мкс для запуска каждого бита. Если передающее подчиненное устройство хочет отправить "1", оно ничего не делает, и шина переходит в подтянутое состояние. Если передающее подчиненное устройство хочет отправить "0", оно опускает линию данных до земли на 60 мкс. Базовая последовательность – это импульс сброса, за которым следует восьмибитная команда, а затем данные отправляются или принимаются группами по восемь бит. При передаче последовательности данных ошибки могут быть обнаружены с помощью восьмибитной CRC (слабая защита данных). Множество устройств могут совместно использовать одну и ту же шину. Каждое устройство на шине имеет 64-битный серийный номер, из которых восемь бит используются в качестве контрольной суммы, что позволяет создать "вселенную" из 256 (более 7,2 × 1016) уникальных идентификаторов устройств. Младший байт серийного номера – это восьмибитное число, которое указывает тип устройства. Старший байт – это стандартный (для шины 1 Wire) восьмибитный CRC. Алгоритм поиска может быть реализован в альтернативной форме, изначально просматривая пути с адресными битами, равными 1, а не 0. В этом случае инвертирование 56 адресных битов и их последующее изменение порядка дает порядок обнаружения. Расположение устройств на шине иногда имеет значение. В таких ситуациях микроконтроллер может использовать несколько пинов, или производитель предлагает устройство 1 Wire, которое может отключать шину или передавать ее дальше. Таким образом, программное обеспечение может исследовать последовательные домены шины.
Пример связи с устройством
Следующие сигналы были сгенерированы FPGA, который являлся ведущим устройством при взаимодействии с чипом DS2432 (EEPROM), и измерены с помощью логического анализатора. Высокий уровень сигнала на выходе 1-Wire означает, что выход FPGA находится в высокоимпедансном состоянии, и устройство 1-Wire может подтянуть шину к низкому уровню. Низкий уровень означает, что FPGA подтягивает шину к низкому уровню. Вход 1-Wire – это измеренный сигнал шины. В момент выборки входного сигнала высокого уровня, FPGA выполняет выборку входного сигнала для обнаружения ответа устройства и приема битов.
Инструменты развития
При разработке и/или отладке шины 1-Wire, анализ аппаратных сигналов может быть очень важным. Логические анализаторы и анализаторы шин – это инструменты, которые собирают, анализируют, декодируют и сохраняют сигналы для упрощения визуализации высокоскоростных сигналов.