iButton — это семейство многофункциональных микроэлектронных устройств, разработанных фирмой Dallas Semiconductor (USA) в настоящее время выпускаемых фирмой Maxim
iButton — это семейство микроэлектронных устройств, разработанных фирмой Dallas Semiconductor, USA (в настоящее время выпускаемых фирмой Maxim).
Каждое устройство iButton заключено в стальной герметичный цилиндрический корпус и имеет уникальный номер (ID), записываемый в процессе изготовления.
Все устройства iButton помещаются в стальной цилиндрический корпус MicroCan, выполнены по жестким стандартам и выдерживают серьезные механические и температурные нагрузки.
Обмен данными с iButton производится через интерфейс 1-Wire. Информация в этом интерфейсе передается по единственному проводнику. Питание iButton получают из этого же проводника, заряжая внутренний конденсатор в моменты, когда на шине нет обмена данными.
Скорость обмена достаточна для обеспечения передачи данных в момент касания контактного устройства.
Для подключения iButton к компьютеру компанией «Аладдин Р.Д.» выпускаются считыватели (адаптеры), преобразующие сигналы стандартных портов компьютера (RS232, USB) в сигналы 1-Wire.
Брелки-держатели позволяют надежно закрепить «таблетку» iButton.
Тип
Наименование
Объем памяти
Особенности
DS-1990
Электронный идентификатор Touch Serial Number
0
DS-1991
Электронный ключ с защищенной памятью Touch MultiKey
4 страницы по 48 байт
Первые три страницы имеют защиту от доступа Снята с производства, рекомендуем заменять на DS-1977
DS-1992
Электронный ключ с памятью 1К-бит Touch Memory 1K-bit
4 страницы по 32 байта
DS-1993
Электронный ключ с памятью 1К-бит Touch Memory 4K-bit
16 страниц по 32 байта
DS-1994
Электронный ключ с памятью 1К-бит Touch Memory 4K-bit
16 страниц по 32 байта
Дополнительно часы/календарь реального времени
DS-1995
Электронный ключ с памятью 1К-бит Touch Memory 16K-bit
64 страницы по 32 байта
DS-1996
Электронный ключ с памятью 1К-бит Touch Memory 64K-bit
256 страниц по 32 байта
DS-1977
Электронный ключ с защищенной памятью Touch MultiKey
4 страницы по 48 байт
Первые три страницы имеют защиту от доступа Рекомедуется для замены устаревшей модели DS-1991
48-битный уникальный серийный номер, присваиваемый методом «прожигания» лазером при изготовлении чипа. Первый байт ROM-памяти содержит код семейства, восьмой байт – CRC первых семи байт.
Считыватели для iButton
Cчитыватели представляют собой контактные устройства, предназначенные для считывания / записи информации при прикосновении к ним электронного идентификатора («таблетки») iButton.
Считыватель имеет удобный пластмассовый корпус и снабжен клеящейся подложкой, что позволяет прикрепить его к поверхности стола или к корпусу монитора. Форма и устройство считывателя защищены патентом РФ на полезную модель (патент №32353 от 22 апреля 2003 г.).
Для удержания «таблетки» при длительной работе считыватели могут иметь специальный фиксатор.
Для подключения к компьютеру или к другому оборудованию считыватели могут иметь различные варианты адаптеров:
Возможные варианты исполнения считывателей:
Для крепления «таблетки» iButton и удобной работы рекомендуется приобрести брелок-держатель, позволяющий прикрепить его на связку ключей.
Модели считывателей для iButton
RDS-01
Контактное устройство без фиксатора, телефонный провод 70 см, разъем DB9 для последовательного порта RS-232 (9 pin).
RDS-01 USB
Контактное устройство без фиксатора для USB порта.
RDS-03
Контактное устройство без фиксатора, телефонный провод 70 см, разъем RJ-11.
RDS-04
Контактное устройство без фиксатора, телефонный провод 70 см, без разъема.
RDS-11
Контактное устройство с фиксатором, телефонный провод 70 см, разъем DB9 для последовательного порта RS-232.
RDS-11 USB
Контактное устройство с фиксатором для USB порта.
RDS-13
Контактное устройство с фиксатором, телефонный провод 70 см, разъем RJ-11.
RDS-14
Контактное устройство с фиксатором, телефонный провод 70 см, без разъема.
Брелки-держатели для iButton
Брелок служит для надежного удержания электронного идентификатора («таблетки») iButton и удобной работы с ней при использовании практически любых считывателей.
Брелок выполнен из прочной пружинящей неломающейся пластмассы, позволяет многократно менять «таблетку» iButton, крепящуюся в своем посадочном месте с помощью двух защелкивающихся направляющих-фиксаторов.
Брелок с «таблеткой» удобно носить на связке с ключами.
Форма и устройство брелка-держателя защищены патентом РФ на полезную модель.
Возможные варианты поставки:
Модели брелков-держателей для iButton
RDS-21
Брелок для крепления «таблетки» iButton
RDS-20
Брелок для крепления «таблетки» iButton (вариант для использования совместно с контактными устройствами RDS-11 – RDS-14)
Электронный ключ iButton DS1996, именуемый также ключом Dallas Touch Memory DS96, представляет собой электронный идентификатор с встроенной памятью объёмом 64 Кбит.
К основным характеристикам и особенностям DS1996 относятся:
Функциональная схема DS1996
Блок-схема на рисунке показывает распределение функций между управляющим блоком и секцией памяти DS1996. Ключ имеет три главных модуля данных: 1) 64-битное ПЗУ с лазерным программированием, 2) 256-битный буферный блокнот и 3) 65536-битное EEPROM.
Устройство управления шиной должно сначала обеспечить одну из шести команд управления ПЗУ: 1) чтение ПЗУ, 2) проверка ПЗУ, 3) поиск в ПЗУ, 4) пропуск ПЗУ, 5) переключение-проверка ПЗУ, 6) переключение-пропуск ПЗУ.
Пока не выполнена команда переключения (Overdrive), обмен данными производится на стандартной скорости, а после её выполнения все операции происходят на повышенной скорости.
После того, как команда управления ПЗУ успешно выполнена, память DS1996 становится доступной и работа с ней осуществляется при помощи пяти команд работы с ПЗУ. Считывание и запись данных осуществляется младшим значащим битом вперед.
Описание идентификатора DS1996
64К-битная память DS1996 семейства iButton является мощным перезаписываемым носителем информации, предназначенным для идентификации и хранения информации об изделии или владельце. Энергонезависимая память позволяет хранить информацию об объекте, к которому она прикреплена. Данные передаются по последовательному протоколу 1-Wire, который требует только одной линии вывода данных и общего вывода.
Буферный блокнот является дополнительной страницей, которая используется в качестве буфера при записи данных в память ключа. Данные сначала записываются в буферный блокнот, из которого они могут быть считаны назад. После того, как данные будут проверены, они переписываются в память. Этот алгоритм гарантирует сохранность данных при изменении содержимого памяти.
48-битный уникальный серийный номер ключа DS1996 гарантирует полную идентификацию приборов. Прочный MicroCan корпус имеет высокую устойчивость к воздействию внешних неблагоприятных факторов, таких как загрязнение, влажность и вибрация. Его компактная форма в виде монеты, обеспечивает самовыравнивание в ответном контактном разъёме считывателя touch memory, что обеспечивает простоту использования человеком (оператором) или автоматом.
Аксессуары для идентификаторов DS1996 позволяют закрепить его практически на любой поверхности, включая печатные платы, фото-идентификационные брелоки и брелоки для ключей iButton.
Идентификаторы данного семейства могут применяться для идентификации пользователя в различных средствах защиты информации, контроля над передвижением грузового транспорта и путешественников, управления доступом в помещения и хранения градуировочных констант.
1. Основные принципы работы i Button фирмы Dallas Semiconductor
1.1. Технология
Рис. 1-1: Корпус i Button (размеры указаны в миллиметрах).
Рис. 1-2: Блочная диаграмма i Button.
Рис. 1-3: Внутренний интерфейс данных i Button.
Для нормальной работы с внешней логикой типа CMOS нужен только нагрузочный резистор 5 кОм, подсоединённый к плюсу питания VDD (5 вольт) и к выходу обычного двунаправленного порта с открытым стоком (см. рис. 1-4).
Рис. 1-4: Узел мастера шины (двунаправленный порт с открытым стоком).
Если вход и выход процессора используют разные выводы, то их подключают, как показано на рис. 1-5. Выход, подключенный на рисунке к базе транзистора, должен быть обычным двухтактным либо с внутренним нагрузочным резистором.
Рис. 1-5: Узел мастера шины с раздельными входным и выходным портами.
1.2. Протокол
Для простого аппаратного исполнения i Button, описанного выше, используется специальный, оптимизированный протокол, позволяющий осуществлять двунаправленный обмен данными. Протокол носит название 1-Wire. Последовательная передача осуществляется в полудуплексном режиме (т. е. либо приём, либо передача), внутри дискретно определённых временнЫх интервалов, называемых тайм-слотами. Микроконтроллер (master устройство), подключенный к считывающей чашке, всегда инициирует передачу с помощью посылки командного слова на прикладываемый к чашке i Button (он играет роль подчинённого, или slave устройства). К шине может быть подключено несколько slave-устройств. Подобно электрическим вилке и розетке, которые определяют потребитель и источник электричества, контактное считывающее устройство в виде чашки является атрибутом master-устройства (которое, кстати, во многих случаях служит источником энергии для i Button), а круглая металлическая «таблетка» i Button является признаком slave-устройства. Такое точное разделение позволяет автоматически избежать конфликтов типа соединения двух master-устройств.
Команды и данные посылаются бит за битом и собираются в байты, причём вначале передаётся наименее значащий бит LSB (Least Significant Bit). Синхронизация master и slave происходит по спадающему срезу сигнала, когда master замыкает стоком выходного транзистора порта линию данных на провод земли. Через определённое время после среза сигнала происходит анализ (выборка) состояния данных на линии (лог. 0 или лог. 1) для получения одного бита информации. В зависимости от направления передачи информации в данный момент эту выборку делает либо устройство master, либо устройство slave. Этот метод обмена информацией называют передачей данных в тайм-слотах. Каждый тайм-слот отсчитывается независимо от другого, и в обмене данными могут иметь место паузы без возникновения ошибок. Рис. 1-6 показывает основные характеристики такого обмена данными.
Рис. 1-6: Передача данных в тайм-слотах.
1.3. Синхронизация
Почти сразу после присоединения к считывающему устройству (через несколько микросекунд) slave-устройство i Button выдаёт на линию импульс низкого уровня, чтобы сказать устройству master, что оно на линии и ожидаёт получения команды. Этот сигнал называется presence pulse (импульс присутствия, далее просто presence). Master может также давать запрос на i Button с целью получения presence, путём выдачи на i Button специального импульса, называемого импульсом сброса (reset pulse, далее просто reset). Если i Button принял reset или если он был отсоединён от считывающего устройства, он будет анализировать линию данных, и как только линия снова достигнет высокого уровня, i Button сгенерирует presence. Полная последовательность импульсов reset и presence показана на рис. 1-7.
1.4. Передача данных
После выдачи presence i Button ожидает получения команды. Любая команда записывается в i Button с помощью последовательности тайм-слотов, записывающих в i Button биты 1 и 0. Такая последовательность создаёт полный байт команды.
Передача данных в обратном направлении (чтение i Button) использует те же самые временнЫе правила для представления 0 или 1. Поскольку i Button разработано как slave-устройство, то оно оставляет устройству master определять начало каждого тайм-слота. Чтобы произвести чтение i Button, master для чтения одного бита данных просто генерирует тайм-слот записи лог. 1 (именно тайм-слот записи, а не чтения). Если бит, который посылает i Button, равен 1, то i Button просто ожидает появления следующего тайм-слота, пропуская текущий. При этом с линии данных master считывает 1. Если бит, который посылает i Button, равен 0, то i Button удерживает линию данных в состоянии лог. 0 определённое время, и master считывает с линии данных 0. Пример полной последовательности выполнения команды показан на рис. 1-8. Активность устройства master нарисована толстыми линиями. Серой линией показан ответ i Button. Тонкая линия показывает, что не активно ни одно из устройств. Линия, через которую происходит обмен данными, подключена к положительному полюсу источника питания (обычно +5 в) через специальный нагрузочный резистор.
2. Обзор разновидностей i Button фирмы Dallas Semiconductor
2.1. Регистрационный номер, записанный в ПЗУ (ROM)
2.2. Типы устройств i Button
В таблице 2-1 показан полный обзор разновидностей i Button.
Тип устройства
Family Code
Серийный номер
Количество бит, тип памяти
Защищённые биты NV RAM
Часы реального времени
Таймер интервалов времени
Счётчик циклов
температурный i Button
Таблица 2-1: Типы устройств i Button, поставляемых в корпусе MicroCan.
Остановимся на кратком описании каждого из устройств.
DS1990A
Рис. 2-2: Структура данных DS1990A.
В Книге Стандартов от фирмы Dallas Semiconductor говорится, что «из-за особенностей разработки i Button и строгого заводского контроля DS1990A является уникальным электронным идентификатором, который невозможно подделать».
Примечание 1. На мой взгляд, это верно, но с небольшими оговорками. Само собой, не существует двух совершенно одинаковых электронных ключа DS1990A, один из которых подойдёт вместо другого (откроет замок). Однако ничто не мешает злоумышленнику разработать прибор, который будет считывать ключ DS1990A и затем воспроизводить его последовательный код, полностью имитируя поведение slave-устройства DS1990A. Имея такой прибор, злоумышленник может считать оригинал ключа и потом просто использовать его код, чтобы открыть замок (кстати, на корпусе MicroCan нанесена гравировка, полностью воспроизводящая family code, serial number и даже CRC). Правда, не надо забывать, что для этого владелец ключа должен передать ключ злоумышленнику во временное пользование, а в этом казусе владелец, пожалуй, и сам в некоторой степени виновен. Снятие кода с электронного ключа очень похоже, таким образом, на снятие слепка с ключа механического. Разница только в технологиях, а также в том, что двух одинаковых электронных ключей не бывает.
DS1991, MultiKey i Button
DS1991 разработан как электронный ключ с высокой степенью защиты, который позволяет получать доступ к различным защищённым областям с помощью только одного устройства. Каждый из трёх ключей можно рассматривать как защищённый файл, для доступа к которому надо знать пароль. Открытое поле такого ключа содержит имя защищённого файла. Таким образом, разные люди могут использовать даже один и тот же пароль, хотя они и пользуются разными экземплярами DS1991.
DS1991 имеет защиту от взлома. Если для чтения данных используется неверный пароль, то устройство будет выдавать случайные числа. Если запрограммирован новый пароль, то все данные субключа будут автоматически стёрты. Несмотря на то, что возможна прямая запись в защищённые субключи, незащищённая область памяти scratchpad должна использоваться как временное хранилище для проверки данных перед тем, как они будут скопированы в свое положенное место (субключ). Это даёт гарантию, что будут записаны неискажённые данные, даже если во время соединения прервётся контакт. В зависимости от применения, незащищённая область памяти scrat c hpad может альтернативно использоваться как простая память общего назначения, работающая на чтение и запись.
DS1992, i Button с энергонезависимой памятью на 1 Кбит
Как и все i Button, DS1992 содержит уникальный серийный номер. Внутренние 128 байт энергонезависимой памяти организованы как 4 области памяти (страницы) по 32 байта. Имеется также память scrat c hpad размером 32 байта (её назначение то же самое, что и у DS1991). Начать чтение RAM можно с любой байтовой позиции и на любой странице. Запись возможна только через scratchpad. После того, как записанные в scratchpad данные проверены на соответствие оригиналу, выполняется команда копирования данных из scratchpad в конечное место назначения данных, чем предотвращаются ошибки записи из-за возможного непостоянного контакта со считывающим устройством.
DS1993, i Button с энергонезависимой памятью на 4 Кбит
DS1992 и DS1993 разработаны как уникальное идентификационное устройство и мобильный носитель данных. С использованием специальных структур данных эти устройства могут сохранять многочисленные независимые файлы разного назначения. Кроме того, для защищённого доступа легко доступный серийный номер может использоваться как исходная величина совместно с секретным ключевым словом для кодирования приватных файлов данных. Несмотря на то, что закодированные данные можно прочитать, невозможно их продублировать из-за того, что два серийных номера не могут быть одинаковыми (см. примечание 1).
DS1994, i Button с таймером и энергонезависимой памятью на 4 Кбит
DS1994 добавляет к DS1993 часы реального времени, таймер временнЫх интервалов и счётчик циклов. За исключением family code, DS1994 полностью совместим с DS1993. Дополнительные регистры для часов и управляющие регистры размещены в верхней, последней странице памяти.
Возможность защиты от записи счётчиков и закрытие доступа к внутренним регистрам тревоги переводят устройство DS1994 на уровень не сбрасываемого контроллера истекающего времени. Все эти дополнительные особенности и связанные с ними регистры и управляющие флаги размещены на последней странице памяти (с номером 16). Доступ к содержимому этой страницы тот же самый, как и к обычным страницам памяти. Несмотря на то, что для операции записи обычно используют scrat c hpad, структура команд позволяет записать один или несколько байт.
DS1995, i Button с энергонезависимой памятью на 16 Кбит
Для применений, требующих сохранения нескольких файлов различного размера, ёмкость DS1993 может оказаться недостаточной. DS1995 учетверяет доступную ёмкость предыдущих версий i Button до 16 Кбит (до 64 страниц по 32 байта каждая). Поскольку DS1995 имеет ту же самую логическую структуру и понимает тот же самый набор команд, что и другие версии i Button с энергонезависимой памятью, устройство DS1995 полностью совместимо с существующим прикладным программным обеспечением. Новое уникальное значение family code указывает на наличие дополнительной ёмкости памяти.
DS1996, i Button с энергонезависимой памятью на 64 Кбит
DS1996 учетверяет ёмкость DS1995 до 64 Кбит (до 256 страниц по 32 байта каждая). С теми же самыми командами, как и у других i Button с энергонезависимой памятью, DS1996 позволяет легко провести апгрейд существующих систем. Как и все i Button, это устройство имеет уникальное значение family code.
DS1995 и DS1996 значительно превосходят по ёмкости существующие мобильные носители данных, как, например, серийные чип-карты или магнитные полосы. Использование серийного номера как исходной величины совместно с секретным ключевым словом позволяет сохранять как закодированные, так и незащищённые файлы данных в одном устройстве. Из-за недостатка места в статье мы не будем рассматривать методы использования большой ёмкости памяти этих устройств (см. Книгу Стандартов i Button фирмы Dallas Semiconductor, часть 7).
DS1982, Add-Only i Button с однократно программируемой памятью на 1 Кбит
Серии DS198x используют технологию EEPROM, которая не требует встроенного источника энергии для поддержания сохранности данных. Так же как и у DS1990A, энергия для работы берётся непосредственно с линии данных. Как и все i Button, DS1982 содержит секцию ROM с серийным номером и family code. Память организована как 4 страницы по 32 байта каждая.
Такая изощрённая проверка перед записью необходима для устройств, основанных на технологии EEPROM, поскольку однажды записанные неверные данные уже невозможно исправить. Когда данные нуждаются в обновлении, старые данные «переназначаются» и добавляется новый набор данных. Этот режим функционирования объясняет имя Add-Only i Button ( i Button только для добавления данных) для этой группы. Устройства Add-Only i Button невозможно стереть. Каждая страница памяти аппаратно защищена от последующих попыток записи. Таким образом, каждое обновление будет оставлять для контроля постоянный след. Такое свойство памяти используется, например, в кассовых аппаратах (фискальная память).
Флаги, показывающие состояние страницы данных (запрещена она для записи и т. п.), помещены в 8-ми байтах статуса памяти устройства. Запись в данные статуса применяет ту же самую интегрированную процедуру, как и для страниц данных. Когда читаются информация статуса или просто данные, встроенный генератор CRC защищает поток данных от потенциальных ошибок.
DS1985, Add-Only i Button с однократно программируемой памятью на 16 Кбит
С 16-кратной ёмкостью по сравнению с DS1982, DS1985 является наименьшим устройством типа Add-Only, полностью поддерживающим сохранение и обновление нескольких файлов приложений. За подробностями обращайтесь в Книгу Стандартов i Button фирмы Dallas Semiconductor, часть 7. Память приложений организована как 64 страницы по 32 байта каждая. В дополнение к памяти приложений, имеется 88 байт памяти статуса, выделенной для байт переназначения, флагов и бит защиты от записи. Специальная команда сигнализирует о перенаправлении данных для предотвращения потерь времени и чтения неверных данных. Другие функции у DS1985 те же самые, что и у DS1982.
DS1986, Add-Only i Button с однократно программируемой памятью на 64 Кбит
DS1986 является 64 Кбитным апгрейдом DS1985. Память организована как 256 страниц по 32 байта каждая. Расширенная область памяти потребовала увеличения памяти статуса до 352 байт. Все другие особенности DS1986 те же, что и у DS1985.
DS1920, Temperature i Button
3. Электрические стандарты и характеристики i Button
3.1. Интерфейс 1-Wire, временнЫе диаграммы
Введение
Тайм-слоты записи
ВременнЫе соотношения в i Button задаются соотносительно тайм-слота (специально сформированной порции цифрового сигнала). Для определения максимальной границы всех типов погрешностей формирования временнЫх диаграмм, i Button делает выборку значения данных на линии посередине тайм-слота. По определению активная часть 1-Wire тайм-слота (tSLOT) составляет 60 мкс. В нормальном состоянии i Button будет делать выборку сигнала с линии после 30 мкс относительно спада сигнала.
Внутренняя величина базового времени i Button может отличаться от стандартной, следовательно, может меняться время выборки сигнала. Допустимый диапазон изменения составляет от 15 до 60 мкс. Это означает, что реальное чтение линии slave-устройством может произойти в любом месте относительно старта тайм-слота между 15 и 60 мкс, т. е. может изменяться в соотношении 1 к 4. Во время этого окна времени напряжение на линии должно оставаться либо ниже VILMAX (максимально допустимое входное напряжение для лог. 0), либо больше VIHMIN (минимально допустимое входное напряжение для лог. 1). Основная форма тайм-слотов записи 1 и записи 0 показана на рисунках 3-1 и 3-2 соответственно. Эти тайм-слоты необходимы для записи команд и данных в i Button.
Рис. 3-1: Тайм-слот записи 1.
Рис. 3-2: Тайм-слот записи 0.
Длительность импульса низкого уровня для записи 1 (tLOW1) должна быть короче 15 мкс; для записи 0 длительность импульса низкого уровня должна быть не менее 60 мкс для удовлетворения условиям самого худшего случая допуска.
Длительность активной части тайм-слота можно увеличить и сделать намного больше 60 мкс. Максимальное увеличение ограничено фактом, что импульс низкого уровня как минимум в 8 тайм-слотов (480 мкс) определён как Reset Pulse (импульс сброса). Если принять во внимание наихудший допуск, то импульс низкого уровня в 120 мкс уже может быть воспринят как reset. Это ограничивает увеличение активной части тайм-слота до максимума в 120 мкс для предотвращения ошибочной интерпретации импульса низкого уровня как reset.
По окончании активной части каждого тайм-слота i Button нуждается во времени восстановления tREC (с минимальной величиной в 1 мкс) для подготовки следующего бита. Это время восстановления можно рассматривать как неактивную часть тайм-слота, оно должно быть добавлено к длительности активной части тайм-слота для получения времени, затрачиваемого на передачу бита. Широкий допуск на тайм-слот и некритичное время восстановления позволяют медленным микропроцессорам легко выполнять временнЫе требования для соединения 1-Wire.
Тайм-слоты чтения
Команды и данные посылаются в i Button путём комбинирования тайм-слотов, записывающих 0 и 1. Для чтения данных master генерирует тайм-слоты чтения для определения момента начала каждого бита. С точки зрения master, тайм-слоты чтения выглядят так же, как и тайм-слоты записи 1. Начиная с момента изменения уровня сигнала с высокого на низкий, i Button посылает один бит своего адресованного содержимого. Если передаваемый устройством i Button бит равен 1, то i Button оставляет импульс (линию данных) без изменения. Если бит равен 0, i Button будет притягивать линию данных на низкий уровень (открывая канал своего выходного транзистора) в течение времени tRDV, или 15 мкс (см. рис. 3-3). В течение этого окна времени данные доступны для чтения устройством master.
Рис. 3-3: Тайм-слот чтения данных.
Длительность tLOWR определяет время импульса низкого уровня, посылаемого устройством master. Оно должно быть как минимум 1 мкс, но в тоже время как можно меньше, чтобы увеличить окно выборки сигнала для master. В целях компенсации ёмкости линии интерфейса 1-Wire, master должен делать выборку сигнала как можно точнее через 15 мкс после начала синхронизирующего среза сигнала. Следующий за интервалом tRDV интервал tRELEASE является дополнительным, в течение которого i Button отпускает линию 1-Wire и сигнал возвращается к значению VPULLUP. Длительность tRELEASE может меняться в пределах от 0 до 45 мкс. Номинальная величина 15 мкс.
Детектирование presence (присутствия на шине)
Как упомянуто выше, интерфейс 1-Wire использует импульс reset. Этот импульс определён как импульс низкого уровня с минимальной длительностью 8 тайм-слотов или 480 мкс, за которым следует время reset с высоким уровнем на линии tRTSH и длительностью тоже 480 мкс (см. рис. 3-4). Это время нужно для того, чтобы i Button мог выдать импульс presence.
Рис 3-4: Импульсы reset и presence.
* Чтобы не маскировать сигналы прерываний от других устройств на шине 1-Wire, время tRSTL+tR должно быть всегда меньше 960 мкс.
Во время tRSTH на линии 1-Wire не разрешены никакие другие соединения. Импульс reset предназначен для обеспечения чистого старта, который прерывает любую синхронизацию других тайм-слотов. В окружении с неуверенным контактом необходимо снова запустить старт, если контакт прерывался. Если master послал импульс reset, i Button будет ожидать время tPDH, а затем сгенерирует импульс presence длительностью tPDL. Это позволяет устройству master легко определить, присутствует или нет i Button на линии. Кроме того, если несколько i Button соединены параллельно (см. Книгу Стандартов, часть 5, «Логические стандарты и характеристики»), master может измерить оба времени (tPDH и tPDL) и таким способом получить информацию о реальных временнЫх допусках для всех устройств на линии.
Нормальные величины 30 мкс для tPDH и 120 мкс для tPDL. Измеренное время tPDH показывает внутреннее базовое время для самого быстрого устройства на шине. Сумма измеренного времени tPDH и tPDL в 5 раз больше внутреннего базового времени самого медленного устройства на шине. Если на линии присутствует только одно устройство, обе величины tPDH и tPDL будут пропорциональны и будут изменяться в одну и ту же сторону. Это соотношение может быть использовано для построения адаптивной системы. Специальные вычисления этой системы должны быть приложены для корректировки временнЫх характеристик каждый раз после reset, поскольку индивидуальные временнЫе характеристики устройств i Button могут меняться в зависимости от температуры и нагрузки.
Точность измерений времени, требуемая для адаптивной подстройки временнЫх диаграмм, ограничена характеристиками входной логики master, постоянной времени линии 1-Wire (сопротивление нагрузочного резистора помножить на ёмкость кабеля) и прикладываемой частотой выборок состояния линии 1-Wire. Если видимое время нарастания или спада сигнала превышает 1 мкс, или если возможная наивысшая частота выборок не превышает 1 МГц, то адаптивную подстройку применить не получится.
Если i B u tton отключен от считывающего устройства, то он притягивает свою линию данных на низкий уровень через внутренний источник тока 5 мкА. Это симулирует импульс reset неограниченной длины. Как только i Button определит высокий уровень на своей линии данных, он сгенерирует импульс presence. Эта особенность может быть использована для автоматического включения устройства master с целью сохранения энергии между чтениями или записями. Это также удобно использовать для включения аппаратного прерывания последовательного порта, когда используется PC и адаптер COM-порта.
Устройства i Button специально разработаны для работы в условиях плохих электрических соединений. Однако требуется некоторое минимальное время контакта, требуемое для пересылки команд и пакета данных. Оно зависит от вида выполняемой операции. Для DS1990A, используемого в качестве электронного ключа, это время может не превышать 5 мс.
Повышенная скорость
Устройство i Button можно ввести в состояние ожидания, в котором i Button больше не отвечает ни на какие события на шине 1-Wire, пока не поступит импульс reset. С этой особенностью может сосуществовать возможность высокоскоростного соединения на шине 1-Wire без конфликтов с существующим протоколом. Линия данных при этом не может быть в состоянии низкого уровня более чем 120 мкс.
Фактически повышенная скорость реализуется изменением внутренней временнОй базы i Button в 10 раз. Это относится ко всем коммуникационным формам сигнала, включая импульсы reset и presence, но не включая длительность программирующих импульсов для устройств EEPROM (детали см. на рис. 3-1…3-4). Все i Button, которые могут работать с повышенной скоростью, будут работать со скоростью нормальной, если их специально не переключить на повышенную скорость. Устройства, реализующие повышенную скорость, можно идентифицировать по их family code, или с помощью специальных команд, которые не распознаются «не высокоскоростными» устройствами. Более подробно о протоколе, вводе i Button в состояние ожидания и о повышенной скорости обмена можно прочитать в Книге Стандартов i Button фирмы Dallas Semiconductor, часть 5.
3.2. Интерфейс 1-Wire, электрические параметры
Паразитное питание
Обычно в цифровых системах переменные величины напряжения относятся к цифровым сигналам, которые таким способом представляют высокие и низкие уровни семейства логики. ВременнЫе диаграммы 1-Wire отличаются от этой хорошо известной схемы из-за паразитного питания систем i Button, которые поддерживают ROM и высокотехнологичную логику большей части устройств. DS1991 использует не паразитное питание, а внутренний источник энергии, который обеспечивает работу защищённой памяти. DS1990A, DS198x и DS1920 разработаны только для использования паразитного питания. Логика ROM устройств от DS1992 до DS1996 питается либо от внутреннего литиевого источника напряжения 3 B, либо от напряжения на линии 1-Wire, в зависимости от того, какое из них больше. Эта возможность позволяет получить доступ к записанной лазером ROM-секции, даже если внутренний литиевый элемент истощился после истечения 10 лет или более.
Системы с паразитным питанием нуждаются в конденсаторе для сохранения энергии и диоды для предотвращения нежелательного разряда от линии данных (когда на ней появляются низкие логические уровни). Здесь применяется точно такая же схема, как у однополупериодного выпрямителя. После того, как конденсатор зарядится до нормального рабочего уровня, на нём будут кое-какие незначительные провалы и возрастания напряжения из-за импульсов перезаряда, возникающих при изменении сигнала на линии данных 1-Wire. Ёмкость энергосберегающего конденсатора i Button равна примерно 800 пФ. Эта ёмкость видна короткое время, когда i Button подсоединяется к считывающему устройству. После того, как конденсатор зарядился, на шине данных будет видна только малая часть от ёмкости конденсатора, соответствующая требуемой полной подзарядке конденсатора. Полная постоянная времени для зарядки конденсатора определяется самим конденсатором, внутренним сопротивлением около 1 кОм, сопротивлением кабеля и контактов, ёмкостью кабеля и внешним нагрузочным резистором. Добавочное падение напряжения на диоде и минимальное внутреннее рабочее напряжение кристалла дают минимально возможное напряжение на линии данных 1-Wire. В таблице 3-1 более подробно даны параметры, справедливые для всех видов i Button. Минимально возможное напряжение питания линии важно для выбора времени восстановления tREC времени высокого уровня reset tRSTH.
Спец. питающее напряжение
Табл. 3-1: Общие электрические параметры i Button.
Из-за применяемой в устройствах Add-Only технологии EEPROM, эти i Button требуют для программирования импульсов определённой длительности, напряжения и тока. Например, для DS1982 применяют импульс длительностью минимум 500 мкс, номинальное напряжение 11.5 В с пиковым максимальным током 10 мА. Для предотвращения повреждений других i Button, во время программирования к сети MicroLAN должны быть подключены только DS198x. Температурный i Button DS1920 требует усиленного питания 5 В от сети MicroLAN во время измерения температуры и записи внутренних ячеек памяти. Это не критично для работы других устройств на шине, поскольку i Button не будут начинать самостоятельно любой обмен данными. Не могут также в этой ситуации происходить прерывания от DS1994, поскольку их работа автоматически запрещается (см. Книгу Стандартов i Button фирмы Dallas Semiconductor, часть 6).
Нагрузочный резистор
Рекомендуемый номинал нагрузочного резистора для линии 1-Wire составляет 5 кОм. Эта величина была выбрана для обеспечения работы с контактами высокого сопротивления и для обеспечения хороших логических уровней на обоих концах короткого соединительного кабеля. Обычно считывающий узел master воспринимает напряжения до 0.8 В как логический 0. Поскольку на линию между master и i Button оказывает влияние постоянная времени шины 1-Wire, иногда может потребоваться использовать нагрузочный резистор с номиналом меньшим, чем 5 кОм.
Оптимизация при повышении длины соединительного кабеля
Идеальным соединением между i Button и мастер является короткий кабель с малой паразитной ёмкостью. В случае применения длинных кабелей появляется гораздо больше забот для обеспечения необходимых требований по постоянному и, в особенности, по переменному току. Появляются критические моменты для времени восстановления tREC и для чтения или записи бита 1. Время восстановления становится критичным, если для обмена данными необходимы два следующих друг за другом тайм-слота записи нуля. Если передача данных идёт на максимально возможной скорости, должен быть сформирован импульс tREC лог. уровня 1 с минимальной длительностью 1 мкс между двумя тайм-слотами записи нуля с длительностью 60 мкс. Возможность распространения такого короткого импульса по длинному кабелю значительно ухудшается пропорционально длине кабеля. Случается так, что короткий импульс полностью отфильтровывается и связь с i Button на дальнем конце кабеля становится невозможным. Можно легко увеличить расстояние передачи, просто увеличив величину tREC. Например, если tREC увеличить с 1 мкс до 15 мкс, максимальная скорость передачи данных упадёт с 16.3 Кбит/с до 13.3 Кбит/с, однако импульс tREC длительностью 15 мкс позволяет значительно повысить надёжность передачи на длинном кабеле. Запись бита 1 можно также улучшить путём уменьшения длительности tLOW1 тайм-слота записи 1, однако при этом не превышая нижнюю минимальную величину (см. рис. 3-1). Это также улучшает вероятность верного чтения 1 на длинном кабеле. Кроме того, на длинном кабеле нужно уменьшить номинал нагрузочного резистора линии.
Тесты показывают, что нагрузочный резистор номиналом 1 кОм позволяет работать с кабелем максимально возможной длины. Если применить резистор номиналом менее 1 кОм, то ухудшается качество логических уровней, и в сочетании с большой ёмкостью кабеля не получается достичь правильной формы сигналов. Маленький резистор повышает зависимость работы системы от качества контактов (зависимость от сопротивления контакта). Для увеличения длины кабеля рекомендуется использовать кабели с малой погонной ёмкостью – около 15 пФ/м.
Тесты также показывают, что витая пара проводов работает лучше, чем просто два параллельные провода. Простой нагрузочный резистор на стороне master показал лучшие результаты, чем усиленная активная импульсная нагрузка, поскольку резистор больше подходит к сопротивлению линии. В порядке улучшения работы можно применить на стороне master выходной ключ (драйвер) с улучшенными характеристиками включения. В особых случаях может потребоваться использовать компаратор на приёмном входе master для оптимизации порогов чтения лог. 0 и лог. 1 на длинных линиях.
Например, корректная работа i Button была достигнута на линии до 300 м с использованием простого витого телефонного кабеля. Нагрузочный резистор был уменьшен до 1 кОм; 30 экземпляров i Button были подключены параллельно в конце кабеля. Шина 1-Wire управлялась выводом порта 0 микроконтроллера DS5000 (совместимый с Intel 8051). Адаптеры для COM-порта PC работают на расстояниях до 200 м на большинстве PC (см. указания по применению №74 “Чтение и запись i Button через последовательный интерфейс”). Более подробную информацию можно получить из указаний по применению №55 “Расширение зоны контактирования устройств i Button” и №108 “MicroLAN – длинные дистанции”.
4. Система команд DS1990A
Как только мастер определил на шине наличие импульса presence, он может послать одну из четырёх команд, работающих с ПЗУ (ROM) DS1990A. Каждая команда состоит из 8 бит. Перечень этих команд следующий (в квадратных скобках указан hex-код команды):
Read ROM [33h] или [0Fh] (прочитать ПЗУ)
Эта команда позволяет мастеру шины прочитать из DS1990A код устройства (family code), уникальный 48-битный серийный номер и 8-битный CRC. Эта команда может быть использована только в том случае, если на шине присутствует только одно устройство DS1990A (для электронного замка это условие выполняется). Если на шине присутствует более одного подчинённого устройства, произойдёт коллизия данных, когда все slave-устройства начнут передавать одновременно (параллельно соединённые открытые стоки будут работать как логический элемент И). DS1990A будет одинаково реагировать как на код команды 33h, так и на код 0Fh для обеспечения совместимости с более ранней версией электронного серийного номера DS1990, который реагирует только на команду 0Fh.
Math ROM [55h], Skip ROM [CCh], Sear с h ROM [F0h]
Не будем останавливаться на этих командах, поскольку для электронного замка они не нужны (подробности по ним см. в Книге Стандартов i Button фирмы Dallas Semiconductor).
5. Генерирование CRC
Для проверки правильности данных, переданных из DS1990A (как, впрочем, и из других устройств i Button) master может генерировать значение CRC из принятых данных. Эта сгенерированная величина затем сравнивается с величиной, сохранённой в последних 8 битах DS1990A. Master вычисляет CRC от 8-битового family code и всех 48 бит серийного номера, но не от самой сохранённой в i Button величины CRC (от первых 7 байт содержимого DS1990A). Если две величины, вычисленная и считанная напрямую, совпадают, то передача была безошибочной. Для генерации CRC используется полином вида:
CRC = x 8 + x 5 + x 4 + 1
Ниже приведён код из технического описания DS1990A фирмы Dallas Semiconductor для процессора с системой команд Intel 8051, реализующий алгоритм вычисления CRC. Этот код без изменений был использован в программе электронного замка.
Более подробно принцип вычисления CRC описан в Книге Стандартов i Button фирмы Dallas Semiconductor.
6. Электронный замок
6.1. Основные особенности
Описываемый электронный замок предназначен для установки в квартирах, подъездах жилых домов. Очень хорошо он подходит для входных дверей офиса, куда должен иметь доступ ограниченный круг лиц. Основные достоинства такого замка:
— быстрое, удобное открытие двери простым прикладыванием металлической “таблетки” – электронного серийного номера DS1990A (далее по тексту просто “ключа”);
— увеличенная защищённость – отсутствие замочной скважины или клавиатуры, которую легко повредить, подбор ключа полностью исключён;
— очень простая процедура смены или добавления ключа – они записываются в память электронного замка, и так же легко оттуда удаляются;
— при утере одного ключа нет необходимости покупать новый замок или менять вставку – можно просто стереть память замка и “обучить” замок заново (занести в память ключи);
— большое количество (до 510) пользователей.
Недостатком, которым страдают все электронные замки, можно считать тот факт, что электронному замку и исполнительному механизму (соленоиду задвижки или электромотору) нужно резервированное питание, например, от аккумулятора, чтобы всегда можно было открыть дверь (в случае пропадания питания от сети).
Для постоянной работы с замком используется только чашка считывающего устройства и кнопка открывания двери, которая монтируется внутри запираемого помещения. Нажатие на эту кнопку точно так же открывает дверь, как прикладывание ключа. Для программирования замка служит перемычка, звуковой сигнализатор, два светодиода – зелёный и красный, а также специальный мастер-ключ. Мастер-ключ необходим для доступа к программированию замка. Кроме своих специальных функций, он может работать как обыкновенный ключ, если его занести в память электронного замка.
В таблице 6-1 приведены основные параметры, а на рисунке 6-1 – принципиальная схема электронного замка.
Напряжение питания (без учёта силовой части), В
Максимальный ток потребления (питание 5В), мА
Максимальное количество ключей (не считая мастер-ключа)