Plattformen

OpenThread, das von Google veröffentlicht wurde, wurde vom OpenThread-Team, Silicon-Anbietern und der Community auf verschiedene Geräte und Plattformen portiert. Build-Beispiele für alle portierten Plattformen finden Sie im OpenThread-Repository.

Unter Anbieter suchen finden Sie eine durchsuchbare Liste aller anbieterunterstützten Plattformen und Community-Ports.

Support

Die Unterstützung variiert je nach Plattform. Einige Plattformen sind mit der aktuellen Unterstützungsstufe gekennzeichnet, die vom OpenThread-Team festgelegt wurde. Nicht getaggte Plattformen wurden in letzter Zeit nicht getestet und gelten als "eingeschränkter Support".

SupportstufeBeschreibung
Unterstützt Vollständige und grundlegende Unterstützung sowie jede zertifizierte Thread-Komponente, die OpenThread verwendet. Viele dieser Plattformen wurden vom OpenThread-Team getestet und verwendet und für die Verwendung in unseren Demos und Codelabs empfohlen.
Eingeschränkte Unterstützung Diese Plattformen wurden nicht vollständig getestet und es fehlen möglicherweise einige wichtige Funktionen.
Nicht unterstützt Wird derzeit nicht unterstützt, und es können Probleme beim Ausführen von OpenThread auftreten. Die Verwendung erfolgt auf eigenes Risiko.

Systemarchitektur

OT-Systemarchitektur

OpenThread wurde im Hinblick auf Portabilität und Flexibilität entwickelt. Der Code ist portierbares C/C++ (C99 und C++11), das aufgrund einer schmalen Abstraktionsschicht systemarchitekturunabhängig ist. Diese Abstraktionsschicht bedeutet, dass OpenThread entweder auf Bare-Metal-Lösung oder einem Betriebssystem ausgeführt werden kann. Bis heute kann OpenThread unter FreeRTOS, RIOT-OS, Zephyr OS, Linux und macOS ausgeführt werden.

Die portablen Eigenschaften von OpenThread machen keine Annahmen über Plattformfunktionen. OpenThread stellt die Hooks bereit, um erweiterte Funk- und Kryptofunktionen zu nutzen und Systemanforderungen wie Speicher, Code und Rechenzyklen zu reduzieren. Dies kann pro Plattform erfolgen, ohne die Standardkonfiguration zu verwenden.

OpenThread verfügt über ein konfigurierbares Build-System, mit dem ein Entwickler Features nach Bedarf aktivieren oder deaktivieren kann. Neben der Standard-GNU-Toolchain ist die Quelle auch für die Arbeit mit einer Reihe anderer beliebter Toolchains wie IAR und Visual Studio ausgelegt.

Plattformdesigns

OpenThread unterstützt sowohl System-on-Chip (SoC) als auch Netzwerk-Co-Prozessor-Designs (NCP).

Ein SoC ist eine Single-Chip-Lösung mit RFIC (802.15.4 im Fall von Thread) und Prozessor, bei der OpenThread und die Anwendungsebene auf dem lokalen Prozessor ausgeführt werden.

Bei einem NCP-Design wird die Anwendungsschicht auf einem Host-Prozessor ausgeführt und kommuniziert über eine serielle Verbindung mit OpenThread. Dazu wird ein standardisiertes Host-Controller-Protokoll verwendet, das wir Spinel nennen. Bei diesem Design kann OpenThread entweder auf dem Funkgerät oder auf dem Host-Prozessor ausgeführt werden.

Single-Chip, Nur Thread (SoC)

OT-SoC-Architektur

Bei diesem Design werden die Anwendungsschicht und OpenThread auf demselben Prozessor ausgeführt. Die Anwendung verwendet direkt die OpenThread-APIs und den IPv6-Stack.

Dies ist das am häufigsten verwendete SoC-Design für Endgeräte. Da es hochgradig in ein einzelnes Silizium integriert ist, hat es die niedrigsten Kosten und den niedrigsten Stromverbrauch.

Single-Chip, mehrere Schnittstellen (SoC)

OT Multiple-SoC-Architektur

Wenn ein SoC über mehrere Funkschnittstellen verfügt, z. B. 802.15.4 und WLAN oder 802.15.4 und Bluetooth Low Energy (BLE), werden die Anwendungsschicht und OpenThread weiterhin auf demselben Prozessor ausgeführt. Beim Design mit mehreren Schnittstellen nutzt OpenThread den gemeinsam genutzten IPv6-Stack eines Drittanbieters über eine unformatierte IPv6-Datagrammschnittstelle.

Designs für Mitverarbeiter

OpenThread unterstützt die Designs „Radio Co-Processor“ (RCP) und „Network Co-Processor“ (NCP). Weitere Informationen finden Sie unter Designs für Mitverarbeiter.

Probleme mit der offenen Plattform

Die folgenden Probleme sind derzeit für OpenThread-Plattformen offen: