Serial Peripheral Interface

Najprostsze zastosowanie SPI, tylko jedno urządzenie nadrzędne i jedno urządzenie podrzędne

SPI (ang. Serial Peripheral Interface) – szeregowy interfejs urządzeń peryferyjnych. Jeden z najczęściej używanych interfejsów komunikacyjnych pomiędzy systemami mikroprocesorowymi a układami peryferyjnymi takimi jak: przetworniki ADC/DAC, układy RTC, pamięci EEPROM, pamięci flash, karty MMC/SD itp.

Transmisja danych

Komunikacja poprzez SPI odbywa się synchronicznie za pomocą 3 linii:

  1. MOSI (ang. master output slave input) – dane dla układu peryferyjnego,
  2. MISO (ang. master input slave output) – dane z układu peryferyjnego,
  3. SCLK (ang. serial clock) – sygnał zegarowy (taktujący).

Do aktywacji wybranego układu peryferyjnego służy dodatkowo linia SS (ang. Slave Select – wybór układu podrzędnego) lub adresacja układów. W drugim przypadku, w przesyłanej wiadomości zawarty musi być adres urządzenia, które po jego rozpoznaniu przyjmuje pozostałe bajty. Adresowanie układów wykorzystywane jest szczególnie podczas pracy z rozbudowanymi systemami, których poszczególne części można programować niezależnie, także po zamontowaniu na płytce.

Interfejs SPI zbudowany jest na rejestrach przesuwnych, które składają się z przerzutników typu D. Synchronizacja każdego z nich odbywa się za pomocą sygnału zegarowego. Przerzutników jest 8, numerowanych liczbami od 0 do 7. Na wejście przerzutnika nr 0 wprowadzany jest stan logiczny, który uruchamia ramkę danych (ang. data frame)[1].

Każdy przerzutnik przechowuje jeden bit danych. Interfejs SPI MASTER generuje sygnał zerowy za pomocą generatora. Połączone linie MOSI i MISO tworzą zamknięty pierścień, dzięki czemu transfer danych jest ciągły, ale nie stały. Co osiem cykli zegarowych generatora wysyłany jest 1 bajt danych. Wartość rejestru można zmieniać co 8 cykli zegara[1].

Przesyłanie ramki danych przez interfejs SPI nie jest domyślnie nastawione. Może zostać nastawione poprzez wybór, czy wysyłanie ramek rozpocznie się od najstarszego, czy od najmłodszego bitu. Przesuwanie danych w rejestrach można również ustawić dla zbocza opadającego lub narastającego sygnału SCK[1].

Typy interfejsów SPI

QSPI

Interfejs QSPI (Quad SPI) jest rozwinięciem interfejsu SPI. Przeznaczony jest do współpracy z szybkimi pamięciami z interfejsem szeregowym. QSPI może pracować w trzech trybach, różniących się użyciem linii danych[2].

Dual SPI

Interfejs Dual SPI ma podwójny interfejs wejścia/wyjścia. Linie danych MISO i MOSI działają w trybie half-duplex, wysyłając dwa bity na cykl zegara[3].

MicroWire

Microwire jest poprzednikiem SPI opracowanym przez National Semiconductor. Jest to prosty interfejs umożliwiający szeregową komunikację trójprzewodową[4].

Zobacz też

Przypisy

  1. a b c y, SPI communication – How SPI works? [online], 911 Electronic, 11 maja 2020 [dostęp 2020-09-14] (ang.).
  2. STM32 - interfejs QuadSPI [online], ep.com.pl [dostęp 2022-10-10] (pol.).
  3. Single vs. Dual vs. Quad SPI | Differences & Similarities [online], evision-webshop.de [dostęp 2022-10-10] (ang.).
  4. Texas Instruments, AN-452 MICROWIRE Serial Interface [online], 2011.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.