Piattaforme

La funzionalità OpenThread rilasciata da Google è stata trasferita su diversi dispositivi e piattaforme da parte del team OpenThread, dei fornitori di chip di silicio e della community. Gli esempi di build per tutte le piattaforme trasferite sono inclusi nel repository OpenThread.

Consulta Fornitori di servizi di ricerca per un elenco ricercabile di tutte le piattaforme e le porte della community supportate dai fornitori.

Assistenza

Il supporto per ogni piattaforma varia nel tempo. Alcune piattaforme sono codificate con l'attuale livello di assistenza identificato dal team di OpenThread. Le piattaforme senza tag non sono state testate di recente e potrebbero essere considerate di tipo "Assistenza limitata".

Livello di assistenzaDescrizione
Supportato Assistenza completa e di base, nonché qualsiasi componente certificato Thread che utilizza OpenThread. Molte di queste piattaforme sono state testate e utilizzate dal team di OpenThread e sono consigliate per l'utilizzo nelle demo e nei codelab.
Assistenza limitata Queste piattaforme non sono state completamente testate e potrebbero non contenere alcune funzionalità chiave.
Non supportato Attualmente non supportato e potrebbe presentare problemi con OpenThread. Utilizzalo a tuo rischio.

Architettura di sistema

Architettura di sistema OT

OpenThread è progettato per la portabilità e la flessibilità. Il codice è C/C++ (C99 e C++11) portatile indipendente dal sistema a causa di un livello di astrazione ristretto. Questo livello di astrazione consente di eseguire OpenThread su Bare Metal o su un sistema operativo. Finora è stato dimostrato che OpenThread può essere eseguito su FreeRTOS, RIOT-OS, Zephyr OS, Linux e macOS.

La natura portatile di OpenThread non presume ipotesi sulle funzionalità della piattaforma. OpenThread fornisce gli hook per l'utilizzo di funzionalità radio e crittografiche avanzate, riducendo i requisiti di sistema, come memoria, codice e cicli di calcolo. È possibile farlo per piattaforma, mantenendo la possibilità di eseguire una configurazione standard per impostazione predefinita.

OpenThread dispone di un sistema di compilazione configurabile con cui uno sviluppatore può attivare o disattivare funzionalità in base alle necessità. Oltre alla catena degli strumenti GNU predefinita, la sorgente è progettata per essere utilizzata con molte altre popolari strumenti come IAR e Visual Studio.

Progettazione di piattaforme

OpenThread supporta i design SoC (System-on-Chip) e Coprocessore di rete.

Un SoC è una soluzione a chip singolo che ha il RFIC combinato (802.15.4 nel caso di Thread) e il processore, in cui OpenThread e il livello dell'applicazione vengono eseguiti sul processore locale.

In un progetto NCP, il livello dell'applicazione viene eseguito su un processore host e comunica con OpenThread tramite una connessione seriale utilizzando un protocollo standard di controller host chiamato Spinel. In questo progetto, OpenThread può essere eseguito sul processore radio o host.

Chip singolo, solo thread (SoC)

Architettura SoC OT

In questo progetto, il livello di applicazione e OpenThread vengono eseguiti sullo stesso processore. L'applicazione utilizza direttamente le API OpenThread e lo stack IPv6.

Si tratta del design del SoC più comunemente usato per i dispositivi finali. Grazie all'elevata integrazione in un singolo silicio, ha il costo e il consumo energetico più bassi.

Chip singolo, interfaccia multipla (SoC)

Architettura di SoC multipli OT

Quando un SoC ha più radio, come 802.15.4 e Wi-Fi, o 802.15.4 e Bluetooth Low Energy (BLE), il livello di applicazione e OpenThread vengono comunque eseguiti sullo stesso processore. Nel design con più interfacce, OpenThread sfrutta lo stack IPv6 di terze parti condiviso tramite un'interfaccia datagram IPv6 non elaborata.

Progettazioni per co-processori

OpenThread supporta i progetti Radio Co-Processor (RCP) e Network Co-Processor (NCP). Per ulteriori informazioni, consulta Progettazioni per co-responsabili.

Problemi con la piattaforma aperta

I seguenti problemi sono attualmente aperti per le piattaforme OpenThread: