Электронный ключ на основе поломанной USB флешки и контроллера Atmel

Захаров Денис, Украина

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

Популярные ключи семейства Dallas (Рисунок 1) имеют однопроводной интерфейс управления и отличаются высокой механической прочностью. Для передачи данных нужно соединить между собой сигнальные провода приемника и передатчика. Далее программа приемника сканирует код и выдает результат на исполняющее устройство в виде логических «0» или «1».

Электронный ключ на основе поломанной USB флешки и контроллера Atmel
Рисунок 1.  

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

Чтобы постоянно отслеживать состояние контроля доступа, нужно в определенный промежуток времени осуществлять передачу данных между ведущим и ведомым устройством. Для этой цели автор остановился на использовании стандартного протокола передачи данных UART, реализованного практически во всех микроконтроллерах Atmel.

Приемником и передатчиком служат контроллеры ATtiny2313. Через разъем USB поступают как данные, так и питание (две линии питания и две линии данных). Микроконтроллер в smd исполнении легко умещается в корпус от USB Flash памяти. В обвязке микросхемы используются только индикаторные светодиоды и ограничивающие резисторы, подключенные к выводам PB0 и PB1. Выводы PD0 и PD1 подключены напрямую к разъему USB.

Скорость передачи данных по каналу UART составляет 2400 Бод/с, при частоте контроллеров 4 МГц. Для передачи четырех символов один раз в секунду этой скорости более чем достаточно. Оба контроллера настроены на частоту 4 МГц и тактируются от внутреннего осциллятора.

В основном контроллере, принимающем данные от электронного ключа, запись пароля происходит в DataBlok «login». Чтобы его поменять, нужно в исходном тексте отредактировать 4 цифры (стандартный пароль 1234). Пароль вводится только цифрами в количестве четырех символов.

Принципиальная схема устройства показана на Рисунке 2.

Электронный ключ на основе поломанной USB флешки и контроллера Atmel 
Рисунок 2.

Запись пароля в ключ происходит после нажатия кнопки «Write» в схеме основного контроллера. Опрос вывода PD6 происходит один в секунду по сигналам прерывания от таймера. После того, как сработает кнопка, мигнет светодиод, подключенный к выводу PB7. Далее идет передача пароля в контроллер с последующей записью в энергонезависимую память. Чтобы ключ обновил пароль, его нужно вставить заново. Проверка пароля происходит 1 раз в секунду. При совпадении пароля загорается светодиод «ОК», подключенный к выводу PB0. Если пароль был заменен или не совпал, то загорается светодиод «Error», подключенный к выводу PB1.

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

Собранный передатчик показан на Рисунке 3.

Электронный ключ на основе поломанной USB флешки и контроллера Atmel
Рисунок 3.

Демонстрационное видео:

Программное обеспечение МК и виртуальная модель Proteus - скачать

Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • "Но контролировать присутствие ключа доступа постоянно с помощью стандартных датчиков Dallas невозможно." Возможно, если ключевой элемент (транзистор например) будет периодически рвать соединение между ключом и контроллером.
  • Не очень ясна целевая аудитория данного устройства.
  • Какой-то полный бред. Ну научился Захаров Денис передавать и принимать 4 байта через USART, для начинающего это возможно и неплохо. Сойдет как курсовая. Но непонятно зачем об этом писать статью и публиковать её на РЛ.
  • Да и проблема выдумана из пальца. Цитата : "При всей надежности и простоте этой системе присущ один недостаток. Для срабатывания исполнительного устройства поднести ключ к считывающему датчику нужно только один раз." Во-первых, существуют считыватели, в которых таблетка механически фиксируется на сколь угодно длительное время. Во-вторых, если-бы автор повнимательнее почитал описание формата 1-wire, он увидел-бы, что есть команда "reset" и инициировать обмен по шине, можно так часто, как позволяет протокол. Так-что полностью согласен с AMC. Статья - туфта полная. Но зато USB поддерживается! :)
  • Ребята, ну что вы так набросились на автора?Сегодня может нет, а завтра на этой идее кто-нибуть что-то придумает!
  • Да кто набросился-то? Сейчас если не сказать, завтра автор в журнал "Радио" напишет, а там ведь опубликуют. :) Тема называется "Обсуждение". И что можно обсуждать по ссылке? И чему можно научиться? Как по USART-у общаться? А при чём здесь USB? Разъём подходящий? Ну давайте встроим в соковыжималку RJ45 и назовём это "Соковыжималка с выходом в интернет"! :) Название темы, IMHO, надо выбирать соответствующее.
  • я думаю автор предпологает использовать флешку с личными данными владельца ключа
  • [I]"исключается возможность механического износа деталей."[/I] Это еще один обман со стороны молодого человека. Как раз USB разьемы частенько выходят из строя из-за механической поломки. Ну и нет совершенно никакой защиты по входу. [B]AMC[/B] полностью прав!
  • Речь изначально шла о неисправной флешке, а не о поддержке устройством какого-либо USB-класса.
  • Если не ошибаюсь, это уже третий материал автора на РЛ. Дословно, первые два назывались «многоканальное управление по USB» и «термометр до 250 градусов с ЖКИ». Всё выполнено на МК Atmel, причём превалируют Attiny2313. И вокруг всех трёх схем возникла дискуссия. Считаю, что автор правильно поступает, публикуя материалы на РЛ. Так, заведя где-либо блог, на том же livejornal, он явно не соберёт для обсуждения столь широкую аудиторию. И к вопросу о пользе – каждый, кто, будучи студентом, ходил на институтские семинары знает, что гораздо полезнее «постоять у доски», чем отсиживаться в глубине аудитории. Форум на то и нужен. А ведь и там, и тут, выступать приходится перед профессурой. Что, в общем, очевидно. Не ошибусь, если выражу общее мнение аудитории РЛ как одобрение. Только вот сам автор в дискуссии не участвует (небольшой упрёк). На РЛ десятки срезов, тысячи посетителей ежедневно. Совсем небольшому проценту из аудитории захочется читать о проектировании фазированных антенных решёток; или о тонкостях работы быстродействующих ОУ в усилителях наносекундных импульсов; или о проектировании источника питания для фотоумножителей; или о выделении гармонических составляющих при цифровой обработке. Словом – о всём дорогом и трудозатратном, так или иначе узкоспециальном в электронике. Извиняюсь за столь длинные примеры. Но как по-другому объяснить отличие проекта «выходного дня» от публикаций в реферируемых журналах или, что равносильно, результатов научных исследований. Просто вижу постоянное противоречие между реальным запросом аудитории РЛ и «ожиданиями», озвученными участниками форума. Пускай по строгости. Тогда разве можно упрекнуть эту работу в отсутствии научной новизны? В недостигнутых целях? А методы и средства тут второстепенны. Главное – работает! Не в этом ли удел радиолюбителя? Основная проблематика, в который раз поднятая автором, стара как сама архитектура 8051 (тут, правда, уместнее сказать RISC). А именно: должен ли программист МК быть состоявшимся инженером-схемотехником. И наоборот – возможно ли сегодня быть инженером, не зная программирования? Более лаконично не удалось сформулировать, к сожалению. И вот пойди, разберись – с каких позиций рассматривать вопросы «Как? Зачем? Почему?» в цифровом мире. С позиций железного дровосека: «Ведь есть специализированная МС и протокол…». Или с позиций поэта-алгоритмиста: «А вот что я могу сделать с лексемами языка, чтобы это железо заработало!». В этом загадка творчества.
  • Не согласен категорически. IMHO именно из-за подобного подхода само понятие "радиолюбитель" приобрело ироничный оттенок и большинством воспринимается, как создатель очередного чуда из г..на и палок. А журнал "Радио" этому способствует. И поделка по ссылке, как раз этому изданию подходит по-духу и исполнению. Возьмите журнал Everyday Practical Electronics и сравните.
  • Здравствуйте!Так получается,что схема автора это бред?Просто мне очень понравился такой вариант,и мне очень бы хотелось такое собрать!Я схему собрал,но тишина,надо ли программировать новый контроллер или сразу должно все работать со стандартным паролем,как пишет автор(с пояльником дружу, а вот программировать не знаю как,хотя программатор есть для этого контроллера!)Помогите мне разобраться мне с этой схемой,точнее программно разобраться!Заранее спасибо)
  • По вашим вопросам: 1. Сама схема скорее всего рабочая, но идея - бред. Вместо механически и электрически надёжного решения на основе ключей-таблеток предлагается заведомо более слабое решение на основе разъёма USB. Сам интерфейс USB в идее не используется, устройство не является USB совместимым, от USB используется только разъём. 2. Практически любой МК перед использованием должен быть запрограммирован. ATtiny2313 не исключение.
  • [U]AMC[/U],Насчет юсб все понятно,что используется сам разъем и корпус!Мне как раз и надо сделать в корпусе флешки,как и у автора!Просто он про программирования ничего не говорит!Со схемой все понятно,все просто!Как программировать контролер,вот вопрос!?
  • >>Оба контроллера настроены на частоту 4 МГц и тактируются от внутреннего осциллятора. Это значит, что МК работает по стандартным настройкам А для заливки прошивки нужен программатор, как не крути
  • Все просто. Если эта схема вам так приглянулась и хотите с неё начать знакомство с миром МК. Скачиваете в конце статьи архив [URL="http://www.rlocman.ru/i/File/2014/10/03/1.rar"]http://www.rlocman.ru/i/File/2014/10/03/1.rar[/URL]. В нём есть 2 файла: leading.hex и flash.hex - это файлы прошивки для устройства и ключа. Далее обязательно нужен программатор. Можно собрать самому, например [URL="http://www.lancos.com/siprogsch.html"]Ponyprog[/URL] или купить готовый, например Pololu USB AVR Programmer v2. Подключаете МК к программатору, загружаете в МК прошивку. После загрузки, если у автора статьи нет ошибок, всё должно заработать. Как уже написали выше, настройки битов конфигурации МК (т.н. Fuse Bits) можно оставить по-умолчанию.
  • Поколение пепси, мля...Вы считаете, что весь вопрос лишь в том "Как программировать контролер" ??? IMHO, Лавров за всех на всё ответил...
  • Что набросился? И идея и схема - бред. Ничего не проработано. Полностью согласен и сам написал [URL="http://www.rlocman.ru/forum/showthread.php?t=19220"]http://www.rlocman.ru/forum/showthread.php?t=19220[/URL] Но если кому-то хочется её собрать - почему и не помочь?
  • А каким-либо образом исходник сей прошивки посмотреть можно?
  • И без исходника, при моделирования прилагаемого проекта сразу становится понятно, что полный примитивизм. Используется USART. Передатчик с интервалом в 1 сек посылает неизменный пакет из 4-х байт - это пароль. Если пакет в течении некоторого времени получен - значит ключ вставлен, если не получен - не вставлен. Вот и все. Весь смысл статьи состоит в том, что некто Захаров Денис научился передавать и принимать 4 байта через USART. И на радостях он решил статью накатать. Редакторы, действуя по принципу на "безрыбье и рак рыба", разместили на сайте.
Полный вариант обсуждения »