Thread 與 Matter¶
Thread 在 Zephyr RTOS 下使用 IPRO7 的 IEEE 802.15.4 無線電,由 Zephyr 的 OpenThread 搭配 SDK 的 802.15.4 驅動提供。FreeRTOS 應用沒有 802.15.4 與 Thread,本版也沒有 Matter 協定堆疊。
重點
- Thread:只在 Zephyr RTOS 下提供,範例板卡為
ipro7_evb。給 Zephyr OpenThread shell 範例用的設定片段在zephyr/samples/ieee802154_shell/。 - IPRO7AI Reef EVK:V2.2.1 沒有 Reef 的 Thread 路徑。Reef 沒有 Zephyr 板卡定義,它執行的 FreeRTOS 應用也不含 802.15.4。
- Matter:未包含於 V2.2.1,沒有 Matter 協定堆疊、應用或建置命令。請洽 INTELPRO。
- 本頁內容不代表此版本已通過 Thread 或 Matter 認證。
交付狀態¶
| 項目 | 本版 |
|---|---|
| Matter 協定堆疊與應用 | 未包含 |
| Thread(OpenThread) | Zephyr RTOS,範例板卡 ipro7_evb;FreeRTOS 沒有 |
| Thread Border Router | 未包含 |
| IEEE 802.15.4 無線電 | Zephyr 驅動,搭配預編譯的 MAC 與 RF 函式庫 |
| BLE(可用於配網) | FreeRTOS 與 Zephyr 皆可用,但未與 Matter 整合 |
OpenThread(Zephyr RTOS)¶
flowchart TB
A["OpenThread<br/>(Zephyr 模組)"] --> B["Zephyr IEEE 802.15.4 驅動<br/>zephyr/drivers/ieee802154"]
B --> C["802.15.4 MAC 與 RF 預編譯函式庫<br/>lib/zephyr/"]
C --> D["IPRO7 無線電"]
RF 驅動與 802.15.4 MAC 以預編譯函式庫連結(components/wireless/rf/ipro7_rf/lib/zephyr/、components/wireless/ieee802154/lib/zephyr/)。OpenThread 是 west.yml 允許清單中的 Zephyr 模組。
SDK 為 Zephyr 本身的 samples/net/openthread/shell 提供設定片段:
檔案(zephyr/samples/ieee802154_shell/) |
內容 |
|---|---|
ot.conf |
Thread 1.4、OpenThread CLI 的 ping、CSL 需要的無線電時間戳記與定時傳送、堆疊大小,以及 RF 晶振微調 |
csl.conf |
疊加在 ot.conf 上:CSL 接收端(sleepy end device)、CSL 週期與逾時,以及驅動的封包追蹤 |
app.overlay |
啟用 ieee802154 節點,並設為預設的 802.15.4 裝置 |
CONFIG_OPENTHREAD_THREAD_VERSION_1_4=y
CONFIG_OPENTHREAD_PING_SENDER=y
CONFIG_NET_PKT_TIMESTAMP=y
CONFIG_NET_PKT_TXTIME=y
CONFIG_SOC_IPRO7_XTAL_CAPCODE=165
CONFIG_OPENTHREAD_CSL_RECEIVER=y
CONFIG_IEEE802154_IPRO_OT_CSL_PERIOD_US=500000
CONFIG_IEEE802154_IPRO_OT_CSL_TIMEOUT_S=20
RF 晶振微調值依板子而定
ot.conf 中的 CONFIG_SOC_IPRO7_XTAL_CAPCODE=165 是在 IPRO7 EVB 上量得的。換到其他板子時,請以 ipro154 xtal 與 ipro154 cfo 量測後設定自己的值:頻率誤差太大會影響與其他 Thread 裝置的連線。
在 IPRO7 EVB 上試用¶
本版沒有 Reef 的 Thread 操作步驟。在 IPRO7 EVB 上:
-
建立工作區:依 Zephyr RTOS 執行
tools/zephyr/bootstrap.sh與source zephyr-workspace/env.sh。 -
建置 OpenThread shell(在
zephyr-workspace/執行;<SDK>是 SDK 根目錄的絕對路徑)west build -b ipro7_evb zephyr/samples/net/openthread/shell -d build/ot -- \ -DEXTRA_CONF_FILE=<SDK>/zephyr/samples/ieee802154_shell/ot.conf \ -DEXTRA_DTC_OVERLAY_FILE=<SDK>/zephyr/samples/ieee802154_shell/app.overlay要試 CSL 接收端時,把
csl.conf也加進EXTRA_CONF_FILE。 -
燒錄:
west flash -d build/ot;沒有探針時加上-- --boot shell或-- --boot manual(見 Zephyr RTOS)。 -
使用:以
../tools/zephyr/monitor.sh --port /dev/cu.usbserial-XXXX(2,000,000 baud)開啟主控台,用ot指令操作 OpenThread CLI。建立或加入網路需要另一個 Thread 裝置或 Border Router。
只想測試 802.15.4 封包收發時,建置 SDK 的 ieee802154_shell 範例(Zephyr 的 IEEE 802.15.4 與網路 shell):
驅動另外提供 ipro154 除錯指令:
| 指令 | 用途 |
|---|---|
ipro154 stats |
驅動與 HAL 的計數器 |
ipro154 clk |
無線電時脈與 kernel 時脈的比率 |
ipro154 cfo |
各發送端的頻率偏移、SFD 相關值與 RSSI |
ipro154 xtal |
RF 晶振微調值 |
ipro154 crc |
把 CRC 錯誤的封包計入 HAL 計數器 |
ipro154 trace |
HAL 封包追蹤(on/off/clear/dump) |
tools/zephyr/csl_pcap.py 可分析 802.15.4 sniffer 擷取檔中的 CSL 時序。
整合前需確認的事項¶
- RTOS:Thread 只在 Zephyr 下提供,沒有任何設定能把它加進 FreeRTOS 應用。產品若還需要低功耗、相機、USB 或 NPU,先確認它們在 Zephyr 下的狀態(Zephyr RTOS)。
- 板卡:本版的 Zephyr 板卡是 IPRO7 EVB 與 IPRO7AI EVK;產品板需要自己的板卡定義。
- 低功耗:本版 Zephyr 不會讓 SoC 進入 PDS 或 HBN。
csl.conf展示的是 CSL 時序行為,不代表裝置能達到睡眠等級的電流。 - RF 晶振:每一種板子設計都要設定並驗證
CONFIG_SOC_IPRO7_XTAL_CAPCODE。 - Border Router 與配網:未附 Border Router。請規劃外部 Border Router、網路憑證如何配發,以及如何安全儲存。
- 資源:確認 flash 與 RAM 預算、永久儲存、熵來源(
CONFIG_ENTROPY_GENERATOR)與更新路徑(MCUboot,見 OTA 更新)。 - 驗證順序:先驗證板子驅動、無線連線、IP 傳輸與安全儲存,再進行協定整合、配網、重開機後的復原與互通性。
Matter 規劃¶
Matter 是 IP 層的應用協定,可跑在 Wi-Fi、乙太網路或 Thread 上,並以 BLE 配網。本版各種傳輸都有對應元件:FreeRTOS 下經 IPRO6S 的 Wi-Fi 與乙太網路(網路)、Zephyr 下的 Thread、兩者皆有的 BLE;但沒有 Matter 協定堆疊、配網流程、裝置認證憑證或 Matter OTA。具備傳輸元件不等於完成 Matter 整合。Matter 的規劃與時程請洽 INTELPRO。
相關文件¶
- Zephyr RTOS:工作區、燒錄、功能與限制。
- 網路:lwIP、Reef 經 IPRO6S FIN 卡的 Wi-Fi、乙太網路。
- BLE 開發:BLE host 與控制器。