プラットフォーム

Google がリリースした OpenThread は、OpenThread チーム、シリコン ベンダー、コミュニティによって、いくつかのデバイスとプラットフォームに移植されています。移植されたすべてのプラットフォームのビルド例は、OpenThread リポジトリに含まれています。

ベンダーがサポートするすべてのプラットフォームとコミュニティ ポートを検索できるリストについては、検索ベンダーをご覧ください。

サポート

各プラットフォームのサポートは時間とともに変更されます。一部のプラットフォームには、OpenThread チームによって特定された現在のサポートレベルがタグ付けされています。タグ付けされていないプラットフォームは最近テストされておらず、「制限付きのサポート」と見なされる可能性があります。

サポート レベル説明
サポート対象 フルサポート、基本サポートと、OpenThread を使用する Thread 認定コンポーネント。これらのプラットフォームの多くは OpenThread チームによってテストされ、使用されています。デモや Codelab で使用することをおすすめします。
限定的なサポート これらのプラットフォームは十分にテストされておらず、主要な機能が不足している可能性があります。
サポート対象外の項目 現在サポートされておらず、OpenThread の実行で問題が発生する可能性があります。自己責任で使用してください。

システム アーキテクチャ

OT システムのアーキテクチャ

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)

OT SoC のアーキテクチャ

この設計では、アプリケーション レイヤと OpenThread は同じプロセッサ上で実行されます。アプリケーションは OpenThread API と IPv6 スタックを直接使用します。

これは、エンドデバイスに最もよく使用される SoC の設計です。高度に単一のシリコンに統合されているため、コストと消費電力が最も少なくて済みます。

シングルチップ、複数インターフェース(SoC)

OT 複数 SoC アーキテクチャ

SoC に複数の無線通信(802.15.4 と Wi-Fi、802.15.4 と Bluetooth Low Energy(BLE)など)が含まれている場合でも、アプリケーション レイヤと OpenThread は同じプロセッサで実行されます。マルチ インターフェース設計では、OpenThread は未加工の IPv6 データグラム インターフェースを介して共有サードパーティ IPv6 スタックを利用します。

コプロセッサの設計

OpenThread は、無線コプロセッサ(RCP)およびネットワークコプロセッサ(NCP)の設計をサポートしています。詳細については、コプロセッサの設計をご覧ください。

未解決のプラットフォームの問題

OpenThread プラットフォームでは、次の問題が現在解決されています。