Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Platformy

OpenThread wydany przez Google został przeniesiony na kilka urządzeń i platform przez zespół OpenThread, dostawców krzemu i społeczność. Przykłady kompilacji dla wszystkich portowanych platform znajdują się w repozytorium OpenThread .

Zobacz Wyszukiwanie dostawców, aby uzyskać listę wszystkich platform obsługiwanych przez dostawców i portów społeczności, z możliwością wyszukiwania.

Wsparcie

Wsparcie dla każdej platformy zmienia się w czasie. Niektóre platformy są oznaczone aktualnym poziomem wsparcia, zgodnie z ustaleniami zespołu OpenThread. Platformy nieoznakowane nie były ostatnio testowane i można je uznać za „ograniczone wsparcie”.

Poziom wsparcia Opis
Utrzymany Pełne i podstawowe wsparcie, a także dowolny komponent z certyfikatem wątku, który korzysta z OpenThread. Wiele z tych platform zostało przetestowanych i używanych przez zespół OpenThread i są zalecane do użytku w naszych wersjach demonstracyjnych i Codelabs.
Ograniczone wsparcie Te platformy nie zostały w pełni przetestowane i mogą nie mieć niektórych kluczowych funkcji.
Niewspierany Obecnie nie jest obsługiwane i mogą mieć problemy z uruchomieniem OpenThread. Używaj na własne ryzyko.

Architektura systemu

Architektura systemu OT

OpenThread został zaprojektowany z myślą o przenośności i elastyczności. Kod jest przenośnym C / C ++ (C99 i C ++ 03), który jest niezależny od architektury systemu ze względu na wąską warstwę abstrakcji. Ta warstwa abstrakcji oznacza, że ​​OpenThread może działać na bare-metal lub OS. Do tej pory wykazano, że OpenThread działa na FreeRTOS, RIOT-OS, Zephyr OS, Linux i macOS.

Przenośny charakter OpenThread nie zakłada żadnych założeń dotyczących funkcji platformy. OpenThread zapewnia możliwości wykorzystania ulepszonych funkcji radiowych i kryptograficznych, zmniejszając wymagania systemowe, takie jak pamięć, kod i cykle obliczeniowe. Można to zrobić dla każdej platformy, zachowując możliwość domyślnej konfiguracji standardowej.

OpenThread ma konfigurowalny system kompilacji, za pomocą którego programista może włączać lub wyłączać funkcje w razie potrzeby. Poza domyślnym łańcuchem narzędzi GNU, źródło zostało zaprojektowane do pracy z wieloma innymi popularnymi łańcuchami narzędzi, takimi jak IAR i Visual Studio.

Projekty platform

OpenThread obsługuje zarówno konstrukcje typu system-on-chip (SoC), jak i koprocesor sieciowy (NCP).

SoC to rozwiązanie jednoukładowe, które składa się z połączenia RFIC (802.15.4 w przypadku wątku) i procesora, w którym OpenThread i warstwa aplikacji działają na lokalnym procesorze.

Projekt NCP polega na tym, że warstwa aplikacji działa na procesorze hosta i komunikuje się z OpenThread za pośrednictwem połączenia szeregowego przy użyciu znormalizowanego protokołu kontrolera hosta, który nazywamy Spinel . W tym projekcie OpenThread może działać na radiu lub procesorze hosta.

Pojedynczy chip, tylko wątek (SoC)

Architektura OT SoC

W tym projekcie warstwa aplikacji i OpenThread działają na tym samym procesorze. Aplikacja bezpośrednio korzysta z interfejsów API OpenThread i stosu IPv6.

Jest to konstrukcja SoC najczęściej stosowana w urządzeniach końcowych. Ponieważ jest wysoce zintegrowany z pojedynczym krzemem, ma najniższy koszt i najniższe zużycie energii.

Pojedynczy układ, wiele interfejsów (SoC)

Architektura OT Multiple SoC

Gdy SoC ma wiele radiotelefonów, takich jak 802.15.4 i Wi-Fi lub 802.15.4 i Bluetooth Low Energy (BLE), warstwa aplikacji i OpenThread nadal działają na tym samym procesorze. W projekcie z wieloma interfejsami OpenThread wykorzystuje udostępniony stos IPv6 innej firmy za pośrednictwem surowego interfejsu datagramowego IPv6.

Współprocesor sieciowy (NCP)

Architektura OT NCP

Standardowy projekt NCP ma funkcje wątku w SoC i uruchamia warstwę aplikacji na procesorze hosta, który jest zwykle bardziej wydajny (ale ma większe zapotrzebowanie na energię) niż urządzenie OpenThread. Procesor hosta komunikuje się z urządzeniem OpenThread za pośrednictwem interfejsu szeregowego (zwykle SPI lub UART) za pośrednictwem protokołu Spinel.

Zaletą tego projektu jest to, że host o większej mocy może spać, podczas gdy urządzenie OpenThread o niższej mocy pozostaje aktywne, aby utrzymać swoje miejsce w sieci Thread. A ponieważ SoC nie jest powiązany z warstwą aplikacji, tworzenie i testowanie aplikacji jest niezależne od kompilacji OpenThread.

Ten projekt jest przydatny w przypadku urządzeń bramowych lub urządzeń, które mają inne wymagania dotyczące przetwarzania, takie jak kamery IP i głośniki.

Współprocesor radiowy (RCP)

Architektura OT RCP

Jest to wariant projektu NCP, w którym rdzeń OpenThread znajduje się na procesorze hosta z minimalnym „kontrolerem” warstwy MAC na urządzeniu z radiem Thread. Procesor hosta zwykle nie śpi w tym projekcie, po części w celu zapewnienia niezawodności sieci Thread.

Zaletą jest to, że OpenThread może wykorzystywać zasoby mocniejszego procesora.

Ten projekt jest przydatny w przypadku urządzeń, które są mniej wrażliwe na ograniczenia mocy. Na przykład procesor hosta w kamerze wideo jest zawsze włączony i przetwarza wideo.

Problemy z otwartą platformą

Następujące problemy są obecnie otwarte dla platform OpenThread: