Les conceptions de coprocesseurs sont compatibles avec OpenThread. Lorsque vous créez des exemples OpenThread, une image de micrologiciel pour chaque conception de coprocesseur est créée automatiquement. Pour en savoir plus, consultez la section Binaires.
Coprocesseur de radio (RCP)
Dans une conception RCP, le cœur d'OpenThread réside sur le processeur hôte avec uniquement une "contrôleur" de couche MAC minimale sur l'appareil équipé de la radio Thread. Le processeur hôte ne dort généralement pas dans cette conception, en partie pour garantir 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 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 la vidéo.
Le routeur de bordure OpenThread est compatible avec la conception RCP. Pour en savoir plus, consultez Routeur de bordure OpenThread.
Pour créer un RCP, reportez-vous aux ateliers de programmation suivants:
Créer un réseau Thread avec nRF52840 Routeur de bordure Thread
Coprocesseur de réseau (NCP)
La conception NCP standard comporte des fonctionnalités Thread sur le SoC et exécute la couche d'application sur un processeur hôte, qui est généralement plus capable (mais nécessite plus de puissance) que l'appareil OpenThread.
La communication entre le NCP et le processeur hôte est gérée par wpantund
via une interface série, généralement via SPI ou UART, via le protocole Spinel.
L'avantage de cette conception est que l'hôte à haute puissance peut dormir tandis que l'appareil OpenThread à faible puissance reste actif pour conserver sa place dans le réseau Thread. Et comme le SoC n'est pas lié à la couche d'application, le développement et le test des applications sont indépendants de la version OpenThread.
Cette conception est utile pour les périphériques de passerelle ou les appareils ayant d'autres exigences de traitement, telles que les caméras IP et les haut-parleurs.
Protocole Spinel
Spinel est un protocole de gestion général permettant à un appareil hôte de communiquer et de gérer un coprocesseur. Initialement conçu pour être compatible avec les NCP basés sur Thread, Spinel a été conçu avec une approche multicouche qui permet de l'adapter facilement à d'autres technologies réseau à l'avenir. Il est utilisé avec les conceptions RCP et NCP.
Ce protocole est inclus avec OpenThread sur /src/lib/spinel
. Un outil CLI Python appelé Pyspinel est disponible à des fins de test.
Pour en savoir plus, consultez le document Internet-Draft for the Spinel Host-Controller Protocol.