Разработка схем программно-аппаратного комплекса биометрического датчика с интерфейсом локальной сети, страница 5

При работе с реальным датчиком, а не его программной эмуляцией, описание системы команд будет уточнено. На данный момент можно лишь ссылаться на драйвер к контроллерам от Texas Instruments.

Детальное описание алгоритмов работы с датчиком  приведено в разделе 7.

6. Разработка алгоритма управления SPI и управления датчиком FPC1010

SPI (Serial Peripheral Interface) - это полнодуплексный скоростной синхронный трёхпроводной интерфейс. Для его работы используются 3 провода(SCK-синхронизация, MISO-прием данных в режиме «master» и передача в режиме «slave», MOSI-прием данных в режиме «slave» и передача в режиме «master»). Также имеется вывод SS (Slave Select), который непосредственно управляет процессом передачи.

Временная диаграмма работы SPI представлена на рисунке 6.3, схемы поясняющие работу SPI приведены на рисунках 6.1 и 6.2

В схеме SPI основным устройством является 8-разрядный регистр сдвига(SPIDR). Данные помещаемые в этот регистр выходят на передачу в процессе сдвига через MOSI, одновременно с этим происходит прием данных через MISO в режиме «master». Этот процесс представлен на упрощенной схеме работы SPI (рис 6.2).

ВАЖНОЕ ЗАМЕЧАНИЕ!

Для приема данных в режиме «master» от устройства в режиме «slave» необходимо в регистр сдвига master’а поместить любой байт информации. Именно во время передачи этого байта будет осуществлен прием данных.

Детальное описание алгоритмов работы SPI приведено в разделе 7.

7. Описание алгоритмов разработанных функций.

7.1. Разработанные функции

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

- Общие – функции используемые обоими контроллерами

- Для Master’а – функции используемые только контроллером, находящемся в режиме «Master»(этот контроллер является блоком управления датчика FPC1010)

- Для Slave’а - функции используемые только контроллером, находящемся в режиме «Slave»(этот контроллер является эмулятором датчика FPC1010)

Функции сведены в таблице 7.1

 


Таблица 7.1  Функции разработанные для курсового проекта

Функция

Описание функции

Общие:

SPI_disable() 

функция переводящая SPI в неактивное состояние

SPI_transmit_empty()

функция ожидания разрешения передачи через SPI

SPI_recieve_wait()

функция ожидания окончания приема байта данных через SPI

Для Master’а

Init_our_udp()

инициализация подготовки к отправке UDP-пакета

send_our_udp(buf, n)

функция отправки UDP-пакета через интерфейс локальной сети

buf – массив данных подлежащий передаче

n – размер массива данных подлежащего передаче

Init_SPI_master()

инициализация SPI в режим «Master»

recieve_packet()

функция приема Ethernet-кадра

tx_data_SPI(tx)

функция передачи байта данных через SPI

 tx – байт данных, подлежащий передаче через SPI

Uint8 rx_data_SPI()

функция возвращающая принятый байт данных через SPI

Init_FPC1010()

функция инициализации датчика FPC1010

Read_image_row()

функция считывания строки изображения отпечатка пальца

Read_image_and_transmit()

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

Для Slave’а

Init_SPI_slave()

инициализация SPI в режим «Slave»

FPC1010()

функция эмуляции датчика FPC1010

initialization_FPC1010()

функция эмулирующая процесс инициализации по принуждению от «Master»-устройства

tx_element_of_image(x)

функция эмулирующая передачу байта изображения от датчика