Designs für Co-Prozessoren

Co-Processor-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-Prozessor (RCP)

OT RCP-Architektur

Bei einem RCP-Design befindet sich der Kern von OpenThread auf dem Hostprozessor und es gibt nur einen minimalen MAC-Layer-Controller auf dem Gerät mit dem Thread-Radio. Der Hostprozessor ist in diesem Design normalerweise nicht inaktiv, um die Zuverlässigkeit des Thread-Netzwerks zu gewährleisten.

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

Der Vorteil von OpenThread besteht darin, dass OpenThread die Ressourcen des leistungsfähigeren Prozessors nutzen kann.

Dieses Design ist nützlich für Geräte, die weniger anfällig für Leistungseinschränkungen sind. Beispielsweise ist der Hostprozessor einer Videokamera immer eingeschaltet, um Videos zu verarbeiten.

Der 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 Sie ein Thread-Netzwerk mit dem nRF52840- Thread Border Router.

Netzwerk-Co-Prozessor (NCP)

OT NCP-Architektur

Das Standard-NCP-Design hat Thread-Funktionen auf dem SoC und führt die Anwendungsebene auf einem Hostprozessor aus. Dieser ist in der Regel leistungsstärker (ist aber höher) als das OpenThread-Gerät.

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

Der Vorteil dieses Designs besteht darin, dass der Host mit höherer Leistung inaktiv werden kann, während das OpenThread-Gerät mit geringerer Leistung aktiv bleibt, um seinen Platz im Thread-Netzwerk beizubehalten. Da der SoC nicht an die Anwendungsebene 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, die andere Verarbeitungsanforderungen wie IP-Kameras und Lautsprecher haben.

Spinel-Protokoll

Spinel ist ein allgemeines Verwaltungsprotokoll, mit dem ein Hostgerät mit einem Co-Prozessor kommunizieren und verwalten kann. Spinel wurde anfangs für die Unterstützung threadbasierter NCPs entwickelt. Es wurde mit einem mehrschichtigen Ansatz entwickelt, mit dem es künftig einfach an andere Netzwerktechnologien angepasst werden kann. Es wird sowohl mit dem RCP- als auch mit dem NCP-Design verwendet.

Dieses Protokoll ist in OpenThread unter /src/lib/spinel enthalten. Für Tests steht ein Python-Befehlszeilentool namens Pyspinel zur Verfügung.

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