stringtranslate.com

1-проводной

iButton в пластиковом брелоке, используемый в смарт-билете Istanbul Akbil.
Кольцо Java со встроенным iButton

1-Wire — это проводная полудуплексная последовательная шина , разработанная Dallas Semiconductor , которая обеспечивает низкоскоростную (16,3 кбит/с [1] ) передачу данных и подачу напряжения по одному проводнику . [2]

1-Wire по своей концепции аналогичен I 2 C , но с более низкой скоростью передачи данных и большей дальностью действия. Обычно он используется для связи с небольшими недорогими устройствами , такими как цифровые термометры и погодные приборы. Сеть устройств 1-Wire с соответствующим главным устройством называется MicroLAN . Протокол также используется в небольших электронных ключах, известных как ключ Далласа или iButton .

Отличительной особенностью шины является возможность использования всего двух проводников — данных и земли. Для этого в устройствах 1-Wire имеется небольшой конденсатор (~800 пФ ) для хранения заряда, который питает устройство в периоды, когда линия передачи данных активна. 

Пример использования

Устройства 1-Wire доступны в различных корпусах: интегральные схемы , корпус в стиле TO-92 (который обычно используется для транзисторов) и портативная форма, называемая iButton или ключ Далласа, который представляет собой небольшой корпус из нержавеющей стали, напоминающий часы . батарея . Производители также производят устройства, более сложные, чем один компонент, которые используют для связи шину 1-Wire.

Устройства 1-Wire могут устанавливаться в разных местах системы. Это может быть один из многих компонентов на печатной плате продукта. Это также может быть отдельный компонент внутри устройства, например, датчик температуры. Его можно подключить к контролируемому устройству. Некоторые лабораторные системы подключаются к устройствам 1-Wire с помощью кабелей с модульными разъемами или кабеля CAT-5 . В таких системах популярны RJ11 ( модульные вилки 6P2C или 6P4C , обычно используемые для телефонов).

Системы датчиков и исполнительных механизмов можно построить, соединив вместе множество компонентов 1-Wire. Каждый компонент 1-Wire содержит всю логику, необходимую для работы на шине 1-Wire. Примеры включают регистраторы температуры , таймеры, датчики напряжения и тока, мониторы батареи и память . Их можно подключить к ПК с помощью преобразователя шины. Интерфейсы USB , последовательного порта RS-232 и параллельного порта являются популярными решениями для подключения MicroLan к главному ПК. Устройства 1-Wire также можно напрямую подключать к микроконтроллерам различных производителей.

iButtons подключаются к системе шины 1-Wire посредством розеток с контактами, касающимися «крышки» и «дна» канистры. В качестве альтернативы соединение может быть полупостоянным с разъемом, в который вставляется iButton, но из которого он легко извлекается.

Каждая микросхема 1-Wire имеет уникальный идентификационный код. Эта особенность делает чипы, особенно iButtons, подходящими электронными ключами. Некоторые области применения включают замки, охранную сигнализацию, компьютерные системы, аксессуары, одобренные производителем, таймеры, а также ключи для курьерской доставки и обслуживания интеллектуальных сейфов. iButtons использовались в качестве смарт-билетов Akbil на общественный транспорт в Стамбуле .

Источники питания

Блоки питания, дисплеи и ноутбуки Mac, оснащенные разъемами Apple MagSafe и MagSafe-2, используют протокол 1-Wire для отправки и получения данных на подключенный ноутбук Mac и обратно через средний контакт разъема. Данные включают модель источника питания, мощность и серийный номер; и команды ноутбука на подачу полной мощности и подсветку красных или зеленых светодиодов в разъеме. [3]

Оригинальные блоки питания Dell для ноутбуков используют протокол 1-Wire для отправки данных по третьему проводу на портативный компьютер о номинальных значениях мощности, тока и напряжения. Ноутбук тогда откажется от зарядки, если адаптер не соответствует требованиям. [4]

Протокол связи

В любой MicroLan всегда имеется один главный ответственный, которым может быть персональный компьютер или микроконтроллер . Ведущий инициирует активность на шине, упрощая предотвращение столкновений на шине. В программное обеспечение ведущего устройства встроены протоколы обнаружения коллизий. После коллизии мастер повторяет требуемую связь.

Сеть 1-Wire представляет собой один провод с открытым стоком и один подтягивающий резистор . Подтягивающий резистор подтягивает провод до 3 или 5 вольт. Главное устройство и все подчиненные устройства имеют одно соединение с открытым стоком для управления проводом и способ определения состояния провода. Несмотря на название «1-Wire», все устройства также должны иметь второй проводник для заземления, чтобы обеспечить протекание обратного тока через провод передачи данных. [5] Связь происходит, когда ведущий или ведомый на короткое время переводит шину в низкий уровень, т. е . подключает нагрузочный резистор к земле через свой выходной МОП-транзистор. В режиме ожидания на проводе данных находится высокий уровень, поэтому он также может питать ограниченное количество ведомых устройств. Может быть достигнута скорость передачи данных 16,3 кбит/с. Также имеется режим ускоренной передачи, который ускоряет связь в 10 раз.

Короткая шина 1-Wire может управляться от одного цифрового контакта ввода-вывода микроконтроллера. Также можно использовать универсальный асинхронный приёмопередатчик (UART ) . [6] Доступны специальные микросхемы драйвера и моста 1-Wire . Также доступны чипы «моста» универсальной последовательной шины . Мостовые чипы особенно полезны при прокладке кабелей длиной более 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-битный серийный номер, восемь бит из которого используются в качестве контрольной суммы, что позволяет создать «вселенную» из 2 56 (более 7,2 × 10 16 ) уникальных идентификаторов устройств. Младший байт серийного номера представляет собой восьмибитное число, указывающее тип устройства. Самый старший байт — это стандартная (для шины 1-Wire) восьмибитная CRC. [7]

Существует несколько стандартных широковещательных команд, а также команд, используемых для обращения к конкретному устройству. Мастер может отправить команду выбора, затем адрес конкретного устройства. Следующая команда выполняется только адресованным устройством.

Протокол нумерации шины 1-Wire, как и другие протоколы разделения , представляет собой алгоритм, который мастер использует для считывания адреса каждого устройства на шине. Поскольку адрес включает в себя тип устройства и CRC, восстановление списка адресов также позволяет получить надежную инвентаризацию устройств на шине. Чтобы найти устройства, мастер передает команду перечисления , а затем адрес, «прослушивая» каждый бит адреса. Если адрес ведомого устройства соответствует всем отправленным на данный момент битам адреса, он возвращает 0. Ведущее устройство использует это простое поведение для систематического поиска действительных последовательностей битов адреса. Этот процесс намного быстрее, чем перебор всех возможных 56-битных чисел, поскольку как только обнаруживается недопустимый бит, все последующие биты адреса становятся недействительными. 56-битное адресное пространство ищется как двоичное дерево, что позволяет находить до 75 устройств в секунду. Порядок обнаружения адресов устройств с помощью этого протокола перечисления является детерминированным и зависит только от типа и серийного номера устройства. Обращение этих 56 битов дает порядок обнаружения устройств, использующих опубликованный алгоритм Maxim (алгоритм, определенный в примечаниях по применению 187 [8] ). Алгоритм поиска может быть реализован в альтернативной форме, первоначально ища пути с битами адреса, равными 1, а не 0. В этом случае инвертирование 56 бит адреса, а затем их изменение на противоположное, дает порядок обнаружения.

Расположение устройств на шине иногда имеет существенное значение. В таких ситуациях микроконтроллер может использовать несколько выводов или у производителя есть устройство 1-Wire, которое может отключать или включать шину. Таким образом, программное обеспечение может исследовать последовательные домены шины . [7]

Пример связи с устройством

Следующие сигналы были сгенерированы FPGA , которая была ведущей для связи с микросхемой DS2432 ( EEPROM ), и измерены с помощью логического анализатора. Высокий логический уровень на выходе 1-Wire означает, что выход FPGA находится в режиме трех состояний, и устройство 1-Wire может перевести шину в низкий уровень. Низкий уровень означает, что FPGA отключает шину. Вход 1-Wire представляет собой измеренный сигнал шины. При высоком входном времени выборки FPGA производит выборку входных данных для обнаружения ответа устройства и приема битов.

Инструменты разработки

При разработке и/или устранении неисправностей шины 1-Wire проверка аппаратных сигналов может быть очень важна. Логические анализаторы и анализаторы шин — это инструменты, которые собирают, анализируют, декодируют и сохраняют сигналы для упрощения просмотра высокоскоростных сигналов.

Смотрите также

Рекомендации

  1. ^ «Чтение и запись 1-проводных устройств через последовательные интерфейсы». Максим Интегрированный . Проверено 21 декабря 2022 г.
  2. ^ «Обзор технологии 1-Wire и ее использования» . Аналоговые устройства . Архивировано из оригинала 27 июня 2023 г. Проверено 21 июля 2023 г.
  3. ^ «Демонтаж и исследование разъема Apple Magsafe»» . rightTo.com . Проверено 18 июля 2017 г.
  4. ^ «Взлом идентификации зарядного устройства для ноутбука Dell» . hackaday.com . Проверено 30 ноября 2015 г.
  5. ^ «Онлайн-руководство по 1-Wire. В этом учебном пособии вы получите обзор протокола 1-Wire, работы его устройства и прикладных решений» . Архивировано из оригинала 2 мая 2009 г. Проверено 13 марта 2009 г.
  6. ^ «Использование UART для реализации 1-проводного мастера шины» .
  7. ^ ab «Обзор iButton» (PDF) . Архивировано из оригинала (PDF) 27 января 2009 года . Проверено 18 декабря 2008 г.081218 maxim-ic.com
  8. ^ «Алгоритм поиска 1 провода (примечание по применению 187)» (PDF) . Проверено 2 октября 2020 г. .

Внешние ссылки