Zrozumienie protokołu komunikacyjnego SPI w technologii Embedded

Wypróbuj Nasz Instrument Do Eliminowania Problemów





Komunikacja odgrywa istotną rolę w projektowaniu systemów wbudowanych. Bez przechodzenia do protokołów rozbudowa urządzeń peryferyjnych jest bardzo złożona i wymaga dużej mocy. Plik Wbudowany system zasadniczo wykorzystuje komunikację szeregową do komunikacji z urządzeniami peryferyjnymi.
Istnieje wiele protokołów komunikacji szeregowej, takich jak komunikacja UART, CAN, USB, I2C i SPI. Numer seryjny protokoły komunikacyjne cechy obejmują dużą prędkość i małą utratę danych. Ułatwia projektowanie na poziomie systemu i zapewnia niezawodny transfer danych.

Szeregowa komunikacja danych

Informacje zakodowane elektrycznie nazywane są danymi szeregowymi, które są przesyłane bit po bicie z jednego urządzenia do drugiego za pośrednictwem zestawu protokołów. W systemie wbudowanym dane z czujników sterujących i elementów wykonawczych są odbierane lub przesyłane do urządzeń sterujących, takich jak mikrokontrolery, w celu dalszej analizy i przetwarzania danych. Ponieważ mikrokontrolery pracują z danymi cyfrowymi, informacje z czujniki analogowe , siłowniki i inne urządzenia peryferyjne są konwertowane na jedno bajtowe (8-bitowe) słowo binarne przed przesłaniem ich do mikrokontrolera.




Szeregowa komunikacja danych

Szeregowa komunikacja danych

Te dane szeregowe są przesyłane w odniesieniu do określonego impulsu zegarowego. Szybkość transmisji danych nazywana jest szybkością transmisji. Liczba bitów danych, które można przesłać w ciągu sekundy, nazywana jest szybkością transmisji. Załóżmy, że dane mają 12 bajtów, a następnie każdy bajt jest konwertowany na 8 bitów, tak aby całkowity rozmiar transmisji danych wynosił około 96 bitów / s danych (12 bajtów * 8 bitów na bajt). Jeśli dane mogą być przesyłane raz na sekundę, szybkości transmisji wynoszą około 96 bitów / s lub 96 bodów. Ekran wyświetlacza odświeża wartość danych co sekundę.



Podstawy szeregowego interfejsu peryferyjnego

Komunikacja SPI oznacza szeregowy interfejs peryferyjny protokół komunikacyjny , który został opracowany przez Motorolę w 1972 roku. Interfejs SPI jest dostępny w popularnych kontrolerach komunikacyjnych, takich jak PIC, AVR i Kontroler ARM itp. Posiada synchroniczne łącze danych komunikacji szeregowej, które działa w trybie pełnego dupleksu, co oznacza, że ​​sygnały danych są przenoszone jednocześnie w obu kierunkach.

Protokół SPI składa się z czterech przewodów, takich jak MISO, MOSI, CLK, SS używanych do komunikacji master / slave. Master to mikrokontroler, a slave to inne urządzenia peryferyjne, takie jak czujniki, Modem GSM i modem GPS itp. Wiele urządzeń podrzędnych jest podłączonych do urządzenia nadrzędnego za pośrednictwem magistrali szeregowej SPI. Protokół SPI nie obsługuje komunikacji typu Multi-Master i jest używany na niewielkich odległościach w obrębie płytki drukowanej.

Podstawy szeregowego interfejsu peryferyjnego

Podstawy szeregowego interfejsu peryferyjnego

Linie SPI

MISO (Master in Slave out) : Linia MISO jest skonfigurowana jako wejście w urządzeniu nadrzędnym i jako wyjście w urządzeniu podrzędnym.


MOSI (Master out Slave in) : MOSI to linia skonfigurowana jako wyjście w urządzeniu nadrzędnym i jako wejście w urządzeniu podrzędnym, gdzie jest używana do synchronizacji przepływu danych.

SCK (zegar szeregowy) : Ten sygnał jest zawsze sterowany przez Master w celu synchronicznego przesyłania danych między Master a Slave. Służy do synchronizacji przepływu danych zarówno do, jak i na zewnątrz przez linie MOSI i MISO.

SS (Slave Select) i CS (Chip Select) : Ten sygnał jest sterowany przez urządzenie główne w celu wybrania poszczególnych slaveów / urządzeń peryferyjnych. Jest to linia wejściowa używana do wybierania urządzeń podrzędnych.

Komunikacja Master Slave z magistralą szeregową SPI

Implementacja interfejsu SPI z pojedynczym nadrzędnym i podrzędnym

Tutaj komunikacja jest zawsze inicjowana przez mastera. Urządzenie główne najpierw konfiguruje częstotliwość zegara, która jest mniejsza lub równa maksymalnej częstotliwości obsługiwanej przez urządzenie podrzędne. Master następnie wybiera żądany slave do komunikacji, przeciągając linię wyboru chipa (SS) tego konkretnego urządzenia slave, aby przejść do stanu niskiego i włączyć. Master generuje informacje na linii MOSI, która przenosi dane z mastera do slave.

Komunikacja Master Slave

Komunikacja Master Slave

Implementacje Single Master i Multiple Slave

Jest to konfiguracja z wieloma urządzeniami podrzędnymi z jednym urządzeniem głównym i wieloma urządzeniami podrzędnymi przez magistralę szeregową SPI. Wiele slaveów jest podłączonych równolegle do urządzenia master za pomocą magistrali szeregowej SPI. Tutaj wszystkie linie zegara i linie danych są połączone ze sobą, ale pin wyboru chipa każdego urządzenia slave musi być podłączony do oddzielnego pin wyboru slave w urządzeniu maser.

Pojedynczy Mistrz i wielu niewolników

Pojedynczy Mistrz i wielu niewolników

W tym procesie sterowanie każdym urządzeniem podrzędnym odbywa się za pomocą linii wyboru chipa (SS). Styk wyboru chipa obniża się, aby aktywować urządzenie podrzędne, i przechodzi w stan wysoki, aby wyłączyć urządzenie podrzędne.

Transmisja danych jest zorganizowana przy użyciu rejestrów przesuwnych zarówno w urządzeniu głównym, jak i podrzędnym z danym rozmiarem słowa odpowiednio około 8-bitów i 16-bitów. Oba urządzenia są połączone w formie pierścienia, dzięki czemu wartość rejestru przesuwnego maser jest przesyłana przez linię MOSI, a następnie urządzenie podrzędne przesuwa dane w swoim rejestrze przesuwnym. Dane są zwykle przesuwane najpierw z MSB i przesuwaniem nowego LSB do tego samego rejestru.

Transfer danych między Master i Slave

Transfer danych między Master i Slave

Znaczenie polaryzacji i fazy zegara

Generalnie transmisja i odbiór danych odbywa się w odniesieniu do impulsów zegara na zboczach narastających i opadających. Zaawansowane mikrokontrolery mają dwie częstotliwości: częstotliwość wewnętrzną i częstotliwość zewnętrzną. Urządzenia peryferyjne SPI można dodać, udostępniając linie MISO, MOSI i SCLK. Urządzenia peryferyjne są różnych typów lub prędkości, takie jak ADC, DAC itp. Musimy więc zmienić ustawienia SPCR między transferami do różnych urządzeń peryferyjnych.

Rejestr SPCR

Rejestr SPCR

Magistrala SPI działa w jednym z 4 różnych trybów transferu z polaryzacją zegara (CPOL) i fazą zegara (CPHA), które definiują format zegara, który ma być używany. Biegunowość zegara i częstotliwość taktowania fazy zależą od urządzenia peryferyjnego, które próbujesz komunikować się z urządzeniem nadrzędnym.
CPHA = 0, CPOL = 0: Pierwszy bit zaczyna się jako niższy sygnał - dane są próbkowane na zboczu narastającym, a dane zmieniają się na zboczu opadającym.

CPHA = 0, CPOL = 1: Pierwszy bit zaczyna się od niższego zegara - dane są próbkowane na zboczu opadającym, a dane zmieniają się na zboczu narastającym.

CPHA = 1, CPOL = 0: Pierwszy bit zaczyna się od wyższego zegara - dane są próbkowane na zboczu opadającym, a dane zmieniają się na zboczu narastającym.

CPHA = 1, CPOL = 1: Pierwszy bit zaczyna się od wyższego zegara - dane są próbkowane na zboczu narastającym, a dane zmieniają się na zboczu opadającym.

Czasy magistrali SPI

Czasy magistrali SPI

Protokół komunikacyjny SPI

Wiele mikrokontrolerów ma wbudowane protokoły SPI, które obsługują wszystkie wysyłanie i odbieranie danych. Każda operacja w trybie danych (R / W) jest kontrolowana przez rejestry sterujące i statusowe protokołu SPI. Tutaj możesz obserwować interfejs EEPROM do mikrokontrolera PIC16f877a poprzez protokół SPI.

Tutaj 25LC104 EEROM to pamięć 131072 bajtów, w której mikrokontroler przesyła dwa bajty danych do Pamięć EEROM poprzez magistralę szeregową SPI. Program dla tego interfejsu jest podany poniżej.

Komunikacja Master-Slave poprzez magistralę szeregową SPI

Komunikacja Master-Slave poprzez magistralę szeregową SPI

#zawierać
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Void initialize EEROM ()
Void main ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Zalety protokołu SPI

  • Jest to komunikacja w trybie pełnego dupleksu.
  • Jest to szybka magistrala danych 10 MHz.
  • Nie jest ograniczony do 8 bitów podczas przesyłania
  • Interfejs sprzętowy jest prosty dzięki SPI.
  • Slave używa zegara głównego i nie potrzebuje cennych oscylatorów.

Chodzi o komunikację SPI i jej współpracujący z mikrokontrolerem . Jesteśmy wdzięczni za zainteresowanie i zainteresowanie tym artykułem i dlatego oczekujemy Twojego punktu widzenia na ten artykuł. Co więcej, o jakiekolwiek kodowanie interfejsów i pomoc, możesz nas zapytać, komentując poniżej.

Kredyty fotograficzne: