Co-Prozessor-Designs werden von OpenThread unterstützt. Beim Erstellen von OpenThread-Beispielen wird für jedes Co-Prozessor-Design automatisch ein Firmware-Image erstellt. Weitere Informationen finden Sie unter Binaries.
Funk-Coprozessor (RCP)
In einem RCP-Design befindet sich der Kern von OpenThread auf dem Host-Prozessor mit nur einem minimalen MAC-Layer-Controller auf dem Gerät mit dem Thread-Radio. Der Host-Prozessor befindet sich in diesem Design in der Regel nicht im Ruhemodus, um die Zuverlässigkeit des Thread-Netzwerks zu gewährleisten.
Die Kommunikation zwischen dem RCP und dem Hostprozessor wird vom OpenThread-Daemon über eine SPI-Schnittstelle über das Spinn-Protokoll verwaltet.
Der Vorteil besteht darin, dass OpenThread die Ressourcen des leistungsstärkeren Prozessors nutzen kann.
Dieses Design eignet sich für Geräte, die weniger anfällig für Leistungsprobleme sind. Der Hostprozessor einer Videokamera ist beispielsweise immer eingeschaltet.
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 Thread-Border-Router erstellen
Netzwerk-Co-Prozessor (NCP)
Das standardmäßige NCP-Design hat Thread-Features auf dem SoC und führt die Anwendungsebene auf einem Host-Prozessor aus, der normalerweise leistungsfähiger ist, aber einen höheren Energiebedarf hat als das OpenThread-Gerät.
Die Kommunikation zwischen dem NCP und dem Host-Prozessor wird von wpantund
über eine serielle Schnittstelle verwaltet, die normalerweise mit SPI oder UART über das Spinel-Protokoll läuft.
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 seine Position im Thread-Netzwerk beizubehalten. Da das SoC nicht an die Anwendungsebene gebunden ist, sind die Entwicklung und das Testen von Anwendungen unabhängig vom OpenThread-Build.
Dieses Design eignet sich für Gateway-Geräte oder Geräte mit anderen Verarbeitungsanforderungen wie IP-Kameras und Lautsprechern.
Spine-Protokoll
Spinel ist ein allgemeines Verwaltungsprotokoll, mit dem ein Hostgerät mit einem Koprozessor kommunizieren und diese verwalten kann. Spinel wurde ursprünglich für die Unterstützung von Thread-basierten NCPs entwickelt und bietet einen mehrschichtigen Ansatz, mit dem es sich in Zukunft problemlos an andere Netzwerktechnologien anpassen lässt. Es wird sowohl mit dem RCP- als auch dem NCP-Design verwendet.
Dieses Protokoll ist in OpenThread unter /src/lib/spinel
enthalten. Ein Python-CLI-Tool namens Pyspinel ist zu Testzwecken verfügbar.
Weitere Informationen finden Sie im Internetentwurf für das Spinel-Host-Controller-Protokoll.