Projektowanie
article miniature

Wykorzystanie zalet technologii I3C do szybszej, prostszej i bardziej elastycznej komunikacji między układami scalonymi

Wbudowane interfejsy szeregowe zapewniające komunikację pomiędzy układami scalonymi (IC-to-IC) mają głównie postać interfejsu I²C oraz szeregowego interfejsu urządzeń peryferyjnych (SPI), dostępnych od lat 80. XX wieku. Interfejsy te są szeroko stosowane do łączenia czujników i układów scalonych o niższej prędkości z mikrokontrolerami (MCU) w celu zapewnienia komunikacji na niewielkie odległości w obrębie płytki. Jednak wraz ze wzrostem prędkości systemów cyfrowych interfejsy te, ograniczone do typowych szybkości transmisji danych 1Mbit/s dla I²C i 10Mbit/s dla szeregowego interfejsu urządzeń peryferyjnych (SPI), stały się wąskim gardłem. Istnieją też inne ograniczenia. Na przykład dedykowane linie przerwań lub linie włączania mikroukładów wymagają dodatkowych połączeń sygnałowych, co zwiększa liczbę przewodów i złożoność połączeń magistrali.

Magistrala I3C (Inter-Integrated Circuit) ma za zadanie zmodernizować komunikację między układami scalonymi. Oferuje wyższe szybkości transmisji danych, większą elastyczność i prawdziwie dwuprzewodowy interfejs z przerwaniami wewnątrzpasmowymi (IBI) zamiast przerwań zewnętrznych.

W niniejszym artykule omówiono charakterystykę interfejsu I3C i przedstawiono dlaczego może stanowić dobre ulepszenie w porównaniu z szeregowymi interfejsami SPI oraz I²C. Jego zastosowania zostaną zademonstrowane na przykładzie typowych mikrokontrolerów MCU, przełączników scalonych i czujników.

Wbudowane magistrale komunikacyjne

Wbudowane połączenia szeregowe, takie jak I²C i SPI, są stosowane od wielu lat w komunikacji w obrębie płytki. Są one używane głównie jako magistrale komunikacyjne pomiędzy czujnikami i urządzeniami interfejsu użytkownika oraz ich procesorami sterującymi. Liczba czujników w typowych systemach wzrosła do dziesięciu, a nawet dwudziestu w telefonie i znacznie więcej w pojazdach. Jednocześnie wymagania dotyczące komunikacji stają się coraz większym wyzwaniem dla projektantów, ponieważ rośnie zapotrzebowanie na wyższe prędkości, niższy pobór mocy i mniejszą ilość przewodów. Projektanci muszą sprostać tym wymaganiom, zachowując kontrolę nad procesorem za pośrednictwem linii przerwań i włączania (ilustracja 1).

Diagram przedstawiający komunikację wbudowaną, która ma obsługiwać wyższe prędkości (kliknij, aby powiększyć)Ilustracja 1: komunikacja wbudowana ma obsługiwać wyższe prędkości, niższą moc i minimalną liczbę przewodów. (Źródło ilustracji: NXP Semiconductors)

Obecna technologia wykorzystuje interfejs czujnika i urządzenia sterującego użytkownika wykorzystujący dwuprzewodowe interfejsy I²C lub czteroprzewodowe szeregowe interfejsy urządzeń peryferyjnych (SPI). Linie przerwań, włączania i inne linie sterujące są oddzielone od linii zegara i linii danych, co skutkuje większą liczbą linii w interfejsie.

Projektanci potrzebują bardziej przyszłościowego podejścia do interfejsu, które wyeliminuje dodatkowe przewody z połączeń i obsłuży wspomniane operacje wewnątrzpasmowe, wykorzystując tylko linie zegara i danych. Ponadto magistrala powinna być w stanie pracować z wyższymi prędkościami i przy niższych stratach mocy.

Interfejs I3C

W celu spełnienia tych wymagań organizacja Mobile Industry Processor Interface (MIPI) Alliance opracowała interfejs I3C. Interfejs ten jest dostępny zarówno jako interfejs MIPI I3C dla członków organizacji Mobile Industry Processor Interface (MIPI), jak i MIPI I3C Basic o ograniczonej funkcjonalności dla użytkowników nie będących członkami tej organizacji. Podobnie jak starsze interfejsy I²C i SPI, ulepszona wersja jest szeregowa i jest realizowana przy użyciu dwóch przewodów w celu zminimalizowania liczby wtyków i liczby ścieżek sygnałowych między komponentami. Cechuje ją szybkość transmisji danych do 12,5Mbit/s przy częstotliwości 12,5MHz z pracą w trybie pojedynczej szybkości transmisji danych (SDR). Działa przy niższych poziomach mocy i wykorzystuje prostą, ale elastyczną architekturę projektu.

Warto zauważyć, że standard I3C zachowuje ograniczoną kompatybilność wstecz z systemem I²C, umożliwiając podłączanie istniejących urządzeń I²C do magistrali I3C, jednocześnie umożliwiając magistrali przełączanie się na wyższe szybkości transmisji danych w celu komunikacji między zgodnymi urządzeniami I3C. Na ilustracji 2 przedstawiono porównanie konfiguracji systemów.

Diagram przedstawiający porównanie podstawowych konfiguracji interfejsów I3C, I²C oraz SPI (kliknij, aby powiększyć)Ilustracja 2: porównanie podstawowych konfiguracji interfejsów I3C, I²C oraz SPI wskazuje na wyższą szybkość i prostsze oprzewodowanie I3C. (Źródło ilustracji: NXP Semiconductors)

Czteroprzewodowy szeregowy interfejs urządzeń peryferyjnych (SPI) może działać szybciej i obsługuje komunikację w trybie pełnego dupleksu. Interfejs I²C zapewnia komunikację za pomocą trybu półdupleksowego za pośrednictwem dwuprzewodowej magistrali składającej się z linii zegara szeregowego (SCL) i linii danych (SDA). Obie wymagają dodatkowych linii do obsługi przerwań i innych funkcji sterujących, takich jak wybór mikroukładu. W interfejsie I3C zmniejszono liczbę przewodów do dwóch, eliminując oddzielne linie przerwań, włączania i wyboru mikroukładu stosowane w interfejsach I²C oraz SPI. Takie zmniejszenie liczby przewodów jest istotną zaletą w systemach wymagających od dziesięciu do dwudziestu oddzielnych czujników połączonych z procesorem, z których każdy ma kilka przewodów pomocniczych. Linie przerwań i inne linie sterujące są zastępowane przez przerwania wewnątrzpasmowe (IBI). W tej metodzie docelowy czujnik lub urządzenie wprowadza swój adres do nagłówka adresowego magistrali I3C, aby powiadomić procesor o przerwaniu.

Różnica w częstotliwościach zegara pomiędzy interfejsami I²C i I3C jest znaczna. Interfejs I²C jest na ogół taktowany z częstotliwością 100kHz, 400kHz lub 1MHz, podczas gdy I3C może być taktowany z częstotliwością 12,5MHz. Wcześniej, w przypadku częstotliwości zegara wyższych niż 1MHz stosowany był szeregowy interfejs urządzeń peryferyjnych (SPI). Wybór projektu zawsze był pewnym kompromisem pomiędzy częstotliwością zegara a liczbą przewodów. Technologia I3C to zmieniła, oferując wyższe częstotliwości i szybkości przesyłu danych przy użyciu prawdziwej topologii dwuprzewodowej.

Wyjścia komplementarne, które mogą przełączać się szybciej niż sterowniki z otwartym drenem lub kolektorem, w znacznym stopniu przyczyniają się do zwiększenia częstotliwości taktowania interfejsu I3C. Aby zachować kompatybilność z urządzeniami I²C, interfejs I3C może przełączać się między sterownikami z otwartym drenem i sterownikami komplementarnymi w zależności od stanu magistrali. Konstrukcja z otwartym drenem lub kolektorem jest wykorzystywana podczas początkowego adresowania lub arbitrażu, gdy na linii mogą znajdować się jednocześnie zarówno urządzenia I²C, jak i I3C. Interfejs I3C wykorzystuje wariant komplementarny, gdy komunikacja jest jednokierunkowa i nie ma możliwości, aby urządzenie I²C komunikowało się jednocześnie.

Oprócz standardowego trybu pojedynczej szybkości przesyłu danych (SDR) interfejs I3C obsługuje kilka opcjonalnych trybów wysokiej szybkości przesyłu danych (HDR). Wspomniane tryby HDR działają z tą samą częstotliwością zegara, ale przesyłają dane z większą gęstością. Pierwszym z trybów wysokiej szybkości przesyłu danych jest tryb podwójnej szybkość transmisji danych (HDR-DDR), w którym dane są taktowane na obu zboczach sygnału zegara, co zapewnia prawie dwukrotność szybkości transmisji danych. Dla zegara 12,5MHz tryb DDR osiąga efektywną szybkość transmisji danych 20Mbit/s.

Symbole metody kodowania trójkowego trybu wysokiej szybkości przesyłu danych (HDR) występują w dwóch wersjach: symbol metody kodowania wyłącznie trójkowego trybu wysokiej szybkości przesyłu danych (HDR-TSP) tylko dla urządzeń I3C oraz symbol kodowania trójkowego z obsługą starszych technologii (HDR-TSL) trybu wysokiej szybkości przesyłu danych dla magistral z urządzeniami przeznaczonymi zarówno pod interfejs I²C, jak i I3C. Tryby kodowania trójkowego pozwalają uzyskać trzy bity danych na zegar przy użyciu symboli trójkowych zakodowanych na linii zegara szeregowego (SCL) i linii danych (SDA).

Tryb transportu masowego o wysokiej szybkości przesyłu danych (HDR-BT) zapewnia najwyższą ilość danych, obsługując komunikację za pośrednictwem poczwórnych, podwójnych lub pojedynczych linii danych (SDA). Powoduje to ośmiokrotne, czterokrotne lub dwukrotne zwiększenie w porównaniu do pojedynczej szybkości przesyłu danych przy tej samej częstotliwości zegara.

Ten wzrost prędkości przesyłania danych pozwala na włączanie urządzeń na krótszy czas, co skraca cykl roboczy zasilania magistrali. Zmniejsza to pobór mocy w porównaniu z interfejsem I²C (ilustracja 3). Zamiana sterowników z otwartym kolektorem z zewnętrznymi rezystorami podciągającymi na sterowniki komplementarne dodatkowo zmniejsza pobór mocy, ponieważ rezystory podciągające wymagają znacznej mocy do działania.

Ilustracja przedstawiająca poprawę szybkości przesyłu danych i poboru mocy przez interfejs I3C (kliknij, aby powiększyć)Ilustracja 3: interfejs I3C zapewnia wyższą szybkość przesyłu danych i mniejszy pobór mocy w porównaniu do interfejsu I²C. (Źródło ilustracji: NXP Semiconductors)

Adresowanie

Interfejs I²C wykorzystuje adresy statyczne o długości 7 lub 10 bitów dla każdego urządzenia magistrali. W interfejsie I3C zostało to zmienione na 7-bitowe dynamiczne adresowanie, w którym urządzenie główne magistrali ustawia adres urządzenia podczas dynamicznego przydzielania adresu (DAA) i zapisuje go w rejestrze urządzeń. Adresowanie statyczne, jak w przypadku urządzeń peryferyjnych I²C, nadal może być stosowane w interfejsie I3C.

Dzięki dynamicznemu adresowaniu, adresy urządzeń można później zmieniać. Obsługuje ono łączenie „na gorąco”, które pozwala na dodanie nowego urządzenia do magistrali w trakcie jego pracy. Nowe urządzenie podłączone do magistrali I3C sygnalizuje swoją obecność urządzeniu nadrzędnemu I3C, wysyłając żądanie połączenia podczas pracy. Kontroler nadrzędny potwierdza żądanie i przypisuje adres, aby dodać urządzenie do magistrali.

Przerwania wewnątrzpasmowe (IBI)

Magistrala I3C jest prawdziwie dwuprzewodową magistralą, która wykorzystuje przerwania wewnątrzpasmowe (IBI) zamiast dedykowanych linii przerwań, jak to było w interfejsie I²C. Przerwania wewnątrzpasmowe (IBI) występują wtedy, gdy urządzenie docelowe sygnalizuje swoją dostępność urządzeniu nadrzędnemu, ustawiając stan niski linii danych (SDA). Następnie urządzenie nadrzędne uruchamia zegar na linii zegara szeregowego (SCL), a urządzenie docelowe przesyła swój adres na magistralę I3C, aby powiadomić kontroler o przerwaniu.

Kody typowych poleceń

Wspólne kody poleceń (CCC) to znormalizowane polecenia, które kontroler może rozgłaszać do wszystkich urządzeń I3C jednocześnie lub do określonego urządzenia docelowego. Polecenia te dotyczą elementów związanych z zarządzaniem magistralą. Format protokołu CCC rozpoczyna się od adresu rozgłaszania I3C, który jest rozpoznawany przez wszystkie urządzenia I3C w magistrali. Żadne urządzenie I²C w magistrali nie potwierdzi żądania, ponieważ jest to zarezerwowany adres I²C.

Każde polecenie zawiera 8-bitowe pole identyfikatora deskryptora, po którym może występować ładunek polecenia. Polecenie wysłane do konkretnego urządzenia przekazuje adres urządzenia w pierwszym bajcie ładunku. Istnieje ponad czterdzieści poleceń CCC, w tym:

  • Wprowadź dynamiczne przypisanie adresu (ENTDAA)
  • Ustaw nowe dynamiczne przypisanie adresu (SETNEWDA)
  • Włącz zdarzenia (ENEC) i wyłącz zdarzenia (DISEC)
  • Resetuj dynamiczne przypisanie adresu (RSTDAA)
  • Wejdź w tryb wysokiej szybkości transmisji danych (ENTHDRx)
  • Pobierz rejestr charakterystyki urządzenia (GETDCR)

Dostawcy mają do dyspozycji dedykowany zakres identyfikatorów CCC do wdrażania własnych poleceń.

Wykrywanie i usuwanie błędów

W przeciwieństwie do interfejsu I²C, interfejs I3C zawiera funkcje wykrywania i usuwania błędów. Sześć metod wykrywania i usuwania błędów dla urządzeń docelowych jest obowiązkowych, a jeszcze kolejna jest opcjonalna. Dostępne są również dodatkowe metody wykrywania i usuwania błędów, przeznaczone specjalnie dla błędów po stronie urządzenia nadrzędnego.

Komponenty z obsługą interfejsu I3C

Jak pokazano na ilustracji 2 (po lewej), podstawowa sieć I3C składa się z co najmniej jednego kontrolera nadrzędnego i co najmniej jednego docelowego lub urządzenia podrzędnego I3CGłównym urządzeniem nadrzędnym może być mikrokontroler MCU, na przykład LPC5534JHI48-00MP firmy NXP Semiconductors (ilustracja 4). Jest to 32-bitowy mikrokontroler MCU Arm® Cortex®-M33 posiadający 128kB statycznej pamięci o dostępie swobodnym (SRAM) i 256kB pamięci Flash. Interfejs Flexcomm obsługuje osiem różnych interfejsów szeregowych, w tym I3C.

Ilustracja przedstawiająca mikrokontroler MCU LPC5534JHI48/00MP firmy NXP Semiconductor wyposażony w interfejs I3C (kliknij, aby powiększyć)Ilustracja 4: mikrokontroler MCU LPC5534JHI48/00MP posiada interfejs I3C i siedem innych interfejsów szeregowych. (Źródło ilustracji: NXP Semiconductor)

Magistrala I3C pozwala na dodawanie kolejnych urządzeń nadrzędnych wprowadzanych do magistrali jako urządzenia podrzędne. W interfejsie I3C można mieć wiele urządzeń nadrzędnych, ale tylko jedno z nich może być kontrolerem. Po zarejestrowaniu, dodatkowe urządzenie główne może zażądać statusu aktualnego urządzenia głównego, a jeśli urządzenie nadrzędne wyrazi zgodę, sterowanie zostanie przekazane żądającemu dodatkowemu urządzeniu głównemu.

Typowym czujnikiem I3C jest na przykład urządzenie P3T2030CUKAZ firmy NXP. Omawiany czujnik temperatury przekształca temperatury w zakresie od -40°C do +125°C na 12-bitową wartość cyfrową z dokładnością do ±2°C. Posiada on interfejs szeregowy I²C oraz interfejs I3C z trybem pojedynczej szybkości transmisji danych (SDR).

Bardziej zaawansowanym czujnikiem jest trójosiowy żyroskop i przyspieszeniomierz mikroelektromechaniczny (MEMS) typu ICM-42605 firmy TDK InvenSense. Żyroskop mierzy szybkość wirowania w zakresie od ±15,2 do ±2000 stopni na sekundę (°/s). Zakres przyspieszeniomierza wynosi od ±2 do ±15 g. Wykrywa ruch, przechył, dotknięcie lub kroki (krokomierz). Ten czujnik I3C działa z częstotliwością 12,5MHz w trybie pojedynczej szybkości transmisji danych (SDR) i 25MHz w trybie podwójnej szybkość transmisji danych (HDR-DDR).

Układy scalone, takie jak przełączniki I3C P3S0200GMX firmy NXP, mogą rekonfigurować magistralę I3C, kierując jej sygnały między kontrolerem I3C a wieloma zestawami urządzeń docelowych lub między jednym urządzeniem docelowym a wieloma kontrolerami I3C, zależnie od poleceń z zewnętrznego mikrokontrolera MCU (ilustracja 5).

Diagram przedstawiający przełącznik I3C P3S0200GMX firmy NXP Semiconductors, którego można użyć do rekonfiguracji magistrali I3C (kliknij, aby powiększyć)Ilustracja 5: przełącznik I3C P3S0200GMX może służyć do rekonfiguracji magistrali I3C poprzez przekierowanie jej sygnałów między kontrolerem I3C a wieloma zestawami urządzeń docelowych lub między jednym urządzeniem docelowym a wieloma kontrolerami I3C. (Źródło ilustracji: NXP Semiconductors)

Przełączanie między dwoma urządzeniami docelowymi może być wymagane, jeśli oba urządzenia docelowe mają ten sam adres i nie mogą znajdować się na tej samej magistrali. W innej sytuacji jedno urządzenie docelowe może wymagać współużytkowania przez dwa procesy, co wymaga przełączenia między dwoma kontrolerami I3C.

Podsumowanie

I3C to interfejs szeregowy, w którym poprawiono możliwości magistrali I²C poprzez zwiększenie szybkości przesyłu danych, zmniejszenie liczby przewodów i zwiększenie elastyczności sterowania magistralą. Jest to udoskonalenie rozszerzające użyteczność interfejsów I²C oraz szeregowego interfejsu urządzeń peryferyjnych (SPI) starszego typu.

Źródło: Wykorzystanie zalet technologii I3C do szybszej, prostszej i bardziej elastycznej komunikacji między układami scalonymi

Kontakt w Polsce: poland.support@digikey.pl

Autor: Rolf Horn

Rolf Horn, Applications Engineer at DigiKey, has been in the European Technical Support group since 2014 with primary responsibility for answering any Development and Engineering related questions from final customers in EMEA, as well as writing and proof-reading German articles and blogs on DK’s TechForum and maker.io platforms. Prior to DigiKey, he worked at several manufacturers in the semiconductor area with focus on embedded FPGA, Microcontroller and Processor systems for Industrial and Automotive Applications. Rolf holds a degree in electrical and electronics engineering from the university of applied sciences in Munich, Bavaria and started his professional career at a local Electronics Products Distributor as System-Solutions Architect to share his steadily growing knowledge and expertise as Trusted Advisor.

Hobbies: spending time with family + friends, travelling in our VW-California transporter and motorbiking on a 1988 BMW GS 100.

Zapraszamy na TEK.day Wrocław, 6 marca 2025. Zapisz się tutaj!