Технологии


САПР

Аналоговые устройства и системы

Ключевые производители устройств и компонентов

Операционные системы

Стандарты и протоколы беспроводной связи

Стандарты и протоколы проводной связи

Цифровые устройства и системы

Языки программирования

SPI

SPI  (последовательный периферийный интерфейс) — последовательный синхронный стандарт передачи данных в режиме полного дуплекса, предназначенный для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным интерфейсом.
В отличие от стандартного последовательного порта, SPI является синхронным интерфейсом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая (ведомая) периферия синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участия в передаче по SPI.
В SPI используются четыре цифровых сигнала:
•    MOSI — выход ведущего, вход ведомого. Служит для передачи данных от ведущего устройства ведомому.
•    MISO — вход ведущего, выход ведомого. Служит для передачи данных от ведомого устройства ведущему.
•    SCLK — последовательный тактовый сигнал. Служит для передачи тактового сигнала для ведомых устройств.
•    CS или SS — выбор микросхемы, выбор ведомого.
Передача осуществляется пакетами. Длина пакета как правило составляет 1 байт, при этом известны реализации SPI с иной длиной пакета, например, 4 бита. Ведущее устройство инициирует цикл связи установкой низкого уровня на выводе выбора подчиненного устройства (SS) того устройства, с которой необходимо установить соединение. При высоком уровне сигнала SS:
•    схемотехника ведомого устройства находится в активном состоянии;
•    вывод MISO переводится в режим "выход";
•    тактовый сигнал SCK от ведущего устройства воспринимается ведомым и вызывает считывание на входе MOSI значений передаваемых от ведущего битов и сдвиг регистра ведомого устройства.
Подлежащие передаче данные ведущее и ведомое устройства помещают в сдвиговые регистры. После этого, ведущее устройство начинает генерировать импульсы синхронизации на линии SCK, что приводит к взаимному обмену данными. Передача данных осуществляется бит за битом от ведущего пол линии MOSI и от ведомого по линии MISO. Передача осуществляется как правило начиная со старших битов, но некоторые производители допускают изменение порядка передачи битов программными методами. После передачи каждого пакета данных, ведущее устройство, в целях синхронизации ведомого устройства, может перевести линию SS в высокое состояние.