Serial Peripheral Interface

Serial Peripheral Interface
SPI single slave.svg

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 мастера на языке Си. Линия «chip select» (выбор микросхемы) должна быть активирована (в большинстве случаев это означает-притянута к низкому уровню), перед тем, как начнётся обмен данными, и деактивирована после окончания обмена. Большинство устройств требуют несколько сеансов передачи с активной линией chip select. Эта функция может быть вызвана несколько раз, пока линия активна.

unsigned char SPIBitBang8BitsMode0(unsigned char byte)
{       
    unsigned char bit;
 
    for (bit = 0; bit < 8; bit++) {
        /* записать MOSI по спаду предыдущего тактового импульса */
        if (byte & 0x80)
            SETMOSI();
        else
            CLRMOSI();
        byte <<= 1;
 
        /* ждём половину тактового периода перед тем как сгенерировать фронт */
        SPIDELAY(SPISPEED/2);
        SETCLK();
 
        /* ждём половину тактового периода перед тем как сгенерировать спад */
        SPIDELAY(SPISPEED/2);
 
        /* читаем MISO on trailing edge */
        byte |= READMISO();
        CLRCLK();
    }
 
    return byte;
}

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Serial Peripheral Interface" в других словарях:

  • Serial Peripheral Interface — Das Serial Peripheral Interface (kurz SPI) ist ein von Motorola entwickeltes Bus System mit einem sehr lockeren Standard für einen synchronen seriellen Datenbus, mit dem digitale Schaltungen nach dem Master Slave Prinzip miteinander verbunden… …   Deutsch Wikipedia

  • Serial Peripheral Interface — Bus SPI: un maestro y un esclavo …   Wikipedia Español

  • Serial Peripheral Interface — Liaison SPI: un maître et un esclave Une liaison SPI (pour Serial Peripheral Interface) est un bus de donnée série synchrone baptisé ainsi par Motorola, et qui opère en Full Duplex. Les circuits communiquent selon un schéma maître esclaves, où le …   Wikipédia en Français

  • Serial Peripheral Interface Bus — Serial Peripheral Interface Liaison SPI: un maître et un esclave Une liaison SPI (pour Serial Peripheral Interface) est un bus de donnée série synchrone baptisé ainsi par Motorola, et qui opère en Full Duplex. Les circuits communiquent selon un… …   Wikipédia en Français

  • Serial Peripheral Interface Bus — Protocol Analyzers SPI Protocol Analyzers are tools which sample an SPI bus and decode the electrical signals to provide a higher level view of the data been transmitted on the bus. Some SPI protocol analyzers are built into oscilloscopes while… …   Wikipedia

  • Interface De Communication Série — Pour les articles homonymes, voir SPI. Une interface de communication série (serial communications interface SCI) est un organe permettant des échanges de données série (un bit à la fois) entre un microprocesseur et un périphérique. Synchronous… …   Wikipédia en Français

  • Interface de communication serie — Interface de communication série Pour les articles homonymes, voir SPI. Une interface de communication série (serial communications interface SCI) est un organe permettant des échanges de données série (un bit à la fois) entre un microprocesseur… …   Wikipédia en Français

  • Serial — Serial, anything in the form of a series, can refer to several things:Art and literature*Serial, a format by which a story is told in installments **Serial (film), films released in chapters for viewing in cinemas, particularly in the 1930s and… …   Wikipedia

  • Interface de communication série — Pour les articles homonymes, voir SPI. Une interface de communication série (serial communications interface SCI) est un organe permettant des échanges de données série (un bit à la fois) entre un microprocesseur et un périphérique. Synchronous… …   Wikipédia en Français

  • Advanced Technology Attachment Peripheral Interface — Integrated Drive Electronics …   Wikipédia en Français


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»