Dzisiaj jest 26 lutego 2025 r.
Chcę dodać własny artykuł
Reklama

I²C

Chcę dodać własny artykuł

I²C (Inter-Integrated Circuit)

I²C, znana również jako IIC, to szeregowa, dwukierunkowa magistrala stworzona przez Philips na początku lat 80. XX wieku, używana do przesyłania danych pomiędzy urządzeniami elektronicznymi. Standard I²C określa dwie najniższe warstwy modelu OSI: warstwę fizyczną oraz warstwę łącza danych.

Historia

Standard I²C przeszedł kilka istotnych aktualizacji od swojego powstania:

  • 1980: Wprowadzenie standardu z prędkością 100 kbps i 7-bitową przestrzenią adresową.
  • 1992: Wersja 1.0 – dodanie trybu pracy 400 kbps (Fast Mode) oraz 10-bitowego adresowania.
  • 1998: Wersja 2.0 – wprowadzenie High Speed Mode (3,4 Mbps) oraz zwiększenie tolerancji napięcia.
  • 2007: Wersja 3.0 – dodanie mechanizmu identyfikacji urządzenia.
  • Wersja 7 – zmiana terminologii z „master/slave” na „controller/target”.

Warstwa fizyczna

Magistrala I²C korzysta z dwóch linii: SDA (linia danych) i SCL (linia zegara). Obie linie są podciągnięte do zasilania, a transmisja opiera się na logice dodatniej. Urządzenia działają w trybie otwartego kolektora, co umożliwia detekcję kolizji. Istnieje możliwość pracy w trybie multi-master, co pozwala na współdzielenie magistrali przez wiele urządzeń.

Warstwa łącza danych

I²C przesyła dane w grupach po 8 bitów, a po każdym bajcie następuje potwierdzenie (ACK lub NACK). Adresowanie urządzeń odbywa się przy użyciu 7-bitowej przestrzeni adresowej, z możliwością zaadresowania do 128 urządzeń, z czego 112 jest dostępnych. W wersji 1.0 wprowadzono także 10-bitowe adresowanie.

Zastosowania

I²C jest idealnym rozwiązaniem w aplikacjach, gdzie prostota i niski koszt są priorytetowe, a nie prędkość transmisji. Zastosowania obejmują:

  • Odczyt zegarów RTC w komputerach.
  • Komunikację z przetwornikami cyfrowo-analogowymi.
  • Monitorowanie czujników diagnostycznych.
  • Robotykę.
  • Dostęp do pamięci NVRAM.
  • Sterowanie diodami LED.
  • Komunikację w sprzęcie RTV.

Przykłady układów scalonych

Na rynku dostępne są liczne układy scalone z interfejsem I²C, takie jak:

  • PCF8563 – zegar i kalendarz.
  • PCF8574 – 8-bitowy ekspander.
  • PCF8591 – przetwornik analogowo-cyfrowy.

Biblioteki i technologie pochodne

Obsługa I²C w systemach Linux jest częścią jądra. W przypadku mikrokontrolerów Atmel dostępna jest biblioteka Procyon AVRlib. Na bazie I²C opracowano także inne standardy, takie jak VESA Display Data Channel oraz ACCESS.bus.

Alternatywne nazwy

Inne nazwy odnoszące się do I²C to:

  • TWI (Two Wire Interface) – używane przez Atmel.
  • SCCB (Serial Camera Control) – stosowane w produktach OmniVision.