Interfejs do kwadratu. Magistrala I2C – co to jest?

Czas czytania: 3 min.

I²C, czyli Inter-Integrated Circuit, jest synchroniczną, szeregową magistralą komunikacyjną. Powstała w 1982 roku za sprawą Philips Semiconductor (obecnie holenderskie przedsiębiorstwo NXP Semiconductors). Jest szeroko stosowana w dołączaniu peryferyjnych układów scalonych o niższej prędkości do procesorów i mikrokontrolerów w komunikacji na krótkich dystansach, zwłaszcza wewnątrz płyty. Alternatywnie I²C jest czasami zapisywane jako I2C (I-two-C) lub IIC.

W architekturze komputerowej magistrala albo bus (skrót od łacińskiego omnibus) jest systemem komunikacyjnym, który przenosi dane pomiędzy komponentami wewnątrz komputera lub pomiędzy komputerami. Wyrażenie obejmuje wszystkie związane z tym elementy sprzętowe – na przykład przewód albo światłowód – i oprogramowanie wraz z protokołami.

 

Low Pin Count (LPC)
Chip Winbond - magistrala LPC (Low Pin Count) zaprezentowana przez Intel w 1998 roku.

Wczesne magistrale komputerowe były równoległymi przewodami elektrycznymi z wieloma połączeniami sprzętowymi, ale termin ten jest obecnie używany dla każdego fizycznego układu, który zapewnia taką samą funkcję logiczną jak równoległa magistrala elektryczna. Nowoczesne magistrale komputerowe mogą wykorzystywać zarówno połączenia równoległe, jak i szeregowe, i mogą być okablowane w topologii multidrop (w której wszystkie komponenty są połączone w obwód elektryczny) lub łańcuchowej, lub też połączone przez przełączane koncentratory, jak w przypadku USB.

Magistrale dawniej i dziś

Wczesne komputery zawierały wbudowany procesor z lampami, bęben magnetyczny jako pamięć główną oraz taśmę dziurkowaną i drukarkę do odczytu i zapisu danych. Nowoczesne systemy mają zwykle wielordzeniowy procesor, pamięć DDR4 SDRAM, dysk do przechowywania danych wtórnych, kartę graficzną i wyświetlacz LCD, wreszcie: mysz i klawiaturę do interakcji oraz łącze WiFi. W obu przykładach magistrale komputerowe w takiej lub innej formie przenoszą dane między wszystkimi tymi urządzeniami.

W większości tradycyjnych architektur komputerowych procesor i pamięć główna są ze sobą ściśle sprzężone. Mikroprocesor konwencjonalnie jest pojedynczym układem scalonym, który posiada szereg połączeń elektrycznych na swoich pinach, które mogą być użyte do wyboru “adresu” w pamięci głównej oraz inny zestaw pinów do odczytu i zapisu danych przechowywanych w tej lokalizacji. W większości przypadków procesor i pamięć mają wspólne właściwości sygnalizacyjne i działają synchronicznie. Magistrala łącząca CPU i pamięć jest jedną z cech definiujących system i często określana jest po prostu jako magistrala systemowa.

Opracowany na początku lat 80. standard I2C cechowała prędkość transmisji 100 kbps i 7 bitowa przestrzeń adresowa. Spójrzmy na niego bliżej.

I2C - wprowadzenie

Kilku konkurentów, takich jak Siemens (później wydzielone z koncernu Infineon Technologies, obecnie dział badań Intel Mobile Communications), NEC, Texas Instruments, STMicroelectronics (wcześniej SGS-Thomson), Motorola (później Freescale, obecnie połączona z NXP), Nordic Semiconductor i Intersil wprowadziły na rynek od połowy lat 90. kompatybilne produkty I2C. Z kolei System Management Bus (SMBus), zdefiniowana przez firmę Intel w 1995 roku, jest podzbiorem I2C o bardziej rygorystycznym zastosowaniu. Nowoczesne systemy I2C zawierają pewne zasady i reguły SMBus, czasami obsługują zarówno I2C jak i SMBus, wymagając jedynie minimalnej rekonfiguracji poprzez wydawanie poleceń lub właściwe użycie pinów wyjściowych.

Design interfejsu I2C

Projekt wzorcowy I2C posiada 7-bitową przestrzeń adresową, z rzadko używanym rozszerzeniem 10-bitowym. Typowe prędkości magistrali I2C to tryb standardowy 100 kbit/s i tryb szybki 400 kbit/s. Istnieje również tryb niskiej prędkości 10 kbit/s, ale dozwolone są również arbitralnie niskie częstotliwości zegara. Ostatnie rewizje I2C mogą obsługiwać więcej węzłów i pracować z większymi prędkościami (400 kbit/s tryb Fast, 1 Mbit/s tryb Fast plus, 3.4 Mbit/s tryb High Speed i 5 Mbit/s tryb Ultra Fast). Te prędkości są częściej stosowane w systemach wbudowanych niż w komputerach PC. Typowe napięcia to 5 V lub 3,3 V, choć dopuszczalne są systemy z innymi napięciami.

Rzeczywista szybkość przesyłania danych użytkownika jest niższa niż wynikałoby to z samych szczytowych szybkości bitowych. Na przykład, jeśli każda interakcja z urządzeniem podrzędnym nieefektywnie pozwala na przesłanie tylko 1 bajtu danych, szybkość transmisji danych będzie mniejsza niż połowa szczytowej szybkości bitowej.

Liczba węzłów, które mogą istnieć na danej magistrali I2C jest ograniczona przez przestrzeń adresową, a także przez całkowitą pojemność magistrali wynoszącą 400 pF, która ogranicza praktyczne odległości komunikacyjne do kilku metrów. Stosunkowo wysoka impedancja i niska odporność na zakłócenia wymaga wspólnego potencjału masy, co ponownie ogranicza praktyczne zastosowanie do komunikacji w obrębie tej samej płyty PC lub małego systemu płyt.

 

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.1 / 5. Liczba głosów: 14

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Oskar Pacelt

Oskar Pacelt

Fan dobrej literatury i muzyki. Wierzy, że udany tekst jest jak list wysłany w przyszłość. W życiu najbardziej interesuje go prawda, pozostałych zainteresowań zliczyć nie sposób. Kocha pływać.

Zobacz więcej:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce Prywatności oraz Warunkom użytkowania.