Designs de coprocessadores

Os designs de coprocessadores 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 de RCP de OT

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

A comunicação entre o RCP e o processador host é gerenciada pelo daemon OpenThread (link em inglês) por uma interface SPI no protocolo Spinel.

A vantagem aqui é que o OpenThread pode usar os recursos do processador mais potente.

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

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

Para criar um RCP, consulte os seguintes codelabs:

Criar uma rede Thread com nRF52840 Roteador de borda do Thread

Coprocessador de rede (NCP)

Arquitetura do NCP de OT

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

A vantagem desse design é que o host de maior potência pode entrar em modo de suspensão enquanto o dispositivo OpenThread de menor potência permanece ativo para manter seu lugar na rede Thread. Como o SoC não está vinculado à camada de 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 de espinélio

O Spinel é um protocolo de gerenciamento geral que permite que um dispositivo host se comunique com um coprocessador e o gerencie. Inicialmente projetado para oferecer suporte a NCPs baseados em linhas de execução, o Spinel foi criado com uma abordagem em camadas que permite adaptá-lo facilmente 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 de CLI Python chamada Pyspinel está disponível para fins de teste.

Para mais informações, consulte o Internet-Draft para o protocolo Host-Controller do Spinel.