コプロセッサーの設計は、OpenThreadによってサポートされています。 2つの主要な設計アーキテクチャがあります。
- Radio Co-Processor(RCP) —ホストプロセッサ上のアプリケーション層とOpenThreadコア、802.15.4SoC上の最小限のOpenThreadMAC。 RCPとホストプロセッサ間の通信は、 Spineプロトコルを介したSPIインターフェイスを介してOpenThreadデーモンによって管理されます。
- ネットワークコプロセッサー(NCP) —ホストプロセッサー上のアプリケーション層、802.15.4SoC上のOpenThread機能。 NCPとホストプロセッサ間の通信は、スピネルプロトコルを介して、通常はSPIまたはUARTを使用するシリアルインターフェイスを介して
wpantund
によって管理されます。
これらの設計の詳細については、プラットフォーム設計を参照してください。
OpenThreadの例を作成する場合、目的のRCPまたはNCPデザインのファームウェアイメージが自動的に作成されます。詳細については、バイナリを参照してください。
選択したビルド済みNCPファームウェアイメージのダウンロードとフラッシュ手順については、ビルド済みNCPファームウェアを参照してください。
スピネルプロトコル
Spinelは、ホストデバイスがコプロセッサと通信して管理できるようにするための一般的な管理プロトコルです。 Spinelは、当初はスレッドベースのNCPをサポートするように設計されていましたが、将来的に他のネットワークテクノロジーに簡単に適応できるように階層化されたアプローチで設計されました。これは、RCPとNCPの両方の設計で使用されます。
このプロトコルは、OpenThreadの/src/lib/spinel
含まれています。 Pyspinelと呼ばれるPythonCLIツールは、テスト目的で利用できます。
詳細については、Spine Host-ControllerProtocolのインターネットドラフトを参照してください。