I progetti del coprocessore sono supportati da OpenThread. Quando crei esempi di OpenThread, viene creata automaticamente un'immagine firmware per ogni progettazione di co-processori. Per ulteriori informazioni, fai riferimento a Binari.
Co-processore radio (RCP)
In un progetto RCP, il core di OpenThread risiede sul processore host con solo un "controller" di livello MAC minimo sul dispositivo con la radio Thread. In genere, il processore host non dorme in questo design, anche per garantire l'affidabilità della rete Thread.
La comunicazione tra RCP e il processore host è gestita da OpenThread Daemon tramite un'interfaccia SPI sul protocollo Spinel.
Il vantaggio è che OpenThread può utilizzare le risorse sul processore più potente.
Questa progettazione è utile per i dispositivi meno sensibili ai vincoli di potenza. Ad esempio, il processore host su una videocamera è sempre attivo per poter elaborare i video.
Il router OpenThread Border supporta una progettazione RCP. Per ulteriori informazioni, consulta Router di confine OpenThread.
Per creare un RCP, consulta i seguenti codelab:
Crea una rete Thread con nRF52840 Router di confine Thread
Co-processore di rete (NCP)
Il design NCP standard ha funzionalità Thread sul SoC ed esegue il livello di 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 il processore host è gestita da wpantund
tramite un'interfaccia seriale, in genere utilizzando SPI o UART, tramite il protocollo Spinel.
Il vantaggio di questo progetto è che l'host ad alta potenza può dormire mentre il dispositivo OpenThread a basso consumo rimane attivo per mantenere il suo posto nella rete Thread. Dal momento che il SoC non è legato al livello delle applicazioni, lo sviluppo e il test delle applicazioni sono indipendenti dalla build OpenThread.
Questa progettazione è utile per i dispositivi gateway o per i dispositivi che hanno altre esigenze di elaborazione, come videocamere e speaker IP.
Protocollo di Spinel
Spinel è un protocollo di gestione generale per consentire a un dispositivo host di comunicare e gestire un co-processore. Inizialmente progettato per supportare gli NCP basati su thread, Spinel è stato progettato con un approccio a più livelli che consente di adattarlo facilmente ad altre tecnologie di rete in futuro. Viene utilizzata con le strutture RCP e NCP.
Questo protocollo è incluso con OpenThread nella pagina
/src/lib/spinel
. È disponibile uno strumento dell'interfaccia a riga di comando di Python chiamato Pyspinel.
Per saperne di più, consulta la bozza Internet per il protocollo controller host di Spinel.