-----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-----