Google がリリースした OpenThread は、OpenThread チーム、シリコン ベンダー、コミュニティによって複数のデバイスとプラットフォームに移植されています。移植されたすべてのプラットフォームのビルドサンプルは、OpenThread リポジトリに含まれています。
ベンダーでサポートされているすべてのプラットフォームとコミュニティ ポートの検索可能なリストについては、ベンダーを検索をご覧ください。
サポート
各プラットフォームのサポートは、時間とともに変化します。一部のプラットフォームには、OpenThread チームが特定した現在のサポートレベルのタグが付けられています。タグが設定されていないプラットフォームは、最近テストが行われていないため、「制限付きサポート」と見なされる可能性があります。
サポート レベル | 説明 |
---|---|
フル / ベーシック サポートに加え、OpenThread を使用する Thread 認定コンポーネント。これらのプラットフォームの多くは OpenThread チームによってテストおよび使用されており、デモや Codelab での使用が推奨されています。 | |
これらのプラットフォームは完全にテストされておらず、いくつかの重要な機能が欠けている可能性があります。 | |
現在サポートされていないため、OpenThread の実行で問題が発生する可能性があります。自己責任で使用してください。 |
システム アーキテクチャ
OpenThread は、ポータビリティと柔軟性を念頭に置いて設計されています。コードは移植可能な C/C++(C99 および C++11)であり、狭い抽象化レイヤによってシステム アーキテクチャに依存しません。この抽象化レイヤは、OpenThread をベアメタルと OS のどちらでも実行できることを意味します。これまで、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 の設計では、アプリケーション層がホスト プロセッサ上で動作し、Spinel と呼ばれる標準化されたホスト コントローラ プロトコルを使用してシリアル接続を介して OpenThread と通信します。この設計では、OpenThread は無線プロセッサまたはホスト プロセッサで実行できます。
シングルチップ、スレッドのみ(SoC)
この設計では、アプリケーション レイヤと OpenThread が同じプロセッサ上で実行されます。アプリケーションは OpenThread API と IPv6 スタックを直接使用します。
これは、エンドデバイスに最もよく使用される SoC 設計です。1 つのシリコンに高度に統合されているため、コストと消費電力が最も低くなります。
シングルチップ、複数インターフェース(SoC)
802.15.4 と Wi-Fi、または 802.15.4 と Bluetooth Low Energy(BLE)など、SoC に複数の無線通信がある場合でも、アプリレイヤと OpenThread は同じプロセッサ上で動作します。マルチインターフェース設計では、OpenThread は未加工の IPv6 データグラム インターフェースを介して共有のサードパーティ IPv6 スタックを利用します。
共同プロセッサの設計
OpenThread は、無線コプロセッサ(RCP)とネットワーク コプロセッサ(NCP)の設計をサポートしています。詳細については、コプロセッサの設計をご覧ください。
オープン プラットフォームに関する問題
現在、OpenThread プラットフォームで以下の問題が未解決です。