Электронные ключи широко применяются в повседневной жизни. При электронной передаче данных исключается возможность механического износа деталей. Электронными ключами доступа можно открывать дверные электромагнитные замки, блокировать программные средства ПК, контролировать доступ к программно-аппаратным комплексам.
Популярные ключи семейства 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.
Демонстрационное видео:
Автор: Захаров Денис, Украина
Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (7188) ORDER BY umeta_id ASC