コプロセッサの設計

OpenThread によるコプロセッサの設計がサポートされています。OpenThread のサンプルをビルドすると、各コプロセッサ設計のファームウェア イメージが自動的に作成されます。詳細については、バイナリをご覧ください。

無線コプロセッサ(RCP)

OT RCP アーキテクチャ

RCP 設計では、OpenThread のコアはホスト プロセッサ上にあり、Thread 無線を備えたデバイス上に最小限の MAC レイヤ「コントローラ」しかありません。通常、この設計では、ホスト プロセッサはスリープしません。その理由の一つは、Thread ネットワークの信頼性を確保するためです。

RCP とホスト プロセッサ間の通信は、OpenThread Daemon が Spinel プロトコル経由で SPI インターフェースを介して管理します。

この利点は、OpenThread がより高性能なプロセッサのリソースを活用できることです。

この設計は、電力の制約を受けにくいデバイスに役立ちます。たとえば、ビデオカメラのホストプロセッサは、動画を処理するために常にオンになっています。

OpenThread ボーダー ルーターは RCP 設計をサポートしています。詳細については、OpenThread ボーダー ルーターをご覧ください。

RCP を作成するには、次の Codelab をご覧ください。

nRF52840 を使った Thread ネットワークの構築 Thread ボーダー ルーター

ネットワーク コプロセッサ(NCP)

OT 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 ホスト コントローラ プロトコルのインターネット ドラフトをご覧ください。