谷动谷力

 找回密码
 立即注册
查看: 1114|回复: 0
打印 上一主题 下一主题
收起左侧

【技术专栏】泰凌微电子蓝牙Mesh远程配网功能和测试说明

[复制链接]
跳转到指定楼层
楼主
发表于 2024-1-17 14:15:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sunsili 于 2024-1-17 14:37 编辑

【技术专栏】泰凌微电子蓝牙Mesh远程配网功能和测试说明


1远程配网(Remote Provisioning)

功能介绍

蓝牙Mesh规范1.0版本里面,进行配网(Provisioning)的时候,要求配网节点(Provisioner)和被配网节点(Provisionee)在一跳范围内,因为unprovision beacon 包不能直接进行relay,所以配网过程中的命令交互也就不能进行relay。

为了把一跳以外的节点加入网络,蓝牙Mesh规范1.1版本加入远程配网(Remote Provisioning,RPR)功能。RPR在组网的时候,也是逐个节点进行添加,但是有relay的功能,所以可以添加较远的节点进入网络。目前,泰凌微电子的TLSR825x和TLSR921x系列芯片已经全面支持包括RPR在内的蓝牙Mesh规范1.1的所有新功能。

重要应用场景:采用RPR后,当主机(配网节点)不方便移动时,也可以实现在应用中按实际场景先布置好mesh节点,然后再组网。特别是有网关的应用场景。

RPR组网流程如下:

  • 先对配网节点一跳范围内的一个或者多个节点进行组网。
  • 通过已经组网的节点扫描更远距离(第二跳范围内)的节点发出来的unprovision beacon并上报给配网节点。
  • 配网节点选中某一个上报unprovision beacon的节点(比如已组网节点A上报扫描到了未组网节点 B )。
  • 配网节点对节点B组网时,把要发送给节点B的消息先封装成mesh network message,然后先发送给节点A,然后节点A再把组网信息提取出来,以通用的provision PDU的形式发送给未组网节点B(可以是 PB-ADV, 也可以是 PB-GATT的方式)。
  • 节点B回复给配网节点的消息,也是先封装成mesh network message后,再经过A传给配网节点。
  • 步骤4和步骤5多次执行,直至组网完成。在此过程中,对于未组网节点 B 来说,可以认为节点 A 是不存在的,和普通的组网模式没有什么区别。
  • 通过重复步骤2到6把第二跳范围内的节点组网完成。然后按相同的方式,再搜索和组网第三跳的节点。。直至搜索不到任何未配网节点。



另外, RPR除了可以做远程组网,还可以做Device Key, Node Address和 Composition Data的更新。

2 使用App测试RPR功能

01 测试条件

1、SDK开发包

访问Telink Wiki下载最新的蓝牙Mesh SDK:
https://wiki.telink-semi.cn/tools_and_sdk/BLE_Mesh/SIG_Mesh/sig_mesh_sdk.zip

2、硬件

本文以TLSR825x芯片作为测试样例。需要TLSR8258 Dongle若干(>=2)作为mesh节点设备,可以通过在线购买获取:
https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-24776555937.13.5c531ab2zURieL&id=680419633378

Android或者iOS蓝牙Mesh App

3、手机App

[url=]Android App[/url]在以上SDK开发包中获取:\telink_sig_mesh_sdk\app\android\TelinkBleMesh\TelinkBleMeshDemo-V4.1.0.0-20231113.apk

iOS App可以在App Store通过搜索telinksigmesh获取。

02 SDK代码配置

在默认配置下,RPR功能是关闭的。如需开启该功能,则需要在mesh_config.h文件中打开节点端的 MD_REMOTE_PROV宏开关(如下图)。


将编译后得到的8258_mesh.bin文件烧录到两个TLSR8258 Dongle中,并将dongle上电。

03 APP设置

打开App,⾸⻚点击Setting——Settings——Provision Mode,选择remote provision。



04 测试步骤

1、App首页点击 + 号进入 Remote Provision页面。然后开始自动组网。

