Ключи для домофонов

Сегодня мы познакомимся с интересным протоколом и даже сразу попробуем поработать с устройством, использующим этот протокол. «Как?» — спросите Вы – «мне не нужно будет покупать детали в радиомагазине?»
«Нет» — отвечу я 🙂 С большой долей вероятности, Вы пользуетесь устройством 1-Wire и, возможно, даже не догадываетесь об этом 🙂 Это всего-навсего – ключ-таблетка от домофона ()!

Неужели?
Достанем ключи из кармана и примемся их пристально разглядывать 🙂
У меня контактная площадка сильно затёрта, но какие-то надписи проглядывают.

Потёр площадку фломастером и становится видна заветная надпись:

iButton.com
00000F67CE41
1-Wire
0744 UB1 DS1990A#F5
Ага! 1-Wire!
Так что же это за интерфейс?
Это однопроводной интерфейс, разработан фирмой Dallas Semiconductor (ныне MAXIM) в конце 90-х годов.
Этот интерфейс интересен тем, что для двустороннего обмена требуется всего одна линия! (отсюда и название 🙂
Подробнее об интерфейсе .
Возвращаемся к нашему ключу 🙂 На самой таблетке указан тип устройства и, похоже, уникальный номер микросхемы 😉
DS1990A – это и есть название нашего устройства.
Смотрим
Наш ключ — это самая первая модель в списке 🙂
DS1990A — 64 Bit ID — уникальный серийный номер-ключ
Страничка этого ключика , а можно скачать датащит 😉

Число после # определяет форм-фактор ключа – у меня F5.
Итак, наш ключ хранит 64 бита уникальной информации
Питается от 2.8V до 6.0V
К центральной контактной площадке подключается линия данных, а к боковой каёмке – землю.
Ключ может работать в диапазоне температур от -40°C до +85°C – впрочем, это нам не нужно 🙂
Читаем датащит далее 🙂
Величина подтягивающего резистора рекомендуется в 2.2k
Так… запомним 🙂
Каждый DS1990A прошивается уникальным 64-битным номером

первые 8 бит — номер серии устройства (01h)
следующие 48 бит — уникальный серийный номер
последние 8 бит — CRC-код предыдущих 56 бит информации 🙂
(Cyclic redundancy code, — циклический избыточный код) — способ цифровой идентификации некоторой последовательности данных, который заключается в вычислении контрольного значения её циклического избыточного кода.
Далее в датащите перечислены команды, которые понимает ключ:
33h — считать ROM — команда позволяет считать заветные 64-бита данных ключа
F0h — поиск ROM — т.к. к сети 1-wire может быть подключено несколько устройств данная команда используется для идентификации подключённых устройств.
55h — соответствие ROM / CCh — пропуск ROM
— данные команды входят в минимальный набор необходимых команд 1-wire-устройств. Т.к. в ключе DS1990A эти команды не требуются — он на них не отвечает.
Arduino//Freeduino может работать с 1-Wire, используя библиотеку Jim Studt-а – .
Настало время пообщаться с нашим ключиком! 🙂
Схема подключения – крайне проста (это ведь 1-Wire! 🙂

Далее нужно и поместить её в свою директорию libraries.
Код скетча:
#include <OneWire.h> /* * тестируем работу по 1-Wire с ключём-таблеткой DS1990A */ OneWire ds(10); // на digital pin 10 void setup(void) { Serial.begin(9600); } void loop(void) { byte i; byte present = 0; byte data; byte addr; if ( !ds.search(addr)) { Serial.print(«No more addresses.\n»); ds.reset_search(); return; } Serial.print(«R=»); for( i = 0; i < 8; i++) { Serial.print(addr, HEX); Serial.print(» «); } if ( OneWire::crc8( addr, 7) != addr) { Serial.print(«CRC is not valid!\n»); return; } if ( addr != 0x01) { Serial.print(«Device is not a DS1990A family device.\n»); return; } Serial.println(); ds.reset(); delay(1000); }

Происходит постоянный поиск устройств на линии 1-Wire. Пока ключ не подключён – выдаётся:
No more addresses.
При подключении ключа-таблетки – считывается её номер и выдаётся в COM-порт.
Например, вот что выдаётся при подключении ключа-таблетки, с которого начиналась эта статья:

Первая цифра – номер серии – 01h
Далее, как видим, действительно ключ хранит номер, нанесённый на своём корпусе 😉
Только этот номер выведен наоборот – как и положено по протоколу 1-Wire – начиная с младшего байта 😉
Последний байт –B6h — CRC-код предыдущих байт.

Ура! Вот мы и считали наш ключ 🙂
Теперь можно самостоятельно сделать замок для комнаты или разблокировать свой компьютер по ключу 🙂 Фантазируем 🙂
Читать далее:
Cсылки:
— данная замечательная статья использовалась при написании заметки об интерфейсе 1-Wire
библиотека –

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

Пара слов о принципе работы…
Бытует мнение, что в таблетках от домофона находится магнит, и он открывает дверь. Нет, это не так. Таблетка представляет собой ПЗУ, с жёстко зашитым в ней ключом. Называется это ПЗУ — Touch Memory, марки DS1990A. DS1990A — это и есть марка домофонных ключей. Общается с домофоном по шине one-wire (однопроводной интерфейс). Эта шина разработана фирмой Dallas и позволяет общаться двум устройствам всего по одному проводу. Если устройство пассивное (как в нашем случае), то оно ещё и передаёт ему питание по этому проводу. Надо ещё заметить, что необходим ещё общий провод (чтобы цепь замыкалась), но, как правило, все земли устройств подключённых к этой шине соединены воедино. В ключе находится конденсатор на 60 пикофарад, который обеспечивает кратковременное питание ключа на момент ответа. Но ведущее устройство должно постоянно (не реже чем в раз 120 микросекунд) генерировать сигнал единицы, для зарядки этого конденсатора, чтобы ПЗУ в таблетке продолжало питаться.

Потроха таблетки. Как видно, никаких магнитов там нет!
Короче говоря, отбросив все умные термины можно сказать просто, все, что необходимо для работы устройства передаётся только по одному проводу. Для сравнения для работы USB необходимо 4 провода, а тут будет всего два, а при соединении земли, то только один. К слову сказать, шина 1-Wire оказалась столь удачной, что на ней даже организованны промышленные сети, в том числе и в нашей стране.

Внутреннее устройство таблетки

Организация шины One-wire
Шина One-wire работает следующим образом. Есть ведущее устройство Мастер, и ведомое устройство, в нашем случае пассивный ключик . Основные сигналы генерирует мастер, сигналы логической единицы и нуля. Ведомое устройство может только принудительно генерировать сигналы нуля (т.е. просто просаживать шину на землю через транзистор). Упрощённая схема ведущего и ведомого устройства показана на картинках.

Схема таблетки

Схема мастера

Если взглянуть на схему, нетрудно заметить, что по умолчанию у мастера стоит всегда +5 вольт, а ля логическая единица. Для передачи логического нуля мастер через транзистор замыкает шину на землю, а для передачи единицы — просто размыкает. Это сделано для того, чтобы обеспечить питание ведомого устройства. Ведомое устройство сделано аналогично, только оно не генерирует +5 вольт. Оно может только просаживать шину на землю, тем самым, передавая логический ноль. Логическая единица передаётся просто «молчанием» устройства.

Протокол работы
Сразу можно однозначно заметить, что парадом правит только Мастер, сам ключик DS1990A либо удерживает землю (мастер её сам выставляет шину в ноль), либо просто отмалчивается, в случае, если он хочет передать единицу, то он просто молчит. Смотрим рисунок.

Импульс сброса и импульс инициализации.

Домофон, в режиме простоя постоянно генерирует импульс RESET. Когда подключается таблетка, то она отвечает ему импульсом PREFERENCE, показывая мастеру о том, что можно с ней работать. Это одни из самых длинных импульсов. (подробнее о длительности импульсов ты можешь узнать в даташите лежащей в архиве).

Пример чтения домофоном ключа.

После генерации ключом импульса PREFERENCE, мастер девайс выжидает некоторое время и выдаёт команду на чтение ПЗУ, обычно это код семейства, в нашем случае 33H. Обрати внимание, как сделана передача нуля и единицы. В любом случае импульс «роняется» на землю, но если передаётся единица, то он быстро восстанавливается (около 1 микросекунды), если же должен быть ноль, то импульс некоторое время «висит» на земле, затем возвращается опять в единицу. Возвращение в единицу нужно для того, чтобы пассивное устройство постоянно пополняло энергию конденсатора, и на ней было питание. Далее домофон выдерживает некоторое время и начинает генерировать импульсы приёма информации, всего 64 импульса (т.е. принимает 64 бита инфы). Ключ лишь должен правильно сопоставить длительности. Если он хочет вывести ноль, то он удерживает шину некоторое время в нуле, если же нет, то просто молчит. Всё остальное за него делает домофон.

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

Схема дампа ключа.

В младшем байте содержится код семейства. Для DS1990A он всегда будет равен 01h. В шести последующих байтах содержится серийный номер ключа. То самое сокровенное, что идентифицирует ключик. Последний байт называется CRC, это контроль чётности, обеспечивающий подлинность переданных данных. Он вычисляется из семи предыдущих байт. К слову заметить, что это не единственный стандарт. Существуют перезаписываемые ПЗУ, на которых можно носить информацию, также есть ключи шифрования. Но всё многообразие таблеток Dallas просто нереально рассмотреть в рамках одной статьи, о них можно почитать на диске.

Физическое устройства ключа.
Наверное, всё вышесказанное отбило всякое желание заниматься эмуляторами ключей, ведь ключ надо прочитать, а это такой геморрр. Оказывается нет! Производители Dallas позаботились о нас и всю необходимую для нас информацию разместил непосредственно на ключе, при том в шестнадцатеричной системе! Она выгравирована на нём и её вполне можно прочитать, а потом в дальнейшем зашить в наш замечательный эмулятор.

Морда ключа

Нас интересует из всей этой информации следующее:

CC = CRC — это байт контроля чётности 7-й байт в прошивке
SSSSSSSSSSSS = двенадцать ниблов //нибл = 1/2 байта// серийного номера, т.е. самого ключа в хекс кодах.
FF = код семейства, в нашем случае равен 01h — нулевой байт нашего ключа.

Получается, что мы можем просто написать программу, забить в неё ключ весь, переписав ручками визуально с настоящего ключа дамп, и получим готовый эмулятор. Достаточно просто взять у недруга ключик в руки и переписать то, что на нём написано. Что я в общем-то с успехом и сделал. 🙂

Эмулятор.
Вот и дошли мы до самого вкусного — эмулятора ключей от домофона. Сначала я нашёл на каком-то сайте готовый эмулятор, зашил его в свой АТ89С51 и он не заработал (что не удивительно). Но это не спортивно юзать чужие прошивки и отлавливать чужие, специально оставленные, баги в коде. По сему я начал делать свои эмуляторы и писать под них свои программы. В общем, я попробовал сделать эмулятор на 6 различных микроконтроллерах, разных архитектур, принадлежащих двум семействам AVR и i8051, все производства Atmel. Заработал не на всех, и программ было написано уйма. По началу ставились вообще наполеоновские задачи сделать универсальный эмулятор с возможностью подборки ключа, но потом я оставил эту затею в силу её геморойности и бессмысленности, пусть ей займутся другие люди, кого заинтересует данная статья. Но себестоимость эмулятора, не считая затраченных трудов меньше 70-80 ре, можно даже уложиться в 30 ре, если делать, например на ATtiny12.

Принцип действия эмулятора.
Мы достаточно подробно рассмотрели принцип работы домофона, и соответственно не составит большой проблемы описать алгоритм программы эмулятора DS1990A. Смотрим внимательно диаграмму, и думаем, что надо сделать. А делать надо следующее. Висящая в воздухе нога микроконтроллера (пока не присоединена к земле, импульс ресета) будет считаться контроллером логической единицей. Значится так, мы после подачи питания на котроллер должны ждать того пока наша ножка не уйдёт на землю, а ля в ноль. Как мы услышали ноль, радуемся, ждём некоторое время и переводим порт из режима чтения в режим записи. Затем роняем шину в ноль, и держим её некоторое время — генерим импульс PRESENCE (длительности импульсов смотри в даташите). Дальше снова переводим шину в режим чтения, и ждём что же нам скажет мастер — домофон. Он нам скажет команду чтения, состоящую из 8-ми бит. Декодировать её не будем, т.к. в 99,999% случаев он нам скажет команду дать свой дамп, а ля 33H, просто отсчитываем 8-мь импульсов и не паримся. Дальше ждём. И начинается самое сложное и интересное — надо быстро смотреть, что нам говорит домофон и отвечать ему тоже быстро. Нам нужно побитно выдать серийный номер, состоящий из 8-ми байт, о которых я говорил выше. Я это делал следующим образом (не важно, какой микроконтроллер, принцип везде один будет), загружал байт в какой-нибудь свободный регистр, и сдвигал его вправо, и смотрел бит переноса. Как только домофон роняет шину в ноль, то если у меня флаг переноса установлен в еденицу, то я просто отмалчиваюсь на этот импульс, и жду генерации следующего импульса чтения бита от мастера. Если же у меня во флаге переноса находиться ноль, то после того как домофон уронит шину на ноль, я перевожу порт микроконтроллера в режим вывода и принудительно удерживаю шину в нуле некоторое время, потом отпускаю и обратно перевожу порт контроллера в режим чтения. По длительности импульса в земле устройство мастер понимает, передана была ли ему единица или нуль. В принципе всё, дальше домофон должен радостно запипикать и открыть дверь.

Практика.

Схема эмулятора

Настало время проверить всё вышесказанное на практике. Для отладки, чтобы не бегать постоянно к домофону, я достал плату, читающую домофонные ключи (читай домофон). Устройство называется Wachdog, и на самом деле это универсальный комбайн, но из всего изобилия функций мне необходима была только возможность чтения ключей. Данная платка считывает ключики в USB порт, и мне любой программой работающей с СОМ портом (виртуальный СОМ порт) можно было получить ключ.

Плата тестер. Видня надпись dallas.

После небольшого гемороя и войны с отладчиком получился код. Вот пример кода вывода данных домофону на AT89C2051. (Вообще AT89C2051 это хоть и популярный, но устаревший контроллер. Один из первых которые я программировал. Периферии минимум, памяти тоже всего ничего. Шьется только высоковольтным программатором. Хотя есть его новая замена AT89S2051 его уже можно прошить внутрисхемно через какой нибудь AVR ISP, а может и через AVRDUDE — не проверял. Самое любопытное в том, что он совместим по ногам с ATTiny2313 так что код можно портировать и на Тиньку. прим. DI HALT)

DI HALT:
Этот адов код мы писали в с Длиным в далеком 2006 у него в квартире. Уржались до икоты над своими тупняками. Я тогда еще впервые пощупал AVR. Сидел фигачил на совершенно незнакомом мне ассемблере процедуры чтения из EEPROM, Длиный же ковырял демоплатку для своего будущего эмулятора. Особо запомнился мой прикол с вачдогом, когда у меня МК сбрасывался во время записи в ЕЕПРОМ и выпиливание микросхемы i2c памяти из платы с помощью отрезного круга. Эх… ничо, сгоняю в Москву мы снова отожгем!

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ;======================================== ; Выдача в линию серийника ; in: R0- адресс где лежит серийник с типом таблетки и CRC8 ; USES: A,B,R0,R1,R2 ;======================================================== DEMUL_SendSer: mov R2,#8 SS3: mov ACC,@R0 mov R1,#8 SS2: JB TouchFuck,$ ;ожидаем, когда шину уронят в ноль 1->0 RRC A ;C:=A.0; shift A; mov TouchFuck,C ;TouchFuck:=C; MOV B,#9 DJNZ B,$ ;Delay 20 us setb TouchFuck JNB TouchFuck,$ ;цикл пока 0 DJNZ R1,SS2 inc R0 DJNZ R2,SS3 ret ;=======================================================

Результаты.
В результате я получил множество эмуляторов. Правда, некоторые ещё из них надо доводить до ума. Хотя несколько 100% рабочие. Примеры эмуляторов ты можешь поглядеть на фотках.

Фотографии эмуляторов

Наиболее интересна проверка CRC, которая осуществляется домофоном. Тебе понадобится это, если ты захочешь поставить Dallas замок например на свой комп. Пример рассчёта CRC на A89C2051 (хотя данный код будет работать на всех микроконтрерах семейства i8051.

Архив со всяким барахлом. Исходники. Даташит.

Заключение.
Как видишь домофоные ключи устроенны не так просто, как кажется. Однако, съэмулировать их доступно каждому кто владеет программированием и паяльником.

DI HALT:
Дела давно минувших дней, преданья старины глубокой… Длиный — WDR! (понятно будет только посвященным ;)))) )

Доредакционная версия статьи из журнала Хакер

Вездеход Комплект универсальных ключей чипов от домофонов Красноярска (16 шт))

Как попасть в закрытый подъезд?

Очень просто- используйте универсальные ключи!

Что за универсальные ключи?

Универсальные ключи являются набором для открытия подъездных домофонов.

Выглядит как связка обычных домофонных чипов.

Неужели можно открыть любой подъезд?

На данный момент из 10 дверей открывается 6

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

Если внесены изменения в заводские настройки домофона- универсальный ключ не откроет!

Попробуйте сами- на проверку работоспособности сутки на своем районе.

Ходить с вами проверять нет возможности и времени.

Максимальный комплект, позволяющий открыть около 60% домофонов Красноярска

Подходит для домофонов Камсан, Визит, Цифрал, Форвард, Кейман, Маршал, Элтис.

Законно ли использовать такие ключи?

Подъезд является общественным местом, доступ к таким законом не ограничен.

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

Нужны ли мне эти ключи?

Универсальные ключи успешно используют в своей работе:

почтальоны, рекламщики, курьеры, коммунальщики, монтажники.

Если вам нужен доступ в подъезды городских домов, то

Универсальные ключи- ваш выбор!

Нужен доступ к почтовым ящикам?

У нас в продаже также имеются почтовые ключи

