При создании алгоритма передачи необходимо учесть, что особенности датчика 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 байтами.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.