Opracowana przez Google platforma OpenThread została przeniesiona na kilka urządzeń i platform przez zespół OpenThread, dostawców silikonów i społeczność. Przykłady kompilacji dla wszystkich przeniesionych platform znajdziesz w repozytorium OpenThread.
W sekcji Dostawcy wyszukiwania znajdziesz listę wszystkich platform obsługiwanych przez dostawców i portów społeczności, którą możesz przeszukiwać.
Pomoc
Obsługa poszczególnych platform różni się w miarę upływu czasu. Niektóre platformy są oznaczone aktualnym poziomem pomocy określonym przez zespół OpenThread. Nieotagowane platformy nie były ostatnio testowane i mogą mieć stan „Ograniczona obsługa”.
Poziom podtrzymania | Opis |
---|---|
Pełna i podstawowa obsługa, a także każdy komponent z certyfikatem Thread, który korzysta z OpenThread. Wiele z tych platform zostało przetestowanych i używanych przez zespół OpenThread. Polecamy je do wykorzystania w naszych wersjach demonstracyjnych i Codelabs. | |
Platformy te nie zostały w pełni przetestowane i mogą nie mieć niektórych kluczowych funkcji. | |
Funkcja obecnie nie jest obsługiwana i mogą występować problemy z uruchamianiem OpenThread. Korzystasz z niego na własne ryzyko. |
Architektura systemu
Pakiet OpenThread został zaprojektowany z myślą o przenośności i elastyczności. Kod jest przenośny C/C++ (C99 i C++11), dzięki czemu jest on niezależny od architektury systemu ze względu na wąską warstwę abstrakcji. Ta warstwa abstrakcji oznacza, że OpenThread może działać zarówno na sprzęcie klienta, jak i w systemie operacyjnym. Do tej pory udało się udowodnić, że OpenThread działa w systemach FreeRTOS, RIOT-OS, Zephyr OS, Linux i macOS.
Przenośny charakter OpenThread nie zakłada żadnych założeń dotyczących funkcji platformy. OpenThread udostępnia punkty zaczepienia umożliwiające korzystanie z ulepszonych funkcji radiowych i kryptograficznych, co zmniejsza wymagania systemowe, takie jak pamięć, kod i cykle obliczeniowe. Można to zrobić w przypadku każdej platformy z zachowaniem możliwości korzystania z domyślnej konfiguracji.
OpenThread ma konfigurowalny system kompilacji, za pomocą którego deweloper może włączać i wyłączać funkcje zależnie od potrzeb. Źródło zostało zaprojektowane tak, aby oprócz domyślnego łańcucha narzędzi GNU mogło współpracować z wieloma innymi popularnymi łańcuchami narzędzi, np. IAR i Visual Studio.
Projekty platform
OpenThread obsługuje zarówno układy SOC, jak i procesory współprocesora sieci (NCP).
Układ SOC to jednoukładowe rozwiązanie obejmujące połączenie RFIC (802.15.4 w przypadku Thread) i procesor, przy czym OpenThread i warstwa aplikacji działają na procesorze lokalnym.
Projekt NCP to warstwa aplikacji, która działa w procesorze hosta i komunikuje się z OpenThread przez połączenie szeregowe przy użyciu standardowego protokołu hosta-kontrolera nazywanego Spinel. W tym projekcie OpenThread może działać w ramach procesora radiowego lub hosta.
Jednoukładowy, tylko wątki (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 układ SOC najczęściej używany w przypadku urządzeń końcowych. Ponieważ jest mocno zintegrowana z pojedynczym krzemem, ma najniższy koszt i najmniejsze zużycie energii.
Jednoukładowy, wieloukładowy
Jeśli układ SoC ma kilka odbiorników radiowych, np. 802.15.4, Wi-Fi lub 802.15.4 i Bluetooth Low Energy (BLE), warstwa aplikacji i OpenThread będą nadal działać na tym samym procesorze. W projektowaniu z wieloma interfejsami OpenThread korzysta ze wspólnego stosu IPv6 innej firmy za pomocą interfejsu datagramu IPv6.
Projekty współprocesorów
OpenThread obsługuje architekturę współprocesora radiowego (RCP) i współprocesora sieciowego (NCP). Więcej informacji znajdziesz w artykule o współprocesorach projektowych.
Problemy z platformą
W przypadku platform OpenThread są obecnie następujące problemy: