Co-Prozessor-Designs

Co-Prozessor-Designs werden von OpenThread unterstützt. Beim Erstellen von OpenThread-Beispielen wird automatisch ein Firmware-Image für jedes Co-Prozessor-Design erstellt. Weitere Informationen finden Sie unter Binärdateien.

Radio Co-Processor (RCP)

OT RCP-Architektur

Bei einem RCP-Design befindet sich der Kern von OpenThread auf dem Hostprozessor. Auf dem Gerät mit dem Thread-Funkmodul ist nur ein minimaler MAC-Layer-Controller vorhanden. Der Hostprozessor befindet sich in diesem Design in der Regel nicht im Ruhemodus, was unter anderem die Zuverlässigkeit des Thread-Netzwerks gewährleisten soll.

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

Der Vorteil hierbei ist, dass OpenThread die Ressourcen des leistungsstärkeren Prozessors nutzen kann.

Dieses Design ist nützlich für Geräte, die weniger empfindlich auf Strombegrenzungen reagieren. Der Hostprozessor einer Videokamera ist beispielsweise immer aktiv, um Videos zu verarbeiten.

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:

Thread-Netzwerk mit nRF52840 erstellen Thread-Border-Router

Network Co-Processor (NCP)

OT NCP-Architektur

Das Standard-NCP-Design hat Thread-Funktionen auf dem SoC und führt die Anwendungsschicht auf einem Hostprozessor aus, der in der Regel leistungsfähiger ist (aber einen höheren Stromverbrauch hat) als das OpenThread-Gerät.

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

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

Spinel-Protokoll

Spinel ist ein allgemeines Verwaltungsprotokoll, mit dem ein Hostgerät mit einem Coprozessor kommunizieren und diesen verwalten kann. Spinel wurde ursprünglich für die Unterstützung von Thread-basierten NCPs entwickelt, ist aber so konzipiert, dass es sich in Zukunft problemlos an andere Netzwerktechnologien anpassen lässt. Es wird sowohl für RCP- als auch für NCP-Designs verwendet.

Dieses Protokoll ist in OpenThread unter /src/lib/spinel enthalten. Für Testzwecke ist ein Python-Befehlszeilentool namens Pyspinel verfügbar.

Weitere Informationen finden Sie im Internet-Draft für das Spinel Host-Controller-Protokoll.