You are on page 1of 9

WOJSKOWA AKADEMIA TECHNICZNA

WYDZIAŁ MECHATRONIKI I LOTNICWA

Lotnicze systemy cyfrowe i sieci komputerowe

5. Przykład realizacji i obsługi interfejsu I2C i SPI

inż. Mateusz TARCZYŃSKI

Warszawa 2019
WOJSKOWA AKADEMIA TECHNICZNA
WYDZIAŁ MECHATRONIKI I LOTNICWA

I2C (ang. Inter-Integrated Circuit ; pol. pośredniczący pomiędzy układami


scalonymi), nazywaną również TWI (ang. Two Wire Interface) jest magistralą,
której głównym zadaniem jest nawiązanie komunikacji pomiędzy urządzeniami
podrzędnymi, zwanymi dalej slave (niewolnikami) z urządzeniami głównymi
master, zarządzającymi tymi to układami. Do komunikacji potrzebuje jedynie
dwóch sygnałów SDA (Serial Data) i SCL (Serial Clock), odpowiednio sygnał
przesyłający dane, oraz sygnał zegarowy.

Magistrala tego typu może obsługiwać do 1008 urządzeń typu slave (przy 10-
bitowym adresowaniu) albo 128 (przy 7-bitowym adresowaniu). Dodatkowo nic
nie stoi na przeszkodzie, aby do takiej magistrali podłączyć inne urządzenia typu
master, w związku z czym np. 2 urządzenia typu master mogą odbierać dane od
paru urządzeń typu slave.

Warszawa 2019
WOJSKOWA AKADEMIA TECHNICZNA
WYDZIAŁ MECHATRONIKI I LOTNICWA

Zasada działania I2C jest niemalże banalna. Na obrazku poniżej przedstawiono w


sposób „blokowy” jak odbywa się transmisja:

Na samym początku wysyłany jest bit startu, który inicjuje transmisje.


Charakteryzuje się on tym, że linia SDA przechodzi z ze stanu wysokiego na niski,
kiedy linia SCL jest dalej w stanie wysokim. Następnie wysyłanych jest 7 bitów
zawierających adres urządzenia (A6 to MSB, a A0 to LSB) oraz jeden bit R/W,
który informuje czy urządzenie typu master chce dokonać odczytu (1 logiczna)
czy zapisu (0 logiczne).

Warszawa 2019
WOJSKOWA AKADEMIA TECHNICZNA
WYDZIAŁ MECHATRONIKI I LOTNICWA

W tym momencie jest podobna sytuacja, do tej z początku transmisji- czekamy


na bit 9. Ack, czy urządzenie poprawnie rozpoznało adres. Jeżeli podaliśmy zły
adres to jest ta sama sytuacja co wcześniej, a jeżeli podaliśmy dobry adres to w
następnych 8 bitach (D7-D0), urządzenie slave wysyła do mastera dane, a
następnie cały proces jest zamykany bitem Ack, oraz bitem stopu,
charakteryzującym się tym, że linia SDA przechodzi ze stanu niskiego w wysoki,
kiedy linia SCL, jest w stanie wysokim, czyli tak na prawdę jest to sytuacja
odwrotna do bitu startu.

Warszawa 2019
WOJSKOWA AKADEMIA TECHNICZNA
WYDZIAŁ MECHATRONIKI I LOTNICWA

I²C – szeregowa, dwukierunkowa magistrala służąca do przesyłania danych w


urządzeniach elektronicznych. Została opracowana przez przedsiębiorstwo
Philips na początku lat 80. Znana również pod akronimem IIC, którego angielskie
rozwinięcie Inter-Integrated Circuit oznacza „pośrednik pomiędzy układami
scalonymi”. Standard I²C określa dwie najniższe warstwy modelu odniesienia
OSI: warstwę fizyczną i warstwę łącza danych.

Warszawa 2019
WOJSKOWA AKADEMIA TECHNICZNA
WYDZIAŁ MECHATRONIKI I LOTNICWA

I²C stosuje się w przypadkach, gdy prostota i niski koszt są ważniejsze od


wysokich prędkości transmisji. Znalazło ono zastosowanie m.in. w:

• Odczytywaniu zegarów czasu rzeczywistego (RTC) w komputerach i


urządzeniach wbudowanych
• Komunikacji z prostymi i wolnymi przetwornikami cyfrowo-analogowymi i
analogowo-cyfrowymi
• Odczycie czujników diagnostycznych w komputerze (prędkość obrotu
wentylatorów, temperatury procesora i ważniejszych układów na płycie
głównej)
• Robotyce (czujniki przyspieszenia i odległości)
• Komunikacja z czujnikami i elementami wykonawczymi w małych systemach
wbudowanych
• Dostępie do pamięci NVRAM komputera
• Sterowanie diodami LED w urządzeniach przenośnych (np. komórkach)
• Komunikacji pomiędzy układami w telewizorach i innym sprzęcie RTV (jest to
pierwotne miejsce zastosowania magistrali I²C)
Warszawa 2019
WOJSKOWA AKADEMIA TECHNICZNA
WYDZIAŁ MECHATRONIKI I LOTNICWA

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.
Komunikacja poprzez SPI odbywa się synchronicznie za pomocą 3 linii:
• MOSI (ang. Master Output Slave Input) – dane dla układu peryferyjnego,
• MISO (ang. Master Input Slave Output) – dane z układu peryferyjnego,
• 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.
Warszawa 2019
WOJSKOWA AKADEMIA TECHNICZNA
WYDZIAŁ MECHATRONIKI I LOTNICWA

Warszawa 2019
WOJSKOWA AKADEMIA TECHNICZNA
WYDZIAŁ MECHATRONIKI I LOTNICWA

Warszawa 2019

You might also like