Содержание

СпецПромДизайн

Электронные ключи iButton

В 1991 году компания Dallas Semiconductor® выпустила свои первые электронные ключи-идентификаторы серии DS199х. В начале для них был запатентован товарный знак «Touch Memory», который достаточно полно отражал основные свойства этих изделий. Touch переводится «прикоснись», Memory – «память». Действительно, все ключи, которые внешне выглядят как металлические дисковые батарейки, в обязательном порядке имеют внутри микросхему ПЗУ с уникальной для каждого устройства двоичной 48-разрядной кодовой комбинацией (идентификационным номером), а считывается эта комбинация при прикасании металлическим корпусом ключа к металлическому же зонду-считывателю. Новый электронный ключ стал популярным среди потребителей, и, как следствие, стали появляться новые модели. Последнее изделие этого ряда DS1954 имеет внутри своего корпуса специальный микропроцессор для шифрования информации, разработан был также идентификатор со встроенным термопреобразователем, планируется реализовать идеи размещения других схем в стандартизованном компанией Dallas Semiconductor металлическом корпусе. Поэтому с начала 1997 года Dallas Semiconductor заявила о смене названия всех своих идентификационных ключей на iButton (Information Button – «таблетка с информацией»), как более общее и охватывающее весь ряд изделий в настоящем и в будущем.

В данной статье будет дано описание конструкции, принципов работы и обзор последней номенклатуры электронных ключей в соответствие с новой терминологией.

Все электронные ключи-идентификаторы iButton внешне похожи на дисковую металлическую батарейку (рисунок 1). Металл представляет собой нержавеющую сталь. Диаметр диска около 17 мм, толщина 3,1 мм или 5,89 мм. Диск состоит из двух электрически разъединенных половинок.

Внутри он полый. В герметичную полость заключена электронная схема на кремниевом кристалле. Выход схемы соединен с половинками диска двумя проводниками. Половинки диска образуют контактную часть однопроводного последовательного порта. При этом через центральную часть идет линия данных, внешняя оболочка – земля. Для того чтобы произошел обмен информации iButton с внешними устройствами, необходимо прикоснутся обеими поверхностями половинок металлического диска к контактному устройству (зонду), также состоящему из двух электрически не связанных, проводящих электрический ток частей.

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

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

Устройства семейства iButton предназначены для различных секторов рынка, в зависимости от их типа. Наиболее распространены они сейчас в качестве:

Идентификационных карточек персонала для систем ограничения доступа в здания или отдельные помещения. Особенно они популярны в секторе рынка с повышенным уровнем воздействия внешней среды и условий эксплуатации, то есть там, где традиционные карточки или устройства для считывания с них информации могут быстро выйти из строя. При этом, в зависимости от категории защищённости объекта, применяются различные типы iButton. Так, для ограничения доступа в подъезды жилых домов, где не предъявляются повышенные требования к системам ограничения доступа, используют самые дешевые iButton DS1990, которые стоят около 2 долларов. В подъезды iButton устанавливают обычно в единой системе с домофоном – переговорной и управляющей дверным электромагнитным замком системой. Учитывая низкую цену считывающего устройства – около 25 долларов, установщики домофонов получают беспрецедентно низкие цены и на всю электронную систему управления замками, при очень высоких потребительских параметрах, в особенности, защищённости от внешних воздействий. В таких системах жильцам подъезда выдаются iButton DS1990, в качестве ключей для подъездного замка. Закрепленные на пластмассовом брелке, который можно носить в одной связке вместе с обычными механическими ключами, iButton можно ронять на землю или бетонный пол, они не боятся воды, льда (предел рабочей температуры –40°C), кислот, масел, бензина, электромагнитных полей. Корпус рассчитан на 1 млн. касаний к зонду. Металлический зонд также хорошо вписывается в жёсткие эксплуатационные нагрузки общих входных дверей подъезда.

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

Дополнительные возможности по повышению степени ограничения доступа в помещения позволяют реализовывать iButton с защищённой паролем энергонезависимой памятью, а также новые iButton DS1954 с микропроцессором-шифратором с длиной кода ключа 1024 бит, энергонезависимой памятью и часами-календарем. Последняя модель имеет высокую степень защиты информации. Такие системы обычно используются в банках и на предприятиях с повышенными требованиями безопасности.

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

Аппаратный ключ в системах защиты информации. Используется для защиты программного обеспечения компьютеров. Защищаемая программа имеет встроенную процедуру обращения через один из портов компьютера к идентификационному номеру или энергонезависимой памяти iButton. Сам идентификатор закрепляют в специальном адаптере к порту. Хозяин программы распределяет по ней защитные метки с номерами конкретной iButton или с содержимым его энергонезависимой памяти. В случае несоответствия номера или содержимого энергонезависимой памяти идентификатора этим записями, программа не работает.

Как отмечалось выше, iButton представляют собой микросхему, помещенную в дисковый металлический корпус. В структурной схеме этой микросхемы в обязательном порядке присутствуют однопроводный порт, логика управления и ПЗУ в виде 64-битного блока, содержащего 48-битный идентификационный номер, 8-ми битный номер типа изделия и 8-битный код для контроля. Идентификационный номер записывается в микросхему при помощи лазера во время ее изготовления. Он не может быть изменен в течение всего срока службы прибора. Dallas Semiconductor не выпускала и никогда не планирует выпускать iButton с одинаковыми идентификационными номерами. Комбинаций из 48-разрядов вполне достаточно даже при самых оптимистичных объёмах выпуска в сотни миллионов ключей в год, чтобы сотни лет номера их не повторялись.

При считывании идентификационного номера, считывающее устройство вычисляет через принятый номер код контроля по общей для всех iButton формуле и сравнивает его с принятым кодом контроля. При совпадении, запускается процесс двунаправленной передачи данных по принципу «запрос-ответ». Считывающее устройство выступает здесь в роли мастера, а iButton выполняет его команды. На одной двухпроводной линии параллельно к одному порту мастера могут быть подключены одновременно в общем случае значительное количество iButton. Ограничения определяются особенностью протокола со скоростью обмена до 115 кбод и физической длиной линии до 300 м, ограниченной процессами затухания сигнала. Хотя, конечно, с помощью специальных схем усилителей и ретрансляторов расстояние можно увеличить практически неограниченно. Интересной особенностью принципов схемотехники самой iButton является то, что питание её микросхемы формируется от «паразитного источника» – конденсатора ёмкостью 800 пФ, который заряжается через диод от порта зонда в момент касания. Для микропотребляющих МОП-схем iButton ёмкости такого источника вполне достаточно. Схема входных цепей iButton в момент касания к микроконтроллеру показана на рисунке 3.

Кроме обязательных составляющих различные типы iButton могут содержать энергонезависимую SRAM (данные хранятся не менее 10 лет благодаря встроенной в корпус литиевой батарейке), однократно программируемую память, часы-календарь реального времени, термодатчик и, наконец, криптографический микропроцессор.

Практически любой стандартный микроконтроллер, например 8051-совместимый, или компьютер может быть использован для обмена данными с iButton. При этом металлическая контактная площадка зонда соединяется обычной витой парой с портом микроконтроллера или компьютера.

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

Схема эта показана на рисунке 4. В ней могут быть использованы отечественные кремниевые маломощные стабилитроны типа КС139 и КС162 и любые маломощные диоды Шотки типа КД808. Dallas Semiconductor поставляет адаптер DS9092, который внешне оформлен в виде стандартной розетки 9-ти или 25-выводного разъёма последовательного порта. Распаянная внутри адаптера схема аналогична показанной на рисунке 4. Этот адаптер обеспечивает расстояния в десятки метров до контактной площадки и для простых линий с одним узлом приёма информации его вполне достаточно. Схемы на расстояния до узла контакта в сотни метров сложнее незначительно. В них используется драйвер однопроводной линии DS2480.

Данные в соответствие с протоколом iButton Standarts передаются в дискретные временные интервалы, которые называются временными сегментами (типовая длительность около 60 мкс) с помощью коротких и длинных импульсов, аналогичных азбуке Морзе. При этом инициатором обмена (ведущим) всегда является считывающее устройство. При соприкосновении с зондом или его эквивалентом прибор iButton выдает ответный сигнал, за которым следует код семейства, 48-битный серийный номер iButton и код контроля.

Длинные или короткие активные состояния лог.0 во временных сегментах представляют единицы или нули. Ведущая система запускает передачу каждого бита. В общем случае iButton может работать относительно мастера как на считывание, так и на запись информации в свою энергонезависимую память. Для записи лог. 1 в течение типового сегмента времени однопроводная линия передачи должна за время выборки данного вернуться в состояние лог. 1, для записи нуля в течение всего этого временного окна линия должна находиться в состоянии лог. 0 (рисунок 5).

Синхронизация временного сегмента осуществляется отрицатель¬ным фронтом сигнала, который формируется мастером, при этом длительность состояния лог. 0 на однопроводной линии связи должна составлять не менее 1 мкс.

В цикле считывания идеальный момент стробирования считываемого данного – это 8 мкс после начала временного сегмента (рисунок 6). Задающее устройство подаёт на однопроводную линию активный лог. 0 на время синхронизации данного (не менее 1 мкс), после чего переходит в режим приёма. Далее в течение всего времени выборки данного состояние линии определяется прибором iButton. После начала временного сегмента состояние линии с помощью пассивной нагрузки выдерживается на уровне лог. 1 от 15 до 60 мкс. Возможна приостановка сеанса связи на любое время между временными сегментами, при этом на однопроводной линии связи поддерживается состояние лог. 1. Во всех сеансах связи первым передаётся младший значащий разряд данного.

Подробно ознакомиться с протоколом iButton Standarts можно в многочисленных изданиях самой фирмы Dallas Semiconductor в виде книг, CD-ROM или по Интернету.

Обзорная таблица iButton представлена в таблице 1. Для упрощения восприятия обзора попытаемся внести элементы классификации в семейства iButton. Необходимо отметить, что делается это самовольно – Dallas Semiconductor пока этого ещё не сделала и представляет свои семейства по принципу возрастания номера маркировки. Основной раздел между iButton можно провести по признаку наличия средств защиты области данных от несанкционированного пользователя. В этом случае явно выделяются два типа: iButton с незащищенной областью данных и iButton со специальной защитой данных.

Маркировка Описание Ёмкость памяти
DS1920 Цифровой термодатчик 16 бит ЕЕРРОМ
DS1954 Криптографический микропроцессор 32К ROIVI + 6K NVSRAM
DS1963 Электронный кошелек 4096 бит NVSRAM
DS1971 EEPROM память 256 + 64 бит EEPROM
DS1981U EPROM память и специальный номер 512 бит ЕРРОМ
DS1982U EPROM память и специальный номер 1024 бит EPROM
DS1982 EPROM память 1024 бит EPROM
DS1985 EPROM память 16384 бит EPROM
DS1986 EPROM память 65536 бит PROM
DS1990A Только номер Нет
DS1991 Энергонезависимая память с паролем 1344 бит NVSRAM
DS1992 Энергонезависимая память 1024 бит NVSRAM
DS1993 Энергонезависимая память 4096 бит NVSRAM
DS1994 Энергонезависимые память и часы 4096 бит NVSRAM
DS1995 Энергонезависимая память 16384 бит NVSRAM
DS1996 Энергонезависимая память 65536 бит NVSRAM

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

Группа состоит из одного семейства – DS1990А. Это первое изделие Dallas Semiconductor, впервые поступившее в продажу в 1991 году. Имеются две разновидности по толщине корпуса. DS1990A-F5 – имеет толщину корпуса 5,89 мм, а DS1990A-F3 – 3,1 мм. По схемотехнике DS1990A самая простая iButton и имеет только ПЗУ с уникальным 48-разрядным номером, кодом семейства и кодом контроля. Доступ к ПЗУ происходит через интерфейсную схему, поддерживающую протокол iButton Standart (блок-схема на рисунке 7). Питается микросхема DS1990A, как и все iButton, от «паразитного источника» (на рисунке не показан), состоящего из внутренних выпрямителя и конденсатора (см. первую часть обзора). Энергия в этот источник поступает через резистор 5 кОм открытого коллектора порта считывателя в момент времени, когда контактная часть считывателя и iButton прикоснулись друг к другу.

DS1990A не имеет никаких средств защиты области данных пользователя, так как области этой как таковой и нет. Уникальный номер, записанный в ПЗУ на заводе, доступен для любого считывающего устройства-зонда, поддерживаю¬щего протокол iButton Standart.

Четыре КОМАНДЫ ПЗУ составляют систему команд iButton DS1990А: ЧТЕНИЕ ПЗУ, СОВПАДЕНИЕ ПЗУ, ПРОПУСК ПЗУ и ПОИСК ПЗУ. В режиме с одним узлом считывания достаточно команды СЧИТЫВАНИЕ ПЗУ. Остальные команды необходимы для работы в сетевом варианте применения для исключения конфликтов при одновременном касании многих iButton к разным считывающим контактам, подсоединенным к одной линии данных. Порядок выдачи содержимого ПЗУ при исполнении команды ЧТЕНИЕ ПЗУ следующий: код семейства (01H для DS1990A), 48 бит уникального номера и последним идет 8-битный код контроля. Передача идет побитно, младший значащий разряд идет первым. Приём считается завершенным, только если вычисленный мастером на основе уникального номера по стандартной формуле контрольный код, совпадает с принятым контрольным кодом из ПЗУ iButton. Полный цикл считывания ПЗУ длится около 5 мс.

Группа этих iButton включает в себя четыре семейства: DS1992L, DS1993L, DS1995L и DS1996L. Буква L в наименовании означает наличие трехвольтовой литиевой батарейки. Энергия батарейки используется для питания микромощной статической памяти (SRAM) в течение всего срока службы этих iButton, который составляет не менее 10 лет. Для коммуникационных процессов здесь, как и в других iButton, используется «паразитный» внутренний источник – выпрямитель + конденсатор. В случае разряда батарейки по какой-либо причине, имеется возможность доступа только к ПЗУ. Как и у всех iButton, ПЗУ этих семейств имеет идентификационный номером, код семейства и код контроля (рисунок 8). Каждое семейство отличается от другого только размером статической энергонезависимой памяти.

Структурно эта память разбита на страницы по 32 байта и имеет систему адресации. DS1992 имеет всего четыре таких страницы, DS1993 – 16 страниц, DS1995 – 64 страницы, DS1996 – 256 страниц. Содержимое страниц может быть считано любым устройством считывания, поддерживающим iButton Standart. Скорости записи данных и считывания одинаковы и составляют в обычном режиме 16,3 кбит в секунду. Модели DS1995 и DS1996 поддерживают режим ускоренного обмена «overdrive», отличие которого от обычного в сокращенных примерно в 10 раз длительностях цикла инициализации и временных окон для данных. Так инициализация происходит за время от 48 мкс, а достаточный временной интервал для данных 6 мкс. Скорость полудуплексного обмена данными в режиме «overdrive» 142 кбит в секунду. Запись в энергонезависимую SRAM осуществляется диспетчером памяти через 32-байтную блокнотную память, которая выполняет функцию буфера. Блок данных записывается вместе с блоком адреса для этих данных. Данные и адрес верифицируются, то есть считываются обратно мастером из блокнотной памяти, и проверяются им на предмет идентичности с отправленными. Только после удачного исхода мастер командой «копировать блокнотную память» разрешает переносить данные из блокнотной памяти на выбранную страницу основной энергонезависимой SRAM. Формат записываемых данных может быть от 1 байта до 32 байт. Считываются данные, минуя блокнотную память.

Восемь команд поддерживаются данным типом iButton: четыре КОМАНДЫ ROM, три команды ЗАПИСИ, СЧИТЫВАНИЯ и КОПИРОВАНИЯ БЛОКНОТНОЙ ПАМЯТИ и команда ЧТЕНИЕ ПАМЯТИ.

В отличие от семейств с энергонезависимой статической памятью, в этих приборах не используются литиевые батарейки, хотя и имеется память данных. Память данных здесь однократнопрограммируемая EPROM.

Напряжение программирования 11,5В +0,5В, ток 10 мА.

Питание всей схемы осуществляется только от «паразитного» источника. Отсутствие литиевой батарейки позволяет Dallas Semiconductor выпускать эти модели, как в толстом F5, так и в тонком F3 корпусах. Группа включает семейства DS1981U, DS1982U, DS1982, DS1985 и DS1986. У всех семейств имеется стандартного вида ПЗУ, но разный объём памяти данных. Последняя адресуется и разбита на страницы по 32 байта. DS1981 имеет 2 страницы, DS1982 – 4 страницы, DS1985 – 64 страницы и DS1986 – 256 страниц. Модели с маркировкой U отличаются от остальных моделей тем, что 12 бит из общего пространства уникального номера занимает прошивка 5E7H, остальные же 36 бит имеют уникальную прошивку.

Для повышения надёжности занесения данных в однократнопрограммируемую память данных в электрическую схему введены дополнительные элементы: детектор напряжения, генератор контрольной суммы, регистр статуса и 8-битная блокнотная память (рисунок 9). Вс ячейки чистой EPROM содержат лог. 1. Однажды установленный в лог. 0 бит памяти невозможно в дальнейшем изменить, однако оставшийся в единичном состоянии может быть изменён в лог. 0 при повторном программировании. Каждая страница памяти данных может быть защищена от попытки повторной записи в неё данных, установкой соответствующего бита регистра статуса в состояние лог. 0. Регистр статуса программируется только однократно, поэтому обратно открыть для записи страницу уже будет нельзя. Кроме байта защиты памяти данных, регистр статуса имеет байты переадресации страниц. Запись в эти байты позволяет переписать содержимое страницы на другую открытую для записи страницу и дополнить её содержимое модифицированными данными. Для приложений, требующих модификации данных, Dallas Semiconductor предлагает брать модели с заведомо большим количеством страниц.

Что касается механизма записи информации в память данных этого семейства, то он несколько усложнен. Адреса, коды команд и данные проверяются исключительно побайтно. Мастер считывает код, вычисленный генератором проверочного кода, и сравнивает со своими вычислениями. Только после этого разрешается продвижение на очередной байт в процедуре записи.

Протокол обмена с мастером поддерживает восемь команд: четыре ПЗУ КОМАНДЫ, команды с памятью данных ЧТЕНИЕ и ЗАПИСЬ, а также команды для регистра статуса ЧТЕНИЕ и ЗАПИСЬ. Модель DS1986 имеет возможность работать в скоростном режиме «overdrive».

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

Группа пока представлена одним семейством DS1971. Это новое семейство выпускается с 1997 года. Поставляется DS1971 в двух корпусах F3 и F5. Кроме стандартного ПЗУ, эта модель содержит память данных типа EEPROM в виде одной 256 битной странички. Данные могут неоднократно перезаписываться только постранично.

Напряжение программирования +5В. Запись происходит через блокнотную память, объем которой также 256 бит (рисунок 10). После верификации данных, содержимое блокнотной памяти переносится в память данных одним блоком. Имеется регистр для занесения служебной информации – РЕГИСТР ОДНОКРАТНОЙ ЗАПИСИ. Данные в него заносятся через его блокнотную память и могут быть записаны только один раз. В дальнейшем этот регистр открыт только для считывания. Регистр однократной записи может использоваться производителем оборудования с использованием DS1971 для занесения служебной информации, например, дата выпуска, номер партии и т.п. Событие о том, что запись в РЕГИСТР ОДНОКРАТНОЙ ЗАПИСИ произведена, отражается в состоянии регистра СТАТУС-ПАМЯТЬ. Два бита его устанавливаются при этом в лог. 0. Мастер может только считать состояние этого регистра.

Одиннадцать команд возможны в работе с DS1971: четыре КОМАНДЫ ПЗУ, три команды ЧТЕНИЕ, ЗАПИСЬ и КОПИРОВАНИЕ блокнотной памяти, три команды регистра однократной записи – ЧТЕНИЕ, ЗАПИСЬ и КОПИРОВАНИЕ С ЗАМКОМ и команда ЧТЕНИЕ СТАТУС-ПАМЯТИ.

Эта группа представлена одним семейством DS1994L. Микросхема его содержит обычную ПЗУ с идентификационным номером, кодом семейства и кодом контроля, статическую память 16 страниц по 32 байта каждая, кварцевый генератор часовой частоты 32768 Гц, таймер-календарь в двоичном формате, программируемые счётчики циклов включения-выключения, интервальный таймер (рисунок 11).

Статическая память и все элементы таймера энергонезависимы за счёт литиевой батарейки. Режимы работы таймерной части DS1994 определяют два его регистра: регистр статуса и регистр управления. В регистр статуса помещают свои флаги по наступлению заданного события таймер-календарь, интервальный таймер и счётчик циклов. Состояния флагов доступны для считывающего прибора и могут быть использованы им для принятия решения. Календарь таймера организован так, что необходима предварительная установка даты и времени отсчёта. Исход времени будет затем отсчитываться от этой даты. Ёмкость по времени календаря 136 лет.

Состояние регистра управления определяет доступность ресурсов как таймера, так и страниц энергонезависимой памяти. Установки его битов останавливают генератор, запрещают изменения установок календаря, интервального таймера, счётчика циклов, чтение общей энергонезависимой памяти.

DS1994 удобно использовать для ограничения срока работы приборов или устройств. В этом варианте он устанавливается в специальном зажиме, по аналогии с дисковыми аккумуляторами, и имеет постоянное соединение со схемой устройства.

Система команд DS1994 содержит как типичные для iButton команды ПЗУ, так и команды работы с таймерами и счётчиком.

Он представлен одной моделью DS1920. Внутри стандартного для iButton корпуса толщиной F3 или F5 установлена микросхема, осуществляющая полный цикл преобразования температуры окружающей ее среды в 9-разрядный цифровой код (рисунок 12). Датчиком температуры служит термистор, также установленный в корпусе DS1920. 9-разрядный АЦП осуществляет преобразование сопротивления датчика, как функцию температуры, в цифровой код.

Преобразование происходит в момент касания DS1920 зондом. Питание поступает от порта зонда. Имеется особенность в организации питания, которая обусловлена повышенными токами потребления микросхемы DS1920 в момент преобразования. Рекомендуется вместо выходного открытого коллектора с нагрузочным резистором 5 кОм, использовать «сильно открытый коллектор», где резистор заменен полевым транзистором, открытым в период преобразования и пропускающим больший ток, ввиду меньшего сопротивления.

Диапазон температур измеряемый DS1920 лежит в интервале от –55°C до +100°C, время преобразования 0,2 секунды, точность 0,5°C в диапазоне от 0°C до +70°C. Имеются специальные триггеры порогов температуры, значения которых записываются в их память EEPROM. Триггеры сообщают мастеру, при его обращении, о превышении порогов, что бывает удобно при поиске узла измерения в сетевом варианте, когда в одну линию соединены большие количества DS1920.

Интерфейс и ROM DS1920 соответствуют всем требованиям iButton Standart, а система команд состоит как из обычных для iButton ПЗУ КОМАНД, так и из специфичных ТЕМПЕРАТУРНОЕ ПРЕОБРАЗОВАНИЕ, ВЫБОРКА СОСТОЯНИЯ ПОРОГА и команд работы с БЛОКНОТНОЙ ПАМЯТЬЮ.

Типичным способом использования DS1920 является закрепление его на объекте с использованием специальных дисков с липкими поверхностями или пластиковых зажимов на винтах. При этом можно в параллель соединить проводниками несколько приборов, а опрос вести переносным зондом из одной точки. По уникальному номеру нетрудно будет выяснить место измерения для каждой точки температурных измерений.

В заключение хотелось бы отметить, что Dallas Semiconductor поставляет программное обеспечение DS0621-SDK для работы со всеми типами iButton. Оно специально предназначено разработчикам и содержит драйверы для DOS, Windows 3.x/95/NT. Имеются варианты процедур работы с iButton, написанные на ассемблере микропроцессоров MCS 51, на C, на Паскале, Дельфи, Visual Baisic. В пакете представлена также оболочка TMEX для сетевых систем с использованием iButton. Утилиты этой оболочки включают команды для сети iButton, сходные с командами COPY, FORMAT, DIR, RENAME, DELETE, DIR и т.п. Dallas Semiconductor поставляет готовый адаптер для последовательного порта (25 у.е. в розницу). Внешний вид дан ниже:

spd.net.ru

Электронные идентификаторы iButton. — КиберПедия

Электронные: аппаратные идентификаторы iButton, TouchMemory. Представляют собой микросхему в прочном герметичном корпусе из нержавеющей стали (MicroCan), диаметр 16мм, высота 3-6мм. Гарантия 10 лет, температура работы: -40 до +35.

Для обмена данными используется интерфейс i-Wire (однопроводная линия).

Все iButton имеют ПЗУ, где хранится информация в виде поликремниевых проводников, что не требует энергии для хранения. Это ПЗУ содержит 6 байтовый серийный номер – уникальный. Так же содержится 1 байтовый код типа идентификатора и 1 байтовую контрольную сумму.

DS-1990 А – простейший идентификатор, использует режим паразитного питания от линии данных.

DS1991 –дополнительно содержит 64-байтную блокнотную память и 3 48-байтные области ОЗУ с автономным питанием. Каждая области защищена собственным 8-байтовым паролем и имеет 8-байт общедоступное поле идентификации.

Каждая секретная область ключа представляет собой:

49 байт шифр ОЗУ 8 байт пароль 8 байт идентификатор
     
     

Защищенный файл пользователя. Поле идентификации содержит имя файла пользователя. Область данных сожет содержать код доступа. В итоге можно присвоить пользователям одинаковые коды и уровни доступа. При попытке ввода неправильного пароля ему выдается неправильная (случайная) информация.

Семейство идентификаторов с энергозависимым ОЗУ:

DS 1992-DS1996 – содержат 32-байтную блокнотную память и внутреннею энергозависимую память в виде 32 байтных страниц (в DS 1992 их 4 (общий объем 1 Кбит), в DS1993 их 16 (4Кбит), DS1995 их 64 ,DS1996 – 256).

Используются литиевые батарейки со сроком службы 10 лет. DS1994 аналог DS1993, но дополнен часами реального времени, таймером, счетчиком событий и пороговым регистром для событий. Часы имеют период 1/256 секунду.

Могут использоваться для ограничения доступа во времени определенным временным интервалом. Таймер может использоваться для определения временных интервалов между собой, а счётчик – для подсчета числа включений. При достижении определенного значения происходит установки в 0/1 бита сброса счётчика. При помощи сложной процедуры можно запретить запись в сигнальный регистр, при этом нельзя будет перезаписать их значение.

Идентификаторы с однократным программированием памяти (DS1982, 1985, 1986). Используют паразитное питание. Число 32-байтных страниц 4,64,256. Имеется также память статусов, включая: бит защиты записи страниц, который запрещает программирование соответствующих страниц основной памяти. Бит переадресации показывает переадресуемые страницы, а байты переадресации – куда переадресуются страницы, бит защиты от записи битов переадресации.



Таблетки DS 2404-S01 – двухпортовая память, содержит 64-битную память ПЗУ. В состав таблетки входит 2 портовая память 4Кб:

1 порт – интерфейс сети MicroLAN, скорость передачи 16Кбит/с.

2порт – интерфейс для связи с микроконтроллером, 2 Мбит/с. Включает в себя часы, таймер, счётчик событий.

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

DS2405 – микросхема адресуемого ключа – n-канальный полевой транзистор с открытым коллектором, который открывается при совпадении 64-битного кода устройства с передаваемым по линиям адресом. Может использоваться подключения/отключения ветвей сети MicroLAN и управления идентификаторами и силовым транзистором.

DS2407 – аналогичен предыдущему ,но имеет 2 ключа. Для связывания центрального контроллера со считывателем над MicroLAN. Выпускает до 300м. без повторителей. Использует архитектуру с одним ведущим компьютером. Обычно имеет шинную структуру ,но может изменяться в древовидную за счет изменения ключей.

Передача информации в MicroLAN осуществляется в последующей модели, для синхронизации используется падающий фронт сигнала. При записи логического «0», «1» — представлено импульсами, равными длительности. Продолжительность низкого уровня записи «1» должно быть меньше 50мкс, а «0» — 60мкс. После активной части временного интервала требуется освобождение на линии, чтобы значение на ней достигло 2,88.

Цикл чтения начинается в выдаче устройствам импульса низкого уровня. При чтении «1» прибор ничего на шину не выдает. При «0» ведамое устройство сохраняет низкий уровень данных в течении всего уровня цикла.

Одиночные импульсы низкого уровня не имеют 480мкс, после чего следуют импульсы такой же длительности (импульс сброса) – для отмены информации и возврата всех приборов в исходное состояние. Ведамое устройство может генерировать импульсы устройства, для определения на линии идентификатора.



Группы:

1) Для работы с содержимым ПЗУ.

2) Для работы с областями данных

3) Чтение ПЗУ (позволяет считать содержимое ПЗУ с лазерным программированием. Если прочитанное значение контрольной суммы совпадает с рассчитанным, то подключен один идентификатор. При несовпадении производится повторное чтение. При повторном несовпадении , можно сделать вывод ,что к линии подключено несколько идентификаторов).

4) Пропуск ПЗУ использует широковещательно несколько таблеток.

5) Совпадение ПЗУ. После выдачи этой команды и содержимого ПЗУ к линии останется подключен только соответствующий идентификатор.

6) Поиск ПЗУ. После применения этой команды все идентификаторы выдают прямое и инверсное значение программирования.

За 64 цикла чтение/запись можно определить серийный номер одного из идентификаторов.

Существует ряд iButton’ов которые выполняют криптографические функции.

DS 1961С. В нём обеспечивается контроль целостности передаваемых и хранимых данных за счёт встроенной аппаратной реализацией вычисления хэш-функции SHA-HMAC (х.-ф. с ключом). При этом сама память представляет собой страницу однократно программной памяти.

DS1955 – позволяет реализовать ассиметрическое шифрование с длиной ключа до 1 Кб. При попытки открытия подписи таблиц происходит обнуление.

В ряде крипто-идентификаторов используется дополнительная запись секретной информации. При попытке вскрытия идентификатора происходит стирание секретной информации.

—————————————————————————————————————————————

eToken выпускает в виде смарт-карточки и в виде USB-ключа. Обеспечивает двухфакторную идентификацию пользователя (имеет идентификатор и знать пароль). Обеспечивает дополнение крипто-операций: генерация ключей шифрования, симметричное (ассиметричное) шифрование, вычисление хэш-функции и электронной подписи. Происходит всё в доверенной среде. Обеспечивается безопасное хранение различных паролей пользователей, хранение криптографических ключей, профиля пользователя, цифровых сертификатов, хранящихся в энергозависимо памяти.

 

 

cyberpedia.su

Домофонный мультиключ и всё про имитацию «таблеток» — Алексей «Кластер» Авдюхин

5 комментариев

Posted on Июль 15, 2014

Да, это жутко избитая тема. Универсальный домофонный ключ «таблетку» делал наверное каждый второй, кто начинал изучать микроконтроллеры. В Интернете очень много и статей на эту тему, и готовых решений. Однако, интерес к этому угасать не перестаёт даже с массовым переходом на RFID. Это не удивительно, ведь многим хочется собрать такое устройство, которое выполняет не только весьма интересную задачу, но ещё и всегда с собой. К тому же оно не такое уж сложное в изготовлении.

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

Внимание! Этот ключ не позволяет нелегально проникать куда-либо. Это устройство лишь для того, чтобы носить один ключ вместо нескольких.

Хотя ничто не мешает вам записать в него универсальные коды открытия домофонов.

Типы домофонных ключей «таблеток»

На самом деле подобные ключи в корпусе MicroCAN бывают разных типов, хотя внешне и выглядят почти одинаково. Объединяет их только то, что ключ имеет два контакта — земля и данные, при этом используется паразитное питание, т.е. ключ питается непосредственно от линии данных. Для открытия двери используется серийный номер, который даётся на заводе. То есть это не ключ программируется на открытие домофона, а в память домофона заносится список ключей, которые могут его открывать. Рассмотрим их подробнее.

iButton

Самый популярный тип домофонных ключей — это iButton, а именно DS1990A от компании Dallas, работает по протоколу 1-Wire. Протокол весьма хитрый, подразумевает двустороннее взаимодействие — на ключ можно отправлять различные команды, на которые он по-разному реагирует. Серийный номер имеет размер в шесть байт, что даёт 28*6 = 281474976710656 различных комбинаций и подразумевает, что все выпущенные ключи должны быть уникальны. Если вам повезло, и у вас оригинальный iButton, то этот номер в шестнадцатеричном виде должен быть выгравирован на нём лазером:

То есть теоретически чужой такой ключ можно подделать, если просто записать куда-то или сфотографировать эти цифы!

Для взаимодействия с iButton достаточно подключить его к микроконтроллеру и подтянуть линию данных к питанию (2.8-5 вольт) через резистор:

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

  • Reset — мастер прижимает линию к земле как минимум на 480 микросекунд, это говорит о начале передачи данных.
  • Presence — через некоторое время ключ отвечает импульсом около 120 микросекунд, что подтверждает его наличие на линии.
  • Команда — мастер посылает команду из восьми бит, при этом логическая единица — это 1-15 микросекунд, а ноль — 60-120.

Далее всё зависит от посланной команды. Обычно это 33h — «READ ROM«, чтение серийного номера, после которого мастер читает 64 бита (1 байт — тип устройства, 6 байт — сам номер, 1 байт — CRC). Чтение каждого бита инициализируется мастером, для этого он посылает импульс в 1-15 микросекунд. Если после этого линия прижата к земле со стороны ключа на 60-120 микросекунд, то прочитан ноль, иначе — единица.

Как видите, прочитать ключ достаточно легко. Имитировать ключ гораздо сложнее, тем более многие домофоны используют разные хитрости. Вот основные подводные камни:

  • Нужно всегда реагировать на reset, даже если он послан во время передачи данных. Импульс длиннее 480 микросекунд говорит о том, что надо начать всё сначала.
  • Момент прикладывания ключа с его точки зрения — это тоже reset, ведь до этого питания не было. Поэтому теоретически домофон может и не посылать reset, и следует периодически отвечать сигналом presence по своей инициативе.
  • Ключи могут реагировать и на другие команды: 0Fh как альтернатива 33h, SKIP ROM (CCh), MATCH ROM (55h) и самое хитрое, о чём я расскажу отдельно ниже, — SEARCH ROM (F0h). Некоторые домофоны могут послать самые разные комбинации таких команд, чтобы убедиться в том, что ключ настоящий.
  • Бывает и обратная ситуация — домофон посылает команду, на которую ключ реагировать не должен. Дело в том, что некоторые программируемые ключи на них всё-таки реагируют, и так происходит ещё одна проверка. Необходимо полностью игнорировать всё, что идёт за этими командами, пока не будет послан reset.
  • Для отсчёта времени лучше использовать асинхронный таймер в микроконтроллере, т.к. счёт идёт на микросекунды. Однако, установка кварца при этом будет излишней.

Про SEARCH ROM (F0h) — это команда поиска всех 1-Wire устройств на шине. Дело в том, что теоретически можно подключить параллельно много ключей и получить список всех серийных номеров. В реальности для iButton такое не используется, ведь к домофону всегда прикладывается один ключ. Однако, некоторые домофоны посылают эту команду, ожидая найти один единственный серийный номер. Алгоритм весьма интересный. Каждое из устройств на шине одновременно посылает бит своего серийного номера, при чём два раза (т.е. мастер должен прочитать два бита). Сначала обычным образом, а затем инвертированным. Что же получается в итоге? Если у устройства в серийном номере стоит единица, то посылается «10». Если ноль, то «01». И всё отлично, пока у всех устройств эти биты совпадают. А если нет… Выше я написал, что при чтении наличие длинного сигнала — это 0, а отсутствие — это 1, т.е. 0 является доминантным. Таким образом, при возникновении конфликтов читаются два нуля. После получения «10», «01» или «00» мастер должен послать в линию только что прочитанный бит. В случае с «00» он таким образом выбирает, с какой группой устройств работать далее. В результате после N итераций получается бинарное дерево из N серийных номеров.
Ответить на такую команду получается несколько сложнее, чем на обычный READ ROM. Нужно посылать каждый бит дважды — обычный и инвертированный, а затем проверять — совпадает ли с ним полученный от мастера ответ, и если не совпадает, то игнорировать дальнейшие команды.

Cyfral

Ключ «Цифрал DC-2000А» — это отечественная разработка. Взаимодействовать с ними гораздо проще, т.к. они весьма глупые — не принимают никакие команды. Достаточно просто подать на ключ питание, и он сразу начнёт бесконечно посылать код, изменяя своё сопротивление. Если дать ему 5 вольт, подключив через резистор в 1 кОм, то на осциллографе можно увидеть примерно такую картину:

Ключ меняет своё сопротивление примерно между 800 Ом и 400 Ом, если я не ошибаюсь, а следовательно и потребление тока. Можно сказать, что сигнал аналоговый, а это всё немного усложняет с аппаратной точки зрения. Хотя иногда может и упростить. Например, ключ можно прочитать, просто подключив его к микрофонному входу компьютера и записав аудиофайл.

И да, домофон после этого можно открыть самым обычным MP3 плеером. Но нас же интересуют более цивилизованные методы, верно?

Кодирование немного странное. Ключ циклически посылает девять нибблов (четыре бита), меняя своё сопротивление. Если оно сохраняется низким около 50 микросекунд, то это логический ноль, а если 100 микросекунд — это единица. Но данные кодируется не логическими нулями и единицами, а положением единиц среди нулей! То есть ключ при посылке кода может выдать только одну из четырёх комбинаций: «1000», «0100», «0010» и «0001». Однако, используется ещё и комбинация «0111» как стартовая последовательность. В итоге данные от ключа могут выглядеть как-то так: «0111 1000 0100 0010 0001 1000 0100 0010 0001 «, где «0111» указывает на начало. Никакой контрольной суммы нет — код просто читается несколько раз для уверенности.

Итого восемь последовательностей, в которых возможны четыре комбинации. Не сложно посчитать, что это даёт нам 65536 вариантов ключей. Не так уж и много, они явно часто повторяются. Теоретически если в подъезде 50 квартир, каждой из которых выдано три ключа, можно подобрать один из них перебрав всего 436 комбинаций. Но я таким не занимался.

Как же лучше читать ключи от Cyfral? Как я уже говорил, уровни аналоговые. Варианта два: аналого-цифровой преобразователь и компаратор. Последний мне кажется надёжнее. Всё отлично работает, если к одному из входов компаратора подключить линию данных подтянутую к Vdd резистором в 650 Ом, а ко второму — ровно половину Vdd, для чего можно использовать делитель напряжения из двух одинаковых резисторов. После этого результат вывода компаратора можно с уверенностью воспринимать как высокое и низкое сопротивление ключа.

Как же имитировать такой ключ? С первого взгляда кажется, что тоже нужно менять сопротивление, но результаты показали, что домофонам не нужна такая точность — можно смело замыкать линию на землю вместо низкого сопротивления и полностью отпускать её, когда нужно высокое.

Метаком

Ещё одна отечественная разработка — домофоны Метаком и ключи К1233КТ2. Как и Cyfral он просто бесконечно посылает код, меняя своё сопротивление/потребляемый ток. К счастью в Интернете доступна официальная документация:

Это всё, что нужно знать для работы с этим ключом. Он посылает четыре байта данных, но в каждом из них один бит уходит на проверку чётности. Итого выходит 28 полезных бит, а 228 = 268435456 комбинаций.

Увы, я так и не смог найти ни один такой ключ, чтобы поэкспериментировать с ним. Однако, в Интернете легко найти универсальный код, который открывает 99% домофонов Метаком. Один из них как раз в соседнем от меня подъезде. Я написал программу, посылающую этот код, основываясь только на технической документации. Соседний подъезд открылся с первой попытки. Похоже, что этому домофону тоже не так уж важно точное сопротивление. На этом я оставил Метаком в покое и решил, что чтение их ключей не так уж и нужно.

Универсальные коды ключей

На самом деле универсальные ключи от домофонов — это скорее миф. Разработчики почти никогда не делают для себя какой-то специальный код для всех дверей, исключение составляют только Vizit.

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

Звучит как полнейший бред. Каким надо быть программистом, чтобы допустить такой баг? Но… это действительно часто работает. Да, в свежих прошивках это обычно исправлено, но многие домофоны стоят без изменений годами. Невероятно, но факт.

Любые другие коды ключей выдаваемые за универсальные — это обычно всего лишь служебные ключи для сотрудников почты, ЖКО или самой домофонной компании, и они работают только в отдельных населённых пунктах.

Создание мультиключа

Перейдём уже к практике! Да, я пытался совместить в одном устройстве и имитацию ключей, и их считывание (кроме Метаком), и синхронизацию с компьютером по USB. Вот схема того, что получилось (кликабельно):

Компоненты и их предназначение:

  • IC1 — микроконтроллер ATMEGA8/ATMEGA8A/ATMEGA8L;
  • U1 — USB-контроллер FT232RL, нужен для подключения устройства к компьютеру;
  • CON1 — miniUSB разъём;
  • BT1— батарейки, дающие 3-5 вольт;
  • D1 и D2 — диоды (желательно шоттки), которые изолируют питание от батареи от питания от USB;
  • P1 — «таблетка» iButton, используется для подключения к домофонам;
  • P2 — контакты считывателя ключей, используются для подключения к ключам;
  • R1 — резистор, подтягивающий линию 1-wire к VCC;
  • R2 — токопонижающий резистор для управления транзистором Q2;
  • R3 — резистор, ещё сильнее подтягивающий линию к VCC для считывания ключей Cyfral;
  • R4 — токопонижающий резистор, используется для открытия Q1 и определения подключения к USB;
  • R5 — подтягивает базу Q1 к земле, чтобы закрывать его, когда нет подключения к USB;
  • R6 — токопонижающий резистор для светодиодов, достаточно одного, т.к. одновременно они не горят;
  • R7 и R8 — делитель напряжения для одного из входов компаратора, чтобы считывать ключи Cyfral;
  • Q1 — транзистор для определения подключения к USB;
  • Q2 — транзистор для включения земли на считывателе и эмуляторе, чтобы не сажать батарейки, случайно замкнув контакты в кармане;
  • C1, C2 и C3 — конденсаторы для фильтрации питания;
  • SW1 — единственная кнопка для управления устройством;
  • LEDS — семь светодиодов в форме восьмёрочки для отображения номера ключа.

Печатная плата (кликабельно):

Это было ещё время до покупки 3D принтера, когда я проектировал устройства под корпуса, а не корпуса под устройства. Ко мне в руки попал очень приятный экземпляр в виде брелка и с кнопкой. Просто идеально, оставалось только проделать отверстия под USB и светодиоды. Увы, я до сих пор не могу найти в продаже точно такой же корпус. В итоге получилось как-то так:

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

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

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

При подключении по USB устройство видится как виртуальный COM-порт. Для простоты работы был написан клиент под Windows:

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

Исходники прошивки есть тут: https://github.com/ClusterM/ibutton
Исходники клиента тут: https://github.com/ClusterM/ibutton_client

Заключение

Очень удобно в одном устройстве иметь ключи от дома, родственников, работы и подъездов друзей. Особенно актуально для тех, кто не провёл в квартиру домофонную трубку. Но создавать мультиключ было не столько полезно, сколько интересно. Это отличная практика для изучения микроконтроллеров. Да, именно с этого я в своё время начинал. Помимо этого каждый новый не открывающийся подъезд вызывал целую бурю интереса. Бегать по городу и решать логические задачи, чтобы открыть какую-то дверь — это как видеоигра в реальной жизни! Чертовски увлекательно. Не хватает только схваток с гопниками и бабулек у подъездов в виде боссов 😉

← Визатор своими руками Пока все играют #1 →

clusterrr.com

Описание электронных ключей iButton

Электронные ключи iButton (Dallas Touch Memory) — оригинальное семейство микросхем, разработанных и выпускаемых фирмой Dallas Semiconductor, США. Каждая такая микросхема заключена в стальной герметичный цилиндрический корпус и имеет уникальный регистрационный номер (ID), записываемый в процессе изготовления во внутреннее постоянное запоминающее устройство. Количество комбинаций ID достигает 256 триллионов — этого более чем достаточно, чтобы исключить случайный подбор.

Все электронные ключи iButton выполнены по жёстким стандартам. Попробуйте согнуть их — это невозможно. Бросьте устройство на пол, наступите на него, опустите его в воду или в снег — всё тщетно. Корпус ключа выдерживает механический удар 500 G, рабочий диапазон температур от -40° до +85° С (для ключей iButton DS1990) и от -40° до +70° С для всех остальных, падение с высоты 1,5 метра на бетонный пол, 11-килограммовую нагрузку, не подвержен воздействию магнитных и статических полей, промышленной атмосферы.

Электронный ключ iButton рассчитан на ношение в течение 10 лет и гарантированно сохраняет прочность корпуса при 1 миллионе контактов со считывателем. Его компактная форма в виде толстой монеты обеспечивает самовыравнивание в ответном контактном разъёме считывателя, что гарантирует простоту использования.

Ключ  iButton можно закрепить практически на любой поверхности, идеально подходят печатные платы, пластиковые карточки, идентификационные брелоки и брелоки для ключей.

По выполняемым функциям ключи iButton подразделяются следующим образом:

  • Ключи только с идентификационным номером (ID) — модели электронных ключей iButton DS1990
  • Ключи с идентификационным номером (ID) и памятью (энергонезависимое ОЗУ, ПЗУ и ППЗУ) — модели ключей iButton DS1992, DS1993, DS1995, DS1996
  • Ключи c ID и энергонезависимым ОЗУ с защитой — модели электронных ключей iButton DS1991
  • Ключи с ID, энергонезависимым ОЗУ и часами-календарём реального времени — модели электронных ключей iButton DS1994
  • Ключи с ID и цифровым термометром (так называемые термохроны)
  • Ключи с ID и Java-криптопроцессором

Электронные ключи iButton широко используются в различных системах, требующих идентификации владельца или пользователя:

  • В средствах защиты информации на ПК, ноутбуках, серверах для авторизации администраторов данных систем при выполнении действий по защите информации или пользователей электронных систем при получении доступа к электронным документам — для работы с ними, подписывании с помощью ЭЦП.
  • В системах контроля и управления доступом для идентификации персонала при проходе в оборудованные системой контроля доступа помещения, здания.
  • В охранных системах для постановки на охрану и снятия с неё охраняемых объектов, для отметки персонала охраны на контрольных точках охраняемого периметра при его патрулировании.
  • В банковских и платёжных системах, например, в АРМ клиент-банка для авторизации пользователей выполняющих платёжные операции.

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

Для обеспечения идентификации при работе с компьютером достаточно одного прикосновения электронного ключа к контактному устройству считывателя, чтобы пользовательский идентификационный код считался из памяти ключа iButton.

Устройство электронных ключей iButton (ключей Dallas Touch Memory)

Для обеспечения повышенной устойчивости к воздействиям внешней среды полупроводниковые кристаллы микросхем электронных ключей iButton помещаются в стальной корпус MicroCan. Корпус представляет собой небольшой цилиндр диаметром 16,25 мм и высотой 3,10 мм (модификация F3) или 5,89 мм (более распространённая на сегодняшний день модификация ключей — модификация F5). Верхняя крышка электрически изолирована от остальной части цилиндра полипропиленовой втулкой и является контактом ключа iButton для считывания данных. Нижняя часть цилиндра имеет фланец для облегчения крепления ключа на различных аксессуарах и является общим контактом.

В 2002 году проведена сертификация корпуса MicroCan. Все приборы в этом корпусе имеют санитарно-эпидемиологическое заключение и соответствуют государственным санитарно-эпидемиологическим нормативам и правилам РФ, зарегистрированы в Государственном реестре средств измерений под № 23169-02 и допущены к применению в РФ.

Описание протокола 1-Wire электронных ключей iButton (ключей Dallas Touch Memory)

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

Протокол интерфейса 1-Wire обеспечивает возможность работы с множеством ключей iButton, подключённых параллельно к линии данных 1-Wire. Команды интерфейса позволяют определить ID всех ключей, подключённых в данный момент к линии и затем работать с конкретным прибором, переведя остальные в режим ожидания.

Управление линией данных 1-Wire и выдачу команд производит ведущее устройство, в качестве которого может использоваться любой микроконтроллер или персональный компьютер. Для обеспечения целостности данных используется вычисление контрольных кодов, а также аппаратный промежуточный буфер в ОЗУ электронного ключа iButton. Данные сначала записываются в этот буфер, затем ведущий проверяет их правильность, и только после этого выдаёт команду ведомому устройству — скопировать их из буфера в основную память.

Для подключения ключей iButton к персональному компьютеру, а также для считывания с них информации, используются специальные адаптеры, преобразующие сигналы стандартных портов компьютера (RS232, LPT и USB) в сигналы 1-Wire.

Источник: Эримекс Новосибирск

erim.ru

Новый обзор электронных ключей-идентификаторов iButton от фирмы Dallas Semiconductor

Я считаю, что было бы совершенно неправильно, если бы вообще кто-либо публиковал рабочую прошивку эмулятора, тем самым обесценивая полученный результат. Потом каждый ламер сможет фыркнуть на вашу работу — «это все из инета скачать можно …». Если вы трахались над нею более года, вам будет очень обидно. А если учесть, что «золотые» телефонные карты продаются в питере по цене около ста баков за штуку, то и тем более не стоит.
К тому же, очень многим прошивка не поможет. Такого, чтобы заработало сразу — не бывает. Грабли будут. А грабли обходить — нужно понимать, что ты делаешь, как оно все работает и как оно должно работать. В общем случае, достаточно наличия восхищения двумя книгами — «искусство программирования» кнута и «искусство схемотехники» хоровица / хилла. А большинству читателей этой конфы неплохо бы перечесть школьный курс физики в разделе «электричество». Чтобы было поменьше «гениальных» идей, типа ламинирования магнитной карты.
А то, к примеру, вам потребуется собрать считыватель телефонных карточек. Вы припаяете правильно все проводки, запустите правильную прогу… А в сетапе компа стоит двунаправленный /eрр/ режим параллельного порта…
И — жопа…
Работать не будет. А это даже не грабля, это так — грабелька. В этой конфе постоянно жалуются, что не получается считать карточку. Прикидываю, поля, усеянные граблями, на которых заблудились эти несчастные.
Но, я прикололся, и хочу показать, как примерно должна выглядеть разработка эмулятора. Дабы было меньше неконкретных вопросов на эту тему. При этом будут использованы ошметки моих первых, порой забавных, попыток в этой области. Ценность их для меня сейчас не велика, поскольку я и сам не знаю можно ли их довести до рабочего результата /то была тупиковая ветвь разработки/, но жалко, если какие-то изюминки пропадут, когда-нибудь, без следа, раздавленные клавишей F8. Пусть будут в эхе.
Во избежание разглашения know нow я сменю микропроцессорную платформу, при обсуждении. Ее выбор будет более или менее дебильным. Таким, чтобы воспользоваться этим текстом, как инструкцией по сборке, было бы совершенно невозможно. Только, как руководством к действию. На пик процессоре эмулятор вы уж реализуйте на досуге как-нибудь сами…
Итак, предположим вам втемяшилось в голову разработать эмулятор на самой неподходящей для этого платформе. Например, на однокристалке из семейства mcs-48 фирмы интел i8048, КР1816ВЕ48, i8035, i8039, etc./. Ну уперлись рогом и все тут.
Процессоры 8048, 8035, при максимальной тактовой частоте 6 mнz исполняют одну команду за 2.5 или 5 мкс. А минимальные времена импульса и промежутка между импульсами сигнала clk при чтении карточки определены в 8 и 10 мкс. На период событий в нашей системе будут приходится 3-7 команд процессора. Ясно, что это недопусимо мало. Процессоры i8049 и i8039 чуть быстрее. К ним можно прилепить кварц 11 Mнz и команда будет выполняться за 1.36 или 2.72 мкс. Поскольку, таксофон, наверняка, работает с карточкой на частоте меньше максимальной (для надежности), может быстродействия нам и хватит. Если Будем экономить каждый такт процессора. Короче говоря, столь странный Камень выбран для того, чтобы сделать более выпуклой битву за быстродействие, которая является непременным спутником разработки любого эмулятора.
Поскольку таксофон, при отнятии единицы, снимает питание с карточки и перечитывает ее заново, а встроенной энергонезависимой памяти в нашем проце нет, то ясно, что придется сделать внешнее питание. А то, при снятии питания, проц будет забывать сколько осталось единиц. Чтобы батарейка работала подольше, берем кмоп вариант проца. Чтобы никакие дополнительные мелкоcхемы, типа защелки или пзу-хи /27C16/ не потребляли лишнего тока, берем проц со встроенным перешиваемым пзу. Будем лить программу внутрь. Короче говоря, выбираем i87C49 (кажется у него даже есть аналог КР1835ВЕ49). Максимально допустимая частота кварца для этого процессора 11 mнz (одна команда за 1.36 или 2.72 мкс). Но, не забудем, что процессоры можно разгонять. Поэтому эксперименально подберем максимальную частоту кварца, при которой проц будет работать без глюков. Не забудем, при этом, контролировать частоту генерации Частотомером на ноге xtal2. А то, при подключении слишком высокочастотных кварцев, генерация может начаться на паразитных r и c, а не на частоте резонатора. Пик-процессоры, например, разгоняются аж в 2 раза. Мой PIC16C84-04/SO работал на 10 mнz-ах и изредка глючил на 11.7. А PIC16F84-10I/SO еще Пахал на 21mнz-е и напрочь отказался лишь на 24-х.
Поскольку, эмулятор получается батарейным, то отпадает проблема, которая мучит разработчика эмулятора с питанием от таксофона — минимизация времени старта процессора. Таксофон, после подачи питания, делает жутко малую выдержку прежде, чем начать читать карту. Если, к этому времени поцессор не успел стартовать, исполнить секцию инициализации программы и добраться до главного цикла, то данные, прочитанные таксофоном, будут представлять совершеннейший shit. Но процессору-то надо дать время сброситься, а тактовому генератору раскочегариться и устаканить свои колебания. Напомню, что кварцевый резонатор начинает генерацию вовсе не сразу после подачи на него питания. Пик-процессор, например, при старте отсчитывает 1024 импульса от кварца, в качестве выдержки на стабилизацию его частоты, прежде чем начать ход по программе. Очевидно, что время между подачей напряжения питания и первым импульсом от кварца является просто мертвым временем, бесполезно увеличивающим время прихода процессора в чувство. Мертвое время зависит от величин емкостей, подключенных к выводам кварца и имеет четко выраженный минимум. Оно велико при слишком маленьких и слишком больших емкостях. У керамического резонатора это время порядка десятков микросекунд, а у кварца это — единицы миллисекунд ! Так-что, взяв двухлучевой запоминающий осциллограф, желательно минимум этого мертвого времени, для конкретного экземпляра кварца, найти, перебирая величины подключенных к нему емкостей.
Опять таки, поскольку эмулятор получается батарейным, нет необходимости оптимизировать секцию инициализации программы. Можно, не торопясь, скопировать все или часть данных из пзу в озу. В нашем случае в озу Будут храниться только изменяемые данные, соответствующие кредиту карты. Неизменяемые данные (серийный номер карты, сертификат и т.п.) будут храниться в пзу. Для ускорения доступа к данным будем, при старте Программы, копировать данные в озу по тем-же адресам, что они лежали в третьей странице пзу. Это позволит использовать один указатель для доступа и к изменяемым и к неизменяемым данным.
Теперь изобретаем схему. Схему всегда нужно проектировать так, чтобы программа для нее имела максимальное быстродействие. То есть первый этап оптимизации программы — схемотехнический.
Во первых, смотрим — можно-ли обнаруживать какие-либо события аппаратно (а не программно), заводя сигналы на ноги прерывания микропроцессора. Пусть железо, жесткая логика, вберет в себя часть алгоритма. Нужно максимально использовать аппаратные возможности микросхемы, обрабатывая импульсы по прерываниям, а не опросом линии в цикле.
Карточка, при чтении, по фронту clk увеличивает на один внутренний адресный счетчик. Но состояние своего выхода не меняет. И выдает новый Бит лишь по спаду сlk. Наш-же эмулятор, обнаружив clk, будет в течение нескольких команд процессора соображать по программе, что к чему и какой бит вывести. Поэтому ясно, что эмулятор должен срабатывать по фронту clk. Он будет выдавать следующий бит с задержкой от фронта. Если таксофон будет очень привередничать можно, вставляя noр-ы, манипулируя частотой кварца, а также выравнивая плечи по временам исполнения, приурочить этот момент как раз на спад clk. Хотя реально такие тонкости вряд-ли понадобятся. То есть необходимо прерывание по фронту clk. Но наш гребаный процессор имеет вход int, который срабатывает по отрицательному перепаду /из 1 в 0/. ну не ставить-же инвертор в самом деле. Волей-неволей с идеей прерываний приходится распрощаться. Будем опрашивать линии сами.
Куда-же засунуть этот clk. Какой-нибудь программист тут-же ляпнул бы — да на порт ввода-вывода /например р1.0/. И обрабатывал линию бы так :
in a,р1
jb0 clock_рrisнel — в 4 такта процессора а если-бы условный переход нужен был бы по отсутствию clk : in a,р1
cрl a
jb0 netu_clocka — 5 тактов
/ команды jnb в этой варварской системе команд нету / А вот человек, исповедующий идею аппаратной оптимизации программ, засунул бы линию clk на ногу t0, а линию rst на ногу t1 и ветвился бы в два такта по обоим условиям — jt0, jnt0, jt1, jnt1.
Вот линию out некуда присоединить, кроме как к какой-нибудь линии порта ввода-вывода. Причем приверженец схемотехничесого вылизывания программ предпочел бы именно нулевой бит какого-нибудь порта /например р1.0/. Почему ? А это предоставляет возможность писать максимально лаконичные куски кода для манипулирования этим выходом. Ниже вы это увидите.
Но сначала вопрос — как хранить данные карточки, для максимально быстрого оперирования ими. Во первых как их вообще представлять — по биту в байте или упаковать по 8 бит в байт. Если хранить весь дамп Карты в 16-и байтах, то при чтении, а это самая быстрая операция карточки, пришлось бы проверять постоянно — надо ли читать следующийБайт или все еще вращать / сдвигать этот. Зато как легко выполнялся бы Writecarrу — послал в память байт ff и все. Но операция writecarrу будет происходить около 10 мс. Поэтому оптимизируем по быстродействию в пользу read, а уж при writecarrу времени послать 8 байт хватит. То есть храним данные карточки в 128-и байтах, причем смысл данных будет иметь только младший бит в байте. При этом, все операции получаются легко и непринужденно.
Посылка следующего бита на выход :
  1. Неизменяемых данных из rom
    inc r0 — увеличение на единицу адресного счетчика
    mov a,r0
    movр3 a,@a — чтение байта из встроенного пзу
    outl р1,a — нужный бит данных на выходе р1.0
    остальные бита порта р1 никуда не подключены пусть изменяются как им угодно
  2. Изменяемых данных из ram inc r0 — увеличение на единицу адресного счетчика
    mov a,@r0 — чтение байта из встроенного озу
    outl р1,a — нужный бит данных на выходе р1.0

