Designs de coprocessadores

Os designs de coprocessador são compatíveis com o OpenThread. Ao criar exemplos do OpenThread, uma imagem de firmware para cada design de coprocessador é criada automaticamente. Para mais informações, consulte Binários.

Coprocessador de rádio (RCP)

Arquitetura OT RCP

Em um design de RCP, o núcleo do OpenThread reside no processador host com apenas um "controlador" de camada MAC mínimo no dispositivo com o rádio Thread. O processador host geralmente não fica suspenso nesse design, em parte para garantir a confiabilidade da rede Thread.

A comunicação entre o RCP e o processador host é gerenciada pelo OpenThread Daemon usando uma interface SPI no protocolo Spinel.

A vantagem é que o OpenThread pode usar os recursos no processador mais poderoso.

Esse design é útil para dispositivos menos sensíveis a restrições de energia. Por exemplo, o processador host de uma câmera de vídeo está sempre ativado para processar vídeo.

O roteador de borda OpenThread é compatível com o design RCP. Para mais informações, consulte Roteador de borda do OpenThread.

Para criar um RCP, consulte os seguintes codelabs:

Crie uma rede com uma linha de execução com nRF52840 Roteador de borda Thread

Coprocessador de rede (NCP, na sigla em inglês)

Arquitetura de OT NCP

O design padrão do NCP tem recursos de linha de execução no SoC e executa a camada do aplicativo em um processador host, que normalmente é mais capaz (mas tem mais demandas de energia) do que o dispositivo OpenThread.

A comunicação entre o NCP e o processador host é gerenciada pelo wpantund por uma interface serial, geralmente usando SPI ou UART, com o protocolo Spinel.

A vantagem desse design é que o host de maior potência pode dormir enquanto o dispositivo OpenThread de menor potência permanece ativo para manter o lugar na rede Thread. Como o SoC não está vinculado à camada do aplicativo, o desenvolvimento e o teste de aplicativos são independentes do build do OpenThread.

Esse design é útil para dispositivos de gateway ou que têm outras demandas de processamento, como câmeras IP e alto-falantes.

Protocolo Spinel

O Spinel é um protocolo de gerenciamento geral para permitir que um dispositivo host se comunique com e gerencie um coprocessador. Inicialmente projetado para oferecer suporte a NCPs baseados em linhas de execução, o Spinel foi projetado com uma abordagem em camadas que permite a adaptação fácil a outras tecnologias de rede no futuro. Ele é usado com os designs RCP e NCP.

Esse protocolo está incluído no OpenThread em /src/lib/spinel. Uma ferramenta da CLI do Python chamada Pyspinel está disponível para fins de teste.

Para mais informações, consulte Internet-Draft do protocolo Spinel Host-Controller (link em inglês).