Разработка модуля идентификации персонала для систем контроля и управления доступом

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 04.12.2019
Размер файла 3,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

После успешного считывания отпечатка пальца необходимо передать считывателю команду IMAGE2TZ для формирования шаблона функции, который в последующем будет использован для создания модели отпечатка пальца. При выполнении этой команды считыватель формирует два шаблона функции (основной и контрольный). Если шаблоны функции были сформированы успешно, то считыватель ответит кодом ОК. Если изображение было слишком некачественным и не удалось по нему сформировать шаблоны функции, то считыватель ответит кодом IMAGEMESS. Если считыватель не смог распознать команду, то он ответит кодом PACKETRECIEVEERR. Если считыватель не смог идентифицировать особенности отпечатка пальца, то он ответит кодом FEATUREFAIL или кодом INVALIDIMAGE.

Чтобы по полученным шаблонам функции сформировать модель отпечатка пальца, необходимо передать считывателю команду REGMODEL. В дальнейшем сформированную модель можно будет сохранить для того, чтобы в будущем сравнивать её с новыми моделями. Если модель была успешно сформирована, то модуль ответит кодом ОК. Если считыватель не смог распознать команду, то он ответит кодом PACKETRECIEVEERR. Если основной и контрольный шаблоны функции не совпали, то считыватель не сможет сформировать модель и ответит кодом ENROLLMISMATCH.

Чтобы сохранить сформированную модель в память считывателя необходимо передать ему команду STORE и адрес области памяти считывателя, в который необходимо записать модель. Если команда была выполнена успешно, то считыватель ответит кодом ОК. Если переданного адреса не существует, то считыватель ответит кодом BADLOCATION. Если модель невозможно записать в память считывателя, то он ответит кодом FLASHERR. Если считыватель не смог распознать команду, то он ответит кодом PACKETRECIEVEERR.

Чтобы выгрузить существующую модель из памяти считывателя в буфер для последующей передачи необходимо передать ему команду LOAD и адрес области памяти считывателя, из которой необходимо произвести чтение. Если выгрузка данных прошла успешно, то считыватель ответит кодом ОК. Если переданного адреса не существует, то считыватель ответит кодом BADLOCATION. Если считыватель не смог распознать команду, то он ответит кодом PACKETRECIEVEERR.

Чтобы инициировать передачу модели из считывателя в модуль необходимо передать команду UPLOAD. После успешной передачи всех 256-ти байт модели считыватель передаст код ОК. Если считыватель не смог распознать команду, то он ответит кодом PACKETRECIEVEERR.

Чтобы удалить модель отпечатка пальца из памяти считывателя необходимо передать команду DELETE и адрес области памяти считывателя, из которого необходимо удалить данные. Если удаление прошло успешно, то считыватель ответит кодом ОК. Если данная область памяти не найдена, то считыватель ответит кодом BADLOCATION. Если считыватель не смог распознать команду, то он ответит кодом PACKETRECIEVEERR.

Чтобы полностью очистить память считывателя необходимо передать команду EMPTY. Если удаление прошло успешно, то считыватель ответит кодом ОК. Если считыватель не смог распознать команду, то он ответит кодом PACKETRECIEVEERR.

Чтобы сравнить модель считанного отпечатка пальца со списком сохранённых моделей отпечатков пальцев необходимо передать команду HISPEEDSEARCH. Если совпадение найдено, то считыватель ответит кодом ОК; если нет, то считыватель ответит кодом NOTFOUND.

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

Если модуль находится в режиме записи ключей, то необходимо передать команды для формирования шаблона функции и модели отпечатка пальца, а затем команду на сохранение модели отпечатка пальца в память.

Если модуль находится в режиме контроля доступа, то необходимо передать команды для формирования шаблона функции и модели отпечатка пальца, а затем команду сравнения модели считанного отпечатка пальца со списком сохранённых моделей отпечатков пальцев. Если от считывателя получен код ОК, то необходимо произвести процедуру пропуска (выдать сигнал открытия запорного механизма, произвести задержку открытия и выдать сигнал закрытия запорного механизма). Алгоритм работы модуля со считывателем отпечатка пальца представлен на рисунке 37.

Рисунок 37. Алгоритм работы со считывателем отпечатка пальца

Разработка программы переключения режимов работы модуля.

В рамках данной работы нет цели разработать систему контроля и управления доступом. На данном этапе разработанный модуль идентификации должен принимать команду на переключение режимов работы. Полное описание возможных команд будет представлено в пункте 14.2.5.

Для отправки команды переключения режимов потребовалось разработать программу, способную переключить режим работы модуля с заданным пользователем адресом. Для разработки программы переключения режимов работы модуля была выбрана среда разработки Qt Creator.

Логическая структура программы.

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

Для ввода адреса модуля, которому необходимо изменить режим работы в программу необходимо добавить окно.

Логическая структура программного комплекса модуля идентификации показана на рисунке.

Рисунок 38. Логическая структура программы

9. Реализация программного комплекса

Программа для ATmega 2560 должна выполнять следующие функции:

принимать команды смены режима работы от приложения на компьютере;

сравнивать принятый в команде адрес модуля со своим;

отправлять сигнал подтверждения о получении команды, если принятый адрес совпадает с адресом модуля.

Программа переключения режимов работы модуля должна выполнять следующие функции:

отображать интерфейс для взаимодействия между пользователем и компьютером;

посылать команду модулю, в соответствии с указанным пользователем адресом модуля и выбранным режимом работы;

принимать сигнал подтверждения от модуля и повторять отправку команды в случае превышения времени ожидания сигнала подтверждения.

Взаимодействие ATmega 2560 с программой переключения режимов работы модуля.

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

Программе переключения необходимо считать введенный пользователем адрес модуля, сформировать команду переключения на нужный режим и отправить ее по последовательному порту. Разработанный алгоритм работы программы переключения:

Открыть последовательный порт компьютера;

считать введенный пользователем номер модуля идентификации, которому посылается команда на переключение режима;

сформировать команду на переключение режима работы в зависимости от выбранного пользователем режима;

передать команду по последовательному порту;

закрыть последовательный порт.

Приём и обработка команды микроконтроллером.

Разряды 0 и 1 порта Е контроллера ATmega2560 могут выполнять альтернативные функции, в том числе, в одном из режимов они являются выходами RX0 и TX0 соответственно. Для включения приёмника и передатчика UART необходимо установить биты 4 и 3 регистра UCSR0B соответственно. Для определения количества значащих битов в посылке необходимо установить биты 1 и 2 регистра UCSR0С. Установка этих битов означает, что в посылке присутствует 8 значащих битов [9].

Для задания скорости передачи данных используется формула, представленная на рисунке [10].

Рисунок 39. Формула расчёта значения регистровой пары UBRR

Для вычисления необходимо вместо fosc подставить тактовую частоту контроллера, вместо BAUD - желаемую скорость передачи в бодах. Значение, вычисленное по данной формуле, необходимо записать в регистровую пару UBRR0H и UBRR0L. В результате вычислений была выбрана скорость передачи 38400 бод, так как, при частоте кварца 16МГц, получится значение UBRR=25,04167, что близко к 25, а значит скорость передачи контроллера будет примерно равна стандартной скорости передачи 38400 бод, что позволит минимизировать коллизии при приёме данных. Данное значение необходимо записать в UBRR0L. После этих настроек контроллер готов к приёму и передаче данных.

Отправка команды на переключение режима.

В начале работы программы необходимо открыть последовательный порт для дальнейшей отправки команды на переключение режима. Для работы с последовательным портом была использована библиотека QserialPort. Функция serial.open открывает последовательный порт, в случае успешного открытия порта в текстовом окне интерфейса программы будет записано Port opened, в противном случае - Port closed. После этого, необходимо выставить требуемую скорость передачи командой serial.setBaudRate. После записи пользователем номера желаемого модуля и нажатия на одну из двух кнопок смены режима программа преобразует полученное от пользователя число в 7-битный бинарный код. Команда переключения режима складывается из 7 битов адреса требуемого модуля идентификации и 8-го старшего бита, обозначающего сам режим, в который необходимо перейти модулю. Значение 8-го бита равное нулю соответствует режиму записи ключей, равное единице соответствует режиму контроля доступа. Для записи полученной команды в последовательный порт используется команда serial.write. Листинг программы представлен в приложении 5.

10. Пользовательский интерфейс программы переключения режимов.

Интерфейс разработанной программы представлен на рисунке 40.

Рисунок 40. Интерфейс программы

