SPI - Szeregowy interfejs peryferyjny

Wszystko o obrazie tytułu SPI

SPI oznacza Serial Peripheral Interface (Szeregowy Interfejs Peryferyjny). Dzięki SPI można błyskawicznie wymieniać dane między dwoma urządzeniami. Do tego potrzebne są tylko cztery przewody.

Charakterystyka SPI

Szeregowy interfejs peryferyjny jest synchronicznym interfejsem komunikacyjnym przeznaczonym do komunikacji na krótkich dystansach. Synchroniczny oznacza, że dane są przesyłane w postaci bloków lub ramek, a oba urządzenia są synchronizowane za pomocą zegara. Jest to interfejs szeregowy, więc urządzenia wysyłają po jednym bicie na raz (w przeciwieństwie do komunikacji równoległej). Jedno z urządzeń jest urządzeniem "Master" i dyktuje cykl zegara. Drugie urządzenie jest urządzeniem podrzędnym (Slave). Zazwyczaj komunikacja odbywa się w trybie pełnego dupleksu. Dlatego oba urządzenia mogą przesyłać dane nawet w tym samym czasie.

Charakterystyka SPI
Charakterystyka SPI

Okablowanie

Do połączenia potrzebne są tylko cztery przewody, więc konfiguracja jest bardzo prosta.

Okablowanie SPI
Okablowanie SPI

Do połączenia SPI potrzebne są cztery piny: Serial Clock (SCL lub SCLK), Master Output Slave Input (MOSI), Master Input Slave Output (MISO) oraz pin Chip Select lub Slave Select (CS lub SS).

Podłącz odpowiednie piny w urządzeniach Master i Slave.

Jedno urządzenie Master może połączyć się z wieloma urządzeniami Slave, o ile ma wystarczającą liczbę pinów wyboru chipa. Urządzenie Master kontroluje, które urządzenie Slave otrzymuje dane, ustawiając odpowiedni pin wyboru chipa na LOW lub HIGH.

Raspberry Pi 4 ma 7 interfejsów SPI. Jeśli chcesz dowiedzieć się, jak uzyskać dostęp do interfejsów SPI od 1 do 6, zostaw komentarz poniżej.

Przyjrzyjmy się Magistrala SPI 0.

Rozkład pinów Raspberry Pi
Rozkład pinów Raspberry Pi

Jak widać w układ pinów Powyżej pin 23 jest pinem SCLK w Raspberry Pi. MISO to pin 21, a MOSI to pin 19. Magistrala 0 ma dwa piny CS, którymi są piny 24 i 26.

Jeśli chcesz korzystać z magistrali 0, najpierw ją włącz.

Wykonaj polecenie

sudo raspi-config

Następnie wybierz 3 Opcje interfejsu i kliknij przycisk I4 SPI. Na koniec naciśnij przycisk Tak oraz Ok aby włączyć SPI.

Tryby SPI

Istnieją cztery różne tryby transmisji danych, o których należy wiedzieć. Różnią się one polaryzacją i fazą zegara.

Tryby SPI
Tryby SPI

W obu przypadkach może to być 0 lub 1. Jeśli chodzi o polaryzację zegara, to 0 oznacza stan spoczynku NISKI, a 1 - stan spoczynku WYSOKI. Faza zegara 0 oznacza, że dane są wysyłane przy opadającym zboczu, natomiast 1 oznacza, że dane są wysyłane przy rosnącym zboczu. Przed wysłaniem danych urządzenia Master i Slave muszą uzgodnić jeden z czterech trybów.

Zalety

Największe zalety to duża szybkość, łatwa konfiguracja sprzętu i oprogramowania oraz niskie zapotrzebowanie na energię.

Zalety
Zalety

Wady

Szeregowy interfejs peryferyjny nie jest rozszerzalny pod względem zakresu i liczby urządzeń, ponieważ urządzenie nadrzędne (Master) wymaga pinu wyboru układu dla każdego urządzenia. Nie ma też sprzętowego potwierdzenia dla urządzeń podrzędnych, więc urządzenie nadrzędne nie wie, czy dane zostały przez kogoś odebrane.

Wady
Wady

Przypadki użycia

Większość urządzeń SPI to urządzenia wbudowane lub Wyświetlacze LCD. Ogólnie rzecz biorąc, jest ona stosowana w miejscach, gdzie wymagana jest niewielka liczba urządzeń i szybka transmisja danych.

Dzięki temu Raspberry Pi może współpracować z różnego rodzaju czujniki i urządzenia. Prawie wszystkie urządzenia zgodne z Raspberry Pi używają interfejsu SPI lub I2C.

Karty SD również używają interfejsu SPI, więc nawet czytnik kart SD w Raspberry Pi ma kilka wewnętrznych pinów MISO i MOSI.

Komentarzy: 5

  1. [...] Jeśli chciałbyś dowiedzieć się więcej o SPI, przy okazji, mamy artykuł na ten temat tutaj. [...]

  2. [...] Naveen wyjaśnia, że połączenie między Nano a wyświetlaczem TFT opiera się na szeregowym interfejsie peryferyjnym (SPI). Tymczasem joystick i przyciski są połączone za pośrednictwem magistrali Inter-Integrated Circuit Bus [...]

  3. [...] SPI - szeregowy interfejs peryferyjny [...]

  4. Ben październik 25, 2023 o 3:56 am

    [...] Anzahl der Geräte nicht wirklich erweiterbar, da der Master für jedes Gerät einen Chip Select Pin [...]

    Istnieje możliwość ponownego podłączenia urządzeń do łańcucha Daisy-Chain. W takim przypadku dostępny jest tylko jeden Chip-Select. Allerdings muss man wissen wie viele Geräte in welcher Reihenfolge am SPI angeschlossen sind, so dass man die Datenpakete als Stream passend zusammenbauen kann. Die Geräte werden so verschaltet, dass MISO des vorherigen Geräts am MOSI des nachfolgenden Geräts angeschlossen wird. MISO ostatniego urządzenia zostanie następnie połączone z urządzeniem głównym. Dzięki tej technice dane ze wszystkich urządzeń są przekazywane na bieżąco, gdy po wysłaniu strumieni danych układ Chip-Select zostanie aktywnie skonfigurowany.

Pozostaw komentarz