泰凌微电子蓝牙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

另外, 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

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宏开关(如下图)。

RPR

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

03

APP设置

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

RPR

04

测试步骤

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

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

RPR

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

RPR

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(如下图)。

RPR

针对网关和节点设备分别编译代码,得到的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节点进行组网。

RPR

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

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

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

RPR

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

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

RPR

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

RPR

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

RPR

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

RPR

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

RPR

2.7 绑定app_key

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

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的所有新功能。







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分