Plates-formes

OpenThread publié par Google a été porté sur plusieurs appareils et plates-formes par l'équipe OpenThread, les fournisseurs de silicium et la communauté. Des exemples de compilation pour toutes les plates-formes portées sont inclus dans le dépôt OpenThread.

Pour obtenir la liste des plates-formes compatibles et des ports communautaires, consultez la page Fournisseurs de recherche.

Assistance

La compatibilité de chaque plate-forme varie au fil du temps. Certaines plates-formes sont associées au niveau d'assistance actuellement identifié par l'équipe OpenThread. Les plates-formes non taguées n'ont pas été testées récemment et peuvent être considérées comme présentant une "compatibilité limitée".

Niveau d'assistanceDescription
Compatible Une assistance complète et de base, ainsi que tout composant certifié de thread utilisant OpenThread Un grand nombre de ces plates-formes ont été testées et utilisées par l'équipe OpenThread. Leur utilisation est recommandée dans nos démos et Codelabs.
Prise en charge limitée Ces plates-formes n'ont pas été entièrement testées et peuvent ne pas comporter certaines fonctionnalités clés.
Modules non compatibles Non compatible actuellement et peut rencontrer des problèmes lors de l'exécution d'OpenThread. Vous les utilisez à vos propres risques.

Architecture du système

Architecture du système OT

OpenThread est conçu dans un souci de portabilité et de flexibilité. Le code est portable C/C++ (C99 et C++11), qui est indépendant de l'architecture du système en raison d'une couche d'abstraction étroite. Cette couche d'abstraction signifie qu'OpenThread peut s'exécuter sur un système nu ou sur un système d'exploitation. À ce jour, il a été démontré qu'OpenThread fonctionnait sous FreeRTOS, RIOT-OS, Zephyr OS, Linux et macOS.

La nature portable d'OpenThread ne fait aucune hypothèse sur les fonctionnalités de la plate-forme. OpenThread fournit les points d'ancrage pour utiliser des fonctionnalités radio et crypto améliorées, réduisant ainsi la configuration système requise, telle que la mémoire, le code et les cycles de calcul. Pour chaque plate-forme, vous pouvez conserver la configuration par défaut.

OpenThread a un système de compilation configurable avec lequel un développeur peut activer ou désactiver des fonctionnalités selon les besoins. Au-delà de la chaîne d’outils GNU par défaut, la source est conçue pour fonctionner avec un certain nombre d’autres chaînes d’outils populaires telles que l’IAR et Visual Studio.

Conception de plates-formes

OpenThread prend en charge les conceptions de système sur puce (SoC) et de coprocesseur de réseau (NCP).

Un SoC est une solution à puce unique qui combine le RFIC (802.15.4 dans le cas de Thread) et un processeur, où OpenThread et la couche d'application s'exécutent sur le processeur local.

Dans la conception NCP, la couche d’application s’exécute sur un processeur hôte et communique avec OpenThread via une connexion série utilisant un protocole de contrôleur d’hôte normalisé, que nous appelons Spinel. Dans cette conception, OpenThread peut s’exécuter sur le processeur radio ou hôte.

Puce unique, thread uniquement (SoC)

Architecture OT SoC

Dans cette conception, la couche d'application et OpenThread s'exécutent sur le même processeur. L'application utilise directement les API OpenThread et la pile IPv6.

Il s'agit de la conception SoC la plus couramment utilisée pour les appareils finaux. Parce qu'il est fortement intégré à un seul silicium, il présente le coût le plus bas et la consommation d'énergie la plus faible.

Puce unique, interface multiple (SoC)

OT SoC Architecture Multiple

Lorsqu'un SoC comporte plusieurs signaux radio, tels que 802.15.4 et Wi-Fi, ou 802.15.4 et Bluetooth Low Energy (BLE), la couche d'application et OpenThread s'exécutent toujours sur le même processeur. Dans la conception à interfaces multiples, OpenThread exploite la pile IPv6 tierce partagée via une interface de datagramme IPv6 brute.

Conceptions de coprocesseurs

OpenThread prend en charge les conceptions de co-processeurs radio (RCP) et de co-processeur réseau (NCP). Pour en savoir plus, consultez la page Conceptions des co-processeurs.

Problèmes de plate-forme ouverte

Les problèmes suivants sont actuellement ouverts pour les plates-formes OpenThread :