Co to jest szeregowy interfejs peryferyjny?

Szeregowy interfejs peryferyjny (SPI) jest tanim, czteroprzewodowym, pełnodupleksowym, synchronicznym interfejsem strumienia danych komunikacji szeregowej, który działa w relacji master-slave. Transfer danych w urządzeniach szeregowych odbywa się po jednym bicie, dzięki czemu SPI jest interfejsem o niskiej prędkości. Jest powszechnie używany jako łącze między układami scalonymi a wbudowanymi wolnymi urządzeniami peryferyjnymi, do których dostęp jest sporadyczny. Konkuruje z urządzeniami do równoległej transmisji danych, ale wraz ze wzrostem wydajności SPI, przewaga tego pierwszego maleje. SPI jest czasami określany jako „mikroprzewod”, chociaż jest to uważane za podzbiór protokołu SPI.

Przesyłanie danych przez szeregowy interfejs peryferyjny odbywa się za pośrednictwem protokołu pełnego dupleksu. Dane są przesyłane i odbierane w obu kierunkach jednocześnie. Aplikacje korzystające z SPI zyskują w tym trybie dużo wydajności; jedna z takich aplikacji znajduje się pomiędzy koderem-dekoderem (kodekiem) a cyfrowym procesorem sygnałowym (DSP). Inne zastosowania obejmują czujniki temperatury i ciśnienia, a także pamięć flash.

Zawsze, gdy komunikują się dwa szeregowe urządzenia interfejsu peryferyjnego, jedno urządzenie jest określane jako „master”, podczas gdy drugie urządzenie jest „slave”. Urządzenie nadrzędne inicjuje całą komunikację, przesyłając sygnały do ​​urządzenia podrzędnego. Szeregowa magistrala interfejsu urządzeń peryferyjnych może łączyć wiele urządzeń podrzędnych do jednego urządzenia nadrzędnego.

Szeregowe urządzenia peryferyjne wykorzystują do wysyłania danych trzy rejestry — rejestr kontrolny (SPCR), rejestr stanu (SPSR) i rejestr danych (SPDR) — wraz z czterema różnymi sygnałami. Pierwszy sygnał nazywany jest zegarem szeregowym (SCLK), który generuje tylko urządzenie nadrzędne. Następnie następuje wejście master-out slave-in (MOSI), master-in slave-out (MISO) i wybór urządzenia podrzędnego (SSn), gdzie „n” to liczba urządzeń podrzędnych, do których podłączone jest urządzenie nadrzędne.

W typowej konfiguracji z jednym urządzeniem podrzędnym inżynier chcący korzystać z szeregowego interfejsu peryferyjnego podłączyłby SCLK do wejścia urządzenia podrzędnego. MOSI następnie przenosi dane z urządzenia nadrzędnego do urządzenia podrzędnego, podczas gdy MISO przesyła dane z urządzenia podrzędnego do urządzenia nadrzędnego. Aby określić, które urządzenie jest nadrzędne, a które podrzędne, pierwsze łączy Master SSn z Slave SSn i generuje dyskretny sygnał wejścia/wyjścia ogólnego przeznaczenia do drugiego.

Aby podłączyć wiele urządzeń podrzędnych do jednego urządzenia nadrzędnego w szeregowym interfejsie urządzeń peryferyjnych, oddzielne sygnały SSn są przesyłane z urządzenia nadrzędnego do oddzielnych urządzeń podrzędnych. Na przykład SS1 jest podłączony do Slave 1, SS2 jest podłączony do Slave 2 i tak dalej. Podobnie jak w przypadku konfiguracji z jednym urządzeniem podrzędnym, SCLK jest połączony z urządzenia nadrzędnego do wielu urządzeń podrzędnych. Podłączone są MOSI od urządzenia nadrzędnego do urządzenia podrzędnego, a także MISO od urządzenia podrzędnego do urządzenia nadrzędnego.