-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Touch memory reader. Электронный ключ iButton от Dallas semiconductor corp
;
;
; at: 27.10.2004
; by: black c0de [the nobodies]
; ct: mailto:[email protected] / icq:251037 / www.nteam.ru / www.ssz.by.ru
; special for @defaced#7
(0x01) Что такое touch memory? iButton от Dallas Semiconductor Corp
(0x02) Где используется touch-memory?
(0x03) Типы touch-memory и их характеристики
(0x04) Протокол обмена 1-Wire
(0x05) Аппаратные и программные средства для реализации reader'a
(0x06) Алгоритм программы
(0x07) Исходный текст программы
(0x08) Электрическая принципиальная схема iButton-reader'a
(0x09) Заметки о реализации эмулятора электронного ключа iButton
(0x0A) web-ресурсы
(0x0B) Аббревиатуры
(0x0C) Дополнительные файлы
(0x0D) Приветы и благодарности
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x01 * Что такое touch memory? iButton от Dallas Semiconductor Corp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Touch memory. Такое название получили приборы серии DS199X, разработанные
американской компанией "Dallas Semiconductor". Тип приборов - электронные
идентификаторы. Touch Memory представляет собой энергонезависимую память,
размещенную в металлическом корпусе, с одним сигнальным контактом и одним
контактом земли. Информация записывается и считывается из памяти прибора
простым касанием считывающего устройства корпуса Touch Memory. Каждый прибор
Touch Memory содержит ПЗУ, в котором хранится 64-разрядный код, состоящий из
8-разрядного кода типа прибора, 48-разрядного уникального серийного номера и
8-разрядной контрольной суммы. Одним из основных преимуществ Touch Memory по
сравнению с идентификаторами других типов является их высокая надежность.
Приборы Touch Memory выдерживают механический удар 500 g, падение с высоты
1,5 метра на бетонный пол, 11-килограммовую нагрузку на корпус, не подвержены
воздействию магнитных и статических полей, промышленной атмосферы и работают
в диапазоне температур от -40'С до +85'С для DS 1990 и от -20'С до +85'С для
всех остальных приборов семейства.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x02 * Где используется touch-memory?
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
В последнее время можно наблюдать повсеместное внедрение цифровой техники.
Не только в промышленности но и в быту. Широкое применение нашли и таблетки
iButton. Сейчас они используются в следующих отраслях и устройствах:
- Домофоны
- Электромагнитные замки
- Парковки автомобилей
- Гостиницы (вход в номер, др. помещения)
- Учебные заведения (системы информирования студентов о местоположении
преподавателя)
- Охранные системы (в качестве персонального кода доступа)
- Встроенные модули для блокировки ПК (без iButton ПК не включается)
- Холодильные и морозильные установки, помещения в которых необходим
контроль температуры
- Системы анализа и сбора статистики об тенденциях изменения температуры
(iButton'ы
с встроенным модулем автосохранения значений темппературы в памяти)
- Системы безналичного рассчета на АЗС (уже применяются в России, Беларуси,
Украине)
- Автомобильные противоугонные системы
- Криптографические банковские системы (есть в России, Беларуси)
- Кассовые аппараты (ключ кассира)
- На складах для систем динамического контролля за товаром на ПК
(каждый контейнер имеет ключ)
- Сейфы
- Таймеры и прочие устройства
Есть информация о том что большой интерес к touch memory стали проявлять
банки, в частности УкрСоцбанк.
Как видите спектр применения достаточно велик. Все перечислить не реально.
iButton прозволяет использовать следующие ресурсы:
- - Уникальный идентификатор
- - Контроль температуры
- - Таймер
- - Часы реального времени
- - Календарь
- - Энергонезависимая память
- - Автоматическое сохранение значений таймера, температурного датчика, в
памяти
Необходимость хотябы в одном ресурсе можно найти где угодно. Начиная с
вашей квартиры и заканчивая атомными станциями.
Представте себе, какие возможности открывает перед нами эмулятор iButton.
Останется дело за малым - считать нужный ключ. Процесс считывания - меньше
секунды. Нужно на 1секунду "приставить" два тоненьких проводка/контакта к
таблетке и все! Как? - все в руках вашей фантазии.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x03 * Типы touch-memory и их характеристики
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
***DS1425 Multi iButton
Защищаемые области для 3-х 384-битных ключей
Уникальный 64-битный серийный номер
***DS1427 iButton c часами реального времени
Уникальный 64-битный серийный номер
Программируемые часы реального времени
512 байт NV SRAM
Программируемый RTC ALARM
***DS1920 iButton c цифровым термодатчиком
Диапазон измеряемых температур -55оС .. +100оС
Время измерения не более 0,2 с
Точность измерения +0,5оС
2 байта EEPROM для установки пороговых значений температуры
Уникальный 64-битный серийный номер
***DS1921 iButton с температурным рекордером
Уникальный 64-битный серийный номер
Диапазон измеряемых температур -40оС .. +85оС
Точность измерения +0,5оС
Часы реального времени
EEPROM для установки пороговых значений температуры
Программируемый от 1 до 255 минут период измерений
Сохранение до 2048 значений измеренной температуры в NV SRAM
4096 байт NV SRAM общего назначения
***DS1963L iButton с NV SRAM
Уникальный 64-битный серийный номер
4096 байт NV SRAM общего назначения
Четыре 32-битных счетчика циклов записи
***DS1971 iButton c EEPROM
Уникальный 64-битный серийный номер
256 байт EEPROM общего назначения
***DS1973 iButton с EEPROM
Уникальный 64-битный серийный номер
4 Кбит EEPROM общего назначения
***DS1982 iButton с EPROM
Уникальный 64-битный серийный номер
1 Кбит EPROM общего назначения
***DS1985 iButton с EPROM
Уникальный 64-битный серийный номер
16 Кбит EPROM общего назначения
***DS1986 iButton c EPROM
Уникальный 64-битный серийный номер
64 Кбит EPROM общего назначения
***DS1990A iButton
Уникальный 64-битный серийный номер
***DS1991 MultiKey iButton
Защищаемые области для 3-х 384-битных ключей
Уникальный 64-битный серийный номер
***DS1992 iButton c NV SRAM
Уникальный 64-битный серийный номер
1 Кбит NV RAM общего назначения
Сохранность данных не менее 10 лет
***DS1993 iButton с NV SRAM
Уникальный 64-битный серийный номер
4 Кбит NV RAM общего назначения
Сохранность данных не менее 10 лет
***DS1994 iButton с NV SRAM и часами реального времени
Уникальный 64-битный серийный номер
1 Кбит NV RAM общего назначения
Сохранность данных не менее 10 лет
Встроенные часы/календарь реального времени
Программируемый счетчик циклов включения/выключения
Программируемый источник прерывания от часов, интервального таймера и(или)
от счетчика циклов
Программируемая дата последнего доступа к NV RAM или часам/календарю
***DS1995 iButton с NV SRAM
Уникальный 64-битный серийный номер
16 Кбит NV RAM общего назначения
Сохранность данных не менее 10 лет
***DS1996 iButton с NV SRAM
Уникальный 64-битный серийный номер
64 Кбит NV RAM общего назначения
Сохранность данных не менее 10 лет
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x04 * Протокол обмена 1-Wire
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Особенностью Touch Memory является разработанный фирмой "Dallas
Semiconductor" протокол обмена со считывающим устройством. Для
приема-передачи информации используется одна двунаправленная сигнальная линия
(второй провод - земляной контакт). Обмен по одной линии осуществляется в
режиме полудуплекса (или прием, или передача). Взаимодействие приборов по
однопроводному интерфейсу организовано по принципу
"ведущий-ведомый"(master-slave). При этом считывающее устройство всегда
ведущее, а один или несколько приборов Touch Memory - ведомые. Взаимодействие
нескольких приборов со считывающим устройством по одной двунаправленной линии
поддерживается аппаратными средствами Touch Memory. Протокол обмена по
однопроводному интерфейсу является двухуровневым. На первом - логическом
уровне для взаимодействия устройств используются команды обмена с ПЗУ и ОЗУ.
Команды - ЧТЕНИЕ, ЗАПИСЬ, КОПИРОВАНИЕ. Команды обмена с ПЗУ: чтение ПЗУ,
пропуск, сравнение и поиск. Две последние команды обеспечивают взаимодействие
по одной линии нескольких Touch Memory со считывающим устройством. Команда
сравнение инициирует обмен с прибором, серийный номер которого указан.
Команда поиск позволяет определить серийный номер одного из приборов,
подключенных к двунаправленной линии.
Все команды обмена имеют фиксированный размер - один байт, данные
представлены 8-разрядными целыми числами. Ведущее устройство всегда
инициирует обмен, посылая команды ведомому устройству.
Протокол физического уровня используется для передачи команд и данных по
однопроводному интерфейсу. Команды и данные передаются в последовательном
коде. Для обеспечения целостности передаваемой информации протокол обмена на
физическом уровне строго регламентирует временные параметры сигналов на
линии.
Протокол обмена данными состоит из трех основных циклов: инициализации,
записи и чтения.
Временных характеристики и спецификация протокола описаны в даташитах
(ссылки в разделе 0x0A)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x05 * Аппаратные и программные средства для реализации iButton reader'a
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Аппаратные средства
- -------------------
Микропроцессор 16F628A 1шт
Преобразователь уровней MAX232 1шт
Конденсатор 4.7uf 5шт
Резистор 4k7 1шт
Резистор 1k 3шт
Светодиод RED 1шт
Светодиод GREEN 2шт
Операционный усилитель LM7805 1шт
Батарейка 9-12V 1шт
Программные средства
- --------------------
MPASM ассемблер от Microchip lab (c)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x06 * Алгоритм программы
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[1] Запрет прерываний. Инициализация регистров.
[2] Конфигурировнаие входов/выходов.
[3] Инициализация USART-модуля
[4] Ожидание подключения iButton. Цикл loop_iButtonWait
Циклический вызов функции Touch_Reset
- Анализ WREG
- Если iButton не подключен - 5мс мигание err-lamp, -> [4]
- Если iButton подключен -> [5]
[5] выкл. err-lamp, вкл. ok-lamp, инициализация буфера передачи,
считывания серийного номера iButton в буфер (call Get_DS_Serial)
- Анализ WREG
- Если номер не считан - выкл. ok-lamp, 1сек мигание err-lamp, ->[4]
- Если номер считан успешно -> [6]
[6] Передача буфера по USART, выкл. ok-lamp, -> [4]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x07 * Исходный текст программы
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Исходный текст программы (+прошивка) находятся в архиве ibrd-src.zip
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x08 * Схема электрическая принципиальная iButton-reader'a
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Схема в формате BMP находится в файле ibrd-sch.jpg
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x09 * Заметки о реализации эмулятора электронного ключа iButton
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Если вы разобрались с программой и с спецификацией протокола 1-Wire - вы
должны уже понять как пишется эмулятор iButton'а.
Какие полезные функции эмулятора хотелось бы отметить:
- - Возможность сохранения около 16 разных серийных номеров в
памяти устройства
- - Наличие специального программного обеспечения, которое
устанавливается на ПК и предоставляет интерфейс доступа к
базе ключей, сохраненных в памяти устройства.
- - Наличие LCD для отображения информации
- - Возможность стационарно (без подключения к ПК) выбрать
нужный ID из памяти устройства для эмуляции.
ps: В рунэте уже есть готовый проэкт эмулятора touch memory.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x0A * web-ресурсы
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
http://www.ibutton.com/
http://www.maxim-ic.com/
http://www.microchip.com/
описание DS1990a:
http://dbserv.maxim-ic.com/quick_view2.cfm?qv_pk=2829
полный даташит на DS1990A:
http://pdfserv.maxim-ic.com/en/ds/DS1990A-DS1990A-F5.pdf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x0B * Аббревиатуры
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ПЗУ - постоянное запоминающее устройство
NVRAM - nonvolatile RAM - энергонезависимая память
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x0C * Дополнительные файлы
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ibrd-src.zip - исходные тексты программы, прошивка
ibrd-sch.jpg - схема устройства для считывания iButton-ID
ibrd-pic.jpg - внешний вид таблетки iButton
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0x0D * Приветы и благодарности
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Nick K., Alexei K., Sanya aka b05h, sp0raw, firew0rker, 0xiD, privacy,
отдельный привет пацанам из Ростова-на-Дону:
tyuba, братанам Сане и Димаге
Удачи!
; EOF
-----BEGIN PGP SIGNATURE-----
Version: PGP 7.0.1
iQA/AwUBQYFben8NMFL1TK/JEQIIowCfS4OCKIbufqTdKmo9cDRvqPLLFS0AniYJ
g9sTmlb0eeK6x5K+65mH/d25
=dunt
-----END PGP SIGNATURE-----