Найпростіший копировщик домофонних ключів
Найпростіший копировщик домофонних ключів.
Представлене пристрій призначений для створення копій домофонних контактних ключів типу Touch Memory (iButton, SmartButton, Dallas і т.п.) шляхом зчитування коду оригінального ключа і записи ліченого коду на спеціальний перезаписуваний ключ-заготовку (болванку).
В якості основи при створенні представленого копіювальника домофонних ключів був узятий вільно розповсюджуваний проект дублікaтора ключів з сайту sunstudent.narod.ru. При цьому схемна і програмна частини були перероблені і доповнені корисними функціями.
Копировщик зібраний з дюжини недорогих електронних компонентів. Схема проста і доступна для самостійного виготовлення будь-якого радіоаматори. Найдорожчою деталлю є мікроконтролер PIC12F683 фірми Microchip. Вибір припав на цей мікроконтролер через велику кількість пам'яті, в якій вдалося розмістити виконуваний код програми. Ще однією причиною послужило те, що завдяки щасливому випадку мені вдалося купити з десяток таких мікроконтролерів всього по 30 рублів за штуку.
Принципова електрична схема представлена на малюнку 1.
Малюнок 1. Схема пристрою електрична принципова
Хоча мікроконтролер і здатний працювати при напрузі нижче 3 вольт, для успішної записи заготовок необхідно напруга 5 вольт. Для отримання 5 вольт я використовував елемент живлення типу Крона (9 вольт) і лінійний стабілізатор на 5 вольт. Для захисту від переплюсовкі в схемі присутній діод (1N4148).
Підтяжка лінії 1-wire здійснюється резистором номіналом 1.5 кОм. При такому номіналі забезпечується стійке читання як ключів Cyfral, так і звичайних ключів формату Dallas.
Виходи на послідовний порт безпосередньо підключати до COM порту комп'ютера не можна, необхідно узгодити рівні сигналів використовуючи мікросхему конвертора рівнів, наприклад MAX232. З огляду на те, що в сучасних комп'ютерах нормальний COM порт зустрічається досить рідко (а в ноутбуках взагалі відсутня), то я користуюся саморобним перетворювачем USB-COM на мікросхемі FT232RL. Мікросхема ця має TTL / CMOS виходи і це дуже зручно, тому що відпадає необхідність в подвійному перетворенні сигналів, тому висновки мікроконтролера я підключаю безпосередньо до плати перетворювача USB-COM.
При включенні пристрою починає блимати зелений світлодіод. Якщо в цей час натиснути на кнопку управління, то пристрій вимкнеться, перейшовши в сплячий режим (режим зниженого енергоспоживання). Для включення пристрою досить знову натиснути кнопку управління.
Якщо був лічений код ключа 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 байтів інформації. При кожному отриманні чергової посилки з 8 байтів обчислюється контрольна сума. При розбіжності обчисленої контрольної суми до прийнятої в кодової посилці в послідовний порт виводиться ознака помилки - три байта FF 00 FF, після чого знову очікується прийом 8 байтів. Кодова посилка повинна бути в форматі Dallas. Оригінальний код ключа Cyfral буде сприйнятий як помилковий код. Якщо відправити код ключа в оригінальному форматі Cyfral, то пристрій перевірить код на правильність і в разі правильності коду переробить його в код DALLAS, потім перейде в режим очікування запису.
У пристрої передбачений режим автоматичного вимкнення після бездіяльності протягом приблизно 17 секунд.
Наостанок зазначу, що ця прошивка для мікроконтролера не остання. Вільна пам'ять там ще є, тому при наявності вільного часу в прошивку впровадити ще дещо які корисні дрібниці, так що заходьте періодично на цю сторінку в пошуках оновлення. Ну а якщо ви трохи розумієте в програмуванні цього мікроконтролера і є бажання длубатися в чужому коді, то для такого випадку викладаю исходник на асемблері. Наявність исходника скоротить час на написання різних процедур, допоможе зрозуміти принцип роботи, дозволить сконцентруватися лише на розробці додаткових завдань. Підсумком цього може стати цікаве і корисне пристрій.
І ще. Використання представленого копіювальника (а також будь-яких матеріалів з цієї сторінки) з метою отримання прибутку неприпустимо. Це аматорське пристрій, який повинен служити аматорським цілям. При використанні матеріалів з цієї сторінки, приводите посилання.
Схему (sPlan7), розведення друкованої плати (SprintLayout5), прошивку (hex) і исходник (asm) викладаю одним архівом.
Обговорити пристрій, задати питання та висловити думку можна на форумі за посиланням: Обговорення найпростішого копіювальника домофонних ключів.
Оновив прошивку до версії 3.1. Тепер пристрій Новомосковскет ключі Метаком. Після зчитування код ключа записується в пам'ять EEPROM і відсилається по UART. Код ключа зберігається у вигляді 8 байтів, причому значущих 4 байта з 3-го по 6-ий. перші два і останні два байта - нульові. Код ключа Метаком конвертується в код Dallas і в такому вигляді записується на ключ-заготовку. Перероблений таким чином код може бути не сприйнятий домофоном.