Part 01
蓝牙mesh技术特点
- 支持多对多拓扑
蓝牙mesh网络采用一种称为“网络泛洪(flooding)”的方式进行发布和中继消息,可实现mesh网络中多个节点和多个节点的连接及消息互通。
- 扩展物理区域覆盖
蓝牙mesh网络摆脱节点只能下挂在网关或主路由下的束缚,还可作为中继节点、朋友节点的角色,支持对终端设备消息中继和转发,实现“接力传输”,克服WiFi技术较远距离的设备消息互通及覆盖等困难。
- 去除中心节点依赖
蓝牙mesh网络进行消息传递,不会通过某一特定路线、特定设备或某一固定过程进行消息路由,因此,可摆脱中心节点(例如:网关、主路由设备等)的依赖。
- 支持自我修复
蓝牙mesh网络中单一节点故障或异常无法进行通信,会进行自动自我配置,通过其他正常工作节点传递或中继消息,从而实现单点故障自我修复。
Part 02
蓝牙mesh技术原理
蓝牙mesh技术的原理和设计主要从网络架构、拓扑及节点、地址划分三方面进行体现,以下将以这三个方面为切入点,剖析蓝牙技术原理。
1️⃣ 蓝牙mesh技术网络架构
在网络架构中,蓝牙mesh是工作在BLE协议栈之上,使用相同的物理层和链路层。
图1 蓝牙mesh协议栈示意图
自上而下,蓝牙mesh协议栈分别为:模型层(Model Layer)、基础模型层(Foundation Model Layer)、访问层(Access Layer)、上层传输层(Upper Transport Layer)、底层传输层(Lower Transport Layer)、网络层(Network Layer)、承接层(Bearer Layer)。其中,蓝牙mesh协议栈各层作用为:模型层定义用户场景/应用,基础模型层配置管理mesh,访问层定义应用如何利用上下文数据,上层传输层对应用数据加密及解密,底层传输层对数据分段及重组,网络层进行网络管理,承接层进行广播/GATT承载。
2️⃣ 蓝牙mesh拓朴及节点
图2 蓝牙mesh网络拓扑
蓝牙mesh支持多对多通信,因此在具有较多设备的场景下,蓝牙mesh一般为网状结构,如上图所示,在蓝牙mesh网络拓扑中,一般存在这四类节点类型:
(1)蓝色节点代表普通终端节点,不能对蓝牙mesh网络中消息进行中继转发,直接从蓝牙mesh网络中进行消息的接收和发送;
(2)红色节点为中继节点,用于消息的中继,实现网络消息的远距离传输;
(3)紫色节点代表朋友节点,用于低功耗节点和网络间传递消息;
(4)黄色节点代表低功耗节点,通过朋友节点进行消息的接收或转发,这类节点一般是低功耗传感器,采用电池供电,因此会存在休眠机制。
蓝牙mesh技术基于网络泛洪(flooding)的信息传递机制,所有信息一旦由节点发布后,就会广播到网络上,而非透过路由方式传递给一个或多个节点。而WiFi网络是围绕着一个中央节点(例如网关、路由器等设备)来进行消息上下行,所有网络流量都会经过此处,万一中央节点故障,整个网络就跟着停摆。蓝牙mesh技术可有效去除中心化,摆脱对中心节点依赖。
3️⃣ 蓝牙mesh地址划分
蓝牙mesh网络层定义了四种基本类型的地址:未分配地址、单播地址、虚拟地址、组播地址,其中,地址长度为16位。地址详细分类如下表所示:
(1)未分配地址
未分配地址是尚未被配置的节点元素的地址或未分配的地址。未分配地址的值为0x0000。例如:可以通过将模型的发布地址设置为未分配地址来禁用模型的消息发布,未分配地址不得用于消息的源或目标地址字段。
(2)单播地址
单播地址是分配给每个元素的唯一地址,单播地址的值不能为0x0000,可取值范围为0x0001到0x7FFF。在配网阶段,配置器会在网络节点的生命周期内为节点的每个元素分配单播地址,该地址可以由配置器取消分配,允许重复利用。
(3)虚拟地址
虚拟地址表示一组目标地址,每个虚拟地址在逻辑上代表一个标签UUID,一个或多个元素可以配置发布或订阅同一个标签UUID。标签UUID不会被传输,应该用做上层传输层中消息完整性校验值的附加数据字段。虚拟地址的取值范围为0x8000到0xBFFF。
(4)组播地址
将0或多个元素的地址配置成同一地址,该地址就为组播地址。组播地址从0xFF00到0xFFFF保留给固定的用途,0XC000到0xFEFF用于其他用途。组播地址只能在消息的目标地址字段中使用,发送给组播地址的消息会被订阅这个组播地址的所有模型实体接收。
Part 03
蓝牙mesh在智能家居领域的应用
在智能家居市场上,蓝牙mesh的应用主要集中在给智能家居设备配网和管控智能家居设备两大场景。
所谓蓝牙mesh配网就是通过配置将设备加入到网络中,使其成为蓝牙mesh网络的一部分。蓝牙mesh配网,主要涉及到未配网设备(Unprovisioned Device)、配网器(provisioner)、mesh节点(mesh Node)三个角色。如下图所示,将未配网设备经过信标阶段、邀请阶段、交换公钥阶段、身份认证阶段、分发配网数据阶段5个阶段后,即可接入蓝牙mesh网络实现消息的互联互通。
图3 蓝牙mesh配网流程图
对于管控智能家居设备,即可通过节点间消息互传、广播等实现同时对多个智能家居设备的管控,并且可以支持远程控制和本地控制,相较于在WiFi网络下同时管控多个设备,蓝牙mesh管控方式响应速度更快并且对网络负载更小。
图4 蓝牙mesh网络内多个设备管控
综合Part1~Part3所述,蓝牙mesh技术拥有支持多点对多点连接、物理覆盖区域广阔、去除中心节点依赖等特性,既然满足了智能家居设备日益增长的互联互通的需求,又克服了现有WiFi技术无法解决的困难,为物联网适配不同场景提供了新的解决方案。