开始自动组网前,App会判断,当前App是否是和支持RPR功能的已组网节点处于GATT connected状态,如果不是,则进行普通的 PB-GATT 组网,如果是,则通过这个已组网节点对其它未组网节点进行RPR组网。如下图,其中第一个节点(左上)是通过普通的 PB-GATT进行组网,后面两个(右上和左下)是通过remote provision组网。


2、当超时还未扫描到更多的未组网节点,则表示所有节点已组网完成,然后返回主页显示如下:



3使用网关(gateway)测试RPR功能

01 测试条件

通过网关测试RPR功能与App测试使用同样的SDK开发包(网关的代码配置如下说明)。同样使用TLSR8258 Dongle作为测试硬件,其中一个dongle作为网关设备,其余的多个dongle(>=2)作为mesh节点设备。

此外,在本测试中还需要使用PC[url=]上位机[/url]工具。该工具已经包含于SDK开发包中,路径为\tools\sig_mesh_tool.exe。

02 SDK代码配置

在默认配置下,RPR功能是关闭的。如需开启该功能,则需要在mesh_config.h文件中打开网关和节点端的宏开关MD_REMOTE_PROV(如下图)。


针对网关和节点设备分别编译代码,得到的8258_mesh_gw.bin和8258_mesh.bin文件,分别烧录到网关dongle和节点dongle中。随后,将网关dongle插入电脑USB端口,并将其余节点dongle也上电。

03 测试步骤

1、第一阶段:以普通PB-ADV方式组网一个或多个节点

当网络为空,没有已组网设备时,需要通过普通的 PB-ADV 的方式先把网关一跳范围内的一个或者多个节点先组网成功。

将网关dongle与PC通过USB端口连接。在PC上打开sig_mesh_tool工具,选择网关对应的[url=]ini文件[/url]如下图所示,用PB-ADV方式对其中一个/多个mesh节点进行组网,具体流程参考Sig Mesh Handbook(https://wiki.telink-semi.cn/doc/ ... oper%20Handbook.pdf)网关工程Provisioner加灯章节(10.4)。


组网成功后,点击右下角“Mesh”按钮打开mesh控制界面,并自动发送LIGHTNESS_GET all命令获取当前所有节点,并显示在首页UI界面。

2、第二阶段:RPR添加mesh节点

2.1 点击图中上位机主页的rp_scan按钮,设置好limit(报告的最大扫描设备数量)和timeout(扫描超时限制)(秒)参数。然后点击确认,工具会对前一步获取的已组网节点列表下发scan start命令


节点收到scan start后会回复scan status。

2.2指定的scan节点在scan期间通过REMOTE_PROV_SCAN_REPORT消息上报扫描到的未配网节点。如下图所示:


2.3 在扫描的设备列表双击需要进行RPR的设备(如下图),此时开始发送Remote Provisioning Link Open指令等。


2.4 点击上位机主页Prov按键进入provision界面。


2.5 点击Provision按键触发添加设备。


2.6 Provision完成后会上报设备provision状态。



2.7 绑定app_key

Provision完成后,还需要为model绑定app_key。点击bind_all为model绑定app_key。该流程和非RPR模式是一样的。


此时,就完成了通过RPR对该节点组网。

2.8 重复步骤 (2.1)~(2.7) 逐个对其他节点执行RPR组网,直至把所有节点组网完成。

4 总结

远程配网(Remote Provisioning)(RPR)是蓝牙Mesh 规范1.1中增加的主要新功能之一,便于Provisioner借助中继节点将一跳连接范围以外的远端mesh设备加入网络,使得mesh网络的建立过程更加便利。本文以TLSR825x芯片为例,介绍了使用通过泰凌提供的手机App和PC上位机工具两种途径对RPR功能进行测试验证的基本方法。

目前泰凌微电子的TLSR825x和TLSR921x系列芯片已经全面支持包括RPR在内的蓝牙Mesh规范1.1的所有新功能。后续,我们将推出系列文章对其他蓝牙Mesh 1.1的主要新功能进行介绍。

+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-11-18 05:29 , Processed in 0.149397 second(s), 41 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表