【技术专栏】泰凌微电子Thread RCP和NCP方案介绍(一)

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开发套件。
1台raspberry pi 3b+或更高版本,并安装raspbian操作系统映像。
1台linux主机,至少带有两个usb端口。
1个已连接互联网的交换机(或路由器)和若干条以太网电缆。
软件:
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软件包管理器是最新的。
$ sudo apt update$ sudo apt upgrade  
完成后,继续执行以下步骤。
1、安装依赖项。
$ wget https://apt.kitware.com/kitware-archive.sh$ sudo bash kitware-archive.sh$ sudo apt install --no-install-recommends git cmake ninja-build gperf ccache dfu-util device-tree-compiler python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file make gcc gcc-multilib g++-multilib libsdl2-dev  
zephyr目前需要主要依赖项的最低版本,例如 cmake (3.20.0)、python3 (3.6)、devicetree 编译器 (1.4.6)。
$ cmake --version$ python3 --version$ dtc --version  
在执行后续步骤之前,验证系统上安装的版本。如果版本不对,将 apt 镜像切换到稳定且最新的镜像,或手动更新这些依赖项。
2、安装west。
$ pip3 install --user -u west$ echo 'export path=~/.local/bin:$path' >> ~/.bashrc$ source ~/.bashrc        确保 ~/.local/bin 包含在 $path 环境变量中。    
3、获取zephyr项目的源码。
$ west init ~/zephyrproject$ cd ~/zephyrproject$ west update$ west blobs fetch hal_telink$ west zephyr-export  
在中国大陆,使用 west init ~/zephyrproject 和 west update 获取 zephyr 源代码,通常需要花费额外的时间。此外,某些项目可能无法从国外服务器更新,寻找其他方法来下载最新的源代码。  
4、为 zephyr 安装额外的 python 依赖项。
$ pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt  
5、设置 zephyr 工具链。下载 zephyr 工具链(大约 1~2 gb)到本地目录中,以允许您烧录固件到开发板。在中国大陆境内,该步骤可能需要花费额外时间。
$ wget https://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工具链。
$ tar xvf zephyr-sdk-0.16.1_linux-x86_64.tar.xz$ cd zephyr-sdk-0.16.1$ ./setup.sh -t riscv64-zephyr-elf -h -c  
6、构建hello world示例。使用hello world示例验证官方zephyr项目配置是否正确,然后再继续设置自定义项目。
$ cd ~/zephyrproject/zephyr$ west build -p auto -b tlsr9518adk80d samples/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$ git remote add telink-semi https://github.com/telink-semi/zephyr$ git fetch telink develop$ git checkout develop$ cd ..$ west update$ west blobs fetch hal_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 -rf build_ot_coprocessor$ west build -b tlsr9518adk80d -d build_ot_coprocessor zephyr/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 文件,按如下示范进行修改。# telink rcp usb-cdc-acmconfig_openthread_coprocessor_ncp=yconfig_openthread_coprocessor_rcp=n...config_usb_device_product=openthread coprocessor ncp 完成后打开位于 zephyr/samples/net/openthread/coprocessor/boards/tlsr9518adk80d.conf 文件,按如下示范进行修改。config_openthread_num_message_buffers=256 然后执行以下命令编译 ot-ncp-ftd 固件。$ cd ~/zephyrproject$ rm -rf build_ot_ncp_ftd$ west build -b tlsr9518adk80d -d build_ot_ncp_ftd zephyr/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方案介绍(一)
文章出处:【微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。

由于芯片短缺问题日益加重,导致“芯片荒”持续蔓延
电机铁芯损耗过大的原因
如何使用Raspberry Pi3和蓝牙构建遥控汽车
音/视频处理厂商:上海玮舟微电子科技有限公司简介
人工智能治理的全球图景与技术是怎样的
【技术专栏】泰凌微电子Thread RCP和NCP方案介绍(一)
基于CMUT电容单元剖面结构设计
旋转增量式编码器与绝对编码器的区别是什么
国内首台8.8MW光伏逆变器落地投运!
16进制转10进制
一款全新大屏自助收银终端HS6500,英特尔助力海信数字化零售创新
聚焦SC2015:Xilinx Virtex UltraScale FPGA加速大数据应用分析
IP电话及ATA设备选型与测试
高亮度LED照明应用开发需克服的挑战
2014年十大技术风暴席卷科技产业
为什么说大功率器件氮化镓遥遥领先
添加了固态硬盘后的电脑使用体验大不相同
SG7905ATZE怎么订货
手持设备视频输出信号质量分析
创迈思发布并首次演示了在骁龙处理器的手机参考设计中运行的个人消费类光谱解决方案