Google 致力于为黑人社区推动种族平等。查看具体行动

平台

Google 发布的 OpenThread 已被 OpenThread 团队、芯片供应商和社区移植到多个设备和平台上。所有移植的平台构建的例子包括在的OpenThread库

查看搜索厂商为所有供应商支持的平台和社区端口的搜索列表。

支持

对每个平台的支持随时间而变化。某些平台标有 OpenThread 团队确定的当前支持级别。未标记的平台最近未经过测试,可能被视为具有“有限支持”。

支持级别描述
支持的完整和基本支持,以及任何使用 OpenThread 的 Thread 认证组件。其中许多平台已经过 OpenThread 团队的测试和使用,建议在我们的演示和 Codelab 中使用。
有限的支持这些平台尚未经过全面测试,可能缺少某些关键功能。
不支持当前不受支持,运行 OpenThread 可能会出现问题。使用风险自负。

系统架构

OT系统架构

OpenThread 的设计考虑到了可移植性和灵活性。该代码是可移植的 C/C++(C99 和 C++03),由于抽象层较窄,因此与系统架构无关。这个抽象层意味着 OpenThread 可以在裸机或操作系统上运行。迄今为止,OpenThread 已被证明可以在 FreeRTOS、RIOT-OS、Zephyr OS、Linux 和 macOS 上运行。

OpenThread 的可移植性对平台特性没有任何假设。 OpenThread 提供挂钩以利用增强的无线电和加密功能,从而降低系统要求,例如内存、代码和计算周期。这可以按平台完成,同时保留默认为标准配置的能力。

OpenThread 有一个可配置的构建系统,开发人员可以使用该系统根据需要启用或禁用功能。除了默认的 GNU 工具链之外,该源代码还设计用于与许多其他流行的工具链(如 IAR 和 Visual Studio)一起使用。

平台设计

OpenThread 支持片上系统 (SoC) 和网络协处理器 (NCP) 设计。

SoC 是一种单芯片解决方案,它结合了 RFIC(在 Thread 的情况下为 802.15.4)和处理器,其中 OpenThread 和应用层在本地处理器上运行。

一个NCP设计是其中使用一个标准化的主机控制器协议上通过串行连接主处理器和与连通的OpenThread应用层运行我们称之为尖晶石。在此设计中,OpenThread 可以在无线电或主机处理器上运行。

单芯片,仅线程 (SoC)

OT SoC 架构

在这个设计中,应用层和 OpenThread 运行在同一个处理器上。该应用程序直接使用 OpenThread API 和 IPv6 堆栈。

这是最常用于终端设备的 SoC 设计。由于高度集成在单个硅片中,因此具有最低的成本和最低的功耗。

单芯片、多接口 (SoC)

OT 多 SoC 架构

当 SoC 具有多个无线电时,例如 802.15.4 和 Wi-Fi,或 802.15.4 和蓝牙低功耗 (BLE),应用层和 OpenThread 仍运行在同一处理器上。在多接口设计中,OpenThread 通过原始 IPv6 数据报接口利用共享的第三方 IPv6 堆栈。

网络协处理器 (NCP)

OT NCP 架构

标准 NCP 设计在 SoC 上具有 Thread 功能,并在主机处理器上运行应用层,这通常比 OpenThread 设备功能更强大(但功率需求更大)。主机处理器通过 Spinel 协议上的串行接口(通常是 SPI 或 UART)与 OpenThread 设备进行通信。

这种设计的好处是高功率主机可以休眠,而低功率 OpenThread 设备保持活动状态以保持其在 Thread 网络中的位置。由于 SoC 与应用层无关,因此应用程序的开发和测试独立于 OpenThread 构建。

这种设计对于网关设备或具有其他处理需求的设备(如 IP 摄像机和扬声器)非常有用。

无线电协处理器 (RCP)

OT RCP 架构

这是 NCP 设计的一种变体,其中 OpenThread 的核心位于主机处理器上,而带有 Thread 无线电的设备上只有一个最小的 MAC 层“控制器”。在这种设计中,主机处理器通常不会休眠,部分原因是为了确保 Thread 网络的可靠性。

这里的优势是 OpenThread 可以利用更强大的处理器上的资源。

这种设计对于对功率限制不太敏感的设备很有用。例如,摄像机上的主机处理器始终处于开启状态以处理视频。

开放平台问题

OpenThread 平台目前存在以下问题: