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

Блок сдвига. Содержит регистр данных SPIDR и схему управления направлением сдвига. В зависимости от значения бита LSBFE можно задать желаемое направление сдвига данных путем несложной коммутации (см. рис. 5.1).

Блок прерываний. Содержит регистр SPISR (SPI Status Register) (таблица 5.3) и схему контроля за статусными битами этого регистра. Необходимо заметить, что из блока SPI выходит всего одна линия прерывания. Это значит, что при сработке прерывания необходимо проверить статусные биты, после чего решить, какую подпрограмму обработки выполнить.

Таблица 5.3  - Назначение битов регистра SPISR

SPI Status Register

Номер бита

7

6

5

4

3

2

1

0

Название

SPIF

-

SPTEF

MODF

-

-

-

-

Значение по умолчанию

0

-

1

0

-

-

-

-

SPIF – SPI Interrupt Flag – флаг указывает на окончание приема данных в SPIDR.

SPIF=0 – данные приняты в SPIDR;

SPIF=1 – данные еще не приняты.

SPTEF – SPI Transmit Enable Flag – флаг указывает можно ли поместить данные в регистр передачи/приема SPIDR.

SPTEF=0 – поместить данные в SPIDR нельзя, так как он не пуст;

SPTEF=1 – регистр SPIDR готов для помещения в него данных.

MODF – Mode Fault Flag – флаг устанавливается в 1, если SPI сконфигурирован как ведущий и вывод SS изменил свое состояние под влиянием извне.

Блок управления портом приема/передачи. Блок представляет собой устройство связующее внешние выводы MOSI, MISO, SCK, SS с внутренней логикой системы SPI.

Инициализация системы SPI сводится к установке регистров. В таблице 5.4 показана конфигурация регистров SPI для работы MC9S12NE64 c датчиком FPC1010.

Таблица 5.4 – Конфигурация регистров управления SPI

SPI Control Register 1

Номер бита

7

6

5

4

3

2

1

0

Название

SPIE

SPE

SPTIE

MSTR

CPOL

CPHA

SSOE

LSBFE

Значение

0

1

0

1

0

0

1

0

HEX- представление значений.

0x52

SPI Control Register 2

Номер бита

7

6

5

4

3

2

1

0

Название

-

-

-

MODFEN

BIDIROE

-

SPISWAI

SPCO

Значение

0

0

0

1

0

0

0

0

HEX- представление значений.

0x10

SPI Baud Rate Register

Номер бита

7

6

5

4

3

2

1

0

Название

-

SPPR2

SPPR1

SPPR0

-

SPR2

SPR1

SPR0

Значение

0

0

0

0

0

0

1

0

HEX- представление значений.

0x02

5.2 Алгоритм работы SPI

Принцип работы системы SPI достаточно прост. Предполагается, что существует ведущее и ведомое устройство. Ведущее устройство обеспечивает синхронизацию процесса передачи данных и управляет ведомым устройством посредство вывода SS, активируя его при SS=0. На рисунке 5.2 показано, каким образом соединяются два устройства с помощью интерфейса SPI. Основой системы SPI является регистр сдвига SPIDR, в который помещаются данные для последующей отправки. Этот же регистр позволяет  принимать данные. Принцип передачи заключается в кольцевой схеме соединения регистров сдвига. Например, данные выходящие из SPIDR ведущего устройства, вытесняют данные с SPIDR ведомого, в это же время вытесненные данные принимаются ведущим. Наглядно это представлено на рисунке 5.3. Временная диаграмма процесса передачи показана на рисунке 5.4.