РадиоКот >Схемы >Цифровые устройства >Защита и контроль >

Теги статьи:

Эмулятор домофонных ключей

Автор: GoldenAndy
Опубликовано 05.10.2020
Создано при помощи КотоРед.
Участник Конкурса "Поздравь Кота по-человечески 2020!"

Если долго смотреть на дверь с домофоном - она откроется.

Так сложилось, что в моем подъезде появился домофон. Вещь хорошая. Удобная. Создающая иллюзию безопасности. Препятствующая (иногда) проникновению бомжей и асоциальных элементов. Что, в общем, не мешает рекламщикам распихивать свой спам по ящикам, пользуясь мантрой "Откройте, это сантехник....".

О плюсах и минусах домофона можно спорить долго. Но факт - на ключах появилась еще одна синенькая висюлька бесконтактной таблетки.

Всё было бы хорошо, но через некоторое время было принято решение вход во двор дома закрыть воротами. И проход во двор возможен только через 2 калитки - одна с улицы, вторая из соседнего двора. При этом никто не озаботился тем, что бы прописать в замок на воротах ключи от подъездных домофонов. Просто выдали всем еще ключей-брелков. Мне перепал еще и ключик от второй калитки (Ибо мы ходим в соседний двор кормить местных котов). В результате на ключах появилось 2 дополнительные висюльки, аналогичные первой. Одна синяя, как и от подъезда, вторая желтая. Надписи маркером с брелков стирались. Приклеенные скотчем этикеточки отклеивались. Брелоки мешались. Вообщем одни неудобства. Хорошо хоть, что все ключи оказались одного стандарта - EMMarine EM-4100.

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

Данные исследования привели к появлению на свет нижеописанного устройства.

Эмулятор домофонных ключей

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

Версия 1 - эмулятор бесконтактных ключей стандарта EM-Marine 125 кГц.

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

Для чтения и эмуляции бесконтактного ключа нужен колебательный контур, настроенный на резонансную частоту ключа - 125 кГц. Сказано - сделано. При помощи RLC-метра был подобран конденсатор 4,7 нФ. При помощи онлайн-калькулятора была рассчитана необходимая индуктивность катушки для частоты 125 кГц при емкости 4700 пФ - 344.9 мкГн. Теперь нужно намотать такую катушку. В качестве оправки был применен одноразовый медицинский шприц на 20 кубов, обернутый полоской бумаги. Начальный диаметр для намотки был 22.7 мм. Катушка моталась проводом 0.08 мм с какого то старого трансформатора. Число витков было рассчитано на основе геометрических данных катушки и требуемой индуктивности другим онлайн-калькулятором - получилось 88 витков, ушло чуть более 6 метров провода.
Была попытка создать из бумаги хотя бы видимость каркаса катушки, что бы намотать плоскую аккуратную катушку. Но не судьба. В результате внавал было намотано 86 витков так, что бы получить максимально плоскую катушку. Потом катушка была снята с оправки и были домотаны последние 2 витка, которыми катушка дополнительно была обвита, что бы витки не рассыпались. Проверка на RLC-метре показала реальную индуктивность, практически не отличающуюся от расчетной. В последствии катушка была пропитана лаком PLASTIK-71.

Теперь можно приступить и к схеме эмулятора ключей.

 

Схема в PDF

 Как это работает?

Командует всей этой кухней народный микроконтроллер ATMEGA8A.

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

Чтение ключа. Тут всё гораздо интересней. На базу транзистора Q3 с частотой 125 кГц приходят короткие импульсы, которые "накачивают" энергию в катушку контура. L1R13C5 - это фильтр, ограничивающий проникновение помех в цепи питания. После каждого импульса накачки выбросы самоиндукции с контура детектируются диодом D6 и фильтруются цепочкой R14C6.
Если же поднести к катушке ключ-брелок - то в моменты, когда контроллер в ключе шунтирует свою катушку, выбросы самоиндукции снижаются, поскольку часть энергии уходит в закороченную катушку в ключе. Соответственно, в эти моменты снижается напряжение на конденсаторе C6. Перепады напряжения проходят через C7 и далее усиливаются транзистором Q4. C8 сглаживает импульсные помехи от накачки. Для повышения чувствительности введена цепь смещения - R15D7D8R16.
В результате на коллекторе Q4 при достаточно близком поднесении ключа-брелока к катушке контура формируется сигнал, соответствующий кодовой последовательности ключа. Сигнал анализируется контроллером и код ключа сохраняется во внутренней памяти контроллера. Данный вариант схемы позволяет уверенно читать брелки при на расстоянии примерно до 10 мм, чего вполне достаточно для такого устройства.

Питание эмулятора ключей производится от малогабаритного литиевого аккумулятора.
Зарядка аккумулятора - через контроллер LTC4054.

В схеме предусмотрена возможность подключения эмулятора к ПК, для чтения/записи ключей в базу на ПК. Так же реализовано обновление прошивки с ПК (при помощи бутлоадера).
Зарядка аккумулятора осуществляется при подаче 5 вольт на клеммы W1,W3.
W2,W4 - интерфейс последовательного порта для связи с ПК. D1,R2,R3,D2,D3,D4,R6 - защита от некорректных подключений, повышенных напряжений, статики.
R1R5Q1D5 - цепь детектирования подключения эмулятора к внешнему источнику питания.

Индикация. Осуществляется при помощи 9 светодиодов, 7 из которых образуют знакосинтезирующий семисегментный дисплей. Эти 7 диодов можно заменить малогабаритным семисегментным индикатором с общим катодом (при соответствующем изменении конфигурации печатной платы).
Оставшиеся 2 светодиода - красного и зеленого цветов - используются для дополнительной индикации в различных режимах.

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

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

В режиме эмуляции на дисплее отображается номер слота с эмулируемым на данный момент ключом. Короткие нажатия на кнопку перебирают по кругу слоты с сохраненными ключами.

При пониженном напряжении питания (менее 3.2 вольта) начинает мигать красный светодиод.

Если же в режиме эмуляции кнопку нажать и держать порядка двух секунд - отобразится символ "А" и эмулятор перейдет в режим администрирования ключей. В этом режиме кнопкой циклически перебираются все слоты. Если в слоте сохранен ключ - дополнительно светится зеленый светодиод. Если же слот пустой - номер слота мигает. Длинное нажатие кнопки на пустом слоте включает режим чтения ключей, длинное нажатие на слоте с сохраненным ключом - предлагает удалить ключ.

Более подробно управление ключом и всеми режимами описано в инструкции пользователя.

Ну и печатная плата - куда ж без неё.

Плата разработана с учетом возможности ручного изготовления по ЛУТ-технологии.

Готовый файл печатки для ЛУТ
Герберы
Проект Eagle 7

Эмулятор первой версии умеет:

Прошивка и фьюзы.

Фьюзы для МК:

Кому ближе числа: Lo: 0xA4, Hi: 0xD1 

Прошивка для эмулятора первой версии: Прошивка

Эмулятор собран в готовом корпусе с толкателем кнопки.

В верхней части корпуса было прорезано окно и закрыто дымчатым стеклом, а вся верхняя часть корпуса накрыта самоклеящейся пленкой. Это призвано обеспечить хоть какую то брызгозащиту.
На нижней части корпуса, напротив контактов W1-W4 запрессованы пружинные латунные контакты (pogo-pin), через которые эмулятор подключается к переходнику UART-USB и далее к ПК.
Для того, что бы в процессе разработки и отладки не разбирать ключ каждый раз и не паяться к интерфейсу внутрисхемного программирования, был написан загрузчик (bootloader) и программа для ПК.

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

Кому ближе числа: Lo: 0xA4, Hi: 0xD2

Загрузчик для эмулятора первой версии: Загрузчик.

 

Эмулятор в процессе изготовления и первичного написания:

Готовый эмулятор

В дальнейшем, для намотки катушек было сделано следующее приспособление.
Из пластика толщиной 1.4 мм был выточен диск диаметром 21 мм. Выточен просто - грубо вырезан круг диаметром 23 мм, далее через центр пропущен винт, диск зажат гайкой, вставлен в дрель и обточен до 21 мм при помощи обычного канцелярского ножа в качестве резца.
Торцевая поверхность диска слегка отшлифована мелкой наждачкой. После чего диск зажат между двумя металлическими шайбами. 
Получается оправка для намотки катушки толщиной 1.4 мм.

После намотки необходимого числа витков оправка разбирается, катушка аккуратно снимается с пластмассовой шайбы и пропитывается лаком PLASTIL-71.

 

Версия 2 - эмулятор бесконтактных ключей стандарта EM-Marine 125 кГц и контактных ключей стандарта TouchMemory (iButton), Cyfral, Metakom.

Версия 2 - логическое продолжение эмулятора первой версии.

Контроллер заменен на аналогичный, но с большим объемом памяти - ATMEGA328P.

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

Эмулятор второй версии умеет:

Для ключей Metakom поддерживается только эмуляция (у меня, как и у Кластера, нет такого ключа в наличии. Да и домофонов в округе нет таких. Посему - эмуляция по алгоритму, описанному в документации - см. статью Кластера.)

Схема. 

Схема в PDF

Немножко про схему.

Беспроводная часть работает аналогично первой версии эмулятора и практически ничем от нее не отличается.

Работа с контактными ключами.

Q6R24 - подтяжка 1Wire-линии к питанию при чтении Dallas-овских ключей TouchMemory.

Q4R21 - усиленная подтяжка линии для чтения ключей Cyfral. R13R14 - делитель для компаратора уровней, отдаваемого ключом.

Q5 - Прижатие линии к земле в режиме эмуляции TouchMemory.

R27,R18 - Эмуляция двух уровней сопротивления Cyfral/Metakom.

Добавлено 2 светодиода для индикации единицы в разряде десятков для индикации номеров слотов от 0 до 19.

Так же в дополнение к зеленому добавлен синий светодиод - для индикации типа выбранного ключа. Зеленый контактный, синий - бесконтактный ключ.

2 варианта печатной платы под два корпуса:

 
     
 

Печатные платы разрабатывались с учетом заказа их на производстве. С такими платами и работать приятней, да и сплошные плюсы от заводских плат - тонкие дороги, закрытые маской переходные, красивая шелкография.... Есть и минусы - 10 плат 5$, доставка 7-9$, да и ждать иногда долго. Мне два комплекта плат обошлось в 19$. Зато приехали супер-быстро. 12 дней от момента выдачи трек-номера на фабрике.

Герберы раз и два
Проект Eagle

Управление.

Эмулятор полностью управляется одной кнопкой, но для удобства использования введена поддержка второй кнопки.
В большинстве случаев короткое нажатие на вторую кнопку выполняет действие, противоположное действию при коротком нажатии на первую кнопку. Алгоритм управления приактически не изменился относительно первой версии эмулятора, только в режиме чтения ключей добавился выбор типа считываемого ключа. Более подробно всё описано в инструкции пользователя к версии 2.

Прошивка и фьюзы.

Вторая версия эмулятора точно так же поддерживает режим загрузчика и обновление прошивки через программу на ПК.

Соответственно, тоже есть 2 набора фьюзов - для обычной прошивки (без поддержки обновления через ПК) и для работы с загрузчиком.

Фьюзы для обычной прошивки:

Кому ближче числа: Lo: 0xE2, Hi: 0xD5, Ext: 0xFD

Прошивка для эмулятора второй версии: Прошивка

Фьюзы для эмулятора с загрузчиком:

Кому ближе числа: Lo: 0xE2, Hi: 0xD4, Ext: 0xFD

Загрузчик для эмулятора второй версии: Загрузчик

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

 Модуль для подключения к ПК Конструкция клемм для контактных ключей, на заднм плане - контакты для подключения к ПК Готовый эмулятор в модуле для подключения к ПК

 

 
 Собранная плата 
   
Плата в корпусе  
   

 

Подключение к ПК

Связь с ПК реализуется через любой переходник USB-UART. 
Например, через вот такой:

Эмулятор подключается следующим образом:

 

Программа для ПК

Тут всё просто. Эмулятор подключить, программу запустить, нажать кнопку "Подключение".

Программа Intercom MultiKey manager.

 


Файлы:
Программа для связи с ПК
Ver_1_BootLoader
Ver_1_Firmware
Ver_1_Проект Eagle
Версия_1_Герберы
Ver 2. bootloader
Ver 2. Eagle
Ver 2. firmware
Ver 2. Gerbers v.01
Ver 2. Gerbers v.02
Ver 1. User manual
Версия_1_ЛУТ
Версия_1_Схема
Ver 2. User manual
Ver 2. Schematic


Все вопросы в Форум.