Plates-formes

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

Consultez la page Fournisseurs de recherche pour obtenir une liste consultable de tous les ports de communauté et plates-formes compatibles avec les fournisseurs.

Assistance

La compatibilité de chaque plate-forme varie au fil du temps. Certaines plateformes sont marquées avec le niveau actuel de support 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 offrant une "compatibilité limitée".

Niveau d'assistanceDescription
Compatible 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émonstrations et nos ateliers de programmation.
Prise en charge limitée Ces plates-formes n'ont pas été entièrement testées et certaines fonctionnalités clés peuvent manquer.
Modules non compatibles Non pris en charge pour le moment 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 sur FreeRTOS, RIOT-OS, Zephyr OS, Linux et macOS.

La nature portable d’OpenThread ne fait aucune hypothèse sur les fonctionnalités de la plateforme. OpenThread fournit les hooks pour utiliser des fonctionnalités radio et crypto améliorées, réduisant ainsi les exigences système telles que la mémoire, le code et les cycles de calcul. Cela peut se faire par plate-forme, tout en conservant la possibilité de passer à une configuration standard par défaut.

OpenThread dispose d'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 de chaînes d'outils populaires telles que IAR et Visual Studio.

Conceptions de plateforme

OpenThread prend en charge les conceptions de système sur puce (SoC) et de coprocesseur 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 application s’exécute sur un processeur hôte et communique avec OpenThread via une connexion série utilisant un protocole de contrôleur hôte standardisé 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 SoC OT

Dans cette conception, la couche 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 du SoC le plus couramment utilisée pour les appareils finaux. Comme il est hautement intégré dans 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)

Architecture SoC multiple pour OT

Lorsqu'un SoC possède plusieurs signaux radio, tels que 802.15.4 et Wi-Fi, ou 802.15.4 et Bluetooth à basse consommation (BLE), la couche application et OpenThread continuent de s'exécuter 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 coprocesseur radio (RCP) et de coprocesseur de réseau (NCP). Pour en savoir plus, consultez la page Conceptions de co-processeurs.

Problèmes liés à la plate-forme ouverte

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