Google is committed to advancing racial equity for Black communities. See how.

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 mogą być traktowane jako objęte „ograniczoną pomocą techniczną”.

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ą one 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 przez połączenie szeregowe 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 gwint (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 chip, 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 datagramów 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 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, częściowo po to, aby zapewnić niezawodność 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: