Google 發布的 OpenThread 已移植至多種裝置和平台,由 OpenThread 團隊、晶片供應商和社群進行遷移。OpenThread 存放區內含所有移植平台的範例。
如需所有廠商支援的平台和社群通訊埠的可搜尋清單,請參閱「搜尋引擎」。
支援
每種平台的支援情況會隨著時間變動。有些平台會標記 OpenThread 團隊所識別目前的支援等級。未標記的平台最近尚未經過測試,且可能會視為具有「有限支援」。
支援等級 | 說明 |
---|---|
![]() |
完整和基本支援,以及所有使用 OpenThread 的 Thread 認證元件。這些平台中,有許多已通過 OpenThread 團隊測試與採用,建議用於我們的示範和程式碼研究室。 |
![]() |
這些平台尚未經過全面測試,可能缺少部分重要功能。 |
![]() |
目前不支援,而且在執行 OpenThread 時可能會發生問題。使用時需自行承擔風險。 |
系統架構
![OT 系統架構](https://openthread.io/static/platforms/images/ot-arch.png?hl=zh-tw)
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 架構](https://openthread.io/static/platforms/images/ot-arch-soc.png?hl=zh-tw)
在此設計中,應用程式層和 OpenThread 會在相同的處理器上執行。應用程式會直接使用 OpenThread API 和 IPv6 堆疊。
這是最常見的裝置使用的 SoC 設計。由於這種晶片高度整合於單一晶片中,因此成本最低且耗電量最低。
單晶片、多介面 (SoC)
![OT 多重 SoC 架構](https://openthread.io/static/platforms/images/ot-arch-soc-multiple.png?hl=zh-tw)
如果 SoC 有多個無線電 (例如 802.15.4、Wi-Fi 或 802.15.4 和藍牙低功耗 (BLE)),應用程式層和 OpenThread 仍會在同一個處理器上執行。在多介面設計中,OpenThread 會透過原始 IPv6 Datagram 介面,運用共用的第三方 IPv6 堆疊。
共同處理器設計
OpenThread 支援無線電 Co-Processor (RCP) 和網路共同處理器 (NCP) 設計。詳情請參閱共同處理者設計。
開放式平台問題
OpenThread 平台目前有下列問題: