Углубляясь все больше в системы, связанные с охраной и контролем, многие из нас в конце концов обратят внимание на биометрические методы идентификации личности для тех или иных потребностей.
Биометрия – это методы автоматической идентификации человека и подтверждения личности человека, основанные на физиологических или поведенческих характеристиках. Примерами физиологических характеристик являются отпечатки пальцев, форма руки, характеристика лица, радужная оболочка глаза, характеристика голоса, особенности подчерка. В процессе развития технологий появляется все большее количество способов идентифицировать человеческую личность.
Наиболее популярным методом биометрической идентификации является распознавание отпечатков пальцев. Думаю, это так, потому что это относительно дешевый и простой способ, проверенный временем. Способов получить отпечаток пальца человека с помощью электроники существует несколько: оптические методы получения изображения отпечатка пальца – на отражение, на просвет, бесконтактный способы, емкостные датчики отпечатков пальцев (полупроводниковые), радиочастотные сканеры, сканеры, использующие метод давления, термосканеры, ультразвуковой метод. Каждый способ получения отпечатка пальца имеет свои достоинства и недостатки, однако главным образом баланс выбора способа сканирования является цена – надежность (здесь выделяется не только эффективная защита, но и устойчивость к воздействию внешних факторов).
Рассматриваемый сканер отпечатков пальцев R308 (ссылка в магазин) является оптическим (метод на отражение). Данный метод использует эффект нарушенного полного внутреннего отражения (Frusted Total Internal Reflection). Эффект заключается в том, что при падении света на границу раздела двух сред световая энергия делится на две части — одна отражается от границы, другая проникает через границу во вторую среду. Доля отраженной энергии зависит от угла падения светового потока. Начиная с некоторой величины данного угла, вся световая энергия отражается от границы раздела. Это явление называется полным внутренним отражением. В случае контакта более плотной оптической среды (поверхности пальца) с менее плотной в точке полного внутреннего отражения пучок света проходит через эту границу. Таким образом, от границы отразятся лишь пучки света, попавшие в определенные точки полного внутреннего отражения, к которым не был приложен папиллярный узор пальца. Для захвата полученной световой картинки поверхности пальца используется специальный датчик изображения (КМОП или ПЗС, в зависимости от реализации сканера).
Для данного метода можно отметить следующее:
- Одни из самых дешевых сканеров отпечатков пальцев при относительно большой площади сканирования пальца
- Чувствительность к загрязнению рабочей поверхности датчика
- Малая защита от муляжей
- Относительно крупные размеры модуля
Итак сканер отпечатков пальцев R308 имеет следующий вид:
Хотелось бы разобрать и посмотреть на модуль изнутри, но конструкция сделана таким образом, что аккуратно открутить винтики и снять плату с элементами не получится, так как держит ее что-то изнутри и без применения паяльника это сделать проблематично, поэтому не стоит пытаться нарушить целостность модуля, что может привести к выводу его из строя.
Данный оптический сканер отпечатков пальцев использует высокоскоростной цифровой сигнальный процессор в качестве своей основы. Этот модуль может получить изображение отпечатка пальца, обработать изображение для сохранения или поиска, сохранить данные об отпечатке пальца в собственной памяти и делать поиск на совпадение полученного отпечатка с сохраненными. Для подключения к СКУД (системам контроля и управления доступом) модуль имеет интерфейс UART, посредством которого модуль принимает команды и посылает ответы о результатах операций. Кроме того, модуль может передать на другое устройство изображение отпечатка пальца, полученное при помощи него. Сканер отпечатков пальцев построен таким образом, что все вычислительные и аналитические операции выполняет он сам, но этими процессами необходимо управлять для получения практической ценности модуля. Таким образом, на основе ответов о результатах выполнения команд внешний микроконтроллер может выстраивать любую необходимую логику работы СКУД с применением сканера отпечатков пальцев.
Характеристики сканера отпечатков пальцев R308:
- Напряжение питания – 4,5-5 вольт
- Рабочий ток – 40 мА
- Интерфейс – UART (TTL logical level)
- Baud rate – 9600*n, n=1~12, по умолчанию 57600 bps
- Время сканирования отпечатка пальца –до 0,5 сек
- Размер шаблона отпечатка – 512 байт
- Коэффициент ложного пропуска FAR (False Acceptance Rate) – менее 0,001 %
- Коэффициент ложного отказа в доступе FRR (False Rejection Rate) – менее 0,5 %
- Уровень безопасности – 5
- Время среднего поиска – менее 1 сек
- Размер окна считывания отпечатка пальца – 18х22 мм
- Размер модуля – 55,5х21х20,5 мм
- Диапазон рабочих температур – -20-+40 градусов Цельсия
Для подключения к другим устройствам R308 имеет 6-контактный разъем:
- Vt – плюс питания детектора пальца
- Vin – плюс питания модуля
- TxD
- RxD
- GND
- Touch – выход сигнала детектора пальца
В документации указываются цвета шлейфа в комплекте с модулем, но в моем случае цвета не совпали, поэтому надежнее всего определять назначение контактов по нумерации, указанной на плате возле разъема модуля.
Структура пакета данных, передаваемых и принимаемых модулем:
- Header – заголовок, фиксированное значение 0xEF01 (2 байта)
- Adder – адрес сканера отпечатков пальцев, фиксированное значение 0xFFFFFFFF (4 байта)
- Package identifier – идентификатор пакета данных, 01H – пакет команды, 02H – пакет данных, 07H – пакет ответа, 08H – пакет окончания данных (1 байт)
- Package length – количество байт пакета информации (включает сумму байт данных пунктов 5 — 6), максимальное количество 256 байт (2 байта)
- Package contents – полезные данные
- Checksum – контрольная сумма, арифметическая сумма пунктов 3-6 (2 байта)
Сканер отпечатков пальцев имеет 8 основных инструкций для его управления:
- Сканирование отпечатка пальца и сохранение его в буфере. Возвращает код подтверждения об успешности операции.
- Создание файла символов отпечатка пальца из оригинального отпечатка и сохраняет его в CharBuffer1 (2). Возвращает код подтверждения об успешности операции.
- Поиск на совпадение отпечатка пальца в библиотеке модуля который соответствует хранимому в CharBuffer1 или CharBuffer2. Возвращает код подтверждения об успешности операции и ID отпечатка пальца в библиотеке модуля.
- Создание шаблона модели отпечатка пальца. Информация в CharBuffer1 и CharBuffer2 объединяется и комбинируется для получения более достоверных данных об отпечатке пальца (отпечаток в этих буферах должен принадлежать одному пальцу). После операции данные сохраняются обратно в CharBuffer1 и CharBuffer2. Возвращает код подтверждения об успешности операции.
- Сохранение шаблона отпечатка пальца из Buffer1/Buffer2 во флэш память библиотеки модуля. Возвращает код подтверждения об успешности операции.
- Удаление шаблона из флэш памяти модуля. Возвращает код подтверждения об успешности операции.
- Очистка памяти библиотеки отпечатков пальцев модуля. Возвращает код подтверждения об успешности операции.
- Проверка пароля модуля. Возвращает код подтверждения об успешности операции.
Для того чтобы искать совпадение отпечатка пальца в библиотеке модуля необходимо сканировать отпечаток пальца и сохранить его в буфере, сгенерировать символьный файл и поместить его в CharBuffer и прописать команду на поиск совпадений отпечатков пальце (инструкции 1, 2, 3).
Для того чтобы внести отпечаток пальца в память модуля необходимо получить изображение отпечатка пальца, сохранить его в буфере и сгенерировать символьный файл, сохраняемый в CharBuffer (операции повторяем минимум 2 раза и сохраняем все в CharBuffer1 и CharBuffer2), далее комбинируем данные в буферах 1 и 2 для получения более точного результата и запускаем командой сохранение в указанное место памяти информацию об отпечатке пальца (инструкции 1, 2, 4, 5).
По ходу выполнения инструкций модулем необходимо следить за корректностью и успешностью выполнения посредством ответов, следующих после посылки команд. Это может улучшить качество выполнения программы и точность заданных манипуляций со сканером отпечатков пальцев R308.
Для оценки работы модуля к статье прилагается демонстрационная прошивка для микроконтроллера STM32, соответствующая схеме:
На LCD дисплее отображаются необходимые данные для работы со сканером отпечатков пальцев, при включении схемы без замкнутых перемычек Jmp1 и Jmp2 запускается основной цикл программы, когда микроконтроллер ждет получения отпечатка пальца от сканера и запускает поиск в памяти модуля при его появлении. При включении с замкнутой перемычкой Jmp1 запускается полное стирание памяти библиотеки отпечатков пальцев. При включении с замкнутой перемычкой Jmp2 запускается добавление 5 новых отпечатков пальцев в память модуля. Для добавления отпечатка пальца необходимо дважды приложить палец к сканеру для его сохранения в случае отсутствия ошибок при сканировании отпечатков.
Кроме того к статье прилагается программа SFGDemo. С ее помощью можно получить изображение своего отпечатка пальца помимо стандартных операций добавления отпечатка в память, поиска совпадений, удаления отпечатка из памяти (для подключения к компьютеру используется переходник USB-UART).
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | МК STM32 | STM32F103C8 | 1 | |||
VR1 | Линейный регулятор | LM7805 | 1 | |||
VR2 | Линейный регулятор | AMS1117-3.3 | 1 | |||
FP1 | Датчик отпечатков пальцев | R308 | 1 | |||
HG1 | LCD-дисплей | 2004a | 1 | |||
C1, C2 | Конденсатор | 22 пФ | 2 | |||
C3 | Электролитический конденсатор | 470 мкФ | 1 | |||
C4-C7, C9, C10, C12 | Конденсатор | 100 нФ | 7 | |||
C8 | Электролитический конденсатор | 220 мкФ | 1 | |||
C11 | Электролитический конденсатор | 100 мкФ | 1 | |||
R1 | Резистор | 22 Ом | 1 | |||
R2 | Резистор | 100 Ом | 1 | |||
R3 | Подстроечный резистор | 10 кОм | 1 | |||
R4-R6 | Резистор | 10 кОм | 3 | |||
R7 | Резистор | 390 Ом | 1 | |||
S1 | Тактовая кнопка | 1 | ||||
Z1 | Кварцевый резонатор | 8 МГц | 1 | |||
EP1 | Бузер | 1 | со встроенным генератором | |||
Jmp1, Jmp2 | Перемычка | Джемпер | 2 | |||
HL1 | Светодиод | 1 | ||||