Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_kt.docx
Скачиваний:
203
Добавлен:
09.02.2015
Размер:
667.14 Кб
Скачать

21. Передача данных по интерфейсу spi.

SPI (англ.Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI) — последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компаниейMotorolaдля обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называютчетырёхпроводным (англ.four-wire) интерфейсом.

В отличие от стандартного последовательного порта (англ.standard serial port), SPI является синхронным интерфейсом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая (ведомая) периферия синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (англ.chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участия в передаче по SPI.

В SPI используются четыре цифровых сигнала:

-MOSI или SI — выход ведущего, вход ведомого (англ.Master Out Slave In). Служит для передачи данных от ведущего устройства ведомому.

-MISO или SO — вход ведущего, выход ведомого (англ.Master In Slave Out). Служит для передачи данных от ведомого устройства ведущему.

-SCLK или SCK — последовательный тактовый сигнал (англ.Serial Clock). Служит для передачи тактового сигнала для ведомых устройств.

-CS или SS — выбор микросхемы, выбор ведомого (англ.Chip Select, Slave Select).

Главным составным блоком интерфейса SPI является обычный сдвиговый регистр, сигналы синхронизации и ввода/вывода битового потока которого и образуют интерфейсные сигналы. Таким образом, протокол SPI правильнее назвать не протоколом передачи данных, а протоколом обмена данными между двумя сдвиговыми регистрами, каждый из которых одновременно выполняет и функцию приемника, и функцию передатчика. Непременным условием передачи данных по шине SPI является генерация сигнала синхронизации шины. Этот сигнал имеет право генерировать только ведущий шины и от этого сигнала полностью зависит работа подчиненного шины.

Регистр SPDR - это как раз и есть регистр сдвига. Если устройство сконфигурировано как master,  то запись байта в регистр SPDR вызовет начало передачи - то есть тактовый генератор выдаст восемь тактов, за которые регистры сдвига master  и slave  устройств обменяются своим содержимым, после чего тактовые импульсы прекращаются, а в обоих устройствах устанавливаются флаги SPIF

В течение передачи по интерфейсу SPI данные одновременно передаются и принимаются по двум линиям синхронно с синхроимпульсами сдвига. Полярность и фаза последовательных синхроимпульсов сдвига - это основной компонент, определяющий формат передачи данных по интерфейсу SPI. Полярность последовательных синхроимпульсов соответствует свободному логическому состоянию линии синхронизации и поэтому также определяет, какой фронт синхроимпульса является активным ребром, бит выбора полярности синхроимпульсов (CKPOL; SPICF).

Фаза последовательных синхроимпульсов определяет, какой фронт используется для выборки данных последовательным регистром сдвига. Бит выбора фазы синхроимпульсов (CKPHA; SPICF.1) Совместно биты CKPOL и CKPHA позволяют определить четыре возможных формата передачи данных по SPI интерфейсу. Эти форматы приведены на рисунке.

Форматы передачи данных по SPI интерфейсу (определяется битами CKPOL и CKPHA)

Длительность SPI посылки. Бит CHR позволяет выбирать длительность посылки 8 или 16 бит.

Скорости обмена данными по SPI интерфейсу. При работе в режиме ведомого, синхроимпульсы формирует внешнее ведущее устройство SPI интерфейса. Для правильной работы в режиме ведомого, частота синхроимпульсов не должна превышать частоту системных синхроимпульсов, деленную на 8.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]