Projekty współprocesorów

Projekty procesorów pomocniczych są obsługiwane przez OpenThread. Podczas tworzenia przykładów OpenThread automatycznie tworzony jest obraz oprogramowania sprzętowego dla każdego projektu koprocesora. Więcej informacji znajdziesz w sekcji Pliki binarne.

Radio Co-Processor (RCP)

Architektura OT RCP

W przypadku projektu RCP rdzeń OpenThread znajduje się na procesorze hosta, a na urządzeniu z radiem Thread znajduje się tylko minimalna warstwa MAC „kontrolera”. W tym przypadku procesor hosta zwykle nie przechodzi w stan uśpienia, co częściowo ma zapewnić niezawodność sieci Thread.

Komunikacją między RCP a procesorem hosta zarządza OpenThread Daemon za pomocą interfejsu SPI w ramach protokołu Spinel.

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

Ten rodzaj zasilania jest przydatny w przypadku urządzeń, które są mniej wrażliwe na ograniczenia zasilania. Na przykład procesor główny kamery wideo jest zawsze włączony, aby przetwarzać obraz.

Router graniczny OpenThread obsługuje architekturę RCP. Więcej informacji znajdziesz w artykule OpenThread Border Router.

Aby utworzyć RCP, zapoznaj się z tymi samouczkami:

Tworzenie sieci Thread za pomocą nRF52840 Router graniczny Thread

Koprocesor sieciowy (NCP)

Architektura OT NCP

Standardowa konstrukcja NCP ma funkcje Thread na układzie 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.

Zaletą tego rozwiązania jest to, że urządzenie hosta o większej mocy może być w stanie uśpienia, a urządzenie OpenThread o mniejszej mocy pozostaje aktywne, aby utrzymać swoje miejsce w sieci Thread. Ponieważ SoC nie jest powiązany z warstwą aplikacji, tworzenie i testowanie aplikacji jest niezależne od kompilacji OpenThread.

Ta konstrukcja jest przydatna w przypadku urządzeń bramy lub urządzeń, które mają inne wymagania dotyczące przetwarzania, takich jak kamery IP i głośniki.

Protokół Spinel

Spinel to ogólny protokół zarządzania, który umożliwia urządzeniu hosta komunikowanie się z koprocesorem i zarządzanie nim. Protokół Spinel został początkowo zaprojektowany do obsługi NCP opartych na Thread, ale ma warstwową architekturę, która umożliwia łatwe dostosowanie go do innych technologii sieciowych w przyszłości. Jest on używany zarówno w przypadku projektów RCP, jak i NCP.

Ten protokół jest dołączony do OpenThread w /src/lib/spinel. Do celów testowych dostępne jest narzędzie CLI w Pythonie o nazwie Pyspinel.

Więcej informacji znajdziesz w wersji roboczej protokołu Spinel Host-Controller.