Капацитивни скенери за пръстови отпечатъци

С развитието на технологиите се измислят все повече начини, които ограничават някои действия до един и позволяват на други свободно да извършват всякакви действия. Един от съвременните методи за ограничаване на достъпа е разпознаването на пръстови отпечатъци, базирано на уникалността на папиларния пръстен модел на всеки човек. Разпознаването на човешки пръстови отпечатъци е един от биометричните методи за удостоверяване. Този метод за удостоверяване на пръстови отпечатъци, поглеждайки назад в историята, е основан през 1877 г. от англичанина Уилям Хершел, който предположи, че папиларният модел на палмарната повърхност на човешката кожа е непроменен. Тази хипотеза е резултат от дълги изследвания на Уилям Хершел, който е служил като полицай в Индия.

Връщайки се към съвременния свят, резултатът от разсъжденията на този човек е широк набор от различни устройства, които могат да сканират, обработват и сравняват пръстовите отпечатъци на различни хора. В същото време дава добра точност на разпознаване на пръстови отпечатъци и в резултат на това получаваме само малък процент от възможната грешка. Грешките при работа със скенери за пръстови отпечатъци могат да бъдат само два вида: неправилно разпознаване на правилния пръстов отпечатък и правилно разпознаване на грешен пръстов отпечатък.

отпечатъци

Капацитивните скенери за пръстови отпечатъци са направени върху силиконова пластина, която съдържа област от микрокондензатори. Те са подредени равномерно в квадратна или правоъгълна матрица. Правоъгълните сензори се считат за по-подходящи, тъй като отговарят по-точно на формата на отпечатъка. Методите за капацитивно сканиране се основават на зареждането и разреждането на кондензаторите в зависимост от разстоянието до кожата на пръста във всекиотделна полева точка и четене на съответната стойност. Това е възможно, тъй като размерите на гребените и вдлъбнатините по кожата са доста големи. Средната ширина на билото е около 450 µm. Сравнително малкият размер на кондензаторните модули (50 x 50 µm) прави възможно забелязването и фиксирането на разликите в капацитета дори в близки точки на кожата.

Така че, нека разгледаме един от скенерите за пръстови отпечатъци, изграден на принципа на капацитивен скенер - R301 от Grow Technology (цената на Aliexpress е около $ 18). Спецификации на модула:

  • Захранващо напрежение 4,2 - 6 волта (работи при 3,3 V)
  • Консумиран ток - 40 mA
  • Пиков ток на консумация - 100 mA
  • Интерфейс – UART, USB
  • Скорост на предаване - 9600*n, n=1

12, по подразбиране 57600bps

  • Време за сканиране на пръстови отпечатъци - до 0.2 сек
  • Размер на шаблона за пръстови отпечатъци - 810 байта
  • FAR (False Acceptance Rate) - по-малко от 0,001%
  • FRR (False Rejection Rate) - по-малко от 0,1%
  • Средно време за търсене - под 0,05 сек
  • Ниво на сигурност - 5
  • Работен температурен диапазон – -10-+50 градуса по Целзий
  • Режими на сравнение - 1:1, 1:N
  • Капацитет на паметта на библиотеката с пръстови отпечатъци - 1700
  • пръстови

    Сензорът за пръстови отпечатъци R301 е проектиран да сканира пръстов отпечатък, да го обработва, да съхранява библиотеката от съхранени пръстови отпечатъци в собствената си памет и да търси съответствие на нов пръстов отпечатък с библиотеката от съхранени пръстови отпечатъци при поискване. Самият модул се състои от две основни части: полупроводников капацитивен скенер за пръстови отпечатъци от едната страна на модула и цифров сигнален процесор, който обработва данните, получени от скенера и изпълнява функции за съхранение,обработка и търсене в библиотеката с пръстови отпечатъци.

    Скенерът за пръстови отпечатъци има доста нисък профил, който се вписва в малкия размер на самия модул и опростява процеса на вграждане във всяка система.

    пръстови

    Самата библиотека с пръстови отпечатъци се съхранява във флаш памет 25q80 (осем пинов чип), свързана чрез SPI към процесора за цифров сигнал. В допълнение, от тази страна на модула има 24 MHz кристал, 3,3 волтов регулатор на напрежение с ниско отпадане XC6206 (sot-23 елемент с етикет 662k) и резистори и кондензатори, необходими за работата на веригата.

    Използването на такъв модул значително намалява натоварването на главния микроконтролер на система за контрол на достъп или друга система, която използва идентификация с пръстови отпечатъци, а също така опростява дизайна на тези системи. При работа с външен микроконтролер този модул не предава никакви данни за пръстови отпечатъци, с изключение на данните за резултата от операцията (получаване на пръстов отпечатък, обработка, съвпадение и т.н.), което, от една страна, усложнява хакването, но от друга страна, опростява. Производителят не предоставя информация за работата и друга информация за самия скенер, разположен от предната страна на модула. Ако е възможно физически да хакнете сензора, за да стигнете до UART или USB линията за данни, тогава няма да е трудно да изпратите фалшиви данни към главния микроконтролер, за да получите достъп. Ако достъпът е само до скенера на модула, тогава хакването на системата ще бъде доста трудно. Въпреки това, технологията за сканиране на пръстов отпечатък с полупроводникова капацитивна матрица сама по себе си не прави много за защита срещу хакване с помощта на манекени.

    За да се увеличи защитата срещу манекени, някои скенери за пръстови отпечатъци възприемат жизненоважни параметри, когатосканиране на пръстови отпечатъци: телесна температура, пулс, кожна галванична реакция, пот и някои други технологии. За съжаление, производителят на R301 не посочва наличието на такава защита срещу манекени - или възприемането на жизненоважни параметри не е в тези сензори, или работи ненадеждно.

    Следващото слабо място на скенерите за пръстови отпечатъци на Grow Technology като цяло е самият интерфейс за данни. Факт е, че ако операцията е успешна (например съвпадение на пръстовия отпечатък в паметта на модула), модулът предава стойността 0 (нула) и ако модулът е просто изключен, приемникът на данни винаги ще получава нули и по този начин ще бъде дадено разрешение за отваряне на ключалката или достъп. Този момент трябва да се вземе предвид и програмно да се осигури защита срещу прекъсвания на редове - тоест да се проверява не само байтът с данни за операцията, но и останалите байтове, включително заглавните, което със сигурност ще предотврати достъпа, ако линията за данни на скенера за пръстови отпечатъци се счупи.

    За да свържете модула R301 към компютър, можете да използвате USB контакти или USB-UART адаптер.

    капацитивни

    скенери

    Когато е свързано чрез USB, устройството се определя като устройство за съхранение (тук виждаме, че микроконтролерът STM32 действа като цифров сигнален процесор на модула, тъй като устройството е подписано по този начин - напразно производителите са изтрили маркировките от микросхемата и са запечатали драскотините). Въпреки това, без готов софтуер, тази функция е безполезна за нас. Когато сте свързани към компютър чрез USB-UART адаптер, можете да използвате програмата SFGDemo, за да оцените функционалността и производителността на модула.

    скенери

    За да започнете да работите в програмата, трябва да посочите COM порта на USB-UART адаптера и след това просто да използвате бутонитефункциите на модула, от които се нуждаем Тук можете да използвате функциите за запазване на пръстов отпечатък, сравняване, търсене на пръстови отпечатъци сред запазените, както и получаване на изображение на пръстов отпечатък и запазването му като картина.

    В сравнение с оптичния скенер за пръстови отпечатъци R308, R301 има значително по-малък размер на скенера и по-малък образец на сканирания пръстов отпечатък, но това не се отразява на работата - и в двата случая имаме доста висока точност на правилно разпознаване на пръстови отпечатъци.

    Тези модули са предназначени основно за вграждане в системи, което прави UART интерфейса основен. Свържете сензора към микроконтролера:

    отпечатъци

    LCD дисплеят показва необходимите данни за работа със скенера за пръстови отпечатъци, когато веригата е включена без затворени джъмпери Jmp1 и Jmp2, стартира главният програмен цикъл, когато микроконтролерът чака пръстов отпечатък от скенера и започва да търси в паметта на модула, когато се появи. Когато е разрешено със затворен джъмпер Jmp1, започва пълно изтриване на паметта на библиотеката с пръстови отпечатъци. При активиране със затворен джъмпер Jmp2 започва добавянето на 5 нови пръстови отпечатъка към паметта на модула. За да добавите пръстов отпечатък, трябва да поставите пръста си върху скенера два пъти, за да го запазите, ако няма грешки при сканиране на пръстови отпечатъци.

    пръстови

    Работата на различните сензори за пръстови отпечатъци Grow е една и съща в основните си функции и при смяна на сензора с друг не е необходимо да се променя фърмуера или структурата на командите.

    Основните команди, необходими за работа с модулите на скенера за пръстови отпечатъци:

    Команда (hex) Отговор (hex) Описание
    EF01 FFFFFFFF 01 0003 1D 0021

    EF01 FFFFFFFF 07 0005 xx nnnn ssss,

    където xx- код за потвърждение (0h - успешно завършване, 1h - грешка), nnnn - брой шаблони в библиотеката с пръстови отпечатъци, ssss - контролна сума

    Прочетете броя на съхранените пръстови отпечатъци в паметта на библиотеката за пръстови отпечатъци на модула.EF01 FFFFFFFF 01 0003 01 0005

    EF01 FFFFFFFF 07 0003 xx ssss,

    където xx - код за потвърждение (0h - успешно завършване, 1h - грешка при получаване на пакет данни, 2h - пръстът не е открит, 3h - грешка при сканиране), ssss - контролна сума

    Сканиране на пръстов отпечатък и запазването му в клипборда.

    EF01 FFFFFFFF 01 0004 02 bb ssss,

    където bb - CharBuffer1 или CharBuffer2 (1h или 2h), ssss - контролна сума

    EF01 FFFFFFFF 07 0003 xx ssss,

    където xx - код за потвърждение (0h - успешно завършване, 1h, 6h, 7h, 15h - грешка), ssss - контролна сума

    Създайте файл със знаци за пръстов отпечатък от оригиналния пръстов отпечатък и го запазете в CharBuffer1(2).EF01 FFFFFFFF 01 0003 05 0009

    EF01 FFFFFFFF 07 0003 xx ssss,

    където xx - код за потвърждение (0h - успешно завършване, 1h, ah - грешка), ssss - контролна сума

    Създайте шаблон за модел на пръстов отпечатък. Информацията в CharBuffer1 и CharBuffer2 се комбинира и комбинира, за да се получат по-надеждни данни за пръстови отпечатъци (пръстовият отпечатък в тези буфери трябва да принадлежи на един пръст). След операцията данните се съхраняват обратно в CharBuffer1 и CharBuffer2.

    EF01 FFFFFFFF 01 0006 06 bb pppp ssss

    където bb - CharBuffer1 или CharBuffer2 (1h или 2h), pppp - номер на място в паметта на библиотеката с пръстови отпечатъци, ssss - контролна сума

    EF01 FFFFFFFF 07 0003 xx ssss,

    където xx - код за потвърждение (0h - завършено успешно, 1h, 18h - грешка, bh - невалиден номерклетки с памет), ssss - контролна сума

    Запазване на шаблон за пръстов отпечатък от Buffer1/Buffer2 във флаш паметта на библиотеката на модула.

    EF01 FFFFFFFF 01 0007 0C pppp nnnn ssss,

    където pppp е номерът на мястото в паметта на библиотеката с пръстови отпечатъци, nnnn е броят пръстови отпечатъци, които трябва да бъдат изтрити, ssss е контролната сума

    EF01 FFFFFFFF 07 0003 xx ssss,

    където xx - код за потвърждение (0h - успешно завършване, 1h, 10h - грешка), ssss - контролна сума

    Изтриване на шаблон от флаш паметта на модула.EF01 FFFFFFFF 01 0003 0D 0011

    EF01 FFFFFFFF 07 0003 xx ssss,

    където xx - код за потвърждение (0h - успешно завършване, 1h, 11h - грешка), ssss - контролна сума

    Изчистване на паметта на библиотеката с пръстови отпечатъци на модула.EF01 FFFFFFFF 01 0003 03 0007

    EF01 FFFFFFFF 07 0005 xx mmmm ssss,

    където xx - код за потвърждение (0h - успешно завършване, 1h, 08h - грешка), mmmm - оценка на съответствието, ssss - контролна сума

    Точно сравнение на шаблони от CharBuffer1 и CharBuffer2.

    EF01 FFFFFFFF 01 0008 04 bb pppp nnnn ssss,

    където bb - CharBuffer1 или CharBuffer2 (1h или 2h), pppp - начален номер на клетката от паметта на диапазона за съвпадение, nnnn - брой клетки от паметта за съвпадение, ssss - контролна сума

    EF01 FFFFFFFF 07 0007 xx pppp mmmm sss,

    където xx - код за потвърждение (0h - успешно завършване, 1h - грешка, 9h - няма съвпадение), pppp - номер на клетката от паметта, която съответства на пръстовия отпечатък, mmmm - резултат за съвпадение, ssss - контролна сума