1
介紹
接著本教程的上一篇文章:泰凌微電子Thread RCP和NCP方案介紹(一),本篇將演示使用LinuxBDT工具將OpenThread RCP和 NCP固件燒錄到 Telink B91 開(kāi)發(fā)板,并且分別與樹(shù)莓派協(xié)同工作,創(chuàng)建和管理Thread網(wǎng)絡(luò)的所必須的步驟。
學(xué)習(xí)內(nèi)容
分別將OpenThread Co-Processor固件( ot-ncp-ftd 和 ot-rcp )燒錄到兩塊Telink B91開(kāi)發(fā)板上。
在Raspberry Pi 3B+或更高版本上,使用Docker和RCP搭建OpenThread邊界路由器(OTBR)。
在Raspberry Pi 3B+或更高版本上,使用 Pyspinel 驗(yàn)證NCP功能。
所需條件
硬件:
2塊B91開(kāi)發(fā)套件。
1臺(tái)Raspberry Pi 3B+或更高版本,并安裝Raspbian操作系統(tǒng)映像。
1臺(tái)Linux主機(jī),至少帶有兩個(gè)USB端口。
1個(gè)已連接互聯(lián)網(wǎng)的交換機(jī)(或路由器)和若干條以太網(wǎng)電纜。
軟件:
Telink燒錄和調(diào)試工具 —— LinuxBDT。
其他工具,比如Git和West。
2
固件燒錄
泰凌LinuxBDT設(shè)置
下載Telink Linux BDT燒錄工具,并將其解壓到Linux主機(jī)的本地目錄,例如 ~,以允許用戶將固件燒錄到B91開(kāi)發(fā)板。
$cd~ $wgethttp://wiki.telink-semi.cn/tools_and_sdk/Tools/BDT/LinuxBDT.tar.bz2 $tar-vxfLinuxBDT.tar.bz2
將BDT通過(guò)USB接口連接到Linux主機(jī)上,在命令行輸入如下指令。
$cdLinuxBDT $sudo./bdtlsusb-v Bus002Device001:ID1d6b:0003xHCIHostController Bus001Device003:ID0bda:565aIntegrated_Webcam_HD Bus001Device023:ID413c:301aDellMS116USBOpticalMouse Bus001Device037:ID248a:826aTelinkWebDebuggerv3.6 Bus001Device001:ID1d6b:0002xHCIHostController
能搜索到Telink Web Debugger v3.6,代表BDT燒錄器順利連接到Linux主機(jī)。
固件燒錄
如下圖所示,使用USB連接線將一塊Telink B91開(kāi)發(fā)板連接到Telink燒錄板。
在命令行輸入如下指令(以燒錄ot-ncp-ftd固件為例)。
$cd~/zephyrproject/build_ot_ncp_ftd/zephyr $cpzephyr.bin~/LinuxBDT/bin/ot-ncp-ftd.bin $cd~/LinuxBDT $sudo./bdt9518ac ActivateOK! $sudo./bdt9518wf0-ibin/ot-ncp-ftd.bin EraseSectorsize... TotalTime:2181ms Flashwriting... [100%][-][##################################################] FileDownloadtoFlashataddress0x000000:491700bytes TotalTime:30087ms
ot-rcp 的燒錄方法和 ot-ncp-ftd 的基本一樣,不同之處在于固件名稱(chēng)。燒錄完成后分別將兩塊B91開(kāi)發(fā)板做好標(biāo)記區(qū)分,燒錄 ot-ncp-ftd 的開(kāi)發(fā)板標(biāo)記為“NCP”,燒錄 ot-rcp 的開(kāi)發(fā)板標(biāo)記為“RCP”。
3
固件應(yīng)用
本教程使用樹(shù)莓派來(lái)驗(yàn)證RCP和NCP兩種固件功能。
樹(shù)莓派安裝Docker作為OTBR的Host端,驗(yàn)證RCP功能。
樹(shù)莓派安裝并運(yùn)行Pyspinel,驗(yàn)證NCP功能。
樹(shù)莓派
1、確保寫(xiě)入SD卡中的是Raspbian Bullseye Lite OS image或Raspbian Bullseye with Desktop。
2、您可以選擇通過(guò)SSH連接到樹(shù)莓派,也可以直接在Raspbian桌面上操作。本教程將使用SSH。
3、在下一步安裝OTBR Docker或Pyspinel之前,先更新本地代碼庫(kù)和軟件包管理器。
$sudoapt-getupdate $sudpapt-getupgrade
無(wú)線電協(xié)處理器(RCP)
ot-rcp固件的燒錄步驟參考o(jì)t-ncp-ftd燒錄過(guò)程,將B91開(kāi)發(fā)板連接到樹(shù)莓派的USB端口上,連接方式如下圖所示。
安裝Docker
重新啟動(dòng)樹(shù)莓派并打開(kāi)一個(gè)SSH終端窗口。
1、安裝Docker。
$curl-sSLhttps://get.docker.com|sh
2、將當(dāng)前用戶添加到Docker組中,授予權(quán)限,這樣在每個(gè)命令前都不需要加上sudo。
$sudousermod-aGdocker$USER
你需要重啟樹(shù)莓派來(lái)使改動(dòng)生效。
3、若Docker尚未啟動(dòng),請(qǐng)將其啟動(dòng):
$sudodockerd
4、OTBR 防火墻腳本在 Docker 容器內(nèi)創(chuàng)建規(guī)則。運(yùn)行 modprobe 以加載 iptables 的內(nèi)核模塊。
$sudomodprobeip6table_filter
配置并運(yùn)行Docker
本教程直接從OpenThread Docker Hub拉取OTBR Docker鏡像,該鏡像已經(jīng)過(guò)OpenThread團(tuán)隊(duì)的測(cè)試和驗(yàn)證。
1、拉取鏡像:
$dockerpullopenthread/otbr:latest
2、查看Docker容器中的鏡像列表:
$dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE openthread/otbrlatestdb081f4de15f6daysago766MB
3、通過(guò)檢查 /dev 確定RCP設(shè)備的串行端口名稱(chēng), 出現(xiàn) ttyACM0表示RCP正確連接。
$ls/dev/tty* ... /dev/ttyACM0 ...
4、第一次運(yùn)行OTBR Docker, 并引用RCP的串行端口(ttyACM0),此后若要繼續(xù)使用該OTBR Docker,請(qǐng)使用命令 docker start otbr。
$dockerrun--name"otbr"--sysctl"net.ipv6.conf.all.disable_ipv6=0net.ipv4.conf.all.forwarding=1net.ipv6.conf.all.forwarding=1"-p8080:80--dns=127.0.0.1-it--volume/dev/ttyACM0:/dev/ttyACM0--privilegedopenthread/otbr--radio-urlspinel+hdlc+uart:///dev/ttyACM0
5、新開(kāi)一個(gè)SSH終端窗口,測(cè)試樹(shù)莓派和RCP的連通性,并建立Thread網(wǎng)絡(luò)。
$dockerexec-tiotbrsh-c"sudoot-ctl" >state disabled Done >panid0x1022 Done >ifconfigup Done >threadstart Done >state detached Done >state leader Done
可選用的Docker命令:
獲取正在運(yùn)行的Docker容器信息:
$dockerps-aq
停止OTBR Docker:
$dockerstopotbr
移除OTBR Docker:
$dockerrmotbr
重新加載OTBR Docker:
$dockerrestartotbr
網(wǎng)絡(luò)協(xié)處理器(NCP)
關(guān)閉樹(shù)莓派,拔掉RCP。將NCP連接到樹(shù)莓派的USB端口上,再重新啟動(dòng)樹(shù)莓派。連接方式如下圖。
安裝Pyspinel
在樹(shù)莓派上打開(kāi)一個(gè)新的SSH終端窗口。
1、安裝依賴(lài)項(xiàng):
$sudoaptinstallpython3-pip $pip3install--userpyserialipaddress
2、下載 pyspinel 的源碼到本地:
$gitclonehttps://github.com/openthread/pyspinel
3、安裝Pyspinel:
$cdpyspinel $sudopython3setup.pyinstall
驗(yàn)證NCP功能
1、配置NCP連接。
$sudochmoda+rw/dev/ttyACM0
2、運(yùn)行Pyspinel CLI。
$spinel-cli.py-u/dev/ttyACM0-n1 spinel-cli>
3、查詢(xún)NCP版本。
spinel-cli>version OPENTHREAD/aabbee49c;Zephyr;Aug1020231437 Done
4、建立Thread網(wǎng)絡(luò)。
spinel-cli>ifconfigup Done spinel-cli>threadstart Done spinel-cli>state detached Done spinel-cli>state leader Done
可以看到NCP已成為leader,Thread網(wǎng)絡(luò)被成功創(chuàng)建。
可選用的spinel-cli命令:
查看幫助菜單獲取可用命令。
spinel-cli>help Availablecommands(typehelpformoreinformation): ============================================================ bufferinfoextaddrncp-filterreleaserouterid channelextpanidncp-ll64reset childhncp-ml64rloc16 childmaxhelpncp-rawroute childtimeouthistoryncp-tunrouter clearifconfignetdatarouterdowngradethreshold commissioneripaddrnetworkidtimeoutrouterselectionjitter contextreusedelayjoinernetworkkeyrouterupgradethreshold counterskeysequencenetworknamescan debugleaderdatapanidstate debug-memleaderweightparentthread diagmacpingtxpower discovermacfilterprefixv eidcachemfgqvendor exitmodequitversion
4
總結(jié)
您現(xiàn)在已經(jīng)知道:
如何搭建并使用Telink Zephyr開(kāi)發(fā)環(huán)境。
如何構(gòu)建 ot-ncp-ftd 和 ot-rcp 兩種二進(jìn)制文件并將其燒錄到B91開(kāi)發(fā)板。
如何使用Docker和RCP將Raspberry Pi 3B+ 或更高版本設(shè)置為OpenThread邊界路由器(OTBR)。
在Raspberry Pi 3B+或更高版本上,使用 Pyspinel 驗(yàn)證NCP功能。
由此可見(jiàn),RCP和NCP方案都可以實(shí)現(xiàn)OTBR的功能。不過(guò),從目前的社區(qū)的支持力度看,RCP更適合用于OTBR的開(kāi)發(fā)。
5
深入閱讀
查看openthread.io和GitHub,了解各種OpenThread資源,包括:
Supported Platforms
https://openthread.io/platforms/
— discover all the platforms that support OpenThread
Build OpenThread
https://openthread.io/guides
— further details on building and configuring OpenThread
Thread Primer
https://openthread.io/guides/thread-primer
— covers all the Thread concepts featured in this codelab
參考文檔:
OpenThread Co-Processor Designs:
https://openthread.io/platforms/co-processor
OpenThread Pyspinel:
https://openthread.io/guides/pyspinel
OpenThread Border Router:
https://openthread.io/guides/border-router
關(guān) 于 泰 凌
泰凌微電子致力于為客戶提供一站式的低功耗高性能無(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)景中。
-
Linux
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212316 -
NCP
+關(guān)注
關(guān)注
0文章
48瀏覽量
24098 -
RCP
+關(guān)注
關(guān)注
0文章
26瀏覽量
9174 -
樹(shù)莓派
+關(guān)注
關(guān)注
120文章
1906瀏覽量
106697 -
Thread
+關(guān)注
關(guān)注
2文章
85瀏覽量
26278 -
泰凌微
+關(guān)注
關(guān)注
7文章
165瀏覽量
11126
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
泰凌微電子廣播麥克風(fēng)方案介紹

泰凌多模IoT解決方案成本業(yè)界最低
基于泰凌微電子平臺(tái)實(shí)現(xiàn)OpenHarmony開(kāi)發(fā)—綜述
泰凌微電子超低延時(shí)麥克風(fēng)方案介紹
泰凌微電子 TLSR9 SoC 通過(guò)Thread 1.3.0認(rèn)證

泰凌微電子無(wú)線通信SoC助推電子紙產(chǎn)業(yè)生態(tài)發(fā)展
【直播預(yù)告】基于泰凌微電子無(wú)線音頻SoC應(yīng)用方案介紹

泰凌微電子| OpenThread組Telink Codelab正式上線

【技術(shù)專(zhuān)欄】泰凌微電子Thread RCP和NCP方案介紹(一)

【技術(shù)專(zhuān)欄】泰凌微電子產(chǎn)測(cè)工具使用——常見(jiàn)問(wèn)題解決方法(一)

【技術(shù)專(zhuān)欄】泰凌微電子產(chǎn)測(cè)工具使用——常見(jiàn)問(wèn)題解決方法(二)

泰凌微電子B91模組組合板Matter演示固件介紹

評(píng)論