Простейший копировщик домофонных ключей.

Простейший копировщик домофонных ключей.

Представленное устройство предназначено для создания копий домофонных контактных ключей типа Touch Memory (iButton, SmartButton, Dallas и т.п.) путём считывания кода оригинального ключа и записи считанного кода на специальный перезаписываемый ключ-заготовку (болванку).

В качестве основы при создании представленного копировщика домофонных ключей был взят свободно распространяемый проект дубликaтора ключей с сайта sunstudent.narod.ru. При этом схемная и программная части были переработаны и дополнены полезными функциями.

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

Возможности копировщика:

  1. позволяет автономно создавать копии ключей на заготовки: RW1990 (v1 и v2), TM-08, TM-08 v1, TM2004;
  2. позволяет считывать ключи Cyfral и конвертировать прочитанный код в код Dallas для последующий записи на заготовки в формате Dallas;
  3. позволяет хранить считанные ключи в энергонезависимой памяти EEPROM микроконтроллера (до 30 ключей);
  4. позволяет подключить копировщик к последовательному порту компьютера и с помощью программы терминала вести двусторонний обмен информацией с микроконтроллером, при этом на компьютере можно организовать базу данных электронных ключей.

Принципиальная электрическая схема представлена на рисунке 1.

Рисунок 1. Схема устройства электрическая принципиальная

Хотя микроконтроллер и способен работать при напряжении ниже 3 вольт, для успешной записи заготовок необходимо напряжение 5 вольт. Для получения 5 вольт я использовал элемент питания типа Крона (9 вольт) и линейный стабилизатор на 5 вольт. Для защиты от переплюсовки в схеме присутствует диод (1N4148).

Подтяжка линии 1-wire осуществляется резистором номиналом 1.5 кОм. При таком номинале обеспечивается устойчивое чтение как ключей Cyfral, так и обычных ключей формата Dallas.

Выходы на последовательный порт напрямую подключать к COM порту компьютера нельзя, необходимо согласовать уровни сигналов используя микросхему конвертора уровней, например MAX232. Ввиду того, что в современных компьютерах нормальный COM порт встречается достаточно редко (а в ноутбуках вообще отсутствует), то я пользуюсь самодельным преобразователем USB-COM на микросхеме FT232RL. Микросхема эта имеет TTL/CMOS выходы и это очень удобно, т.к. отпадает необходимость в двойном преобразовании сигналов, поэтому выводы микроконтроллера я подключаю напрямую к плате преобразователя USB–COM.

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

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

Если был считан код ключа Cyfral, то по последовательному порту будет отправлен код ключа Cyfral в оригинальном формате в виде 8 байтов (причём значащими битами будут только младшие 4 из 8 битов каждого байта) плюс 8 байтов конвертированного кода ключа в формат DALLAS. В память EEPROM запишется код только в оригинальном формате Cyfral в виде 8 байтов.

Для считывания памяти EEPROM можно воспользоваться любым программатором.

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

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

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

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

Несколько слов о ключах Cyfral. Для создания полноценной копии ключа данного типа необходима специальная заготовка TM-01C. В настоящий момент в нашем городе в свободной продаже обнаружить её не удалось, поэтому данный тип заготовок копировщиком пока не поддерживается. Вместе с этим копировщик переделывает считанный код Cyfral в код Dallas по определённому алгоритму (упаковывает 32-х битный код в двухбайтную последовательность). Данный код возможно записать на обычные Далласовские ключи-заготовки, но при этом далеко не все домофоны способны принять этот код. Так что подойдёт ли переделанный таким образом код к домофону – неизвестно.

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

Печатная плата копировщика представлена на рисунке 2.

Рисунок 2. Разводка печатной платы

В качестве эксперимента и отчасти того, что микроконтроллер у меня в SMD корпусе, было принято решение использовать SMD компоненты, соответственно печатная плата разрабатывалась под SMD детали. Резисторы и диод типоразмера 1206, а конденсаторы и светодиоды – типоразмера 0805. Кнопка тактовая для SMD монтажа, типоразмер не известен, осталась из запасов, когда ремонтировал брелок от автомобильной сигнализации. В длину миллиметров 6.

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

На плату выведен разъём для внутрисхемного программирования и разъём для подключения к последовательному порту компьютера. Микроконтроллер впаивается на плату и непосредственно на плате прошивается, что весьма удобно.

Сборка устройства занимает совсем немного времени. Правильно собранное устройство в настройке не нуждается и сразу работоспособно.

Фото готового устройства приведено на рисунке 3.

Рисунок 3. Фото готового устройства

При работе с компьютером, в параметрах COM порта терминальной программы следует выбрать следующие значения: скорость – 19200, 8–N–1. Для отправки и приёма информации необходимо перевести терминальную программу в режим отображения шестнадцатиричных кодов.

Если, с помощью терминальной программы, отправить 8 байтов, то микроконтроллер копировщика пересчитает контрольную сумму и в случае совпадения контрольной суммы перейдёт в режим записи ключа. Таким образом, записать на ключ-заготовку код любого ключа можно не имея оригинального ключа. Эта функция окажет неоценимую помощь в случае утери оригинального ключа. Также очень удобно в случаях, когда планируется навестить кореша, код ключа от домофоного подъезда которого был предварительно прочитан. Кстати код ключа Dallas пишется прямо на самом ключе, так что выведать код можно и в разговоре по телефону.

Микроконтроллер копировщика всегда ожидает от компьютера кодовую посылку из 8 байтов информации. При каждом получении очередной посылки из 8 байтов вычисляется контрольная сумма. При несовпадении вычисленной контрольной суммы с принятой в кодовой посылке в последовательный порт выводится признак ошибки – три байта FF 00 FF, после чего вновь ожидается приём 8 байтов. Кодовая посылка должна быть в формате Dallas. Оригинальный код ключа Cyfral будет воспринят как ошибочный код. Если отправить код ключа в оригинальном формате Cyfral, то устройство проверит код на правильность и в случае правильности кода переделает его в код DALLAS, затем перейдёт в режим ожидания записи.

В устройстве предусмотрен режим автоотключения после бездействия в течение примерно 17 секунд.

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

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

Схему (sPlan7), разводку печатной платы (SprintLayout5), прошивку (hex) и исходник (asm) выкладываю одним архивом.

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


Обновление от 25.05.2012

Обновил прошивку до версии 3.1. Теперь устройство читает ключи Метаком. После считывания код ключа записывается в память EEPROM и отсылается по UART. Код ключа хранится в виде 8 байтов, причём значащих 4 байта с 3-его по 6-ой. первые два и последние два байта - нулевые. Код ключа Метаком конвертируется в код Dallas и в таком виде записывается на ключ-заготовку. Переделанный таким образом код может быть не воспринят домофоном.


[НАЗАД][мои проекты]