SPI интерфейс

Опубликовано 18.09.2010 Ведущий Виталий Дудкин

SPI - популярный интерфейс для последовательного обмена данными между микросхемами. Интерфейс SPI, наряду с I2C, относится к самым широко-используемым интерфейсам для соединения микросхем.
Шина SPI организована по принципу 'ведущий-подчиненный (master-slave)'.В качестве ведущего шины обычно выступает микроконтроллер, но им также может быть программируемая логика, DSP-контроллер или специализированная ИС. Подключенные к ведущему шины внешние устройства образуют подчиненных шины. В их роли выступают различного рода микросхемы, в т.ч. запоминающие устройства (EEPROM, Flash-память, SRAM), часы реального времени (RTC), АЦП/ЦАП, цифровые потенциометры, специализированные контроллеры и др.
Главным составным блоком интерфейса SPI является обычный сдвиговый регистр, сигналы синхронизации и ввода/вывода битового потока которого и образуют интерфейсные сигналы. Таким образом, протокол SPI правильнее назвать не протоколом передачи данных, а протоколом обмена данными между двумя сдвиговыми регистрами, каждый из которых одновременно выполняет и функцию приемника, и функцию передатчика. Непременным условием передачи данных по шине SPI является генерация сигнала синхронизации шины. Этот сигнал имеет право генерировать только ведущий шины и от этого сигнала полностью зависит работа подчиненного шины.
В SPI используются четыре цифровых сигнала:
- MOSI (Master Out Slave In)- выход ведущего, вход ведомого. Служит для передачи данных от ведущего устройства ведомому.
- MISO (Master In Slave Out)- вход ведущего, выход ведомого. Служит для передачи данных от ведомого устройства ведущему.
- SCLK (Serial Clock)- последовательный тактовый сигнал. Служит для передачи тактового сигнала для ведомых устройств.
- CS или SS (Chip Select, Slave Select)- выбор микросхемы, выбор ведомого.