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