Теперь в алгоритме нужно, как-то, определять какой байт читать из озу а какой из пзу. В каждом байте у нас осталось по 7 бесхозных бит. Пусть один из них (например первый) определяет статус данных — если он Сброшен, то данные надо искать в озу, а если выставлен — в пзу :
inc r0 — увеличение на единицу адресного счетчика
mov a,r0
movр3 a,@a — чтение байта из встроенного пзу
jb1 rom
RAM: mov a,@r0 — чтение байта из встроенного озу
ROM: outl р1,a — нужный бит данных на выходе р1.0
Очень просто получается операция write :
anl р1,#0feн — сбросить линию out в ноль
inc @r0 — поскольку до write бит был заведомо выставлен, то после inc он будет заведомо сброшен.
Операция writecarrу тоже выглядит вполне ничего для 10 мс, отведенных для нее. Поскольку до writecarrу восемь бит были заведомо нулевыми, восемь inc-ов сделают их заведомо единичными —
mov a,r0 — текущий адресный счетчик
anl a,#0f8h
add a,#8 — вычислено начало восьмерки бит /лотка 8-чного абака/
mov r1,a
inc @r1
inc r1
inc @r1
inc r1
inc @r1
inc r1
inc @r1
inc r1
inc @r1
inc r1
inc @r1
inc r1
inc @r1
inc r1
inc @r1
Короче говоря, исходный текст того, что получилось вы увидите в хвосте этого документа. В программе сами собой получились фичи, существенно необходимые для эмулятора, например, наличие 512-битного кольца данных. В реальной карте 9-битный адресный счетчик и он запросто переполняется. Правда, у нас получилось 256-битное кольцо. Но раз есть 256-битное, то и 512-битное тоже есть.
Получившаяся программа обладает вполне не дурными временными характеристиками. По приходу clk, данные на выходе, появляются спустя 9-13 тактов процессора. Для 11 mнz-ового кварца это — спустя 12-18 мкс после фронта clk. Вполне пристойный результат для такой убогой архитектуры. Это лишь в 2-3 раза хуже того, что можно получить на пик-е. Впрочем, для некоторых типов таксофонов этого вполне достаточно. Кстати, у процессора i8049 128 байт встроенного озу, в отличие от 64 байт у i8048. Поэтому, можно, при инициализации программы, переместить все данные в озу. В результате в быстродействии операции чтения можно выиграть еще 2 такта. Переключать чтение данных из пзу в озу и обратно уже будет не нужно. Read: mov a,r0 — текущий адресный счетчик inc a — его увеличение anl a,#7fн — кольцо теперь должно быть 128-битным mov r0,a mov a,@r0 — чтение из озу outl р1,a — бит данных на выход Но я, из принципа, написал код, который бы работал на любом процессоре cемейства mcs-48. А теперь пара нетривиальных советов по программированию однокристалок. Напрочь забудьте то, как вас учили программировать. Программу надо писать так, чтобы дейкстра (основатель структурного программирования), Прочитав ее, #%нулся бы в обморок. И приправить ее солидной порцией шизы. Есть примета, что программы для такого рода вещей, написанные без доли шизы, реально не работают. На некоторых архитектурах, особливо интеловских, без извращений — никак. Например, в нашей программе часть данных, соответствующая кредиту карты копируется в озу. Причем эти данные полностью перекрывают область стека. Но, поскольку, я нигде не вызываю подпрограмм и прерывания у Меня запрещены, то что тут такого ? Дамп карточки в программе лежит не по порядку, а завернувшись в кольцо, используя то обстоятельство, что адресный счетчик r0 переполняется /точнее лежит полузавернувшись в кольцо, или завернувшись в полукольцо, как кому больше нравится/. В результате возможно всего двумя командами mov a,r0 jb7 failure Различать попытку записи в область единиц и попытку записи в Manufacturer area. Таксофон так делает, в качестве противодействия Эмуляторам. Эта изюминка с кольцом, требует волей-неволей организовать другую — адреса 0 и 1 используются одновременно и как рабочие регистры r0 и r1, И как ячейки для хранения двух бит кредита карты. Фокус в том, что приходящиеся на эти ячейки биты дампа карты (два старших бита кредита) всегда должны быть нулевыми, поскольку не бывает карт с кредитом больше Чем 7*4096-1=28671 единица. И всегда, когда к r0 и r1 обращаются, как к хранителям дынных карточки, они оказываются с нулевым младшим битом ! Каким образом так получается ? Регистр r0 используется как адресный счетчик (указатель). Когда ему случится указать на самого себя, он, естественно, будет равен нулю, а значит и младший бит его будет равен нулю. Регистр r1 всегда, по окончании использования, — anl a,#0f8н ; a.0 …

www.eham.ru

Обзор электронных ключей-идентификаторов iButton от фирмы Dallas Semiconductor

В 1991 году компания Dallas Semiconductor выпустила свои первые электронные ключи-идентификаторы серии DS199х. В начале для них было запатентован товарный знак «Touch Memory», которое достаточно полно отражало основные свойства этих изделий. Touch — переводится «прикоснись», Memory — «память». Действительно, все ключи, которые внешне выглядят как металлические дисковые батарейки, в обязательном порядке имеют внутри микросхему-ПЗУ с уникальной для каждого устройства двоичной 48-разрядной кодовой комбинацией (идентификационным номером), а считывается эта комбинация при прикасании металлическим корпусом ключа к металлическому же зонду-считывателю.

Новый электронный ключ из Далласа стал популярным среди потребителей, и, как следствие, стали появляться новые модели. Последнее изделие этого ряда DS1954 имеет внутри своего корпуса специальный микропроцессор для шифрования информации, разработан был также идентификатор со встроенным термопреобразователем, планируется реализовать идеи размещения других схем в стандартизованном компанией Dallas Semiconductor металлическом корпусе. Поэтому с начала 1997 года Dallas Semiconductor заявила о смене названия всех своих идентификационных ключей на iButton (Information Button — «таблетка с информацией»), как более общее и охватывающее весь ряд изделий в настоящем и в будущем.

Внешний вид электронного ключа iButton

Все электронные ключи-идентификаторы iButton внешне похожи на дисковую металлическую батарейку.

Металл представляет собой нержавеющую сталь. Диаметр диска около 17 мм, толщина 3,1 мм или 5,89 мм. Диск состоит из двух электрически разъединенных половинок.

Внутри он полый. В герметичную полость заключена электронная схема на кремниевом кристалле. Выход схемы соединен с половинками диска двумя проводниками. Половинки диска образуют контактную часть одно проводного последовательного порта. При этом через центральную часть идет линия данных, внешняя оболочка — земля. Для того чтобы произошел обмен информации iButton с внешними устройствами, необходимо прикоснутся обеими поверхностями половинок металлического диска к контактному устройству (зонду), также состоящему из двух электрически не связанных, проводящих электрический ток частей.

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


Большая площадь поверхности контактов защищает систему от неточного совмещения при подключении по причине «человеческого фактора» или при автоматизированном касании, когда идентификатор и зонд расположены на различных подвижных механизмах . Кроме того дисковая форма корпуса направляет и очищает контакты, гарантируя надежное соединения, а закругленный край корпуса легко совмещается с зондом.

Области применения

Устройства семейства iButton предназначены для различных секторов рынка, в зависимости от их типа. Наиболее распространены они сейчас в качестве:
Идентификационных карточек персонала для систем ограничения доступа в здания или отдельные помещения. Особенно они популярны в секторе рынка с повышенным уровнем воздействия внешней среды и условий эксплуатации, то есть там, где традиционные карточки или устройства для считывания с них информации могут быстро выйти из строя. При этом, в зависимости от категории защищенности объекта, применяются различные типы iButton. Так, для ограничения доступа в подъезды жилых домов, где не предъявляются повышенные требования к системам ограничения доступа, используют самые дешевые iButton DS1990, которые стоят около 4 долларов. В подъезды iButton устанавливают обычно в единой системе с домофоном — переговорной и управляющей дверным электромагнитным замком системой. Учитывая низкую цену считывающего устройства — около 25 долларов, установщики домофонов получают беспрецедентно низкие цены и на всю электронную систему управления замками, при очень высоких потребительских параметрах, в особенности, защищенности от внешних воздействий. В таких системах жильцам подъезда выдаются iButton DS1990, в качестве ключей для подъездного замка. Закрепленные на пластмассовом брелке, который можно носить в одной связке вместе с обычными механическими ключами, iButton можно ронять на землю или бетонный пол, они не боятся воды, льда (предел рабочей температуры -40С), кислот, масел, бензина, электромагнитных полей. Корпус рассчитан на 1млн. касаний к зонду. Металлический зонд также хорошо вписывается в жесткие эксплуатационные нагрузки общих входных дверей подъезда.

Широко используются iButton также в качестве идентификационных карточек ограничения доступа в офисные помещения и на промышленные предприятия.

Дополнительные возможности по повышению степени ограничения доступа в помещения позволяют реализовывать iButton с защищенной паролем энергонезависимой памятью, а также новые iButton DS1954 с микропроцессором-шифратором с длиной кода ключа 1024 бит, энергонезависимой памятью и часами-календарем. Последняя модель имеет высокую степень защиты информации. Такие системы обычно используются в банках и на предприятиях с повышенными требованиями безопасности.

Идентификационные метки оборудования и аппаратуры. Специальное приспособление закрепляет диск iButton на плате оборудования или в его корпусе. Уникальный номер позволяет производителю идентифицировать свое оборудование или защищать его от подделок. IButton с энергонезависимой памятью могут дополнительно хранить параметры эксплуатации, гарантийные обязательства и другие служебные характеристики изделий.

