Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Piattaforme

OpenThread rilasciato da Google è stato portato su diversi dispositivi e piattaforme dal team di OpenThread, dai fornitori di silicio e dalla community. Esempi di build per tutte le piattaforme portate sono inclusi nel repository OpenThread .

Vedere Ricerca fornitori per un elenco ricercabile di tutte le piattaforme supportate dai fornitori e le porte della comunità.

Supporto

Il supporto per ciascuna piattaforma varia nel tempo. Alcune piattaforme sono contrassegnate con l'attuale livello di supporto identificato dal team di OpenThread. Le piattaforme senza tag non sono state testate di recente e possono essere considerate come dotate di "supporto limitato".

Livello di supporto Descrizione
Supportato Supporto completo 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'uso nelle nostre demo e Codelab.
Supporto limitato Queste piattaforme non sono state completamente testate e potrebbero mancare alcune funzionalità chiave.
Non supportato Non è attualmente supportato e potrebbe avere problemi durante l'esecuzione di OpenThread. Utilizzare a proprio rischio.

Architettura di sistema

Architettura del sistema OT

OpenThread è progettato pensando alla portabilità e alla flessibilità. Il codice è portatile C / C ++ (C99 e C ++ 03) che è indipendente dall'architettura del sistema a causa di uno stretto livello di astrazione. Questo livello di astrazione significa che OpenThread può essere eseguito su bare metal o su un sistema operativo. Ad oggi, OpenThread ha dimostrato di funzionare su FreeRTOS, RIOT-OS, Zephyr OS, Linux e macOS.

La natura portatile 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 per piattaforma, pur mantenendo la capacità di impostazione predefinita su una configurazione standard.

OpenThread ha un sistema di compilazione configurabile con il quale uno sviluppatore può abilitare o disabilitare le funzionalità secondo necessità. Oltre alla toolchain GNU predefinita, il sorgente è progettato per funzionare con una serie di altre toolchain popolari come IAR e Visual Studio.

Design della piattaforma

OpenThread supporta sia i progetti System-on-Chip (SoC) sia i progetti di co-processore di rete (NCP).

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

Un progetto NCP è dove il livello dell'applicazione viene eseguito su un processore host e comunica con OpenThread tramite una connessione seriale utilizzando un protocollo host-controller standard che chiamiamo Spinel . In questo design, OpenThread può essere eseguito sulla radio o sul processore host.

Chip singolo, solo thread (SoC)

Architettura OT SoC

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

Questo è il design SoC più comunemente utilizzato per i dispositivi finali. Poiché è altamente integrato in un singolo silicio, ha il costo più basso e il minor consumo energetico.

Chip singolo, interfaccia multipla (SoC)

OT Architettura SoC multipla

Quando un SoC ha più radio, come 802.15.4 e Wi-Fi o 802.15.4 e Bluetooth Low Energy (BLE), il livello dell'applicazione e OpenThread continuano a funzionare sullo stesso processore. Nella progettazione a più interfacce, OpenThread sfrutta lo stack IPv6 di terze parti condiviso tramite un'interfaccia di datagramma IPv6 non elaborata.

Co-processore di rete (NCP)

Architettura OT NCP

Il design standard NCP ha funzionalità Thread sul SoC ed esegue il livello dell'applicazione su un processore host, che in genere è più capace (ma ha maggiori richieste di alimentazione) rispetto al dispositivo OpenThread. Il processore host comunica con il dispositivo OpenThread tramite un'interfaccia seriale (tipicamente SPI o UART) sul protocollo Spinel.

Il vantaggio di questo design è che l'host più potente può dormire mentre il dispositivo OpenThread a bassa potenza rimane attivo per mantenere il suo posto nella rete Thread. E poiché il SoC non è legato al livello dell'applicazione, lo sviluppo e il test delle applicazioni è indipendente dalla build OpenThread.

Questo design è utile per dispositivi gateway o dispositivi che hanno altre esigenze di elaborazione come telecamere IP e altoparlanti.

Co-processore radio (RCP)

Architettura OT RCP

Questa è una variante del design NCP in cui il nucleo di OpenThread risiede sul processore host con solo un "controller" di livello MAC minimo sul dispositivo con la radio Thread. Il processore host in genere non dorme in questo design, in parte per garantire l'affidabilità della rete Thread.

Il vantaggio qui è che OpenThread può utilizzare le risorse sul processore più potente.

Questo design è utile per i dispositivi meno sensibili ai vincoli di alimentazione. Ad esempio, il processore host di una videocamera è sempre acceso per elaborare il video.

Problemi con la piattaforma aperta

I seguenti problemi sono attualmente aperti per le piattaforme OpenThread: