Spisu treści:

PODSTAWY PROTOKOŁU KOMUNIKACJI SPI: 13 kroków
PODSTAWY PROTOKOŁU KOMUNIKACJI SPI: 13 kroków

Wideo: PODSTAWY PROTOKOŁU KOMUNIKACJI SPI: 13 kroków

Wideo: PODSTAWY PROTOKOŁU KOMUNIKACJI SPI: 13 kroków
Wideo: Komunikacja po SPI, odczyt i zapis różnych pamięci 2024, Listopad
Anonim
PODSTAWY PROTOKOŁU KOMUNIKACJI SPI
PODSTAWY PROTOKOŁU KOMUNIKACJI SPI

Kiedy podłączasz mikrokontroler do czujnika, wyświetlacza lub innego modułu, czy zastanawiasz się kiedyś, jak te dwa urządzenia komunikują się ze sobą? Co dokładnie mówią? Jak są w stanie się zrozumieć?

Komunikacja między urządzeniami elektronicznymi przypomina komunikację między ludźmi. Obie strony muszą mówić tym samym językiem. W elektronice języki te nazywane są protokołami komunikacyjnymi. Na szczęście dla nas jest tylko kilka protokołów komunikacyjnych, które musimy znać, budując większość projektów elektroniki DIY. W tej serii artykułów omówimy podstawy trzech najpopularniejszych protokołów: Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C) oraz Universal Asynchronous Receiver/Transmitter (UART). Najpierw zaczniemy od kilku podstawowych pojęć dotyczących komunikacji elektronicznej, a następnie wyjaśnimy szczegółowo, jak działa SPI. W następnym artykule omówimy komunikację opartą na UART, a w trzecim zagłębimy się w I2C. SPI, I2C i UART są nieco wolniejsze niż protokoły takie jak USB, Ethernet, Bluetooth i WiFi, ale są o wiele prostsze i zużywają mniej zasobów sprzętowych i systemowych. SPI, I2C i UART są idealne do komunikacji między mikrokontrolerami oraz między mikrokontrolerami a czujnikami, gdzie nie ma potrzeby przesyłania dużych ilości danych o dużej prędkości.

Krok 1: SZEREGOWY VS. KOMUNIKACJA RÓWNOLEGŁA

SZEREGOWY VS. KOMUNIKACJA RÓWNOLEGŁA
SZEREGOWY VS. KOMUNIKACJA RÓWNOLEGŁA

Urządzenia elektroniczne komunikują się ze sobą, przesyłając bity danych przez przewody fizycznie połączone między urządzeniami. Bit jest jak litera w słowie, z wyjątkiem 26 liter (w alfabecie angielskim), bit jest binarny i może być tylko 1 lub 0. Bity są przesyłane z jednego urządzenia do drugiego przez szybkie zmiany napięcia. W systemie pracującym przy napięciu 5 V bit 0 jest przesyłany jako krótki impuls 0 V, a 1 bit jest przesyłany krótkim impulsem 5 V.

Bity danych mogą być przesyłane równolegle lub szeregowo. W komunikacji równoległej bity danych są przesyłane jednocześnie, każdy osobnym przewodem. Poniższy schemat przedstawia równoległą transmisję litery „C” w formacie binarnym (01000011):

Krok 2:

W komunikacji szeregowej bity są przesyłane jeden po drugim jednym przewodem. Poniższy schemat przedstawia transmisję szeregową litery „C” w postaci binarnej (01000011):

Krok 3:

Obraz
Obraz

Krok 4: WPROWADZENIE DO KOMUNIKACJI SPI

WPROWADZENIE DO KOMUNIKACJI SPI
WPROWADZENIE DO KOMUNIKACJI SPI

SPI to powszechny protokół komunikacyjny używany przez wiele różnych urządzeń. Na przykład moduły kart SD, moduły czytników kart RFID i bezprzewodowy nadajnik/odbiornik 2,4 GHz wykorzystują SPI do komunikacji z mikrokontrolerami.

Unikalną zaletą SPI jest to, że dane mogą być przesyłane bez przerwy. Dowolna liczba bitów może być wysyłana lub odbierana w ciągłym strumieniu. W przypadku I2C i UART dane przesyłane są w pakietach, ograniczonych do określonej liczby bitów. Warunki startu i stopu definiują początek i koniec każdego pakietu, więc dane są przerywane podczas transmisji. Urządzenia komunikujące się przez SPI są w relacji master-slave. Urządzenie nadrzędne jest urządzeniem sterującym (zwykle mikrokontrolerem), podczas gdy urządzenie podrzędne (zwykle czujnik, wyświetlacz lub układ pamięci) przyjmuje instrukcje od urządzenia nadrzędnego. Najprostsza konfiguracja SPI to pojedynczy system nadrzędny, jeden podrzędny, ale jeden nadrzędny może sterować więcej niż jednym podrzędnym (więcej na ten temat poniżej).

Krok 5:

Obraz
Obraz

Krok 6:

MOSI (Master Output/Slave Input) - Linia dla urządzenia nadrzędnego do wysyłania danych do urządzenia podrzędnego.

MISO (wejście główne/wyjście podrzędne) - Linia dla urządzenia podrzędnego do wysyłania danych do urządzenia nadrzędnego.

SCLK (Clock) – Linia sygnału zegara.

SS/CS (Slave Select/Chip Select) – Linia dla urządzenia nadrzędnego, aby wybrać, do którego urządzenia podrzędnego wysłać dane

Krok 7:

Obraz
Obraz

*W praktyce liczba urządzeń podrzędnych jest ograniczona pojemnością obciążenia systemu, co zmniejsza zdolność urządzenia nadrzędnego do dokładnego przełączania między poziomami napięcia.

Krok 8: JAK DZIAŁA SPI

ZEGAR

Sygnał zegarowy synchronizuje wyprowadzanie bitów danych z urządzenia nadrzędnego do próbkowania bitów przez urządzenie podrzędne. W każdym cyklu zegarowym przesyłany jest jeden bit danych, więc szybkość przesyłania danych zależy od częstotliwości sygnału zegara. Komunikacja SPI jest zawsze inicjowana przez mastera, ponieważ master konfiguruje i generuje sygnał zegara.

Każdy protokół komunikacyjny, w którym urządzenia współdzielą sygnał zegarowy, jest znany jako synchroniczny. SPI to synchroniczny protokół komunikacyjny. Istnieją również metody asynchroniczne, które nie wykorzystują sygnału zegarowego. Na przykład w komunikacji UART obie strony są ustawione na wstępnie skonfigurowaną szybkość transmisji, która dyktuje prędkość i czas transmisji danych.

Sygnał zegarowy w SPI można modyfikować za pomocą właściwości polaryzacji zegara i fazy zegara. Te dwie właściwości współpracują ze sobą, aby określić, kiedy bity są wyprowadzane i kiedy są próbkowane. Polaryzacja zegara może być ustawiona przez mastera, aby umożliwić wysyłanie bitów i próbkowanie na zboczu narastającym lub opadającym cyklu zegara. Fazę zegara można ustawić tak, aby wyjście i próbkowanie miały miejsce na pierwszym lub drugim zboczu cyklu zegara, niezależnie od tego, czy rośnie, czy opada.

WYBIERZ SLAVE

Master może wybrać, z którym slave'em chce rozmawiać, ustawiając linię CS/SS slave'a na niski poziom napięcia. W stanie bezczynności, bez transmisji, linia wyboru urządzenia podrzędnego jest utrzymywana na wysokim poziomie napięcia. W urządzeniu nadrzędnym może być dostępnych wiele styków CS/SS, co umożliwia równoległe podłączenie wielu urządzeń podrzędnych. Jeśli obecny jest tylko jeden pin CS/SS, wiele urządzeń podrzędnych może być podłączonych do urządzenia nadrzędnego poprzez łączenie łańcuchowe.

WIELU NIEWOLNIKÓW SPI

można skonfigurować do pracy z jednym urządzeniem nadrzędnym i jednym urządzeniem podrzędnym, a także z wieloma urządzeniami podrzędnymi kontrolowanymi przez jednego urządzenia nadrzędnego. Istnieją dwa sposoby podłączenia wielu urządzeń podrzędnych do urządzenia nadrzędnego. Jeśli master ma wiele pinów wyboru urządzenia podrzędnego, urządzenia podrzędne można podłączyć równolegle w następujący sposób:

Krok 9:

Obraz
Obraz

Krok 10:

MOSI I MISO

Urządzenie nadrzędne przesyła dane do urządzenia podrzędnego bit po bicie, szeregowo przez linię MOSI. Slave odbiera dane wysłane z mastera na pinie MOSI. Dane wysyłane z urządzenia nadrzędnego do urządzenia podrzędnego są zwykle wysyłane najpierw z najbardziej znaczącym bitem. Urządzenie podrzędne może również wysyłać dane z powrotem do urządzenia nadrzędnego przez linię MISO w trybie szeregowym. Dane przesyłane z urządzenia podrzędnego z powrotem do urządzenia nadrzędnego są zwykle wysyłane najpierw z najmniej znaczącym bitem. ETAPY TRANSMISJI DANYCH SPI 1. Master wyprowadza sygnał zegarowy:

Krok 11:

Obraz
Obraz

Jeśli dostępny jest tylko jeden pin wyboru urządzenia podrzędnego, urządzenia podrzędne można łączyć łańcuchowo w następujący sposób:

Krok 12:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

MOSI I MISO

Urządzenie nadrzędne przesyła dane do urządzenia podrzędnego bit po bicie, szeregowo przez linię MOSI. Slave odbiera dane wysłane z mastera na pinie MOSI. Dane wysyłane z urządzenia nadrzędnego do urządzenia podrzędnego są zwykle wysyłane najpierw z najbardziej znaczącym bitem.

Urządzenie podrzędne może również wysyłać dane z powrotem do urządzenia nadrzędnego przez linię MISO w trybie szeregowym. Dane przesyłane z urządzenia podrzędnego z powrotem do urządzenia nadrzędnego są zwykle wysyłane najpierw z najmniej znaczącym bitem.

KROKI TRANSMISJI DANYCH SPI

*Uwaga Obrazy są wymienione na liście obój, który można łatwo odróżnić

1. Master wyprowadza sygnał zegarowy:

2. Master przełącza pin SS/CS na stan niskiego napięcia, który aktywuje slave:

3. Urządzenie nadrzędne wysyła dane po jednym bicie do urządzenia podrzędnego wzdłuż linii MOSI. Niewolnik odczytuje bity w miarę ich odbierania:

4. Jeśli potrzebna jest odpowiedź, urządzenie podrzędne przesyła dane po jednym bicie do urządzenia nadrzędnego wzdłuż linii MISO. Mistrz odczytuje bity w miarę ich odbierania:

Krok 13: ZALETY I WADY SPI

Korzystanie z SPI ma pewne zalety i wady, a jeśli masz wybór między różnymi protokołami komunikacyjnymi, powinieneś wiedzieć, kiedy użyć SPI zgodnie z wymaganiami twojego projektu:

ZALETY

Brak bitów startu i stopu, dzięki czemu dane mogą być przesyłane strumieniowo w sposób ciągły bez przerw Brak skomplikowanego systemu adresowania typu slave, takiego jak I2C Wyższa szybkość przesyłania danych niż I2C (prawie dwa razy szybciej) Oddzielne linie MISO i MOSI, dzięki czemu dane mogą być wysyłane i odbierane jednocześnie czas

NIEDOGODNOŚCI

Wykorzystuje cztery przewody (I2C i UART używają dwóch) Brak potwierdzenia, że dane zostały pomyślnie odebrane (I2C ma to) Brak formy sprawdzania błędów, takiej jak bit parzystości w UART Tylko pozwala na pojedynczy master Mam nadzieję, że ten artykuł dał ci lepsze zrozumienie SPI. Przejdź do drugiej części tej serii, aby dowiedzieć się o komunikacji opartej na UART, lub do części trzeciej, w której omawiamy protokół I2C.

Jeśli masz jakieś pytania, możesz je zadać w sekcji komentarzy, jesteśmy tutaj, aby pomóc. I koniecznie podążaj

Pozdrawiam: M. Junaid

Zalecana: