1
介紹
Thread規范建立了一種可靠、安全且能效高的無線通信協議,適用于資源受限的設備,常見于智能家居和商業建筑。OpenThread包含了Thread的完整網絡層范圍,包括IPv6、6LoWPAN、帶有MAC安全性的IEEE 802.15.4、網狀鏈路建立和網狀路由等功能。
Telink已將由谷歌的團隊開發的OpenThread實現整合到Zephyr RTOS中,實現了與Telink硬件的無縫兼容。這個整合的源代碼可以在GitHub上方便地獲取,并且還提供了軟件開發工具包(SDK)。
在這個教程的上半部分中,您將在Telink Zephyr開發環境上構建OpenThread NCP和RCP固件。
學習內容
- 使用Telink Zephyr開發環境配置OpenThread編譯環境。
-
構建OpenThread Co-Processor固件(
ot-ncp-ftd
和ot-rcp
)。
所需條件
硬件:
-
2塊B91開發套件。
軟件:
-
Telink燒錄和調試工具 —— LinuxBDT。
-
其他工具,比如Git和West。
2
前提條件
-
Thread基本概念和OpenThread Co-Processor
在進行本教程之前,建議先完成OpenThread Simulation codelab并閱讀OpenThread Co-Processor Designs,以便熟悉基本的Thread概念和OpenThread Co-Processor架構,對RCP和NCP兩種設備有一個簡單了解。
-
Linux主機
Linux主機(Ubuntu v20.04 LTS或更高版本)充當構建機器,用于設置Telink Zephyr開發環境并燒錄所有Thread開發板。為了完成這些任務,Linux主機需要兩個可用的USB端口和互聯網連接。
-
Telink B91開發套件
本教程需要2塊B91開發板。下面的圖片展示了一個套件中所需的最少組件。
本教程將使用一塊B91開發板作為RCP(無線電協處理器),使用另一個B91開發板作為NCP(網絡協處理器)。如果您尚未擁有這塊開發板,您可以從Telink官方網站獲取有關B91開發套件的更多詳細信息。需要用到的部分組件如下表所示:
-
安裝有Raspbian操作系統鏡像的樹莓派3B+或更高版本
在本教程中,需要使用帶有Raspbian Bullseye Lite OS image 或Raspbian Bullseye with Desktop的樹莓派3B+或更高版本。它通過以太網連接到互聯網,并將配置為OpenThread邊界路由器(OTBR)的主機。
-
網絡連接
本教程需要一個已連接互聯網的交換機(或路由器)和若干條以太網電纜。它們用于將Raspberry Pi與Linux主機連接起來,便于用戶通過主機對Raspberry Pi進行配置。
-
LinuxBDT
Telink 燒錄和調試工具 (BDT)適用于所有Telink芯片系列,可用于擦除和燒錄OpenThread固件到Telink B91開發套件上。在您的Linux主機上安裝基于X86架構的LinuxBDT。
-
其他
-
Git,用于設置Telink Zephyr開發環境。
-
West,用于管理Zephyr項目并構建OpenThread二進制文件。
3
固件設置
-
Telink Zephyr開發環境設置
在Linux主機上打開命令行,執行以下命令,以確保您的APT軟件包管理器是最新的。
$sudoaptupdate
$sudoaptupgrade
完成后,繼續執行以下步驟。
1、安裝依賴項。
$wgethttps://apt.kitware.com/kitware-archive.sh
$sudobashkitware-archive.sh
$sudoaptinstall--no-install-recommendsgitcmakeninja-buildgperf
ccachedfu-utildevice-tree-compiler
python3-devpython3-pippython3-setuptoolspython3-tkpython3-wheelxz-utilsfile
makegccgcc-multilibg++-multiliblibsdl2-dev
Zephyr目前需要主要依賴項的最低版本,例如 CMake (3.20.0)、Python3 (3.6)、Devicetree 編譯器 (1.4.6)。
$cmake--version
$python3--version
$dtc--version
在執行后續步驟之前,驗證系統上安裝的版本。如果版本不對,將 APT 鏡像切換到穩定且最新的鏡像,或手動更新這些依賴項。
2、安裝west。
$pip3install--user-Uwest
$echo'exportPATH=~/.local/bin:"$PATH"'>>~/.bashrc
$source~/.bashrc
確保~/.local/bin
包含在$PATH
環境變量中。
3、獲取Zephyr項目的源碼。
$westinit~/zephyrproject
$cd~/zephyrproject
$westupdate
$westblobsfetchhal_telink
$westzephyr-export
在中國大陸,使用
west init ~/zephyrproject
和west update
獲取 Zephyr 源代碼,通常需要花費額外的時間。此外,某些項目可能無法從國外服務器更新,尋找其他方法來下載最新的源代碼。
4、為 Zephyr 安裝額外的 Python 依賴項。
$pip3install--user-r~/zephyrproject/zephyr/scripts/requirements.txt
5、設置 Zephyr 工具鏈。下載 Zephyr 工具鏈(大約 1~2 GB)到本地目錄中,以允許您燒錄固件到開發板。在中國大陸境內,該步驟可能需要花費額外時間。
$wgethttps://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/zephyr-sdk-0.16.1_linux-x86_64.tar.xz
$wget-O-https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/sha256.sum|shasum--check--ignore-missing
下載Zephyr SDK并將其放置在推薦路徑中,如下所示。
$HOME/zephyr-sdk[-x.y.z]
$HOME/.local/zephyr-sdk[-x.y.z]
$HOME/.local/opt/zephyr-sdk[-x.y.z]
$HOME/bin/zephyr-sdk[-x.y.z]
/opt/zephyr-sdk[-x.y.z]
/usr/zephyr-sdk[-x.y.z]
/usr/local/zephyr-sdk[-x.y.z]
其中 [-x.y.z] 可以是任何文本的可選項,例如 -0.13.2。SDK安裝后不能移動該目錄。接著安裝Zephyr工具鏈。
$tarxvfzephyr-sdk-0.16.1_linux-x86_64.tar.xz
$cdzephyr-sdk-0.16.1
$./setup.sh-triscv64-zephyr-elf-h-c
6、構建Hello World示例。使用Hello World示例驗證官方Zephyr項目配置是否正確,然后再繼續設置自定義項目。
$cd~/zephyrproject/zephyr
$westbuild-pauto-btlsr9518adk80dsamples/hello_world
使用west build命令從Zephyr存儲庫的根目錄構建hello_world示例。您可以在
build/zephyr
目錄下找到名為zephyr.bin
的固件。
7、將Zephyr環境腳本添加到~/.bashrc
。在bash中執行一下命令。
$echo"source~/zephyrproject/zephyr/zephyr-env.sh">>~/.bashrc
$source~/.bashrc
8、添加Telink Zephyr遠程庫。下載Telink repo到本地作為開發分支并更新該分支。
$cd~/zephyrproject/zephyr
$gitremoteaddtelink-semihttps://github.com/telink-semi/zephyr
$gitfetchtelinkdevelop
$gitcheckoutdevelop
$cd..
$westupdate
$westblobsfetchhal_telink
更多信息參考Zephyr Doc – Getting Started Guide:https://docs.zephyrproject.org/latest/getting_started/index.html
4
固件編譯
本教程中將構建兩種固件:
-
ot-ncp-ftd
-
ot-rcp
編譯方法如下:
1、無線電協處理器(ot-rcp)
$cd~/zephyrproject
$rm-rfbuild_ot_coprocessor
$westbuild-btlsr9518adk80d-dbuild_ot_coprocessorzephyr/samples/net/openthread/coprocessor---DDTC_OVERLAY_FILE="usb.overlay"-DOVERLAY_CONFIG=overlay-rcp-usb-telink.conf
2、網絡協處理器(ot-ncp-ftd)
打開位于zephyr/samples/net/openthread/coprocessor/overlay-rcp-usb-telink.conf
文件,按如下示范進行修改。
#TelinkRCPUSB-CDC-ACM
CONFIG_OPENTHREAD_COPROCESSOR_NCP=y
CONFIG_OPENTHREAD_COPROCESSOR_RCP=n
...
CONFIG_USB_DEVICE_PRODUCT="OpenThreadCoProcessorNCP"
完成后打開位于 zephyr/samples/net/openthread/coprocessor/boards/tlsr9518adk80d.conf
文件,按如下示范進行修改。
CONFIG_OPENTHREAD_NUM_MESSAGE_BUFFERS=256
然后執行以下命令編譯 ot-ncp-ftd
固件。
$cd~/zephyrproject
$rm-rfbuild_ot_ncp_ftd
$westbuild-btlsr9518adk80d-dbuild_ot_ncp_ftdzephyr/samples/net/openthread/coprocessor---DDTC_OVERLAY_FILE="usb.overlay"-DOVERLAY_CONFIG=overlay-rcp-usb-telink.conf
5
小結
您現在已經了解了下述內容:
-
如何搭建并使用Telink Zephyr開發環境。
-
如何構建
ot-ncp-ftd
和ot-rcp
兩種二進制文件。
在下一篇文章中,您可以使用這兩種固件分別與樹莓派協同工作,創建和管理Thread網絡。
關 于 泰 凌
泰凌微電子致力于為客戶提供一站式的低功耗高性能無線連接SoC芯片解決方案,包括經典藍牙,藍牙低功耗,藍牙Mesh,Zigbee,Thread,Matter,Apple HomeKit,Apple“查找(Find My)”,和私有協議等低功耗2.4GHz多協議無線連接系統級芯片和豐富的固件協議棧。公司產品廣泛應用于智能照明,智能家居/樓宇,智能遙控,無線外設,智能零售,穿戴設備,無線音頻,智能玩具,物流追蹤,智慧城市等各類消費和商業應用場景中。
官網:www.telink-semi.com
微信公眾號:telink-semi
https://developers.telink-semi.cn/
銷售接洽:
中國大陸(華東、華北) :
+86-21-20281118-8213
中國大陸(華南、香港、音頻) :
+86-0755-26614003
telinksales@telink-semi.com
原文標題:【技術專欄】泰凌微電子Thread RCP和NCP方案介紹(一)
文章出處:【微信公眾號:泰凌微電子】歡迎添加關注!文章轉載請注明出處。
-
泰凌微
+關注
關注
7文章
152瀏覽量
10827
原文標題:【技術專欄】泰凌微電子Thread RCP和NCP方案介紹(一)
文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論