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

Данную проблему достаточно просто решить, если с датчика считывать информацию построчно и отправлять ее в локальную сеть. Следовательно, нужно решить задачу: считать одну строку изображения и передать в локальную сеть. Этот процесс необходимо проделать 200 раз (по количеству строк)

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

1. При высоком уровне на выводе SS произвести аппаратный сброс длительностью около 1 мкс. Для этого на вывод Reset подается логический ноль;

2. При низком уровне на выводе SS (далее любая посылка на датчик производится при SS=0) произвести программный сброс, путем подачи на вход датчика команды “Reset” (8 тактов);

3. Последовательно послать команды “SENSX” и “0x01” на вход датчика, для установления точки начала координат по оси «Х»;

4. Последовательно послать команды “SENSY” и “0x01” на вход датчика, для установления точки начала координат по оси «Y»;

5. Последовательно послать команды “COMMAND” и “0x08” на вход датчика, для разрешения передачи данных с датчика;

6. Послать команду “READ_SHIFT_X” на вход датчика, для разрешения сдвига на соседний элемент по оси «Х» при считывании предыдущего;

7. В течении 40 тактов посылать «0х00» на вход датчика и считывать информацию(пустые байты) с его выхода.

8. В течении 152*8 тактов посылать «0х00» на вход датчика и считывать информацию об изображении строки отпечатка пальца;

9. В течении 16 тактов посылать «0х00» на вход датчика и считывать информацию(пустые байты) с его выхода.

10.  Послать команду “READ_SHIFT_Y” на вход датчика, для сдвига на следующую строку;

11.  Повторить шаги 6-10 200 раз.

Временные диаграммы процесса инициализации датчика и считывания изображения отпечатка приведены на рисунках 7.1 – 7.3.


Подпись: Рисунок 7.1 – Временная диаграмма инициализации датчика(часть 1)

 


Подпись: Рисунок 7.2 – Временная диаграмма инициализации датчика(часть 2)


Подпись: Рисунок 7.3 – Временная диаграмма считывания изображения отпечатка пальца


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

Для построчной отправки изображения отпечатка пальца в локальную сеть необходимо каждый раз после 10 шага алгоритма считывания (п. 7.1) вызывать подпрограмму упаковки и отправки данных в порт Ethernet.

Перед началом процесса считывания и отправки изображения необходимо проинициализировать порт Ethernet. Следует отметить, что передача данных в сети Ethernet осуществляется не по IP-адресам сетевых устройств, а по MAC-адресам, которые уже «зашиты» в сетевые адаптеры.

Для нормальной работы необходимо поставить в соответствие каждому IP-адресу MAC-адрес. Этот процесс осуществляется с помощью ARP(Address Resolution Protocol)-запросов и ответов. Происходит это следующим образом:

1. Перед отправкой данных по заданному IP-адресу сначала посылается ARP-запрос содержащий MAC-адрес источника, IP-адрес источника, IP-адрес получателя, а также широковещательный MAC-адрес (для всех устройств сети).

2. Данный запрос получают все устройства, находящиеся в сети. НО отвечает на этот запрос лишь то устройство, которое имеет заданный IP-адрес получателя.

3. Устройство с соответствующим IP-адресом формирует ARP-ответ, содержащий его MAC-адрес, и отправляет ему инициатору запроса.

4. Таким образом, каждое сетевое устройство формирует свою ARP-таблицу, которая содержит список соответствия IP- и MAC-адресов.

5. Дальнейшая работа осуществляется по MAC-адресам. Важно, что ARP-таблицы обновляются, если обнаруживается неизвестный ранее получатель, либо если таблица устарела.

В дипломном проекте работа с сетью осуществляется с помощью  OpenTCP TCP/IP стека для MC9S12NE64. Он содержит все необходимые библиотеки функций работы с TCP/IP стеком написанные на языке Си++.

Из OpenTCP TCP/IP использованы следующие библиотеки:

- arp.c – библиотека работы с ARP

- tcp.c – библиотека работы с TCP

- ip.c – библиотека работы с IP

- udp.c – библиотека работы с UDP

- icmp.c  – библиотека работы с ICMP