Разделы презентаций


Интерфейс 1-Wire

Содержание

1-Wire (англ. один провод) — двунаправленная шина связи для устройств с низкоскоростной передачей данных (обычно 15,4 Кбит/с, максимум 125 Кбит/с в режиме overdrive), в которой данные передаются по цепи питания (то

Слайды и текст этой презентации

Слайд 1Интерфейс 1-Wire

Интерфейс 1-Wire

Слайд 21-Wire (англ. один провод) — двунаправленная шина связи для устройств

с низкоскоростной передачей данных (обычно 15,4 Кбит/с, максимум 125 Кбит/с

в режиме overdrive), в которой данные передаются по цепи питания (то есть всего используются два провода — один для заземления, а второй для питания и данных; в некоторых случаях используют и отдельный провод питания).
1-Wire разработан в 90-х корпорацией Dallas Semiconductor (с 2001 года — Maxim Integrated) и является её зарегистрированной торговой маркой.

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

На 1-Wire работает большинство "таблеток" — домофонных чипов (DS1990A), карточек доступа, а также через 1-Wire общаются популярные датчики температуры (DS18S20 и DS18B20), транзисторные ключи (DS2405, DS2406), программируемые порты ввода-вывода (DS2408), АЦП и ЦАП, часы реального времени (DS2417) и многое другое.
1-Wire (англ. один провод) — двунаправленная шина связи для устройств с низкоскоростной передачей данных (обычно 15,4 Кбит/с,

Слайд 3Интерфейс 1-Wire, регламентирован разработчиками для применения в трех основных сферах-приложениях:
приборы

в специальных корпусах MicroCAN для решения проблем идентификации, переноса или

преобразования информации (технология iButton),
программирование встроенной памяти интегральных компонентов,
системы автоматизации (технология сетей 1-Wire-сетей).

Преимущества 1-Wire:
простое и оригинальное решение адресуемости абонентов;
несложный протокол;
простая структура линии связи;
малое потребление компонентов;
легкое изменение конфигурации сети;
значительная протяженность линий связи;
исключительная дешевизна всей технологии в целом.

Однопроводные компоненты 1-Wire являются самотактируемыми полупроводниковыми устройствами, в основе обмена информацией между которыми, лежит управление изменением длительности временных интервалов импульсных сигналов в однопроводной среде и их измерение.

Вся информация, циркулирующая в сети, воспринимается абонентами либо как команды, либо как данные.
Команды сети генерируются мастером и обеспечивают различные варианты поиска и адресации ведомых устройств, определяют активность на линии даже без непосредственной адресации отдельных компонентов, управляют обменом данными в сети и т.д.
Интерфейс 1-Wire, регламентирован разработчиками для применения в трех основных сферах-приложениях:приборы в специальных корпусах MicroCAN для решения проблем

Слайд 4Рисунок 1 - Пример подключения ведущего и ведомых устройств по

протоколу 1-Wire
Топология сети — общая шина. Сеть устройств 1-Wire со

связанным основным устройством названа «MicroLan», это также торговая марка Dallas Semiconductor.

Режим связи в этом интерфейсе – асинхронный и полудуплексный.
При отсылке многобайтовых данных передача идёт от младшего байта к старшему.

Физический уровень

Для организации интерфейса необходимы как минимум линия данных и «общий провод».

Может быть вариант с выделенной линией питания (Slave 2, Slave 3, например, 3В и 5 В).
Однако некоторые ведомые устройства могут питаться и «паразитно» – получать "подпитку" через шину данных (Slave 1).
Ограничение максимальной длины однопроводной линии регламентировано разработчиками на уровне 300 м.

Рисунок 1 - Пример подключения ведущего и ведомых устройств по протоколу 1-WireТопология сети — общая шина. Сеть

Слайд 5Рисунок 2 - Упрощенная схема аппаратной реализации интерфейса 1-Wire
Упрощенная схема

аппаратной реализации интерфейса 1-Wire показана на рисунке 2.
1. Вывод

DQ устройства представляет собой вход КМОП-логического элемента, который может быть зашунтирован (замкнут на общий провод) полевым транзистором. Сопротивление канала этого транзистора в открытом состоянии – около 100 Ом. Когда транзистор заперт – имеется небольшой ток утечки (примерно 5 мкА) на общий провод.
2. Шина 1-Wire должна быть подтянута отдельным резистором к напряжению питания устройств (от 3 до 5В – уточняется по характеристикам конкретного устройства). Сопротивление этого резистора 4.7 кОм, однако, это значение рекомендовано только для достаточно коротких линий.
3. Если шина 1-Wire используется для подключения удаленных на большое расстояние устройств, то сопротивление этого резистора следует уменьшить.
4. Минимально допустимое сопротивление – около 300 Ом, а максимальное – около 20-30 кОм. Данные величины – ориентировочные и всегда должны быть уточнены по характеристикам конкретного устройства 1-Wire его максимальный втекающий ток линии DQ, который, собственно, и определяет минимум внешнего сопротивления.

//

//

Рисунок 2 - Упрощенная схема аппаратной реализации интерфейса 1-WireУпрощенная схема аппаратной реализации интерфейса 1-Wire показана на рисунке

Слайд 6Канальный уровень
Обмен информацией ведётся так называемыми тайм-слотами длительностью 60 мкс.


Один тайм-слот служит для обмена одним битом информации.

Данные передаются

бит за битом, начиная с младшего бита младшего байта.

При передаче по 1-Wire, например, двухбайтового числа порядок передачи будет таким:

Например, десятичное число 10 23410 – в двоичном виде выглядит так: 0010 0111 1111 10102
В памяти число размещено так: 1111 1010 0010 0111.
Передача по 1-Wire будет выглядеть так: 0→1→0→1→1→1→1→1→1→1→1→0→0→1→0→0

При обмене информацией ведущий инициирует каждую связь на битовом уровне. Это означает, что передача каждого бита, независимо от направления (передача или приём), должна быть инициирована ведущим.

Шина данных по умолчанию подтягивается к "единице", поэтому для начала как приёма, так и для передачи ведущий опускает линию в "ноль" на некоторое время.

Внимание: ни ведущий, ни ведомые не выставляют на шине "единицу" – это черевато коротким замыканием если одно устройство выставит на шине "1", а другое – "0".
Поэтому как ведущий, так и ведомый могут использовать только два состояния:
"выход в ноль" и
"z-состояние" (на вход без подтяжки).
Подтяжка к питанию осуществляется резистором.
Канальный уровеньОбмен информацией ведётся так называемыми тайм-слотами длительностью 60 мкс. Один тайм-слот служит для обмена одним битом

Слайд 7В 1-Wire есть 5 основных команд для связи по шине

:

"Запись 1";
"Запись 0";
"Чтение";
"Сброс" ;
"Присутствие".

На рисунках

выделено: красным – управление линией от ведущего, синим – управление линией от ведомого, черным – освобожденная линия (с помощью подтяжки шина автоматически переходит в "единицу").

Сигнал "Запись 0". Ведущий формирует низкий уровень в течение не менее 60 мкс, но не дольше 120 мкс.

Сигнал "Запись 1". Ведущий устанавливает низкий уровень в течение 1…15 мкс. После этого, в течение оставшейся части временного слота он освобождает шину.

В 1-Wire есть 5 основных команд для связи по шине :

Слайд 8Сигнал "Чтение". Ведущий устанавливает низкий уровень в течение 1…15 мкс.

После этого подчинённый, если хочет передать 0, удерживает шину в

низком состоянии до 60 мкс; если же подчинённый хочет передать 1, то он просто освобождает линию. Ведущий обычно сканирует состояние шины по истечении 15 мкс после установки низкого уровня на шине.

Так, ведомый удерживает линию к земле, если хочет передать "0", и просто отпускает линию, если хочет передать "1".

Таким образом при чтении получаем следующие диаграммы.

Сигнал

Слайд 9Сигнал "Сброс/присутствие". Для этого типа сигнала временные интервалы импульсов отличаются.


Ведущий устанавливает низкий уровень в течение 8 временных слотов (480

мкс), а затем освобождает шину. Данный длительный период низкого состояния называется сигнал "Сброс".

Если на шине присутствует подчинённый, то он должен в течение 60 мкс после освобождения ведущим шины установить низкий уровень длительностью не менее 60 мкс. Данный отклик носит название сигнал "Присутствие".

Сброс

Присутствие

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

Данная связка сигналов всегда начинает любой обмен информацией между устройствами.

Любое ведомое устройство после получения питания сразу же выдаёт сигнал присутствия.

Сигнал "Сброс" позволяет ведущему досрочно завершить обмен информацией – например, если датчик температуры передаёт всю свою память, а нужны, например, только первые два байта, которые собственно содержат значение температуры, то после получения этих двух байт микросхема просто может опустить линию в ноль на нужное количество времени – датчик поймет, что больше ничего пересылать не нужно.

Сигнал

Слайд 10Сетевой и транспортный уровни
Весь обмен на шине 1-Wire происходит посредством

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

минимальный набор стандартных команд, которые поддерживают все 1-Wire-устройства – так называемые ROM-команды.

Алгоритм взаимодействия:
1. Ведущий посылает на линию сигнал "Сброс". Затем линия освобождается для отклика ведомых. Если на шине присутствует ведомый, то в течение 60 мкс он сообщает о своём "присутствии".
Если же ведущий не получает отклика – "присутствия", то он считает, что подключённых к шине устройств нет.
2. Сетевой уровень: ведущий определяет устройство на шине данных к которому он будет дальше обращаться. Данный выбор обеспечивается отсылкой одной из ROM-команд (длиной в 1 байт), которые работают с уникальными кодами устройств:
Read ROM (0х33) – Чтение адреса устройства. Используется для определения адреса единственного устройства на шине, если точно известно, что есть только одно подчинённое устройство (например, только один датчик температуры или один домофонный ключ), тогда для считывания его кода не нужно выполнять команду поиск других ведомых. При получении данной команды все ведомые устройства на шине отсылают свой уникальный код.
Skip ROM (0хCC) – Игнорировать адрес. Используется для обращения к единственному устройству на шине, при этом адрес устройства игнорируется (можно обращаться к неизвестному устройству или дать команду всем устройствам на шине (широковещательная рассылка) – например, нужно, чтобы все подключённые датчики одновременно считали температуру.
Match ROM (0х55) – Выбор адреса. Используется для обращения к конкретному адресу устройства из многих подключенных. После отсылки команды ведущий передаёт 64-разрядный код адреса ведомого устройства. По завершении передачи разрешается отвечать только тому подчинённому устройству (после приёма следующего импульса сброса), которое приняло свой идентификатор, – остальные ведомые устройства молча ждут импульса сброса.
Сетевой и транспортный уровниВесь обмен на шине 1-Wire происходит посредством специальных команд. Их число для каждого типа

Слайд 11Search ROM (0хF0) – Поиск адресов. Используется при универсальном алгоритме

определения количества подключенных устройств и их адресов. Эта команда используется

когда адресные коды подключённых устройств не известны.

После формирования Ведущим устройством (Мастер) команды "Search ROM" все ведомые устройства посылают на шину значение своего младшего бита; при этом сначала в течение одного такта ведомыми посылается "прямое" значение бита, а в течение следующего такта – "обратное" (логическое НЕ, дополнение) значение этого же бита.
Тогда Мастер может считать следующие последовательности:
"01" – если у всех ведомых устройств младший бит равен "0" (сначала они отсылают "0", потом (НЕ "0“) = "1")
"10" – если у всех ведомых устройств младший бит равен "1"
"00" – если есть так называемый конфликт – у некоторых устройств младший бит равен "1", у остальных – "0". Это когда при передаче "прямого" значения устройства с "0" опускают линию, при передаче "обратного" – устройства с "1" также опускают линию.

Далее Мастер в следующем временном слоте отсылает "0" или "1", таким образом определяя, с какими устройствами дальше будет общаться – все устройства, у которых младший бит не соответствует биту, сформированному мастером на этом этапе, перейдут в состояние ожидания и будут находиться в нём, пока не получат импульс сброса.
Затем происходят аналогичные 63 цикла чтения-выбора следующих бит адреса, пока, наконец, ведущее устройство не определит код ROM одного из подчинённых устройств и не обратится к нему без его специальной адресации командой Macth ROM (0х55).
Когда закончен поиск одного идентификатора, то все подчиненные устройства, кроме одного, должны находиться в состоянии ожидания (idle).
Для Мастера каждая стадия выбора состоит из двух тайм-слотов чтения и одного тайм-слота записи.
Стандартная скорость отработки команды составляет:
960 мкс + (8 + 3*64) *61 мкс =13.16 мс, т.е. ~75 узлов сети в секунду.
Search ROM (0хF0) – Поиск адресов. Используется при универсальном алгоритме определения количества подключенных устройств и их адресов.

Слайд 13Уникальные коды устройств 1-Wire
Каждое 1-Wire устройство имеет свой 64-х битный

код, состоящий из трёх частей:
Младший байт – это код семейства,

к которому относится устройство,
6 следующих байт – уникальный в семействе серийный номер.
Старший байт – это контрольная сумма (CRC код), который служит для проверки правильности приёма всего кода.

Фирма Maxim гарантирует, что один раз использованный адрес никогда не повторится в другом устройстве.
В самом деле, 48 бит – это 2,81•1014 различных чисел. Если производить 1000 миллиардов (1012 ) различных устройств ежегодно, то все серийные номера можно использовать не ранее чем через 281 год – и это только для одного семейства.

Так, например, на родных даллосовских (сейчас максимовских) "таблетках" часть уникального кода – а именно, 48-битный серийный номер – пишется на металле в шестнадцатиричном виде.
Уникальные коды устройств 1-WireКаждое 1-Wire устройство имеет свой 64-х битный код, состоящий из трёх частей:Младший байт –

Слайд 14Транспортный уровень – если были отправлены команды "Match ROM" (0х55)

или "Skip ROM" (0хСС), то далее ведущий отправляет какую-либо

функциональную команду.
Набор функциональных команд и дальнейшее поведение (например, должен ли ведущий быть готов принимать данные от выбранного ведомого устройства) зависит от конкретного 1-Wire устройства.

Например, если надо микроконтроллеру (МК) получить информацию от датчика температуры, например, DS18S20.
Алгоритм работы будет следующим:
МК отсылает импульс «Сброс».
Датчик отвечает импульсом «Присутствие».
МК отсылает адресную команду "Skip ROM" – так как заранее известно, что датчик на линии один, то нет необходимости работать с "адресами" (идентификаторами).
МК отсылает функциональную команду "Convert T" – по этой команде датчик температуры начнёт однократное температурное преобразование. Результат этого преобразования будет записан в память датчика.
МК ждёт, пока датчик закончит преобразование (ведомое устройство никоим образом не может само сообщить, что оно "освободилось", поэтому микроконтроллер просто ждёт время, указанное в техдокументации).
МК отсылает импульс «Сброс».
Датчик отвечает импульсом «Присутствие».
МК снова отсылает адресную команду «Skip ROM».
МК отсылает функциональную команду "Read Scratchpad" – по этой команде датчик отсылает 9 байт своей памяти.
МК считывает нужное количество байт (значение температуры содержится в первых двух)
При необходимости МК завершает (прерывает) сеанс связи, отсылая импульс «Сброс».

Транспортный уровень – если были отправлены команды

Слайд 15Каждое устройство имеет свои требования к «паразитному» питанию, но обычно

это требование не опускать линию данных в ноль в течение

выполнения ведомым определённых функциональных команд.

Например, для датчика температуры DS18S20, использующего протокол 1-Wire, необходимо гарантировать, что на шине данных будет достаточный уровень напряжения при выполнении температурного преобразования или при копировании данных из памяти EEPROM.
Согласно технической документации, при этом рекомендуется подтягивать линию данных к питанию с помощью полевого транзистора; на деле же при использовании напряжения +5-+5.5 В микроконтроллеру достаточно просто не опускать шину данных в ноль (в случае именно с датчиком DS18S20 – другие датчики могут потреблять больше тока).
Также именно «паразитное» питание является одной из причин, почему микроконтроллеру стоит передавать сигналы (то есть опускать линию данных в ноль) по минимальному времени – это позволяет устройствам на «паразитном» питании нормально функционировать.

«Паразитное» питание

Альтернативой применению внешнего питания служит, так называемый, механизм "паразитного питания", действие которого заключается в использовании каждым из ведомых компонентов 1-Wire-линии электрической энергии импульсов, передаваемых по шине данных, которая аккумулируется специальной, встроенной в прибор ёмкостью.
Кроме того, отдельные компоненты однопроводных сетей могут использовать режим питания по шине данных, когда энергия к приемнику поступает непосредственно от Мастера по линии связи, при этом обмен информацией в сети принудительно прекращается.

Каждое устройство имеет свои требования к «паразитному» питанию, но обычно это требование не опускать линию данных в

Слайд 16Для того, чтобы гарантировать целостность данных устройствами 1-Wire используется специальная

проверка контрольной суммы основанная на циклическом избыточном коде CRC –

(Cyclic Redundancy Check ).

В устройствах 1-Wire можно найти два разных варианта CRC.
CRC8 – 8-битный (называется Dallas One Wire CRC или DOW-CRC),
CRC16 – 16-битный.

CRC8 используется в секции ROM всех устройств. Также CRC8 используется в некоторых устройствах для проверки других данных, наподобие команд, выданных на шине.
CRC16 используется в некоторых устройствах для проверки на ошибки в достаточно больших наборах данных.

Аппаратный эквивалент 8-битной CRC, используемой на 64-битном идентификаторе, показан на рисунке 3. Блоками представлены отдельные биты регистра сдвига.

Эквивалентный полином для этой CRC будет X8 + X5 + X4 + 1.

Контрольная сумма

Рисунок 3 - Аппаратный эквивалент CRC8, используемой в 1-Wire устройствах

Для того, чтобы гарантировать целостность данных устройствами 1-Wire используется специальная проверка контрольной суммы основанная на циклическом избыточном

Слайд 17Микросхема DS18B20 представляет собой температурный датчик в корпусе TO92. Первый

вывод (GND) подключается к шине RETURN, второй (DQ) DATA, а

третий используется для подачи внешнего питания. Внешнее питание может быть организовано от отдельного источника +5 V.

DS18B20 – высокоточный цифровой термометр с однопроводным интерфейсом в стандарте MicroLAN. Диапазон измеряемых температур от -55° C до +125° C.
Считываемый с прибора цифровой код является прямым непосредственным кодом измеренного значения температуры и не нуждается в дополнительных преобразованиях.
DS18B20 имеет встроенный АЦП имеющий 12 разрядов выходного кода.
Абсолютная погрешность преобразования меньше 0,5° C в диапазоне контролируемых температур – от +10° C до +85° C.
Максимальное время полного 12-ти разрядного преобразования ~750мс.
Внутренняя энергонезависимая память EEPROM обеспечивает запись произвольных значений верхней и нижней границы температурных уставок. Кроме того, микросхема содержит встроенный логический механизм приоритетной сигнализации в линию о факте выхода температуры за один из выбранных порогов.

Термометр имеет индивидуальный 64-разрядный регистрационный номер (групповой код 0х28) и обеспечивает возможность работы без внешнего источника питания, только за счет «паразитного» питания однопроводной линии.
Питание прибора через отдельный внешний вывод производится напряжением от 3,0 В до 5,5 В.

Цифровой термометр с однопроводным интерфейсом

Микросхема DS18B20 представляет собой температурный датчик в корпусе TO92. Первый вывод (GND) подключается к шине RETURN, второй

Слайд 18Получение значений температуры с датчиков выполняется в два этапа:

1) Запрос

на измерение температуры (команда 0x44). Для устройств с паразитным питанием

в течение 10 мкс после этого должен быть включен относительно низкоомный подтягивающий резистор на всё время замера (до 750 мс).
2) Запрос на считывание измеренных значений (команда 0xBE).
Любому запросу к устройству обязательно предшествует сигнал «Cброс» и одна из команд «выбора устройства», в соответствии с сетевым протоколом 1-wire.

Результаты измерений сохраняются в устройстве в буферной энергонезависимой памяти размером 9 байт, называемой скратчпад (scratchpad – электронный блокнот).

У всех трёх рассматриваемых моделей термодатчиков структура скратчпада схожа между собой:
Позиция Значение
0 младший байт значения температуры
1 старший байт значения температуры
2,3 граничные контрольные значения, или пользовательские данные
4 регистр конфигурации (DS18B20, DS1822) /
зарезервирован (принимает значение 0xFF для DS18S20)
5 зарезервирован (принимает значение 0xFF)
6 зарезервирован (DS18B20, DS1822)/остаток COUNT_REMAIN (DS18S20)
7 зарезервирован (принимает значение 0x10 для DS18B20, DS1822)
/множитель = отсчётов на градус (всегда 0x10 = 16 для DS18S20)
8 контрольная сумма CRC, рассчитывается для всего скратчпада по тем же правилам,
что и для адреса 1-wire.

Опрос температурных датчиков DS18B20, DS18S20, DS1822

Получение значений температуры с датчиков выполняется в два этапа:1) Запрос на измерение температуры (команда 0x44). Для устройств

Слайд 19Измеренное значение температуры сохраняется в виде знакового 16-и битного целого

в первых двух байтах скратчпада, с начала младший байт.

Датчики DS18B20

и DS1822 имеют программируемое разрешение от 9 до 12 бит, и сохраняют результат всегда в 1/16 градусах Цельсия. Таким образом, значения
0x50 0x05 – соответствуют +85°С,
0xA2 0x00 – соответствуют +10,125°С,
0x6F 0xFE – соответствуют –25,0625°С.

По умолчанию разрешение АЦП задано 12 бит. При выборе меньшего разрешения сокращается время замера температуры, при этом недостающее число младших разрядов результата будет содержать неопределённые данные.

В отличие от них, DS18S20 сохраняет результат с разрешением в половину градуса. То есть
0xAA 0x00 – соответствует +85°С,
0x32 0x00 – соответствует +25°С,
0xCE 0xFF – соответствует –25°С.
Однако, можно вычислить значение с точностью до 1/16 градуса, используя значение COUNT_REMAIN, сохраняемое в ячейке 6 скратчпада по следующей формуле:

ТЕМПЕРАТУРА = ПРОЧИТАННАЯ ТЕМПЕРАТУРА – 0,25°С + COUNT_REMAIN / 16,

где 16 – это количество отсчётов на градус, значение, возвращаемое в ячейку 7 скратчпада и всегда равное 16 для DS18S20.
Измеренное значение температуры сохраняется в виде знакового 16-и битного целого в первых двух байтах скратчпада, с начала

Слайд 20Рисунок 4 - Схема подключения нескольких датчиков DS18B20 с внешним

питанием.
Рисунок 5 - Схема подключения датчика DS18B20 в режиме «паразитного»

питания
Рисунок 4 - Схема подключения нескольких датчиков DS18B20 с внешним питанием.Рисунок 5 - Схема подключения датчика DS18B20

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика