OpenThread 支持协处理器设计。构建 OpenThread 示例时,系统会自动创建每种协处理器设计的固件映像。如需了解详情,请参阅二进制文件。
无线装置处理器 (RCP)

在 RCP 设计中,OpenThread 的核心位于主机处理器上,在具有 Thread 无线装置的设备上,只有最低限度的 MAC 层“控制器”。主机处理器在这种设计中通常不会休眠,一定程度上是为了确保线程网络的可靠性。
RCP 与主机处理器之间的通信由 SPI 接口通过 Spinel 协议通过 OpenThread 守护程序进行管理。
这样做的好处是,OpenThread 可以在更强大的处理器上使用资源。
此设计对于对电源限制不太灵敏的设备非常有用。例如,摄像机上的主机处理器始终处于开启状态以处理视频。
OpenThread 边界路由器支持 RCP 设计。如需了解详情,请参阅 OpenThread 边界路由器。
如需构建 RCP,请参阅以下 Codelab:
使用 nRF52840 Thread Border Router 构建线程网络
网络共同处理器 (NCP)

标准 NCP 在 SoC 上采用线程功能,并在主机处理器上运行应用层,这通常比 OpenThread 设备功能更强大(但需求量更大)。
NCP 和主机处理器之间的通信由 wpantund
通过串行接口(通常使用 SPI 或 UART)通过 Spinel 协议进行管理。
此设计的优势在于,高功耗主机可以休眠,而低功耗的 OpenThread 设备会保持活跃状态以在线程线程中保持位置不变。由于 SoC 与应用层没有关联,因此应用的开发和测试与 OpenThread 构建无关。
此设计对于网关设备或有其他处理需求(如 IP 相机和扬声器)非常有用。
Spinel 协议
Spinel 是一种通用管理协议,可让主机设备与协处理器通信和管理。Spinel 最初设计为支持基于线程的 NCP,因此采用了分层方法,使其在未来可以轻松地适应其他网络技术。它同时适用于 RCP 和 NCP 设计。
此协议包含在 OpenThread 的 /src/lib/spinel
中。一个名为 Pyspinel 的 Python CLI 工具可用于测试。
如需了解详情,请参阅适用于 Spinel 主机-控制器协议的互联网草稿。