Пользователю необходимо выбрать подходящий последовательный порт из выпадающего списка, нажать на кнопку «Начать работу», убедиться, что последовательный порт успешно открыт программой. Затем ввести порядковый номер нужного модуля идентификации (от 0 до 127) в окно ввода и нажать на кнопку желаемого режима.

Описание возможных команд для модуля идентификации.

Системе контроля и управления доступом может потребоваться произведение следующих манипуляций с модулем идентификации: централизованная запись и удаление ключей, получение и сохранение на персональный компьютер записанных в модуль идентификации ключей.

Централизованная запись и удаление ключей подразумевает способность программы связи модуля с системой контроля и управления доступом отправлять новые ключи в модуль для записи или отправлять существующий ключ для удаления его из списка сохранённых модуля.

Получение и сохранение списка записанных в модуль ключей подразумевает то, что в ответ на данную команду модуль передаст в систему все сохранённые в нём ключи для дальнейших манипуляций с ними.

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

Байт адреса содержит в себе 7 бит адреса и старший бит, определяющий режим. В режиме записи ключей возможно добавление и удаление ключей; в режиме контроля доступа возможна передача списка сохранённых ключей в систему. Байт команды имеет структуру, представленную на рисунке 41.

Рисунок 41. Структура байта команды

Список кодов команд:

записать ключ: 00;

удалить ключ: 01;

передать список ключей указанного типа: 10.

Список кодов типов ключей:

MIFARE (4Б): 00;

MIFARE (7Б): 01;

Touch Memory: 10;

Adafruit OFS: 11.

При получении от системы адреса и команды происходит проверка режима работы модуля и чтение команды.

Если в байте команды находится команда записи ключа, а модуль переведён в режим записи ключей, то модуль готовится к приёму соответствующего количества байт нового ключа. После подготовки модуль выдаёт сигнал готовности к приёму ключа (байт содержания FFh). После этого система побайтно передаёт ключ в модуль. По окончании приёма модуль вновь выдаёт сигнал FFh, если ключ был успешно принят и сохранён. Если произошла ошибка передачи или в модуле не хватает памяти для записи нового ключа, то будет выдан сигнал 0Fh.

Если в байте команды находится команда удаления ключа, а модуль переведён в режим записи ключей, то модуль готовится к приёму соответствующего количества байт ключа, который необходимо удалить. После подготовки модуль выдаёт сигнал готовности к приёму ключа на удаление (байт FFh). После этого система побайтно передаёт ключ. Если ключ был успешно принят, то модуль начинает поиск принятого ключа в списке сохранённых. Если ключ был найден и удалён, то модуль выдаёт сигнал FFh. Если ключ не был найден или произошла ошибка передачи, то модуль выдаёт сигнал 0Fh.

Если в байте команды находится команда передачи списка ключей в систему, а модуль находится в режиме контроля доступа, то модуль в ответ передаёт в начале свой адрес, а затем побайтно список ключей того типа, который был указан в команде. Ключи разделяются байтом FFh.

11. Методика проверки разработанного устройства

Для проверки модуля идентификации была разработана методика тестирования. Для проведения полного тестирования работы модуля необходимо провести проверку программы переключения режимов работы модуля и проверку корректности работы каждого считывателя в обоих режимах работы модуля. Для проведения подобного тестирования потребовалось использовать 5 индикаторных светодиодов, состояние которых будет показывать успешность выполнения той или иной функции модуля. Диоды подключаются к порту F контроллера.

Для проверки работы смены режимов необходимо запустить программу для переключения режимов работы модуля, выбрать используемый последовательный порт, ввести адрес тестируемого модуля и нажать на одну из двух кнопок режима, при переключении в режим записи ключей должен загореться диод, подключённый к пину 0 порота F; при переключении в режим контроля доступа должен загореться диод, подключённый к пину 1 порота F.

Проверка корректности работы модуля со считывателями рассмотрена на примере DS1990A. Для проведения проверки необходимо перевести модуль в режим записи новых ключей, затем поднести новый ключ к контактору. При успешном считывании и записи ключа должен загореться диод, подключённый к пину 2 порота F. Далее необходимо перевести модуль в режим контроля доступа и снова поднести тот же ключ. Если ключ был верно считан и найден в списке сохранённых, то должен загореться диод, подключённый к пину 3 порота F. При прикладывании не записанного в память модуля ключа, когда модуль находится в режиме контроля доступа, должен загореться диод, подключённый к пину 4 порота F. Этот диод показывает, что ключ был успешно считан, но не найден в списке сохранённых ключей. Проверка корректности работы модуля с другими считывателями проводилась аналогично.

