OpenThread 支持共同处理器设计。构建 OpenThread 示例时,系统会自动创建每个协处理器设计的固件映像。如需了解详情,请参阅二进制文件。
无线联合处理器 (RCP)
在 RCP 设计中,OpenThread 的核心位于主机处理器上,只有配备了 Thread 无线装置的最小 MAC 层“控制器”。主机处理器在此设计中通常不会休眠,部分原因在于确保 Thread 网络的可靠性。
RCP 和主机处理器之间的通信由 OpenThread Daemon 通过 Spinel 协议通过 SPI 接口进行管理。
这样做的好处是,OpenThread 可以充分利用更强大的处理器上的资源。
此设计对于对功耗限制不太敏感的设备很有用。 例如,摄像机上的主机处理器始终处于开启状态,以便处理视频。
OpenThread 边界路由器支持 RCP 设计。如需了解详情,请参阅 OpenThread 边界路由器。
如需构建 RCP,请参阅以下 Codelab:
使用 nRF52840 构建线程网络 Thread Border Router
网络共同处理器 (NCP)
标准 NCP 设计具有 SoC 上的线程功能,并在主机处理器上运行应用层,该处理器通常比 OpenThread 设备功能更强大(但功耗更高)。
NCP 与主机处理器之间的通信由 wpantund
通过串行接口(通常使用 SPI 或 UART)通过 Spinel 协议管理。
此设计的好处是,功耗较高的主机可以休眠,而功耗较低的 OpenThread 设备保持活跃状态以在 Thread 网络中保持其位置。由于 SoC 与应用层不相关联,因此应用的开发和测试与 OpenThread 构建无关。
此设计对于网关设备或具有其他处理需求(如 IP 摄像头和扬声器)的设备非常有用。
Spinel 协议
Spinel 是一种通用管理协议,使主机设备能够与协处理器进行通信和管理。Spinel 最初设计为支持基于线程的 NCP,现在采用的是分层方法,因此将来可以轻松地适应其他网络技术。它可与 RCP 和 NCP 设计结合使用。
此协议包含在 /src/lib/spinel
中的 OpenThread。一个名为 Pyspinel 的 Python CLI 工具可用于测试。
如需了解详情,请参阅 Spinel 主机-控制器协议的互联网草案。