BLE/Zigbee/Thread 无线协同处理器示例工程快速入门指南
概述
本文档旨在帮助您快速完成基于 BLE/Zigbee/Thread(BZT)无线协同处理器(Radio Co-Processor,RCP)示例的固件烧录与功能验证。通过本文档,您能够熟悉 BZT 演示套件的配置,并通过该套件控制低功耗蓝牙(BLE)、Zigbee 以及 Matter over Thread 三种不同协议设备。

硬件软件准备
硬件清单
| 硬件类型 | 型号/规格 | 数量 | 说明 |
|---|---|---|---|
| PC | Linux 电脑,Ubuntu 24.04 LTS 系统 | 1 台 | 用作开发主机,用于运行烧录软件。 |
| 开发板 | TL322x 开发板 | 1 个 | TL3228x 开发板,用于烧录 RCP 固件。 |
| TL323x 开发板 | 1 个 | TL3238x 开发板,作为 Matter 设备网络测试节点。 | |
| TL3238 Dongle | 2 个 | 一个作为 Zigbee 设备网络测试节点;一个作为 BLE 设备网络测试节点。 | |
| 烧录器 | Programmer V5 | 1 台 | 用于将固件烧录至开发板。 |
| 连接线 | USB Type-C 数据线 | 若干 | 连接 PC 与烧录器,提供烧录通道。 连接 PC 与开发板,用于供电及日志输出。 |
| 杜邦线 | 若干 | 连接烧录器与开发板的调试/烧录接口。 |
其中,开发板、Dongle 和烧录器可通过官方淘宝店铺购买,具体型号及价格请咨询在线客服。

注意
请确保所有开发板在使用时均已安装对应的天线,保证无线通信功能正常。
软件与固件清单
| 软件类型 | 名称 | 说明 |
|---|---|---|
| 烧录工具 | Telink BDT for Linux | 用于将固件烧录至开发板的专用烧录及调试软件。 |
| 预编译固件 | ot-zb-ble-rcp_322x_usb.bin |
RCP 固件,烧录至 TL3228x 开发板,集成了 OpenThread/Zigbee/BLE 协议栈。 |
sampleLight_tl323x.bin |
Zigbee 灯控固件,烧录至 TL3238 Dongle。 | |
zigbee_ble_sampleGW_tl323x.bin |
BLE 固件,烧录至 TL3238 Dongle。 | |
merged_lighting_tl323x_fd_1fd000.bin |
Matter 应用固件,烧录至 TL3238x 开发板。需配合 factory_data_1141_8005_0x1fd000/1141_8005 目录下的工厂数据一起使用。应用固件烧录起始地址 0x0,工厂数据烧录起始地址 0x1fd000。 |
|
| 工厂数据 | factory_data_1141_8005_0x1fd000 |
配合 Matter 应用固件一起烧录(和预编译固件一并提供)。 |
注意
预编译固件、工厂数据与用于控制Zigbee网关的 ZGC 工具的 Linux 版本压缩包,请点击下载获取。
安装 BDT
按照以下步骤完成 Linux 系统中 BDT 的安装:
-
安装 BDT 所需的依赖。
sudo apt update sudo apt install -y libgtk-3-dev libusb-1.0-0-dev -
创建 BDT 工具目录。
mkdir -p ~/tools/telink-bdt -
将 Telink BDT for Linux 下载到
~/Downloads目录,并解压 BDT_Linux.zip 软件包。cd ~/Downloads unzip BDT_Linux.zip -d ~/tools/telink-bdt/解压后的
BDT_Linux目录包含两个工具包:TGui-BDT 和 Telink-BDT。 -
解压 TGui-BDT。
cd ~/tools/telink-bdt/BDT_Linux/ tar -xzf TGui-BDT-Linux-V1.0.2.tar.gz -C ~/tools/telink-bdt/ -
启动 TGui-BDT。
cd ~/tools/telink-bdt/TGui-BDT-Linux-V1.0.2/ sudo ./TGui
启动后即可使用 TGui-BDT 进行烧录。
烧录程序
通过 BDT 进行固件烧录。
连接硬件
两块开发板和两个 Dongle 分别烧录不同的固件,一次烧一块,烧完一块再烧另一块。
在烧录之前,请按照以下逻辑连接电脑、烧录器与开发板或 Dongle:
- PC ↔ 烧录器(Programmer V5):使用 USB Type-C 数据线连接。若烧录器上的绿色指示灯常亮,表明烧录器已被 PC 成功识别。
- 烧录器 ↔ 目标板:使用杜邦线连接:
- 电源线:VCC ↔ VCC;GND ↔ GND
- 数据线(单线 SWM 总线):将烧录器的 SWM 引脚连接至目标板的 SWS 引脚。
烧录固件
固件有两类,一类是 RCP 固件,另一类是节点设备固件,需要分别烧录到不同的开发板上。
| 固件名称 | 类别 | 对应目标板 |
|---|---|---|
ot-zb-ble-rcp_322x_usb.bin |
RCP 固件 | TL3228x 开发板 |
sampleLight_tl323x.bin |
Zigbee 节点设备固件 | TL3238 Dongle |
zigbee_ble_sampleGW_tl323x.bin |
BLE 节点设备固件 | TL3238 Dongle |
merged_lighting_tl323x_fd_1fd000.bin |
Matter 节点设备固件 | TL3238x 开发板 |
RCP 固件烧录
-
选择目标板的芯片型号和固件,目标板为 TL322x 开发板。 在左侧的芯片下拉菜单中,选择您开发板对应的目标芯片,例如 TL322x,随后选择待烧录的固件二进制文件
ot-zb-ble-rcp_322x_usb.bin。
-
擦除 flash。擦除大小设置为 2040 KB,随后执行 flash 擦除操作。对于具有 2 MB 外部闪存的开发板,最后 8 KB 保留给 SoC 数据,因此最大可擦除区域为 2040 KB。

-
验证 SWS、解锁 flash 并下载固件。先点击 SWS,确认与目标设备通信正常。点击 Unlock 以解除闪存保护,随后点击 Download,将所选固件烧录至设备。

-
复位开发板。烧录完成后,重新给开发板上电(或按下其 Reset 按钮)以启动新固件。

节点设备固件烧录
BLE 设备烧录
目标板为 TL3238 Dongle,硬件连接方式参见连接硬件章节。选择开发板类型 TL323x,固件选择 zigbee_ble_sampleGW_tl323x.bin,烧录详细步骤参见 RCP 固件烧录章节。
Zigbee 设备烧录
目标板为 TL3238 Dongle,硬件连接方式参见连接硬件章节。选择开发板类型 TL323x,固件选择 sampleLight_tl323x.bin,烧录步骤参见 RCP 固件烧录章节。
Matter over Thread 设备烧录
目标板为 TL3238x 开发板,硬件连接方式参见连接硬件章节,选择开发板类型 TL323x。

Matter over Thread 设备需要烧录两个固件到目标板上,点击菜单栏 Open 边上的扩展按钮。
- 选择
merged_lighting_tl323x_fd_1fd000.bin,烧录地址为 flash 的0地址。 - 打开
factory_data_1141_8005_0x1fd000/1141_8005目录,选择一个文件夹,找到factory_data.bin,烧录地址为 flash 的0x1fd000地址。
两个固件都选好后点击 Download,BDT 会自动完成两个固件的烧录。

验证示例运行结果
Host 环境配置
OTBR 服务安装
按照官方文档中的步骤,安装 OTBR(OpenThread Border Router)服务。安装完成后,按照下面步骤完成 OTBR 服务的配置和启动:
-
编辑配置文件,配置串口设备和波特率:
sudo nano /etc/default/otbr-agent在配置文件中,找到以下行(如果不存在则创建):
OTBR_AGENT_OPTS=""将其修改为:
OTBR_AGENT_OPTS="-I wpan0 -B enp3s0 spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200"注意
/dev/ttyACM0为设备名称,请根据您系统上的实际设备名称进行调整。 -
重启服务:
sudo systemctl daemon-reload sudo systemctl restart otbr-agent sudo systemctl status otbr-agent
chip-tool 安装
CHIP 工具(chip-tool)是一款 Matter 控制器实现程序,安装过程十分简单,只需在终端中执行以下命令:
sudo snap install chip-tool
关于 chip-tool 的详细使用说明和更多资料,请参阅官方文档。
ZGC 工具安装
Zigbee Gateway Controller(ZGC)是一款用于控制 Zigbee 网关的工具,其 Linux 版本以压缩包 zgc_ble_controller_linux.tar.gz 与预编译固件一并提供。请按照以下步骤完成安装与初始配置:
- 解压
zgc_ble_controller_linux.tar.gz。 -
运行安装命令:
sudo python3 zgc_tool.py
注意
如果是首次运行,需要安装额外的依赖项(bluez、python3)来完成配置:
sudo apt-get update
sudo apt-get install bluez python3 python3-pip libxcb-cursor0
安装 Python 模块:
pip3 install csv pyserial PySide6 pandas
Matter 设备入网与控制
本节介绍如何通过 OTBR 启动 Thread 网络,并使用 chip-tool 完成 Matter 设备的配网与控制。
OTBR 启动
- 启动 host,用 USB Type-C 数据线将 RCP 设备(TL3228x 开发板)和 host 连接,请确保数据线插入 TL3228x 开发板右上方的 USB 端口。
-
在终端中执行以下命令,检查系统是否正确识别到 RCP 的两路串口。正常情况下,输出应包含两个
ttyACM端口:ls /dev/tty* -
执行以下命令,确认 RCP 与 host 的连接正常。若返回结果不包含
"Connection refused",则表示连接成功:sudo ot-ctl state若返回结果包含
"Connection refused",请参考常见问题:RCP 无法与 host 通信章节。 -
依次执行以下命令,配置并启动 Thread 网络。每条命令执行后应返回
Done:sudo ot-ctl dataset set active 0e08000000000000000000030000144a0300000b35060004001fffe0020811111111222244440708fddead00beef00000510ffeeddccbbaa9988776655443322110003037365640102058b0410567138be961fa4dbf260cbbd420b39f00c0402a0f7f8 sudo ot-ctl ifconfig up sudo ot-ctl thread start -
等待片刻后,执行以下命令查看网关角色。若返回
leader,则表示网络已正常启动:sudo ot-ctl state -
查询 OTBR 当前信道,在 shell 中输入以下命令。返回值应为 20。后续 Zigbee 网络配置也需要使用相同的信道。
sudo ot-ctl channelOTBR 支持通过命令行控制,详细命令请参阅 OpenThread CLI 官方文档。使用时,需在命令前加
sudo ot-ctl前缀。
Matter 设备入网与控制
在 Thread 网络正常运行后,按以下步骤完成 Matter 设备的入网与控制。
- 上电 Matter 子设备(TL3238x 开发板),使其进入待配网状态。
-
使用 chip-tool 将设备加入网络。在终端中执行以下命令:
chip-tool pairing ble-thread 1 hex:0e08000000000000000000030000144a0300000b35060004001fffe0020811111111222244440708fddead00beef00000510ffeeddccbbaa9988776655443322110003037365640102058b0410567138be961fa4dbf260cbbd420b39f00c0402a0f7f8 ${PIN_CODE} ${DISCRIMINATOR}参数说明:
${PIN_CODE}和${DISCRIMINATOR}为变量,需替换为实际值。实际值可在固件目录Firmware\factory_data_1141_8005_0x1fd000\1141_8005\中找到。进入烧录factory_data.bin所在的文件夹,查看summary.json文件,其中passcode对应${PIN_CODE},discriminator对应${DISCRIMINATOR}。

-
设备成功入网后,可通过 chip-tool 控制 Matter 设备。执行以下命令后,应能观察到 TL3238x 开发板上的红、蓝、绿三色 LED 亮起或熄灭:
chip-tool onoff toggle 1 1
Zigbee 设备入网与控制
本节介绍如何使用 ZGC 工具启动 Zigbee,并完成 Zigbee 子设备(TL3238 Dongle)的入网与控制操作。
- 在 host 中打开一个新的命令行终端,执行以下命令进入 ZGC 工具所在目录并启动程序:
cd bzt/tool/zgc_ble_controller_linux/ python3 zgc_tool.py - 程序启动后,桌面上将弹出 ZGC 图形界面。请按以下步骤进行配置:
- 端口选择:选择编号较大的
ttyACM端口 - 波特率:设置为
115200 - 功能勾选:
- 勾选左下角的 "bleHci" 选项
- 勾选左侧的 "scroll to bottom" 选项
- 连接:点击 "Open" 按钮完成串口连接。
- 端口选择:选择编号较大的
-
在 ZGC 工具界面中,点击 "BDB" 选项卡。必须将 Zigbee 网络通道设置为与 Matter 网络相同的通道(例如通道 20),以确保无线通信兼容。

-
点击 "start network",ZGC 将启动 Zigbee 网络。启动成功后,RCP(TL3228x 开发板)设备上的绿色 LED 指示灯会亮起,表示网络已正常运行。

-
为 Zigbee 子设备通电。等待片刻后,子设备上的绿色 LED 指示灯会亮起,表示已成功加入 Zigbee 网络。
-
在 ZGC 界面中,选择 "nodesMGMT" 选项卡,然后点击 "get joined nodes"。界面将列出当前网络中所有已入网的设备节点。从中选择一个目标设备,然后点击 "on"/"off" 按钮,即可控制该 Zigbee 子设备上蓝色 LED 指示灯的亮灭。

BLE 设备连接
本节介绍如何使用 ZGC 工具通过低功耗蓝牙(BLE)连接 BLE 子设备(TL3238 Dongle)。
- 在 host 中打开一个新的命令行终端,执行以下命令进入 ZGC 工具所在目录并启动程序:
cd bzt/tool/zgc_ble_controller_linux/ python3 zgc_tool.py -
程序启动后,桌面上将弹出 ZGC 图形界面。请按以下步骤进行配置:
- 端口选择:选择编号较大的
ttyACM端口 - 功能勾选:
- 勾选左下角的 "bleHci" 选项
- 勾选左侧的 "scroll to bottom" 选项
- 连接:点击 "Open" 按钮完成串口连接。

- 端口选择:选择编号较大的
-
为 BLE 子设备通电,使其进入可被发现状态。
-
在 ZGC 界面右侧选择 "bleHci" 选项卡。在 "scan para set" 后面的输入框中分别输入
0x0123和0x0064,然后点击 "scan para set" 完成参数配置。注意
请确保先完成步骤 3(设备上电),再执行本步骤的参数设置,以保证设备可被正常扫描到。
-
点击 "start scan" 开始扫描。接收界面将显示大量 HCI 命令日志。等待约 10 秒后,点击 "stop scan" 结束扫描。

-
在扫描结果中,找到名为 "BZT-DEMO1" 的设备并选中,然后点击 "connect" 按钮。连接成功后,界面将显示 "BLE connected"。如果连接失败,请重新选择设备并多次尝试连接,参考常见问题:BZT Demo 无法连接 BLE 设备章节。
常见问题
RCP 无法与 host 通信
现象描述:OTBR 启动时,输入 OTBR 控制命令后返回 "Connection refused" 报错。
解决方法:
- 重启 RCP。
- 在 shell 界面输入命令,检查是否有两个 ttyACMx 节点被枚举。
ls /dev/tty* - 打开
otbr-agent配置文件,检查 spinel 端口号是否为较小的那个 ttyACMx 节点,更新为实际的节点。sudo nano /etc/default/otbr-agent OTBR_AGENT_OPTS="-I wpan0 -B enp3s0 spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200" - 重启 OTBR 服务。
sudo systemctl daemon-reload sudo systemctl restart otbr-agent sudo systemctl status otbr-agent
BZT Demo 无法连接 BLE 设备
现象描述:ZGC 工具无法扫描到 BLE 设备的广播,导致无法连接 BLE 设备。
解决方法:
- 重启 BLE 子设备。
- 确认 scan 参数设置正确,重新点击 start scan,等待 10 秒,然后点击 stop scan,等待右边刷新 BLE 设备列表。
- 选中 "BZT-DEMO1" 设备连接。
社区与资源
| 资源 | 说明 |
|---|---|
| Telink 官方论坛 | 技术交流与支持 |
| Telink 官方网站 | 产品中心 |
| Telink 文档网站 | 文档中心 |