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文章
147浏览量
10806
原文标题:【技术专栏】泰凌微电子Thread RCP和NCP方案介绍(一)
文章出处:【微信号:telink-semi,微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论