Design per co-processore

I progetti di co-processore sono supportati da OpenThread. Quando crei esempi di OpenThread, viene creata automaticamente un'immagine del firmware per ogni progetto co-processore. Per ulteriori informazioni, consulta la sezione Binari.

Co-processore radio (RCP)

Architettura OT RCP

In un design RCP, il nucleo di OpenThread risiede nel 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 progetto, in parte per garantire l'affidabilità della rete Thread.

La comunicazione tra RCP e processore host è gestita da OpenThread Daemon tramite un'interfaccia SPI sul protocollo Spinel.

Il vantaggio qui è che OpenThread può utilizzare le risorse del 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.

Il router di confine OpenThread supporta un design RCP. Per ulteriori informazioni, consulta Router di confine OpenThread.

Per creare un RCP, consulta i seguenti codelab:

Crea una rete Thread con nRF52840 Router Border Thread

Co-processore di rete (NCP)

Architettura OT NCP

Il design standard di NCP presenta funzionalità Thread sul SoC ed esegue il livello dell'applicazione su un processore host, che in genere è più capace (ma ha esigenze di potenza maggiori) rispetto al dispositivo OpenThread.

La comunicazione tra NCP e processore host è gestita da wpantund tramite un'interfaccia seriale, in genere tramite SPI o UART, tramite il protocollo Spinel.

Il vantaggio di questo design è che l'host di potenza superiore può dormire mentre il dispositivo OpenThread a potenza inferiore rimane attivo per mantenere il suo posto nella rete Thread. Inoltre, poiché il SoC non è legato al livello di applicazione, lo sviluppo e il test delle applicazioni sono indipendenti dalla build di OpenThread.

Questa progettazione è utile per i dispositivi gateway o i dispositivi che hanno altre richieste di elaborazione come telecamere IP e speaker.

Protocollo Spinel

Spinel è un protocollo di gestione generale che consente a un dispositivo host di comunicare e gestire un co-processore. Progettato inizialmente per supportare NCP basati su thread, Spinel è stato progettato con un approccio a più livelli che consente di adattarsi facilmente ad altre tecnologie di rete in futuro. Viene utilizzato con i progetti RCP e NCP.

Questo protocollo è incluso in OpenThread su /src/lib/spinel. Uno strumento dell'interfaccia a riga di comando Python chiamato Pyspinel è disponibile per scopi di test.

Per ulteriori informazioni, consulta la Internet-Bozza per il protocollo Spinel Host-Controller.