El equipo de OpenThread, el proveedor de silicio, y la comunidad, portaron el software OpenThread lanzado por Google a varios dispositivos y plataformas. Los ejemplos de compilación para todas las plataformas portadas se incluyen en el repositorio de OpenThread.
Consulta Proveedores de búsqueda para obtener una lista en la que se pueden buscar todas las plataformas compatibles con los proveedores y los puertos de comunidades.
Asistencia
La compatibilidad de cada plataforma varía con el tiempo. Algunas plataformas se etiquetan con el nivel de compatibilidad actual que identifica el equipo de OpenThread. Las plataformas sin etiquetar no se probaron recientemente y se puede considerar que tienen "Asistencia limitada".
Nivel de asistencia | Descripción |
---|---|
Compatibilidad completa y básica, así como cualquier componente certificado de Thread que use OpenThread El equipo de OpenThread probó y usó muchas de estas plataformas, y se recomienda usarlas en nuestras demostraciones y Codelabs. | |
Estas plataformas no se probaron en su totalidad y es posible que les falten algunas funcionalidades clave. | |
Por el momento, no es compatible y es posible que tenga problemas para ejecutar OpenThread. Úsalas bajo tu propia responsabilidad. |
Arquitectura del sistema
OpenThread se diseñó teniendo en cuenta la portabilidad y la flexibilidad. El código es C/C++ portátil (C99 y C++11) que es independiente de la arquitectura del sistema debido a una capa de abstracción estrecha. Esta capa de abstracción permite que OpenThread se ejecute en un SO o Bare Metal. Hasta la fecha, se demostró que OpenThread se ejecuta en FreeRTOS, RIOT-OS, SO Zephyr, Linux y macOS.
La naturaleza portátil de OpenThread no hace suposiciones sobre las funciones de la plataforma. OpenThread proporciona los hooks para utilizar funciones mejoradas de radio y criptografía, lo que reduce los requisitos del sistema, como la memoria, el código y los ciclos de procesamiento. Esto se puede hacer por plataforma y se conserva la capacidad de establecer una configuración estándar de forma predeterminada.
OpenThread tiene un sistema de compilación configurable con el que un desarrollador puede habilitar o inhabilitar funciones según sea necesario. Más allá de la cadena de herramientas predeterminada de GNU, la fuente está diseñada para funcionar con varias otras cadenas de herramientas populares, como IAR y Visual Studio.
Diseños de plataformas
OpenThread es compatible con los diseños de sistema en chip (SoC) y de coprocesador de red (NCP).
Un SoC es una solución de un solo chip que combina la RFIC (802.15.4 en el caso de Thread) y el procesador, y OpenThread y la capa de aplicación se ejecutan en el procesador local.
En un diseño NCP, la capa de aplicación se ejecuta en un procesador de host y se comunica con OpenThread a través de una conexión en serie mediante un protocolo estandarizado de controlador de host que llamamos Spinel. En este diseño, OpenThread puede ejecutarse en un procesador de radio o host.
Un chip, solo subproceso (SoC)
En este diseño, la capa de aplicación y OpenThread se ejecutan en el mismo procesador. La aplicación usa directamente las APIs de OpenThread y la pila IPv6.
Este es el diseño de SoC que se usa con mayor frecuencia para dispositivos finales. Debido a que está altamente integrado en un solo silicio, tiene el menor costo y consumo de energía.
Un chip, múltiples interfaces (SoC)
Cuando un SoC tiene varias radios, como 802.15.4 y Wi-Fi, o bien 802.15.4 y Bluetooth de bajo consumo (BLE), la capa de aplicación y OpenThread se siguen ejecutando en el mismo procesador. En el diseño de varias interfaces, OpenThread aprovecha la pila IPv6 compartida de terceros a través de una interfaz de datagramas IPv6 sin procesar.
Diseños de coprocesadores
OpenThread es compatible con los diseños de coprocesador de radio (RCP) y del coprocesador de red (NCP). Para obtener más información, consulta Diseños de coprocesadores.
Problemas abiertos de la plataforma
Por el momento, los siguientes problemas están abiertos para las plataformas OpenThread: