I2C - magistrala obwodów zintegrowanych

Wszystko o obrazie tytułowym I2C

Magistrala I2C jest bardzo często używana w systemach wbudowanych. Wyjaśniamy, jak ona działa i jak ją skonfigurować na przykładzie Raspberry Pi.

Charakterystyka I2C

Magistrala Inter-Integrated Circuit Bus to synchroniczna szeregowa magistrala komunikacyjna. Za jej wynalezienie w 1982 roku odpowiedzialna była firma Philips Semiconductors, ale interfejs szybko zyskał popularność.

Charakterystyka I2C
Charakterystyka I2C

Powszechnie używane synonimy to I2C, I2C lub IIC. Interfejs wykorzystuje architekturę Controller-Target i umożliwia kontrolerowi komunikację z maksymalnie 112 urządzeniami za pomocą tylko dwóch przewodów.

Sterownik może dostosować szybkość transmisji do potrzeb konkretnego celu. Dlatego I2C jest kompatybilny z wieloma urządzeniami, takimi jak czujniki, pamięci EEPROM, zegary, sterowniki silników i wiele innych.

Okablowanie

Podłączenie magistrali I2C nie może być prostsze, ponieważ potrzebne są tylko dwa przewody. Podłącz pin zegara szeregowego (SCL) kontrolera do pinów zegara szeregowego urządzeń docelowych i podłącz również ich piny danych szeregowych (SDA). Oprogramowanie I2C zajmie się resztą.

Okablowanie I2C
Okablowanie

Jeśli potrzebujesz dostarczyć zasilanie do urządzenia I2C, możesz użyć pinów 3V3, 5V i GROUND w Raspberry Pi.

Niektóre urządzenia, takie jak nasze BME688 Breakout Board są wyposażone w złącze I2C, dzięki czemu do ich połączenia nie są potrzebne żadne przewody.

Komunikacja I2C

Za pomocą magistrali Inter-Intergrated Circuit Bus można połączyć 128 urządzeń za pomocą zaledwie dwóch przewodów. Jest to możliwe dzięki pomysłowej zasadzie komunikacji.

Przewody (SDA i SCL) nigdy nie są aktywnie pobudzane do stanu wysokiego. Jeśli urządzenie chce wysłać logiczną jedynkę, pozostawia przewód w stanie spoczynku. Aby wysłać logiczne zero, podciąga przewód do masy.

Kontroler inicjuje komunikację. Każde urządzenie w sieci może pełnić rolę kontrolera i celu.

Na poniższej ilustracji przedstawiono poszczególne bity.

Komunikacja I2C
Komunikacja I2C

Aby rozpocząć komunikację, kontroler wysyła bit Start, po którym następuje adres I2C urządzenia docelowego i żądany tryb pracy (R - odczyt lub W - zapis).

W komunikacji I2C urządzenie docelowe musi zwracać bit ACK co 8 bitów (po każdym bajcie). Ponieważ przestrzeń adresowa jest zwykle 7-bitowa, istnieje 128 (od 0 do 127) adresów. 16 z nich jest zarezerwowanych. Pozostaje więc 112 możliwych adresów dla urządzeń.

Adres celu i tryb pracy to jeden bajt, więc cel musi odesłać bit ACK. Następnie kontroler wysyła (8-bitowy) adres rejestru, który cel ponownie potwierdza. Od tego momentu komunikacja w trybie odczytu i zapisu różni się.

W przypadku zapisu kontroler wysyła dane w 8-bitowych blokach. Cel potwierdza każdy blok. Gdy kontroler zakończy zapis, wysyła bit Stop.

Przy odczycie kontroler ponownie wysyła bit Start, a następnie adres docelowy. Cel potwierdza i zaczyna wysyłać dane w 8-bitowych blokach. Tym razem kontroler musi potwierdzić każdy bajt. Aby przerwać odczyt, kontroler wysyła bit NACK, a na koniec bit Stop.

Zalety, wady i zastosowania

Zalety

Zalety magistrali I2C są dość oczywiste. Do połączenia 128 urządzeń wystarczą dwa przewody i dwa styki. To naprawdę duża moc. Dodatkowo masz do dyspozycji elastyczne prędkości. Konfiguracja sprzętu nie może być prostsza. W przeciwieństwie do SPI kontroler wie, czy urządzenie docelowe poprawnie odebrało dane.

Zalety
Zalety

Wady

Magistrala Inter-Integrate Circuit Bus wymaga więcej miejsca i energii, ponieważ wykorzystuje rezystory podciągające. Jest wolniejsza w porównaniu z SPI. Można napotkać problemy, jeśli dwa urządzenia używają tego samego adresu I2C. Adres jest zapisywany bezpośrednio na urządzeniu. Niektóre urządzenia umożliwiają wybór jednego z dwóch możliwych adresów przez przylutowanie zworki w określonym miejscu na urządzeniu.

Wady
Wady

Aplikacje

Jeśli wyszukasz Czujnik W naszym sklepie można zauważyć, że prawie wszystkie czujniki, które nie są analogowe, używają interfejsu I2C. Jest on bardzo powszechny w urządzeniach wbudowanych. Istnieją takie rzeczy jak pamięć I2C. Często mikrokontrolery używają tej magistrali do komunikacji. Poza tym wiele przetworników cyfrowo-analogowych (Digital Analog Cprzetwornik) i przetworniki analogowo-cyfrowe (Analog Digital Cfalownik) są kompatybilne z interfejsem.

I2C na Raspberry Pi

Nasza strona wideo pokazuje, jak skonfigurować magistralę Inter-Integrated Circuit na Raspberry Pi.

Komentarzy: 6

  1. [...] Ponadto, jeśli chcesz dowiedzieć się więcej o I2C, sprawdź ten artykuł. [...]

  2. [...] Chcesz dowiedzieć się więcej o I2C? Sprawdź nasz artykuł na ten temat tutaj. [...]

  3. [...] I2C - The Inter-Integrated Circuit Bus [...]

  4. [...] Jak wyjaśnia Naveen, połączenie między Nano a wyświetlaczem TFT opiera się na szeregowym interfejsie peryferyjnym (SPI). Tymczasem joystick i przyciski są połączone za pośrednictwem magistrali Inter-Integrated Circuit Bus (I2C). [...]

Pozostaw komentarz