12. Результаты групповой работы

В силу того, что работа является групповой, далее приводится вклад каждого студента.

Нестеренко И.В.:

- проанализированы существующие не биометрические методы идентификации;

- разработаны технические требования к разрабатываемому модулю;

- разработана структура и алгоритм работы модуля;

- разработана электрическая принципиальная схема модуля.

Скоробогатов А.А.:

- проанализированы существующие биометрические методы идентификации;

- разработана программа для модуля в соответствии с алгоритмом;

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

Составляющие ВКР, выполненные совместно участниками группы:

- проведено тестирование модуля на соответствие требованиям методики и коррекция ПО и схемы по результатам тестирования;

- сделаны выводы по итогам работы.

13. Результаты работы.

В ходе данной выпускной квалификационной работы были достигнуты следующие результаты:

1. Проведен анализ различных методов идентификации.

2. Разработана принципиальная схема модуля идентификации персонала.

3. Разработанная схема и ее отдельные элементы протестированы с помощью программы Proteus.

4. Характеристики разработанной схемы полностью отвечают техническому заданию.

5. Разработано программное обеспечение для модуля идентификации в среде разработки Atmel Studio.

6. Собран макет модуля идентификации на базе отладочного модуля ATmega Xplained Mini.

7. Разработана программа для переключения режимов работы модуля идентификации.

8. Проведены испытания, в соответствии с разработанной методикой.

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

Литература

1. Хронология: как развивалась биометрия [Электронный ресурс]. URL: https://vc.ru/future/32006-hronologiya-kak-razvivalas-biometriya (дата обращения: 20.03.2019)

2. Статья, 16.01.2011, «Краткая история биометрии» TAdvisor [Электронный ресурс]. URL: http://www.tadviser.ru/index.php/Статья:Краткая_история_биометрии (дата обращения 20.03.2019)

3. «Биометрическая идентификация» [Электронный ресурс]. URL: http://www.techportal.ru/glossary/biometricheskaya_identifikaciya.html

4. Статья, 03.04.2010, «История RFID технологий -как всё начиналось» [Электронный ресурс]. URL:https://www.idexpert.ru/reviews/935/ (дата обращения 20.03.2019)

5. Статья, 11.03.2008, «iButton: описание протокола, электронный замок на ключах-таблетках» [Электронный ресурс]. URL: http://microsin.ru/content/view/508/44 (дата обращения 20.03.2019)

6. Статья, 17.03.2013, «Таймер/счетчик T1 (16 бит)» [Электронный ресурс]. URL: http://avrprog.blogspot.com/2013/03/t1-16.html (дата обращения 1.04.2019)

7. Статья, 30.05.2017, «AVR Урок 42. EXINT или внешние прерывания» [Электронный ресурс]. URL: http://narodstream.ru/avr-urok-42-exint-ili-vneshnie-preryvaniya/(дата обращения 1.04.2019)

8. Product data sheet, 27.04.2016, «MFRC522 Standard performance MIFARE and NTAG frontend» [Электронный ресурс]. URL: https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf (дата обращения 15.04.2019)

9. Статья, 9.01.17, «AVR Урок 24. Знакомство с шиной SPI» [Электронный ресурс] URL: http://narodstream.ru/avr-urok-24-znakomstvo-s-shinoj-spi/

10. Статья, 8.12.2016, «AVR Урок 14. USART. Связь МК с ПК. Часть 2» [Электронный ресурс] URL: http://narodstream.ru/avr-urok-14-usart-svyaz-mk-s-pk-chast-2/

11. Статья, 8.12.2016, «AVR Урок 14. USART. Связь МК с ПК. Часть 1» [Электронный ресурс] URL: http://narodstream.ru/avr-urok-14-usart-svyaz-mk-s-pk-chast-1/

12. Product data sheet, 2008, «DS1990A Serial Number iButton» [Электронный ресурс] URL: https://datasheets.maximintegrated.com/en/ds/DS1990A.pdf

Приложение 1

Рисунок 42

Приложение 2

Рисунок 43

Приложение 3

Приложение 4

Рисунок 44

Рисунок 45

Рисунок 46

Рисунок 47

Рисунок 48

Приложение 5

Рисунок 49

Приложение 6

Рисунок 50

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.