Co-Prozessor-Designs

Co-Prozessor-Designs werden von OpenThread unterstützt. Wenn Sie Beispiele für OpenThread erstellen, wird automatisch ein Firmware-Image für jedes Coprozessor-Design erstellt. Weitere Informationen finden Sie unter Binaries.

Radio-Coprozessor (RCP)

OT RCP-Architektur

Bei einem RCP-Design befindet sich der Kern von OpenThread auf dem Hostprozessor mit einer minimalen MAC-Ebene auf dem Gerät mit dem Thread-Radio. Der Hostprozessor wechselt bei diesem Design in der Regel nicht in den Ruhemodus, um die Zuverlässigkeit des Thread-Netzwerks zu gewährleisten.

Die Kommunikation zwischen dem RCP und dem Hostprozessor wird über OpenThread Daemon über eine SPI-Schnittstelle über das Spinn-Protokoll verwaltet.

Der Vorteil besteht darin, dass OpenThread die Ressourcen auf dem leistungsfähigeren Prozessor nutzen kann.

Das ist nützlich für Geräte, die weniger anfällig für Energieeinschränkungen sind. Zum Beispiel ist der Hostprozessor einer Videokamera immer eingeschaltet, damit Videos verarbeitet werden können.

OpenThread Border Router unterstützt ein RCP-Design. Weitere Informationen finden Sie unter OpenThread-Border-Router.

Informationen zum Erstellen eines RCP finden Sie in den folgenden Codelabs:

Erstellen eines Thread-Netzwerks mit nRF52840 Thread Border Router

Netzwerk-Co-Prozessor (NCP)

OT NCP-Architektur

Das standardmäßige NCP-Design hat Thread-Features auf dem SoC und führt die Anwendungsebene auf einem Hostprozessor aus, der normalerweise mehr Kapazitäten, aber einen höheren Energiebedarf hat als das OpenThread-Gerät.

Die Kommunikation zwischen dem NCP und dem Hostprozessor erfolgt über wpantund über eine serielle Schnittstelle, in der Regel mit SPI oder UART über das Spinel-Protokoll.

Der Vorteil dieses Designs besteht darin, dass der Host mit höherer Leistung in den Ruhemodus wechseln kann, während das OpenThread-Gerät mit geringerer Leistung aktiv bleibt, um seinen Platz im Thread-Netzwerk zu erhalten. Da das SoC nicht an die Anwendungsschicht gebunden ist, sind die Entwicklung und das Testen von Anwendungen unabhängig vom OpenThread-Build.

Dieses Design ist für Gateway-Geräte oder Geräte mit anderen Verarbeitungsanforderungen wie IP-Kameras und Lautsprechern nützlich.

Spine-Protokoll

Spinel ist ein allgemeines Verwaltungsprotokoll, über das ein Hostgerät mit einem Coprozessor kommunizieren und verwalten kann. Spinel wurde ursprünglich für die Unterstützung von Thread-basierten NCPs entwickelt und verfügt über einen mehrschichtigen Ansatz, der es künftig leicht an andere Netzwerktechnologien anpassen lässt. Sie wird sowohl mit dem RCP- als auch mit dem NCP-Design verwendet.

Dieses Protokoll ist in OpenThread unter /src/lib/spinel enthalten. Zu Testzwecken können Sie das Python-Befehlszeilentool Pyspinel nutzen.

Weitere Informationen finden Sie im Internet-Entwurf für das Spinel Host-Controller Protocol.