SPI, synchroniczny protokół komunikacji szeregowej pierwotnie opracowany przez firmę Motorola (obecnie Freescale), stał się wszechobecny w systemach wbudowanych służących do łączenia mikrokontrolerów z urządzeniami peryferyjnymi, takimi jak czujniki, moduły pamięci i wyświetlacze. Jego popularność wynika z elastyczności, dużej szybkości i prostej implementacji sprzętowej.
Standardowy protokół SPI wykorzystuje cztery główne linie sygnałowe:
SPI działa w konfiguracji master-slave, gdzie master inicjuje całą komunikację. Chociaż teoretycznie obsługuje komunikację w trybie pełnego dupleksu, większość aplikacji LCD/OLED korzysta z trybu półdupleksu. Działanie protokołu przypominające rejestr przesuwny umożliwia jednoczesny dwukierunkowy transfer danych, chociaż praktyczne implementacje często wymagają sekwencyjnych faz poleceń i danych.
Kontrolery wyświetlaczy powszechnie wdrażają dwa warianty SPI: „3-przewodowy SPI” i „4-przewodowy SPI”, wyróżniające się przede wszystkim podejściem do odróżniania poleceń od danych.
Tradycyjna konfiguracja 4-przewodowa obejmuje:
Architektura ta odzwierciedla kontrolery interfejsu równoległego, które utrzymują oddzielne rejestry poleceń i danych, wykorzystując linię C/D (czasami oznaczoną jako A0) do przełączania między nimi.
Usprawniona wersja 3-przewodowa eliminuje dedykowaną linię C/D, zamiast tego koduje te informacje w strumieniu danych:
Tutaj dodatkowy bit (zwykle MSB) wskazuje, czy transmisja zawiera polecenia (1), czy dane (0), skutecznie tworząc transmisje 9-bitowe zamiast standardowych transferów 8-bitowych.
Niektóre kontrolery wykorzystują 3-przewodowe kodowanie danych, podczas gdy fizycznie korzystają z czterech przewodów (dodając MISO do operacji odczytu). Bardziej złożone warianty mogą zawierać dziesiąty bit do kodowania funkcji odczytu/zapisu, tworząc dwukierunkową komunikację na pojedynczej linii danych.
Chociaż 3-przewodowy SPI ogranicza liczbę połączeń fizycznych, jego niestandardowa długość transmisji może skomplikować sprzętowe implementacje SPI. Nowoczesne procesory z elastycznymi kontrolerami SPI mogą obsługiwać transfery 9-bitowe, ale wiele tradycyjnych systemów uważa, że 4-przewodowy SPI jest prostszy do wdrożenia.
Architektura przypominająca rejestr przesuwny SPI sprawia, że jest on szczególnie odpowiedni dla urządzeń połączonych łańcuchowo:
Takie podejście upraszcza systemy z wieloma urządzeniami, ale wprowadza opóźnienia proporcjonalne do długości łańcucha i wymaga, aby wszystkie urządzenia obsługiwały łączenie łańcuchowe.
Opanowanie implementacji SPI jest niezbędne dla programistów systemów wbudowanych pracujących z technologiami wyświetlania. Wybór pomiędzy 3-przewodowym a 4-przewodowym SPI zależy od konkretnych możliwości sprzętowych i wymagań kontrolera. Podczas gdy połączenie 3-przewodowe zapewnia ekonomiczne połączenie, 4-przewodowe zachowuje kompatybilność ze standardowym sprzętem SPI. Zrozumienie tych niuansów zapewnia optymalną integrację wyświetlania w projektach osadzonych.