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