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开发包
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
3、手机App
Android App在以上SDK开发包中获取: elink_sig_mesh_sdkappandroidTelinkBleMeshTelinkBleMeshDemo-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上位机工具。该工具已经包含于SDK开发包中,路径为 oolssig_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工具,选择网关对应的ini文件如下图所示,用PB-ADV方式对其中一个/多个mesh节点进行组网。
组网成功后,点击右下角“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的所有新功能。
审核编辑:刘清
-
上位机
+关注
关注
27文章
942浏览量
54820 -
RPR
+关注
关注
0文章
5浏览量
16434 -
蓝牙mesh
+关注
关注
10文章
62浏览量
15595 -
泰凌微
+关注
关注
7文章
149浏览量
10808
原文标题:【技术专栏】泰凌微电子蓝牙Mesh远程配网功能和测试说明
文章出处:【微信号:telink-semi,微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论