La release OpenThread è stata trasferita su diversi dispositivi e piattaforme dal team OpenThread, dai fornitori di silicon e dalla community. Gli esempi di build per tutte le piattaforme trasferite sono inclusi nel repository OpenThread.
Consulta Ricerca di fornitori per un elenco in cui è possibile eseguire ricerche di tutte le piattaforme supportate dai fornitori e le porte della community.
Assistenza
Il supporto per ciascuna piattaforma varia nel tempo. Alcune piattaforme sono contrassegnate con il livello attuale di supporto identificato dal team OpenThread. Le piattaforme senza tag non sono state testate di recente e potrebbero essere considerate a "supporto limitato".
Livello di assistenza | Descrizione |
---|---|
Supporto completo e di base, nonché qualsiasi componente certificato Thread che utilizzi OpenThread. Molte di queste piattaforme sono state testate e utilizzate dal team OpenThread e sono consigliate per l'utilizzo nelle nostre demo e nei nostri codelab. | |
Queste piattaforme non sono state completamente testate e potrebbero non avere alcune funzionalità chiave. | |
Funzionalità attualmente non supportata e potrebbe presentare problemi durante l'esecuzione di OpenThread. L'utilizzo è a tuo rischio. |
Architettura di sistema
OpenThread è progettato pensando alla portabilità e alla flessibilità. Il codice è portabile in C/C++ (C99 e C++11), indipendente dall'architettura del 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 è compatibile con FreeRTOS, RIOT-OS, Zephyr OS, Linux e macOS.
La natura portabile di OpenThread non fa supposizioni sulle funzionalità della piattaforma. OpenThread fornisce gli hook per utilizzare funzionalità radio e crittografiche avanzate, riducendo i requisiti di sistema come memoria, codice e cicli di calcolo. Questa operazione può essere eseguita a seconda della piattaforma, mantenendo la possibilità di passare a una configurazione standard.
OpenThread dispone di un sistema di build configurabile con il quale uno sviluppatore può abilitare o disabilitare le funzionalità in base alle esigenze. Oltre alla toolchain GNU predefinita, l'origine è progettata per funzionare con una serie di altre toolchain popolari, come IAR e Visual Studio.
Progettazioni della piattaforma
OpenThread supporta le progettazione sia di system-on-chip (SoC) che di co-processore di rete (NCP).
Un SoC è una soluzione a chip singolo con la combinazione di RFIC (802.15.4 nel caso di Thread) e processore, in cui OpenThread e il livello dell'applicazione vengono eseguiti sul processore locale.
In una progettazione NCP, il livello dell'applicazione viene eseguito su un processore host e comunica con OpenThread tramite una connessione seriale utilizzando un protocollo standardizzato con controller host che chiamiamo Spinel. In questo design, OpenThread può essere eseguito sul processore radio o host.
A chip singolo, solo Thread (SoC)
In questa struttura, il livello dell'applicazione e OpenThread vengono eseguiti sullo stesso processore. L'applicazione utilizza direttamente le API OpenThread e lo stack IPv6.
Si tratta del design SoC più utilizzato per i dispositivi finali. Grazie all'elevata integrazione in un unico silicio, offre i costi più bassi e un consumo energetico più basso.
A chip singolo, interfaccia multipla (SoC)
Quando un SoC dispone di più segnali radio, come 802.15.4 e Wi-Fi oppure 802.15.4 e Bluetooth Low Energy (BLE), il livello 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 datagramma IPv6 non elaborata.
Progetti di co-processore
OpenThread supporta le strutture di co-processore (RCP) e di coprocessore di rete (NCP). Per ulteriori informazioni, consulta la sezione Design del co-responsabile.
Problemi relativi alla piattaforma aperta
I seguenti problemi sono attualmente aperti per le piattaforme OpenThread: