Modèles de co-processeurs

Les conceptions de coprocesseur sont compatibles avec OpenThread. Lorsque vous créez des exemples OpenThread, une image de micrologiciel est automatiquement créée pour chaque conception de coprocesseur. Pour en savoir plus, consultez Binaires.

Coprocesseur radio (RCP)

Architecture OT RCP

Dans une conception RCP, le cœur d'OpenThread réside sur le processeur hôte avec uniquement un "contrôleur" de couche MAC minimal sur l'appareil avec la radio Thread. Dans cette conception, le processeur hôte ne se met généralement pas en veille, en partie pour assurer la fiabilité du réseau Thread.

La communication entre le RCP et le processeur hôte est gérée par OpenThread Daemon via une interface SPI sur le protocole Spinel.

L'avantage ici est qu'OpenThread peut utiliser les ressources du processeur le plus puissant.

Cette conception est utile pour les appareils moins sensibles aux contraintes d'alimentation. Par exemple, le processeur hôte d'une caméra vidéo est toujours activé pour traiter les vidéos.

OpenThread Border Router est compatible avec une conception RCP. Pour en savoir plus, consultez OpenThread Border Router.

Pour créer un RCP, consultez les ateliers de programmation suivants :

Créer un réseau Thread avec nRF52840 Routeur de bordure Thread

Coprocesseur réseau (NCP)

Architecture OT NCP

La conception NCP standard comporte des fonctionnalités Thread sur le SoC et exécute la couche application sur un processeur hôte, qui est généralement plus performant (mais plus gourmand en énergie) que l'appareil OpenThread.

L'avantage de cette conception est que l'hôte à puissance élevée peut se mettre en veille tandis que l'appareil OpenThread à faible puissance reste actif pour conserver sa place dans le réseau Thread. Comme le SoC n'est pas lié à la couche application, le développement et le test des applications sont indépendants de la compilation OpenThread.

Cette conception est utile pour les passerelles ou les appareils qui ont d'autres exigences de traitement, comme les caméras IP et les enceintes.

Protocole Spinel

Spinel est un protocole de gestion général qui permet à un appareil hôte de communiquer avec un coprocesseur et de le gérer. Spinel a été initialement conçu pour prendre en charge les NCP basés sur Thread. Il a été conçu selon une approche par couches qui lui permet d'être facilement adapté à d'autres technologies réseau à l'avenir. Il est utilisé avec les conceptions RCP et NCP.

Ce protocole est inclus dans OpenThread à l'adresse /src/lib/spinel. Un outil Python CLI appelé Pyspinel est disponible à des fins de test.

Pour en savoir plus, consultez l'ébauche Internet du protocole Spinel Host-Controller.