Аппаратный ключ в системах защиты информации. Используется для защиты программного обеспечения компьютеров. Защищаемая программа имеет встроенную процедуру обращения через один из портов компьютера к идентификационному номеру или энергонезависимой памяти iButton. Сам идентификатор закрепляют в специальном адаптере к порту. Хозяин программы распределяет по ней защитные метки с номерами конкретной iButton или с содержимым его энергонезависимой памяти. В случае несоответствия номера или содержимого энергонезависимой памяти идентификатора этим записями, программа не работает.

Описание протокола iButton

Данные в соответствие с протоколом iButton Standarts передаются в дискретные временные интервалы, которые называются временными сегментами (типовая длительность около 60мкс) с помощью коротких и длинных импульсов, аналогичных азбуке Морзе. При этом инициатором обмена (ведущим) всегда является считывающее устройство. При соприкосновении с зондом или его эквивалентом прибор iButton выдает ответный сигнал, за которым следует код семейства, 48-битный серийный номер iButton и код контроля.

Длинные или короткие активные состояния логического нуля во временных сегментах представляют единицы или нули. Ведущая система запускает передачу каждого бита.

В общем случае iButton может работать относительно мастера как на считывание, так и на запись информации в свою энергонезависимую память. Для записи логической 1 в течение типового сегмента времени однопроводная линия передачи должна за время выборки данного вернуться в состояние логической 1, для записи 0 в течение всего этого временного окна линия должна находиться в состоянии логического 0.

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

В цикле считывания идеальный момент стробирования считываемого данного — это 8мкс после начала временного сегмента.

Задающее устройство подает на однопроводную линию активный логический 0 на время синхронизации данного (не менее 1мкс), после чего переходит в режим приема. Далее в течение всего времени выборки данного состояние линии определяется прибором iButton . После начала временного сегмента состояние линии с помощью пассивной нагрузки выдерживается на уровне логической 1 от 15 до 60мкс. Возможна приостановка сеанса связи на любое время между временными сегментами, при этом на однопроводной линии связи поддерживается состояние логической 1. Во всех сеансах связи первым передается младший значащий разряд данного.

Подробно ознакомиться с протоколом iButton Standarts можно в многочисленных изданиях самой фирмы Dallas Semiconductor в виде книг, CDROM или по Интернету (сервер iButton.com).

Обзорная таблица iButton представлена в Табл.1.

Для упрощения восприятия обзора попытаемся внести элементы классификации в семейства iButton. Необходимо отметить, что делается это самовольно — Dallas Semiconductor пока этого еще не сделала и представляет свои семейства по принципу возрастания номера маркировки.

Основной раздел между iButton можно провести по признаку наличия средств защиты области данных от несанкционированного пользователя. В этом случае явно выделяются два типа: iButton с незащищенной областью данных и iButton со специальной защитой данных.

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

Табл. 1. Обзорная таблица iButton

 

Маркировка

Описание

Емкость памяти

DS1954

Криптографический микропроцессор

32К ROIVI+6K NVSRAM

DS1963

Электронный кошелек

4096 бит NVSRAM

DS1971

EEPROM память

256+64 бит EEPROM

DS1981U

EPROM память и специальный номер

512битЕРРОМ

DS1982U

EPROM память и специальный номер

1024 бит EPROM

DS1982

EPROM память

1024 бит EPROM

DS1985

EPROM память

16384 бит EPROM

DS1986

EPROM память

65536 бит PROM

DS1990A

Только номер

нет

DS1991

Энергонезависимая память с паролем

1344 бит NVSRAM

DS1992

Энергонезависимая память

1024 бит NVSRAM

DS1993

Энергонезависимая память

4096 бит NVSRAM

DS1994

Энергонезависимые память и часы

4096 бит NVSRAM

DS1995

Энергонезависимая память

16384 бит NVSRAM

iButton с уникальным серийным номером.

Группа состоит из одного семейства — DS1990А. Это первое изделие Dallas Semiconductor, впервые поступившее в продажу в 1991 году. Имеются две разновидности по толщине корпуса. DS1990A-F5 — имеет толщину корпуса 5,89 мм, а DS1990A-F3 толщину 3,1 мм.

По схемотехнике DS1990A самая простая iButton и имеет только ПЗУ с уникальным 48-разрядным номером, кодом семейства и кодом контроля. Доступ к ПЗУ происходит через интерфейсную схему, поддерживающую протокол iButton Standart (блок-схема на Рис. 2).Питается микросхема DS1990A, как и все iButton, от «паразитного источника» (на рисунке не показан), состоящего из внутренних выпрямителя и конденсатора (см. первую часть обзора). Энергия в этот источник поступает через резистор 5 КОм открытого коллектора порта считывателя в момент времени, когда контактная часть считывателя и iButton прикоснулись друг к другу.
DS1990A не имеет никаких средств защиты области данных пользователя, так как области этой как таковой и нет. Уникальный номер, записанный в ПЗУ на заводе в Далласе, доступен для любого считывающего устройства-эонда, поддерживающего протокол iButton Standart.
Четыре КОМАНДЫ ПЗУ составляют систему команд iButton DS1990А: ЧТЕНИЕ ПЗУ, СОВПАДЕНИЕ ПЗУ, ПРОПУСК ПЗУ и ПОИСК ПЗУ. В режиме с одним узлом считывания достаточно команды СЧИТЫВАНИЕ ПЗУ. Остальные команды необходимы для работы в сетевом варианте применения для исключения конфликтов при одновременном касании многих iButton к разным считывающим контактам, подсоединенным к одной линии данных.
Порядок выдачи содержимого ПЗУ при исполнении команды ЧТЕНИЕ ПЗУ следующий: код семейства(01H для DS1990A ), 48 бит уникального номера и последним идет 8-битный код контроля. Передача идет побитно, младший значащий разряд идет первым. Прием считается завершенным, только если вычисленный мастером на основе уникального номера по стандартной формуле контрольный код, совпадает с принятым контрольным кодом из ПЗУ iButton. Полный цикл считывания ПЗУ длится около 5мс.

iButton с энергонезависимой статической памятью.

Группа этих iButton включает в себя четыре семейства: DS1992L, DS1993L, DS1995L и DS1996L. Буква L в наименовании означа- ет наличие трехвольтовой литиевой батарейки. Энергия батарейки используется для питания микромощной статической памяти (SRAM) в течение всего срока службы этих iButton, который составляет не менее 10 лет.

Для коммуникационных процессов здесь, как и в других iButton, используется «паразитный» внутренний источник — выпрямитель+конденсатор. В случае разряда батарейки по какой-либо причине, имеется возможность доступа только к ПЗУ.

Как и у всех iButton, ПЗУ этих семейств имеет идентификационный номером, код семейства и код контроля (См. Рис. 3).

Каждое семейство отличается от другого только размером статической энергонезависимой памяти.
Структурно эта память разбита на страницы по 32 байта и имеет систему адресации. DS1992 имеет всего четыре таких страницы, DS1993 — 16 страниц, DS1995 — 64 страницы, DS1996 — 256 страниц. Содержимое страниц может быть считано любым устройством считывания, поддерживающим iButton Standart.
Скорости записи данных и считывания одинаковы и составляют в обычном режиме 16,3 Кбит в секунду. Модели DS1995 и DS1996 поддерживают режим ускоренного обмена «overdrive», отличие которого от обычного в сокращенных примерно в 10 раз длительностях цикла инициализации и временных окон для данных. Так инициализация происходит за время от 48мкс, а достаточный временной интервал для данных 6мкс. Скорость полудуплексного обмена данными в режиме «overdrive» 142Кбит в секунду. Запись в энергонезависимую SRAM осуществляется диспетчером памяти через 32-байтную блокнотную память, которая выполняет функцию буфера. Блок данных записывается вместе с блоком адреса для этих данных. Данные и адрес верифицируются, то есть считываются обратно мастером из блокнотной памяти, и проверяются им на предмет идентичности с отправленными. Только после удачного исхода мастер командой «копировать блокнотную память» разрешает переносить данные из блокнотной памяти на выбранную страницу основной энергонезависимой SRAM. Формат записываемых данных может быть от 1 байта до 32 байт. Считываются данные минуя блокнотную память.
Восемь команд поддерживаются данным типом iButton: четыре КОМАНДЫ ROM, три команды: записи, считывания и копирования блокнотной памяти, команда чтение памяти.

iButton с энергонезависимой однократнопрограммируемой EPROM-памятью.

В отличие от семейств с энергонезависимой статической памятью, в этих приборах не используются литиевые батарейки, хотя и имеется память данных. . Память данных здесь однократнопрограммируемая EPROM. Напряжение программирования 11,5В +0,5В, ток 10мА.

Питание всей схемы осуществляется только от «паразитного» источника. Отсутствие литиевой батарейки позволяет Dallas Semiconductor выпускать эти модели, как в толстом F5, так и в тонком F3 корпусах. Группа включает семейства DS1981U,DS1982U, DS1982,DS1985 и DS1986. У всех семейств имеется стандартного вида ПЗУ, но разный объем памяти данных. Последняя адресуется и разбита на страницы по 32 байта. DS1981 имеет 2 страницы, DS1982 — 4 страницы, DS1985 -64 страницы и DS1986 — 256 страниц. Модели с маркировкой U отличаются от остальных моделей тем, что 12 бит из общего пространства уникального номера занимает прошивка 5E7H, остальные же 36 бит имеют уникальную прошивку.

Для повышения надежности занесения данных в однократнопрограммируемую память данных в электрическую схему введены дополнительные элементы: детектор напряжения, генератор контрольной суммы, регистр статуса и 8-битная блокнотная память (см. Рис. 4).
Чистая EPROM имеет записанными логические единицы. Однажды установленный в логический ноль бит памяти невозможно в дальнейшем изменить, однако оставшийся в единичном состоянии может быть изменен в логический ноль при повторном программировании. Каждая страница памяти данных может быть защищена от попытки повторной записи в нее данных, установкой соответствующего бита регистра статуса в состояние логического нуля. Регистр статуса программируется только однократно, поэтому обратно открыть для записи страницу уже будет нельзя. Кроме байта защиты памяти данных, регистр статуса имеет байты переадресации страниц. Запись в эти байты позволяет переписать содержимое страницы на другую открытую для записи страницу и дополнить ее содержимое модифицированными данными. Для приложений, требующих модификации данных, Dallas Semiconductor предлагает брать модели с заведомо большим количеством страниц. 
Что касается механизма записи информации в память данных этого семейства, то он несколько усложнен. Адреса, коды команд и данные проверяются исключительно побайтно. Мастер считывает код, вычисленный генератором проверочного кода, и сравнивает со своими вычислениями. Только после этого разрешается продвижение на очередной байт в процедуре записи. 
Протокол обмена с мастером поддерживает восемь команд: четыре ПЗУ КОМАНДЫ, команды с памятью данных ЧТЕНИЕ и ЗАПИСЬ, а также команды для регистра статуса ЧТЕНИЕ и ЗАПИСЬ. Модель DS1986 имеет возможность работать в скоростном режиме «overdrive». 
В приложениях не требующих частого обновления данных эти iButton находят применение, вследствие своей дешевизны.

iButton с EEPROM памятью данных.

Группа пока представлена одним семейством DS1971. Это новое семейство выпускается с 1997 года. Поставляется DS1971 в двух корпусах F3 и F5. Кроме стандартного ПЗУ, эта модель содержит память данных типа EEPROM в виде одной 256 битной странички. Данные могут неоднократно перезаписываться только постранично.

Напряжение программирования +5В. Запись происходит через блокнотную память, объем которой также 256 бит (см. Рис. 5).
После верификации данных, содержимое блокнотной памяти переносится в память данных одним блоком. Имеется регистр для занесения служебной информации — РЕГИСТР ОДНОКРАТНОЙ ЗАПИСИ. Данные в него заносятся через его блокнотную память и могут быть записаны только один раз. В дальнейшем этот регистр открыт только для считывания. Регистр однократной записи может использоваться производителем оборудования с использованием DS1971 для занесения служебной информации, например, дата выпуска, номер партии и т.п.. Событие о том, что запись в РЕГИСТР ОДНОКРАТНОЙ ЗАПИСИ произведена, отражается в состоянии регистра СТАТУС-ПАМЯТЬ. Два бита его устанавливаются при этом в логический ноль. Мастер может только считать состояние этого регистра. 
Одиннадцать команд возможны в работе с DS1971: четыре КОМАНДЫ ПЗУ, три команды ЧТЕНИЕ, ЗАПИСЬ и КОПИРОВАНИЕ блокнотной памяти, три команды регистра однократной записи — ЧТЕНИЕ, ЗАПИСЬ и КОПИРОВАНИЕ С ЗАМКОМ и команда ЧТЕНИЕ СТАТУС-ПАМЯТИ.

iButton с энергонезависимыми таймером и статической памятью.

Эта группа представлена одним семейством DS1994L. Микросхема его содержит обычную ПЗУ с идентификационным номером, кодом семейства и кодом контроля, статическую память 16 страниц по 32байта каждая, кварцевый генератор часовой частоты 32768 Гц, таймер-календарь в двоичном формате, программируемые счетчики циклов включения-выключения, интервальный таймер. 
Статическая память и все элементы таймера энергонезависимы за счет литиевой батарейки. Режимы работы таймерной части DS1994 определяют два его регистра: регистр статуса и регистр управления. В регистр статуса помещают свои флаги по наступлению заданного события таймер-календарь, интервальный таймер и счетчик циклов. Состояния флагов доступны для считывающего прибора и могут быть использованы им для принятия решения. Календарь таймера организован так, что необходима предварительная установка даты и времени отсчета. Исход времени будет затем отсчитываться от этой даты. Емкость по времени календаря 136 лет.
Состояние регистра управления определяет доступность ресурсов как таймера, так и страниц энергонезависимой памяти. Установки его битов останавливают генератор, запрещают изменения установок календаря, интервального таймера, счетчика циклов, чтение общей энергонезависимой памяти. 
DS1994 удобно использовать для ограничения срока работы приборов или устройств. В этом варианте он устанавливается в специальном зажиме, по аналогии с дисковыми аккумуляторами, и имеет постоянное соединение со схемой устройства. 
Система команд DS1994 содержит как типичные для iButton команды ПЗУ так и команды работы с таймерами и счетчиком.

www.pocentr.ru

Обзор электронных ключей-идентификаторов iButton от фирмы Dallas Semiconductor » Сборник Статей

[RATINGS]

Обзор электронных ключей-идентификаторов iButton от фирмы Dallas Semiconductor

ООО ЕвроСтандарт

В 1991 году компания Dallas Semiconductor выпустила свои первые электронные ключи-идентификаторы серии DS199х. В начале для них было запатентован товарный знак «Touch Memory», которое достаточно полно отражало основные свойства этих изделий. Touch — переводится «прикоснись», Memory — «память». Действительно, все ключи, которые внешне выглядят как металлические дисковые батарейки, в обязательном порядке имеют внутри микросхему-ПЗУ с уникальной для каждого устройства двоичной 48-разрядной кодовой комбинацией (идентификационным номером), а считывается эта комбинация при прикасании металлическим корпусом ключа к металлическому же зонду-считывателю.
Новый электронный ключ из Далласа стал популярным среди потребителей, и, как следствие, стали появляться новые модели. Последнее изделие этого ряда DS1954 имеет внутри своего корпуса специальный микропроцессор для шифрования информации, разработан был также идентификатор со встроенным термопреобразователем, планируется реализовать идеи размещения других схем в стандартизованном компанией Dallas Semiconductor металлическом корпусе. Поэтому с начала 1997 года Dallas Semiconductor заявила о смене названия всех своих идентификационных ключей на iButton(Information Button — «таблетка с информацией»), как более общее и охватывающее весь ряд изделий в 1997 году.
Данное сообщение содержит описание конструкции, принципов работы и обзор последней номенклатуры электронных ключей из Далласа в соответствие с терминологией.

Внешний вид электронного ключа iButton


Все электронные ключи-идентификаторы iButton внешне похожи на дисковую металлическую батарейку (См. Рис 1). Металл представляет собой нержавеющую сталь. Диаметр диска около 17 мм, толщина 3,1 мм или 5,89 мм. Диск состоит из двух электрически разъединенных половинок.
Внутри он полый. В герметичную полость заключена электронная схема на кремниевом кристалле. Выход схемы соединен с половинками диска двумя проводниками. Половинки диска образуют контактную часть однопроводного последовательного порта. При этом через центральную часть идет линия данных, внешняя оболочка — земля. Для того чтобы произошел обмен информации iButton с внешними устройствами, необходимо прикоснутся обеими поверхностями половинок металлического диска к контактному устройству (зонду), также состоящему из двух электрически не связанных, проводящих электрический ток частей.
Обычно для материала контактов зонда используют нержавеющую сталь или медный сплав, с нанесенным на него защитным токопроводящим покрытием. Процесс касания к зонду показан на Рис.2.
Большая площадь поверхности контактов защищает систему от неточного совмещения при подключении по причине «человеческого фактора» или при автоматизированном касании, когда идентификатор и зонд расположены на различных подвижных механизмах . Кроме того дисковая форма корпуса направляет и очищает контакты, гарантируя надежное соединения, а закругленный край корпуса легко совмещается с зондом.

Области применения

Устройства семейства iButton предназначены для различных секторов рынка, в зависимости от их типа. Наиболее распространены они сейчас в качестве:
Идентификационных карточек персонала для систем ограничения доступа в здания или отдельные помещения. Особенно они популярны в секторе рынка с повышенным уровнем воздействия внешней среды и условий эксплуатации, то есть там, где традиционные карточки или устройства для считывания с них информации могут быстро выйти из строя.При этом, в зависимости от категории защищенности объекта, применяются различные типы iButton. Так, для ограничения доступа в подъезды жилых домов, где не предъявляются повышенные требования к системам ограничения доступа, используют самые дешевые iButton DS1990, которые стоят около 2 долларов. В подъезды iButton устанавливают обычно в единой системе с домофоном — переговорной и управляющей дверным электромагнитным замком системой. Учитывая низкую цену считывающего устройства — около 25 долларов, установщики домофонов получают беспрецендентно низкие цены и на всю электронную систему управления замками, при очень высоких потребительских параметрах, в особенности, защищенности от внешних воздействий. В таких системах жильцам подъезда выдаются iButton DS1990, в качестве ключей для подъездного замка. Закрепленные на пластмассовом брелке, который можно носить в одной связке вместе с обычными механическими ключами, iButton можно ронять на землю или бетонный пол, они не боятся воды, льда (предел рабочей температуры -40С), кислот, масел, бензина, электромагнитных полей. Корпус рассчитан на 1млн. касаний к зонду. Металлический зонд также хорошо вписывается в жесткие эксплуатационные нагрузки общих входных дверей подъезда.
Широко используются iButton также в качестве идентификационных карточек ограничения доступа в офисные помещения и на промышленные предприятия.
В этих вариантах использования часто закрепляют диск iButton на личной пластиковой карточке персонала, где дополнительно может быть размещена фотография и другие данные о специалисте.
Дополнительные возможности по повышению степени ограничения доступа в помещения позволяют реализовывать iButton с защищенной паролем энергонезависимой памятью, а также новые iButton DS1954 с микропроцессором-шифратором с длиной кода ключа 1024 бит, энергонезависимой памятью и часами-календарем. Последняя модель имеет высокую степень защиты информации. Такие системы обычно используются в банках и на предприятиях с повышенными требованиями безопасности.
Идентификационные метки оборудования и аппаратуры. Специальное приспособление закрепляет диск iButton на плате оборудования или в его корпусе. Уникальный номер позволяет производителю идентифицировать свое оборудование или защищать его от подделок. IButton с энергонезависимой памятью могут дополнительно хранить параметры эксплуатации, гарантийные обязательства и другие служебные характеристики изделий.
Аппаратный ключ в системах защиты информации. Используется для защиты программного обеспечения компьютеров. Защищаемая программа имеет встроенную процедуру обращения через один из портов компьютера к идентификационному номеру или энергонезависимой памяти iButton. Сам идентификатор закрепляют в специальном адаптере к порту. Хозяин программы распределяет по ней защитные метки с номерами конкретной iButton или с содержимым его энергонезависимой памяти. В случае несоответствия номера или содержимого энергонезависимой памяти идентификатора этим записями, программа не работает.

Принципы конструкции iButton и считывающих устройств для них

Как отмечалось выше, iButton представляют собой микросхему, помещенную в дисковый металлический корпус. В структурной схеме этой микросхемы в обязательном порядке присутствуют однопроводный порт, логика управления и ПЗУ в виде 64-битного блока, содержащего 48-битный идентификационный номер, 8-ми битный номер типа изделия и 8-битный код для контроля. Идентификационный номер записывается в микросхему при помощи лазера во время ее изготовления. Он не может быть изменен в течение всего срока службы прибора. Dallas Semiconductor не выпускала и никогда не планирует выпускать iButton с одинаковыми идентификационными номерами. Комбинаций из 48-разрядов вполне достаточно даже при самых оптимистичных объемах выпуска в сотни миллионов ключей в год, чтобы сотни лет номера их не повторялись.
При считывании идентификационного номера, считывающее устройство вычисляет через принятый номер код контроля по общей для всех iButton формуле и сравнивает его с принятым кодом контроля. При совпадении, запускается процесс двунаправленной передачи данных по принципу «запрос-ответ». Считывающее устройство выступает здесь в роли мастера, а iButton выполняет его команды. На одной двухпроводной линии параллельно к одному порту мастера могут быть подключены одновременно в общем случае значительное количество iButton. Ограничения определяются особенностью протокола со скоростью обмена до 115 кБод и физической длиной линии до 300 м, ограниченной процессами затухания сигнала. Хотя, конечно, с помощью специальных схем усилителей и ретрансляторов расстояние можно увеличить практически неограниченно. Интересной особенностью принципов схемотехники самой iButton является то, что питание ее микросхемы формируется от «паразитного источника» — конденсатора емкостью 800 пФ, который заряжается через диод от порта зонда в момент касания. Для микропотребляющих МОП-схем iButton емкости такого источника вполне достаточно. Схема входных цепей iButton в момент касания к микроконтроллеру показана на Рис. 3.
Кроме обязательных составляющих различные типы iButton могут содержать энергонезависимую SRAM (данные хранятся не менее 10 лет благодаря встроенной в корпус литиевой батарейке), однократно программируемую память, часы-календарь реального времени, термодатчик и, наконец, криптографический микропроцессор.
Практически любой стандартный микроконтроллер, например 8051-совместимый, или компьютер может быть использован для обмена данными с iButton. При этом металлическая контактная площадка зонда соединяется обычной витой парой с портом микроконтроллера или компьютера.
В случае, если в качестве мастера для считывания iButton используется персональный компьютер, то в простейшем случае схема соединения его с контактной площадкой достаточно проста.
Схема эта показана на Рис.4. В ней могут быть использованы отечественные кремиевые маломощные стабилитроны типа КС139 и КС162 и любые маломощные диоды Шотки типа КД808. Dallas Semiconductor поставляет адаптер DS9097, который внешне оформлен в виде стандартной розетки 9-ти или 25-выводного разъема последовательного порта. Распаянная внутри адаптера схема аналогична показанной на Рис. 4. Этот адаптер обеспечивает расстояния в десятки метров до контактной площадки и для простых линий с одним узлом приема информации его вполне достаточно. Схемы на расстояния до узла контакта в сотни метров сложнее незначительно. В них используется драйвер однопроводной линии DS2480.

Описание протокола iButton

Данные в соответствие с протоколом iButton Standarts передаются в дискретные временные интервалы, которые называются временными сегментами (типовая длительность около 60мкс) с помощью коротких и длинных импульсов, аналогичных азбуке Морзе. При этом инициатором обмена (ведущим) всегда является считывающее устройство. При соприкосновении с зондом или его эквивалентом прибор iButton выдает ответный сигнал, за которым следует код семейства, 48-битный серийный номер iButton и код контроля.
Длинные или короткие активные состояния логического нуля во временных сегментах представляют единицы или нули. Ведущая система запускает передачу каждого бита.
В общем случае iButton может работать относительно мастера как на считывание, так и на запись информации в свою энергонезависимую память. Для записи логической 1 в течение типового сегмента времени однопроводная линия передачи должна за время выборки данного вернуться в состояние логической 1, для записи нуля в течение всего этого временного окна линия должна находиться в состоянии логического 0 (Рис 5.).
Синхронизация временного сегмента осуществляется отрицательным фронтом сигнала, который формируется мастером, при этом длительность состояния логического нуля на однопроводной линии связи должна составлять не менее 1мкс.
В цикле считывания идеальный момент стробирования считываемого данного — это 8мкс после начала временного сегмента (Рис 6). Задающее устройство подает на однопроводную линию активный логический 0 на время синхронизации данного (не менее 1мкс), после чего переходит в режим приема. Далее в течение всего времени выборки данного состояние линии определяется прибором iButton . После начала временного сегмента состояние линии с помощью пассивной нагрузки выдерживается на уровне логической 1 от 15 до 60мкс. Возможна приостановка сеанса связи на любое время между временными сегментами, при этом на однопроводной линии связи поддерживается состояние логической 1. Во всех сеансах связи первым передается младший значащий разряд данного.
Подробно ознакомиться с протоколом iButton Standarts можно в многочисленных изданиях самой фирмы Dallas Semiconductor в виде книг, CDROM или по Интернету (сервер iButton.com).
Обзорная таблица iButton представлена в Табл.1.
Для упрощения восприятия обзора попытаемся внести элементы классификации в семейства iButton. Необходимо отметить, что делается это самовольно — Dallas Semiconductor пока этого еще не сделал и представляет свои семейства по принципу возрастания номера маркировки.
Основной раздел между iButton можно провести по признаку наличия средств защиты области данных от несанкционированного пользователя. В этом случае явно выделяются два типа: iButton с незащищенной областью данных и iButton со специальной защитой данных.
В данной части обзора Вы сможете найти описание основных свойств и особенностей устройства iButton с незащищенной областью данных. Мы также их разделили на группы, но приборы внутри группы уже мало чем отличаются по своей структурной схеме. Отличие состоит обычно в объеме памяти того или иного вида.

Табл. 1. Обзорная таблица iButton
МаркировкаОписаниеЕмкость памяти
DS1920Цифровой термодатчик16битЕЕРРОМ
DS1954Криптографический микропроцессор32К ROIVI+6K NVSRAM
DS1963Электронный кошелек4096 бит NVSRAM
DS1971EEPROM память256+64 бит EEPROM
DS1981UEPROM память и специальный номер512битЕРРОМ
DS1982UEPROM память и специальный номер1024 бит EPROM
DS1982EPROM память1024 бит EPROM
DS1985EPROM память16384 бит EPROM
DS1986EPROM память65536 бит PROM
DS1990AТолько номернет
DS1991Энергонезависимая память с паролем1344 бит NVSRAM
DS1992Энергонезависимая память1024 бит NVSRAM
DS1993Энергонезависимая память4096 бит NVSRAM
DS1994Энергонезависимые память и часы4096 бит NVSRAM
DS1995Энергонезависимая память16384 бит NVSRAM
DS1996Энергонезависимая память65536 бит NVSRAM

1. iButton с уникальным серийным номером

Группа состоит из одного семейства — DS1990А. Это первое изделие Dallas Semiconductor, впервые поступившее в продажу в 1991 году. Имеются две разновидности по толщине корпуса. DS1990A-F5 — имеет толщину корпуса 5,89 мм, а DS1990A-F3 толщину 3,1 мм.
По схемотехнике DS1990A самая простая iButton и имеет только ПЗУ с уникальным 48-разрядным номером, кодом семейства и кодом контроля. Доступ к ПЗУ происходит через интерфейсную схему, поддерживающую протокол iButton Standart (блок-схема на Рис. 2). Питается микросхема DS1990A, как и все iButton, от «паразитного источника» (на рисунке не показан), состоящего из внутренних выпрямителя и конденсатора (см. первую часть обзора). Энергия в этот источник поступает через резистор 5 КОм открытого коллектора порта считывателя в момент времени, когда контактная часть считывателя и iButton прикоснулись друг к другу.
DS1990A не имеет никаких средств защиты области данных пользователя, так как области этой как таковой и нет. Уникальный номер, записанный в ПЗУ на заводе в Далласе, доступен для любого считывающего устройства-эонда, поддерживающего протокол iButton Standart.
Четыре КОМАНДЫ ПЗУ составляют систему команд iButton DS1990А: ЧТЕНИЕ ПЗУ, СОВПАДЕНИЕ ПЗУ, ПРОПУСК ПЗУ и ПОИСК ПЗУ. В режиме с одним узлом считывания достаточно команды СЧИТЫВАНИЕ ПЗУ. Остальные команды необходимы для работы в сетевом варианте применения для исключения конфликтов при одновременном касании многих iButton к разным считывающим контактам, подсоединенным к одной линии данных.
Порядок выдачи содержимого ПЗУ при исполнении команды ЧТЕНИЕ ПЗУ следующий: код семейства(01H для DS1990A ), 48 бит уникального номера и последним идет 8-битный код контроля. Передача идет побитно, младший значащий разряд идет первым. Прием считается завершенным, только если вычисленный мастером на основе уникального номера по стандартной формуле контрольный код, совпадает с принятым контрольным кодом из ПЗУ iButton. Полный цикл считывания ПЗУ длится около 5мс.

2. iButton с энергонезависимой статической памятью

Группа этих iButton включает в себя четыре семейства: DS1992L, DS1993L, DS1995L и DS1996L. Буква L в наименовании означа- ет наличие трехвольтовой литиевой батарейки. Энергия батарейки использует- ся для питания микромощной статической памяти (SRAM) в течение всего срока службы этих iButton, который составляет не менее 10 лет.
Для коммуникационных процессов здесь, как и в других iButton, используется «паразитный» внутренний источник — выпрямитель+конденсатор. В случае разряда батарейки по какой-либо причине, имеется возможность доступа только к ПЗУ.
Как и у всех iButton, ПЗУ этих семейств имеет идентификационный номером, код семейства и код контроля (См. Рис. 3). Каждое семейство отличается от другого только размером статической энергонезависимой памяти.
Структурно эта память разбита на страницы по 32 байта и имеет систему адресации. DS1992 имеет всего четыре таких страницы, DS1993 — 16 страниц, DS1995 — 64 страницы, DS1996 — 256 страниц. Содержимое страниц может быть считано любым устройством считывания, поддерживающим iButton Standart.
Скорости записи данных и считывания одинаковы и составляют в обычном режиме 16,3 Кбит в секунду. Модели DS1995 и DS1996 поддерживают режим ускоренного обмена «overdrive», отличие которого от обычного в сокращенных примерно в 10 раз длительностях цикла инициализации и временных окон для данных. Так инициализация происходит за время от 48мкс, а достаточный временной интервал для данных 6мкс. Скорость полудуплексного обмена данными в режиме «overdrive» 142Кбит в секунду. Запись в энергонезависимую SRAM осуществляется диспетчером памяти через 32-байтную блокнотную память, которая выполняет функцию буфера. Блок данных записывается вместе с блоком адреса для этих данных. Данные и адрес верифицируются, то есть считываются обратно мастером из блокнотной памяти, и проверяются им на предмет идентичности с отправленными. Только после удачного исхода мастер командой «копировать блокнотную память» разрешает переносить данные из блокнотной памяти на выбранную страницу основной энергонезависимой SRAM. Формат записываемых данных может быть от 1 байта до 32 байт. Считываются данные минуя блокнотную память.
Восемь команд поддерживаются данным типом iButton: четыре КОМАНДЫ ROM, три команды ЗАПИСИ, СЧИТЫВАНИЯ и КОПИРОВАНИЯ БЛОКНОТНОЙ ПАМЯТИ и команда ЧТЕНИЕ ПАМЯТИ.

3. iButton с энергонезависимой однократнопрограммируемой EPROM-памятью.

В отличие от семейств с энергонезависимой статической памятью, в этих приборах не используются литиевые батарейки, хотя и имеется память данных. . Память данных здесь однократнопрограммируемая EPROM. Напряжение программирования 11,5В +0,5В, ток 10мА.
Питание всей схемы осуществляется только от «паразитного» источника. Отсутствие литиевой батарейки позволяет Dallas Semiconductor выпускать эти модели, как в толстом F5, так и в тонком F3 корпусах. Группа включает семейства DS1981U,DS1982U, DS1982,DS1985 и DS1986. У всех семейств имеется стандартного вида ПЗУ, но разный объем памяти данных. Последняя адресуется и разбита на страницы по 32 байта. DS1981 имеет 2 страницы,DS1982 — 4 страницы, DS1985 -64 страницы и DS1986 — 256 страниц. Модели с маркировкой U отличаются от остальных моделей тем, что 12 бит из общего пространства уникального номера занимает прошивка 5E7H, остальные же 36 бит имеют уникальную прошивку.
Для повышения надежности занесения данных в однократнопрограммируемую память данных в электрическую схему введены дополнительные элементы: детектор напряжения, генератор контрольной суммы, регистр статуса и 8-битная блокнотная память (см. Рис. 4).
Чистая EPROM имеет записанными логические единицы. Однажды установленный в логический ноль бит памяти невозможно в дальнейшем изменить, однако оставшийся в единичном состоянии может быть изменен в логический ноль при повторном программировании. Каждая страница памяти данных может быть защищена от попытки повторной записи в нее данных, установкой соответствующего бита регистра статуса в состояние логического нуля. Регистр статуса программируется только однократно, поэтому обратно открыть для записи страницу уже будет нельзя. Кроме байта защиты памяти данных, регистр статуса имеет байты переадресации страниц. Запись в эти байты позволяет переписать содержимое страницы на другую открытую для записи страницу и дополнить ее содержимое модифицированными данными. Для приложений, требующих модификации данных, Dallas Semiconductor предлагает брать модели с заведомо большим количеством страниц.
Что касается механизма записи информации в память данных этого семейства, то он несколько усложнен. Адреса, коды команд и данные проверяются исключительно побайтно. Мастер считывает код, вычисленный генератором проверочного кода, и сравнивает со своими вычислениями. Только после этого разрешается продвижение на очередной байт в процедуре записи.
Протокол обмена с мастером поддерживает восемь команд: четыре ПЗУ КОМАНДЫ, команды с памятью данных ЧТЕНИЕ и ЗАПИСЬ, а также команды для регистра статуса ЧТЕНИЕ и ЗАПИСЬ. Модель DS1986 имеет возможность работать в скоростном режиме «overdrive».
В приложениях не требующих частого обновления данных эти iButton находят применение, вследствие своей дешевизны.

4. iButton с EEPROM памятью данных

Группа пока представлена одним семейством DS1971. Это новое семейство выпускается с 1997 года. Поставляется DS1971 в двух корпусах F3 и F5. Кроме стандартного ПЗУ, эта модель содержит память данных типа EEPROM в виде одной 256 битной странички. Данные могут неоднократно перезаписываться только постранично.
Напряжение программирования +5В. Запись происходит через блокнотную память, объем которой также 256 бит (см. Рис. 5). После верификации данных, содержимое блокнотной памяти переносится в память данных одним блоком. Имеется регистр для занесения служебной информации — РЕГИСТР ОДНОКРАТНОЙ ЗАПИСИ. Данные в него заносятся через его блокнотную память и могут быть записаны только один раз. В дальнейшем этот регистр открыт только для считывания. Регистр однократной записи может использоваться производителем оборудования с использованием DS1971 для занесения служебной информации, например, дата выпуска, номер партии и т.п.. Событие о том, что запись в РЕГИСТР ОДНОКРАТНОЙ ЗАПИСИ произведена, отражается в состоянии регистра СТАТУС-ПАМЯТЬ. Два бита его устанавливаются при этом в логический ноль. Мастер может только считать состояние этого регистра.
Одиннадцать команд возможны в работе с DS1971: четыре КОМАНДЫ ПЗУ, три команды ЧТЕНИЕ, ЗАПИСЬ и КОПИРОВАНИЕ блокнотной памяти, три команды регистра однократной записи — ЧТЕНИЕ, ЗАПИСЬ и КОПИРОВАНИЕ С ЗАМКОМ и команда ЧТЕНИЕ СТАТУС-ПАМЯТИ.

5. iButton с энергонезависимыми таймером и статической памятью.

Эта группа представлена одним семейством DS1994L. Микросхема его содержит обычную ПЗУ с идентификационным номером, кодом семейства и кодом контроля, статическую память 16 страниц по 32байта каждая, кварцевый генератор часовой частоты 32768 Гц, таймер-календарь в двоичном формате, программируемые счетчики циклов включения-выключения, интервальный таймер.
Статическая память и все элементы таймера энергонезависимы за счет литиевой батарейки. Режимы работы таймерной части DS1994 определяют два его регистра: регистр статуса и регистр управления. В регистр статуса помещают свои флаги по наступлению заданного события таймер-календарь, интервальный таймер и счетчик циклов. Состояния флагов доступны для считывающего прибора и могут быть использованы им для принятия решения. Календарь таймера организован так, что необходима предварительная установка даты и времени отсчета. Исход времени будет затем отсчитываться от этой даты. Емкость по времени календаря 136 лет.
Состояние регистра управления определяет доступность ресурсов как таймера, так и страниц энергонезависимой памяти. Установки его битов останавливают генератор, запрещают изменения установок календаря, интервального таймера, счетчика циклов, чтение общей энергонезависимой памяти.
DS1994 удобно использовать для ограничения срока работы приборов или устройств. В этом варианте он устанавливается в специальном зажиме, по аналогии с дисковыми аккумуляторами, и имеет постоянное соединение со схемой устройства.
Система команд DS1994 содержит как типичные для iButton команды ПЗУ так и команды работы с таймерами и счетчиком.

6. Автономный цифровой термопреобразователь в корпусе iButton

Представлен одной моделью DS1920. Внутри стандартного для iButton корпуса толщиной F3 или F5 установлена микросхема, осуществляющая полный цикл преобразования температуры окружающей ее среды в 9-разрядный цифровой код. Датчиком температуры служит термистор, также установленный в корпусе DS1920. 9-разрядный АЦП осуществляет преобразование сопротивления датчика, как функцию температуры, в цифровой код.
Преобразование происходит в момент касания DS1920 зондом. Питание поступает от порта зонда. Имеется особенность в организации питания, которая обусловлена повышенными токами потребления микросхемы DS1920 в момент преобразования. Рекомендуется вместо выходного открытого коллектора с нагрузочным резистором 5 Ком, использовать «сильно открытый коллектор», где резистор заменен полевым транзистором, открытым в период преобразования и пропускающим больший ток, ввиду меньшего сопротивления.
Диапазон температур измеряемый DS1920 лежит в интервале от -55С до +100С, время преобразования 0,2 секунды, точность 0,5С в диапазоне от 0С до +70С.
Имеются специальные триггеры порогов температуры, значения которых записываются в их память EEPROM. Триггеры сообщают мастеру, при его обращении, о превышении порогов, что бывает удобно при поиске узла измерения в сетевом варианте, когда в одну линию соединены большие количества DS1920.
Интерфейс и ROM DS1920 соответствуют всем требованиям iButton Standart, а система команд состоит как из обычных для iButton ПЗУ КОМАНД, так и из специфичных ТЕМПЕРАТУРНОЕ ПРЕОБРАЗОВАНИЕ, ВЫБОРКА СОСТОЯНИЯ ПОРОГА и команд работы с БЛОКНОТНОЙ ПАМЯТЬЮ.
Типичным способом использования DS1920 является закрепление его на объекте с использованием специальных дисков с липкими поверхностями или пластиковых зажимов на винтах. При этом можно в параллель соединить проводниками несколько приборов, а опрос вести переносным зондом из одной точки. По уникальному номеру нетрудно будет выяснить место измерения для каждой точки температурных измерений.

В заключение хотелось бы отметить, что Dallas Semiconductor поставляет программное обеспечение DS0621-SDK для работы со всеми типами iButton. Оно специально предназначено разработчикам и содержит драйверы для DOS, Windows 3.1, Windows-95/NT. Имеются варианты процедур работы с iButton, написанные на ассемблере микропроцессоров MCS-51, на С, на Паскале, Дельфи, Visual Baisic. В пакете представлена также оболочка TMEX для сетевых систем с использованием iButton. Утилиты этой оболочки включают команды для сети iButton , сходные с командами COPY, FORMAT, DIR, RENAME, DELETE, DIR и т.п.. Dallas Semiconductor поставляет готовый адаптер для последовательного порта (25 у.е. в розницу). Внешний вид дан ниже:

ООО ЕвроСтандарт

тел: +7 (495) 514 4110.

Прочитано здесь: http://www.gaw.ru/html.cgi/txt/publ/other/ibutton.htm

Эта запись была опубликована 16.10.2007в 5:36 пп. В рубриках: Контроль положения, Предложенные студентами, АСУ, МГСУ, Все статьи. Вы можете следить за ответами к этой записи через RSS 2.0. Вы можете оставить свой отзыв или трекбек со своего сайта.

d.17-71.com

alexxlab

leave a Comment