O OpenThread lançado pelo Google foi adaptado para vários dispositivos e plataformas pela equipe do OpenThread, por fornecedores de componentes eletrônicos e pela comunidade. Exemplos de build para todas as plataformas portadas estão incluídos no repositório OpenThread.
Consulte Pesquisar fornecedores para conferir uma lista pesquisável de todas as plataformas e portas da comunidade compatíveis com os fornecedores.
Suporte
A compatibilidade com cada plataforma varia com o tempo. Algumas plataformas são marcadas com o nível atual de suporte, conforme identificado pela equipe do OpenThread. Plataformas sem tag não foram testadas recentemente e podem ser consideradas com "Suporte limitado".
Nível do suporte | Descrição |
---|---|
Suporte completo e básico, bem como qualquer componente certificado pelo Thread que use o OpenThread. Muitas dessas plataformas foram testadas e usadas pela equipe do OpenThread e são recomendadas para uso em nossas demonstrações e codelabs. | |
Essas plataformas não foram totalmente testadas e podem não ter algumas funcionalidades importantes. | |
No momento, ele não é compatível e pode apresentar problemas na execução do OpenThread. Use por sua conta e risco. |
arquitetura do sistema.
O OpenThread foi projetado com a portabilidade e a flexibilidade em mente. O código é C/C++ portátil (C99 e C++11), independente da arquitetura do sistema devido a uma camada de abstração estreita. Essa camada de abstração significa que o OpenThread pode ser executado em Bare Metal ou um SO. Até o momento, foi demonstrado que o OpenThread funciona em FreeRTOS, RIOT-OS, Zephyr OS, Linux e macOS.
A natureza portátil do OpenThread não faz suposições sobre os recursos da plataforma. O OpenThread fornece os hooks para utilizar recursos aprimorados de rádio e criptografia, reduzindo os requisitos do sistema, como ciclos de memória, código e computação. Isso pode ser feito por plataforma, mantendo a capacidade de adotar uma configuração padrão.
O OpenThread tem um sistema de build configurável com que um desenvolvedor pode ativar ou desativar recursos conforme necessário. Além do conjunto de ferramentas padrão do GNU, a fonte é projetada para trabalhar com vários outros conjuntos conhecidos, como IAR e Visual Studio.
Designs de plataforma
O OpenThread oferece suporte aos designs de system on chip (SoC) e coprocessador de rede (NCP, na sigla em inglês).
Um SoC é uma solução de chip único que tem a combinação de RFIC (802.15.4, no caso do Thread) e do processador, em que o OpenThread e a camada do aplicativo são executados no processador local.
O design de NCP é onde a camada do aplicativo é executada em um processador host e se comunica com o OpenThread por meio de uma conexão serial usando um protocolo padronizado de controlador de host que chamamos de Spinel. Nesse design, o OpenThread pode ser executado no processador de rádio ou host.
Chip único, somente Thread (SoC)
Nesse design, a camada do aplicativo e o OpenThread são executados no mesmo processador. O aplicativo usa diretamente as APIs OpenThread e a pilha IPv6.
Esse é o design de SoC mais usado para dispositivos finais. Por ser altamente integrado a um único silício, ele tem o menor custo e consumo de energia.
Chip único e várias interfaces (SoC)
Quando um SoC tem vários rádios, como 802.15.4 e Wi-Fi ou 802.15.4 e Bluetooth de baixa energia (BLE), a camada do aplicativo e o OpenThread ainda são executados no mesmo processador. No design com várias interfaces, o OpenThread aproveita a pilha IPv6 compartilhada de terceiros por uma interface de datagrama IPv6 bruta.
Designs de coprocessador
O OpenThread oferece suporte aos designs de coprocessador de rádio (RCP, na sigla em inglês) e de processador de rede (NCP, na sigla em inglês). Para mais informações, consulte Designs de coprocessador (link em inglês).
Problemas abertos da plataforma
No momento, os seguintes problemas estão abertos para as plataformas do OpenThread: