Разработка биометрического комплекса на основе считывания отпечатка пальца, страница 8

При создании алгоритма передачи необходимо учесть, что особенности датчика FPC1010 не позволяют использовать стандартный автоматический сигнал SS, поэтому в данной работе процесс разрешения приема/передачи ведомым устройством будет осуществляться с помощью вывода PT7 (107).

Алгоритм передачи данных с ведущего устройства будет выглядеть так:

1.  Подготовка данных к передаче;

2.  Подача низкого уровня на вход SS ведомого устройства;

3.  Ожидание флага готовности к передаче;

4.  Запись данных в регистр приема/передачи SPIDR;

5.  Автоматическое включение тактирования по линии синхронизации SCK и передача через вывод MOSI.

Алгоритм приема ведущим устройством несколько отличен:

1.  Подача низкого уровня на вход SS ведомого устройства;

2.  Ожидание флага готовности к передаче;

3.  Запись в регистр SPIDR ведущего произвольного байта, который вытеснит данные из регистра SPIDR ведомого;

4.  Ожидание флага окончания приема данных;

5.  Считывание полученных данных из SPIDR.

Рисунок 5.2 – Схема соединения двух блоков SPI(ведущий-ведомый)

Рисунок 5.3 – Схема, поясняющая принцип работы SPI

Рисунок 5.4  - Временные диаграммы работы SPI

6  Cистема команд управления датчиком FPC1010

Датчик FPC1010 является активным электронным устройством и содержит в себе встроенный микроконтроллер со своим набором команд. Команды необходимы для гибкого управления процессом считывания изображения отпечатка. Набор команд сведен в таблицу 6.1.

Таблица 6.1 – Описание системы команд датчика FPC1010

HEX представление команды

Binary

представление команды

Название команды

Описание команды

0x45

0100 0101

READ_SHIFT_X

Сдвиг по оси «Х» после каждого считанного элемента (автоматический сдвиг)

0x49

0100 1001

READ_SHIFT_Y

Сдвиг по оси «Y»

0x4D

0100 1101

READ_SHIFT_X_Y

Сдвиг по диагонали

0x5D

0101 1101

STATUS

Статусный регистр (состояние датчика)

0x61

0110 0001

SENS_X

Команда позволяет задать начальную точку считывания по оси «Х»

0x69

0110 1001

SENS_Y

Команда позволяет задать начальную точку считывания по оси «Y»

0x79

0111 1001

COMMAND

Команда управления состоянием датчика

0x7D

0111 1101

RESET

Программный сброс всех регистров датчика

При чтении регистра STATUS  3 младшие бита STS2=1, STS1=1, STS0=1 сообщают о готовности датчика к работе, при других значениях этих битов необходимо сделать аппаратный сброс датчика.

Для разрешения передачи данных с датчика, в регистр COMMAND необходимо записать 0x08.

7 Разработка алгоритма передачи изображения с датчика FPC1010 в локальную сеть Ethernet

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

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

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

7.1 Разработка алгоритма считывания изображения с датчика

Размер изображения отпечатка пальца, которое может считать датчик, является постоянной величиной - 152 х 200 элементов.

Нетрудно сосчитать, что общий размер изображения равен 30400 байт, при условии, что один элемент описывается 8 битами. Значит необходимо передать через порт SPI 30400 байт, это можно сделать за один раз, заполнив массив 152 на 200 строк информацией об изображении. Здесь существует две проблемы:

1.  В микроконтроллере недостаточно оперативной памяти под такой объем данных;

2.  Поле данных UDP-кадра ограничено 1500 байтами.