Почтовые ключи дают возможность легко распространять полиграфию через почтовые ящики.

А есть дешевле?

Да, есть и другие комплекты:

16 шт krsk.au.ru/4611659/ 1500 рублей

14 шт krsk.au.ru/3947428/ 1300 рублей

10 шт krsk.au.ru/3955652/ 1000 рублей

6 шт krsk.au.ru/3955670/ 800 рублей

У меня на районе домофоны только определенной марки?

Тогда вам подойдут одиночные ключи:

Форвард krsk.au.ru/3955741/ 400 рублей

Визит контактный krsk.au.ru/3955710/ 200 рублей

Визит беcконтактный krsk.au.ru/3955758/ 200 рублей

Цифрал krsk.au.ru/3955701/ 200 рублей

Мы сделаем вашу жизнь и работу намного приятней и проще.

**Внешний вид ключей может отличаться от представленных.

Где я могу узнать подробности?

По телефону в контактной информации в открытом доступе.

Остались вопросы? задайте их в Viber, WhatsApp, или Telegram я всегда на связи, номер телефона есть в объявлении

Где сделать ключ от домофона – способы изготовления идентификатора своими руками

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

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

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

Что нужно знать для самостоятельного изготовления ключа?

Первое, что нужно знать, чтобы сделать ключ своими руками – это устройство ключа. Некоторые люди думают, что в таблетке находится магнит, при соприкосновении которого с идентификатором происходит размагничивание замка и дверь открывается. На самом деле это оборудование, в память которого записана определенная программа, причем энергонезависимая. Данная технология называется Touch Memory, и для работы ей необходимо однопроводное соединение. То есть, в момент прикосновения таблетки к считывателю происходит получение питания и последний передает свой код.

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

Принцип работы, который используют ключи от домофона, прост. Так, прикоснувшись таблеткой Touch Memory к специальному месту на переговорном оборудовании, происходит обмен информацией с контроллером, который длится примерно 2 секунды. Если полученная информация совпадает, то все нормально – проход открыт.

На видео – процесс изготовления ключей с помощью дубликатора:

Заготовка или болванка для ключа

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

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

Программирование домофонных ключей

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

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

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

  • Включить в сеть копировальщик. На нем загорится надпись, которая говорит о готовности считывания;
  • Взять оригинал идентификатора и приложить к указанному на копировальщике месту считывания. После того как он считает информацию, звуковым сигналом или надписью Write сообщит об этом;
  • После этого к месту считывания приложить болванку и через несколько секунд ключ будет готов, о чем дубликатор сообщит звуковым сигналом или надписью.

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

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

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