目录
一、引言
BLE Mesh已成功应用于各种智能家居和工业物联网应用中,它具有低功耗、低成本、高性能和易用性等特点。BLE Mesh基于开放标准,具有良好的兼容性和可扩展性,可实现可靠、高效的无线通信。此外,BLE Mesh模块还支持多种网络拓扑结构,如星型、树型和网状结构等,能够灵活地满足不同应用场景的需求。在安全性方面,BLE Mesh模块提供了高级加密和认证功能,确保数据传输的安全性和完整性。
二、BLE Mesh介绍
2.1 BLE Mesh组网优势
2.2 BLE Mesh组网方式
2.2.1 简介
BLE Mesh采用网络泛洪的方式,网络泛洪的方式是指网络中所有具备中继功能的设备都会转发收到的消息。优点是无需特定的路由设备,确保消息多路径传输无障碍地到达目的设备。缺点是可能会对网络消息泛滥造成通信延迟。
2.2.2 节点类型
1、普通节点:BLE Mesh普通节点都具有收发消息的功能。
2、中继节点:可以接收并转发其他节点发送的消息,从而扩展网络的覆盖范围和可靠性。
3、低功耗节点:为了节省电量,可以在大部分时间处于休眠状态,只在特定的时间间隔唤醒并与网络通信。
4、朋友节点:为低功耗节点提供缓存服务,将在低功耗节点休眠期间传递给它的消息保存下来,等待低功耗节点唤醒后再发送给它。
5、代理节点:可以为不支持蓝牙Mesh的BLE设备提供代理服务,将BLE设备发送的消息转换为蓝牙Mesh消息,并通过广播方式转发给网络中的其他节点。
2.2.3 网络拓扑结构
1、节点之间的连线表示无线信号覆盖范围内的直接连接;
2、对无线信号覆盖范围外的节点之间的通信需要经过中继节点;
3、BLE节点通过GATT Bearer方式和代理中继节点进行通信;
4、 朋友节点作为低功耗节点的好友会储存收到的消息, 在低功耗节点从睡眠中醒来后会查询朋友节点来取得这个发送给它的消息并做相应的处理。
2.2.4 优化网络泛洪的措施
BLE Mesh的网络拓扑结构可能导致网络消息泛滥造成通信延迟,为了优化网络泛洪的方式,蓝牙Mesh采用了以下措施:
/*BLE Mesh消息缓存处理*/
static bool check_dup(struct os_mbuf *data)
{
const u8_t *tail = net_buf_simple_tail(data);
u32_t val;
int i;
val = sys_get_be32(tail - 4) ^ sys_get_be32(tail - 8);
for (i = 0; i < ARRAY_SIZE(dup_cache); i++) {
if (dup_cache[i] == val) {
return true;
}
}
dup_cache[dup_cache_next++] = val;
dup_cache_next %= ARRAY_SIZE(dup_cache);
return false;
}
//源自开源协议栈NimBLE
2.3 BLE Mesh协议栈架构
Mesh是一种基于BLE(Bluetooth Low Energy)协议扩展的网络协议。可以通俗地理解为,蓝牙MESH是在BLE协议基础上构建的网络协议。它扩展了BLE的能力,为用户提供了更广泛的应用场景和更稳定可靠的数据传输。
2.4 BLE Mesh配网流程
配网流程包括以下五个阶段:
信标:如果未经配置的设备支持 PB-ADV承载层,则其作为未经配置的设备 Beacon 进行广播;如果使用的是 PB-GATT 承载层,则发送可连接的广播数据包。此举旨在向配网器(Provisioner)表明设备已做好准备,可进入配网流程。
邀请:配网器(Provisioner)会邀请设备发送自身配置功能信息。
交换公钥:在此阶段,根据设备的功能,配网器(Provisioner)会选择合适的验证方法,并通知设备将要采取的方式。随后,配网器和设备将创建一个椭圆曲线公私密钥对并交换公钥。接着,每台设备将使用自己的私钥和对等设备的公钥来计算对称密钥,即 ECDHSecret。该密钥用于验证对端设备的身份。
认证:在此步骤中,配网器将使用所选的验证方法对设备进行验证。
分发配网数据:认证步骤完成后,可以确保在配网器(Provisioner)和设备之间建立的承载层的安全性,然后进入配网(Provisioning)过程中最重要的一步:导出并分发配置数据(provisioning data)。
BLE Mesh配网主要分为两个阶段:Provisioning阶段和Config阶段。在Provision阶段,节点加入网络并获取网络地址和配置信息。在Config阶段,节点根据获取的配置信息进行网络配置和设备参数设置。
Provisioning阶段
Config阶段
Config阶段可省略部分数据交互流程以加快配网,如Config Composition Data Get,节点在云端已配置信息,网关可直接从云端获取,避免多余交互。Config Model App Bind也不需网关发起,节点可自行绑定。Config Model Subscription Add可在后续根据节点需求决定是否绑定分组。因此,存在一个快速配网阶段。
三、BLE Mesh实物演示
该模块使用的是一款国产的高性能BLE蓝牙芯片,表现出卓越的性能和稳定性。该模块的SDK非常完善,为开发者提供了丰富的功能和工具,使得开发过程变得相对容易。开发者可以使用Keil开发环境进行编程和调试,从而更加高效地进行开发和测试。此外,该模块还具有低功耗的优点,能够有效地延长设备的使用时间。
BLE Mesh蓝牙组网模块入网操作流程
四、资料获取
通过点击以下链接,您可以获取BLE Mesh模块原理图、源代码以及开发资料。链接地址将为您提供详细的文件资料,以供您进行参考和使用。
如果您在使用过程中遇到任何问题或疑虑,欢迎加我QQ ,一起探讨技术问题,我的QQ号是986571840,加的时候请注明CSDN。
BLE Mesh蓝牙组网模块 - 硬创社 (jlc.com)https://x.jlc.com/platform/detail/001d23cba7b64b0d9df5b9b69720fadb
感谢各位用户点赞、分享、在看,这些行为让知识得以更加广泛地传播,从而让更多人受益。
请在转载作品时注明出处,严禁抄袭行为。