Mesh网络中每个设备节点都能发送和接收信息,只要有一个设备连上网关,信息就能够在节点之间被中继,从而让消息传输至比无线电波正常传输距离更远的位置。这样,Mesh网络就可以分布在制造工厂、办公楼、购物中心、商业园区以及更广的场景中,为照明设备、工业自动化设备、安防摄像机、烟雾探测器和环境传感器提供更稳定的控制方案。

Part 01、发展历史

蓝牙技术开始于爱立信在1994年创制的方案,该方案旨在研究移动电话和其他配件间进行低功耗、低成本无线通信连接的方法。发明者希望为设备间的无线通讯创造一组统一规则(标准化协议),以解决用户间互不兼容的移动电子设备的通信问题,用于替代RS-232串口通讯标准。

1998年5月20日,爱立信联合IBM、英特尔、诺基亚及东芝公司等5家著名厂商成立「特别兴趣小组」(Special Interest Group,SIG),即蓝牙技术联盟的前身,目标是开发一个成本低、效益高、可以在短距离范围内随意无线连接的蓝牙技术标准。当年蓝牙推出0.7规格,支持Baseband与LMP(Link Manager Protocol)通讯协定两部分。

1999年蓝牙1.0版本出现,但直到2003年1.2版本推出才满足了无线语音和音频传输等功能的基本要求。

2004年推出的蓝牙2.0版本和2007年推出的2.1版本将蓝牙的传输速率提高到了3Mbit/s,并改善了蓝牙设备的配对体验。

2009年发布的蓝牙3.0新增了High Speed功能,使传输速率高达24Mbit/s。但此功能应用范围较窄,仅在电脑上出现过。

2010年发布了蓝牙4.0版本,增加了蓝牙低功耗(Bluetooth Low Energy)技术。蓝牙进入了物联网产品中。

2016年蓝牙5.0协议发布,在低功耗模式下具备更快更远的传输能力。速度上限达到2Mbit/s,传输有效距离理论上可达300m。

2017年发布了蓝牙Mesh1.0协议。蓝牙通过这个协议正式进入了物联网的领域。

Part 02、发展前景

蓝牙Mesh的优点:

1.芯片成本低。基本人手一个带蓝牙的智能手机,普及度高。低功耗模式下功耗低,可以使用电池供电。

2.网络容量大,理论可以支持网络接入6万个设备。流行os实现中(安卓、linux)稳定的协议栈及智能手机控制,未来潜力巨大。

当前,小米作为国内智能家居的大厂,目前主推蓝牙Mesh协议,不断推出蓝牙Mesh协议的智能家居产品,并且在开发文档中明确说明不再推广ZigBee接入方案。阿里巴巴作为SIG国际蓝牙组织智能家居专项组主席,不断推进蓝牙Mesh在智能照明电工、大小家电等各个领域的协议落地。天猫精灵AI智能音箱也在积极推动蓝牙Mesh设备接入,并且阿里也推出了平头哥蓝牙Mesh芯片。

国外亚马逊、谷歌、苹果等科技巨头也在积极投入蓝牙Mesh生态。迄今为止,全球销量榜前6的智能音箱中,五款内置蓝牙Mesh网关功能。

Part 03、基本概念

- 广播和洪泛

蓝牙Mesh技术是基于低功耗蓝牙广播报文来实现的。这是一种基于洪泛(flooding)的消息传递机制。当一个节点需要向另一个节点发送消息时,它会广播一条消息,所有收到这个消息的节点都接收并且转发这条消息,确保目标节点能够收到这一消息。

- 节点和设备

在蓝牙Mesh网络中,我们通常把还未加入蓝牙Mesh网络的设备叫做未配网设备(Unprovisioned device),未配网设备加入一个蓝牙Mesh网络之后就被称为节点(Node)。

把一个未入网设备加入蓝牙Mesh网络变成节点的过程叫做配网过程(Provisioning)。在蓝牙Mesh网络中,通常是由一个配网器(Provisioner)来将未配网设备进行配网从而变成蓝牙Mesh网络中一个节点的。

一些节点扮演不同的角色,表现出以下四个节点特征(Features):

  • 低功耗 (Low-Power) 特性

功率受限的节点可能会利用低功耗特性来减少无线电接通时间并节省功耗。同时低功耗节点(LPN)可以与Friend节点协同工作。

  • Friend 特性

功率不受限的节点很适合作为Friend节点。Friend节点能够存储发往低功耗节点(LPN)的消息和安全更新;当低功耗节点需要时再将

  • 中继 (Relay) 特性

中继节点能够接收和转发消息,通过消息在节点之间的中继,实现更大规模的网络。节点是否能够具备这一特性取决于其电源和计算能力。

  • 代理 (Proxy) 特性

代理节点能够实现GATT和蓝牙Mesh节点之间的Mesh消息发送与接收。承担这一角色的节点需要固定的电源和计算资源。

- 元素

一个节点是由元素组成的,节点至少要包含一个主元素(Primary Element),也可以包含多个元素,每个节点里包含的元素个数和结构是固定的,每个元素都有自己的地址,主元素的单播地址在配网过程中由配网器下发,而节点中其余元素的地址则依序增加。

- 状态

状态(State)用于表示节点中元素处于的某一个特定状况。元素的状态是通过客户-服务端的机制来访问的。例如,某个节点(比如插座)中的元素有通用开关模型的开关服务端,用来代表这个元素的开关状态;另一个节点的元素(比如开关按钮)有通用开关模型的开关客户端,这样就可以通过开关按钮上的开关客户端发送开关模型定义好的消息去访问或控制插座上开关服务端的开关状态。

- 消息

蓝牙Mesh网络节点之间的通信都是通过消息来实现的。每个状态都关联一系列消息,客户端会发送这些消息给服务端去读取或设置服务器端的状态,服务端也会在状态改变时发出消息来通知其他节点的客户端。

蓝牙Mesh的消息定义包含了消息报文格式及消息的交互机制。消息报文格式由操作码和相关参数组成。

消息分为需要回复的消息和不需要回复的消息。

- 模型

模型(Model)定义了节点具备的基本功能,包含实现这个功能所必需的状态和操作状态的消息及其他一些行为。一个节点可以包含多个模型。在蓝牙Mesh模型里,采用客户端-服务端的架构进行通信。因此,在蓝牙Mesh网络中的应用也被定义成这3种模型:服务端模型、客户端模型和控制模型。

- 发布和订阅

在蓝牙Mesh网络中,节点在需要时可以向单播地址、组播地址、虚拟地址发布消息,而其他节点可以通过订阅这些地址来获取这些消息。如客厅中的灯具可以订阅客厅的组播地址。

- 配网过程

1)未配网设备向外广播自己的存在。

2)在未配网设备和配网器间建立一个链接。

3)安全的建立一个共享密钥,用于后期传送配网数据。

4)通过OOB信息认证未配网设备是否可以加入蓝牙Mesh网络。

5)加密传输配网数据。