转载自2017-08-25 蓝牙技术联盟 蓝牙技术联盟,侵权立删
蓝牙mesh网络基本概念
Part 1
各位开发者朋友及蓝牙爱好者们,本周推送的这篇文章是解密蓝牙mesh系列第三篇,(点这里查看第一篇和第二篇文章)同时也是蓝牙mesh网络基本概念的第一部分,请开始你的阅读~
无论您想采用智能照明、温控和安全系统让家庭和办公室变得更加智能,还是想提高工业无线传感器网络(IWSN)的效率,蓝牙mesh网络都能为您与环境的交互开启全新的机遇。
蓝牙mesh网络为创建大型设备网络奠定了基础,让成千上万的无线设备彼此之间可靠安全地进行通信。本文将深入探究这一创新网络拓扑背后的基本概念。
节点(Node)
想象一下由数千台设备组成的网络,每台设备均通过低功耗蓝牙(LE)无线连接进行通信。蓝牙mesh网络中的这些设备被称为节点 (node) 。每个节点都能发送和接收消息。信息能够在节点之间被中继,从而让消息传输至比无线电波正常传输距离更远的位置。这样的节点网络(图1)可以被分布在制造工厂、办公楼、购物中心、商业园区(图2)以及更多环境中。
![426cb19cdf5b30a75f5a00d5f1bd7702.png](https://i-blog.csdnimg.cn/blog_migrate/30140663e79e034b886ba3ddf0315886.jpeg)
图 1 – mesh网络中的节点
![c50f1012e2570855d01f7e272f023312.png](https://i-blog.csdnimg.cn/blog_migrate/1ec9f563bb0bfc808978558c89f61b59.jpeg)
图2 - 制造工厂、办公楼、商业园区等的节点
蓝牙mesh节点非常多样化,有助于在mesh网络中实现多重功能。照明器具、机械设备、安防摄像机、烟雾探测器和环境传感器仅仅是节点能实现的几个例子。
元素(Elements)
一些节点(如传感器)的电池有可能会被耗尽,而其他节点(如照明设备、制造机械和安防摄像机)则会通过主电网来获取电力。一些节点的处理能力会高于其他节点。这些节点在mesh网络中可承担更为复杂的任务,扮演不同的角色,表现出以下四个节点特征(Features):
低功耗 (Low-Power) 特性
功率受限的节点可能会利用低功耗特性来减少无线电接通时间并节省功耗。同时低功耗节点(LPN)可以与friend节点协同工作。
Friend 特性
功率不受限的节点很适合作为friend节点。Friend 节点能够存储发往低功耗节点(LPN)的消息和安全更新;当低功耗节点需要时再将存储的信息传输至低功耗节点。
中继 (Relay) 特性
中继节点能够接收和转发消息,通过消息在节点之间的中继,实现更大规模的网络。节点是否能够具备这一特性取决于其电源和计算能力。
代理 (Proxy) 特性
代理节点能够实现GATT和蓝牙mesh节点之间的mesh消息发送与接收。承担这一角色的节点需要固定的电源和计算资源。
一些节点的复杂性高于其他节点,由多个称为元素(Element)的独立部分组成。每个节点至少拥有一个元素,称为主元素(Primary Element),同时还可能包含其他多个元素(图3)。元素由定义节点功能和元素条件的实体组成。例如,一个灯泡内有一个元素, 并具有两种功能:
- 节点 = 灯泡
- 一个元素 = 主元素
- 节点功能
- 开/关
- 亮度
- 元素条件/状态
- “开”或“关”
- 0 – 10 (亮度等级)
![a9454e63ba9fb527b4b4030a4fd6dcd6.png](https://i-blog.csdnimg.cn/blog_migrate/7e71605bb95fc4858832bf254512bd9d.jpeg)
图 3 –节点必须至少有一个元素,也可能包含多个元素
节点中的每个元素都有一个唯一的地址,称为单播地址(unicast address),使每个元素都有址可寻。我们将在后续的解密蓝牙mesh系列文章中进一步解释“寻址”。
模型 (Model) 和状态 (State)
无论节点位于制造厂房、酒店、办公楼、还是商业园区的网络中,节点的基本功能都由模型 (Model) 来定义和实施。模型位于元素内,元素必须具有至少一个模型(图4A)。模型能够定义并实施节点的功能和行为,而状态 (State) 能够定义元素的条件(图4B)。
![87fcd433a78121726afe2326045ab490.png](https://i-blog.csdnimg.cn/blog_migrate/e07324f3ad3f4f58e32fc77f725351c7.jpeg)
图4A - 节点、元素与模型
![8f9de488bebce8860c96a390299b8098.png](https://i-blog.csdnimg.cn/blog_migrate/992a8f8bc3659e09c5a5a1c4635c44e4.jpeg)
图4B - 节点、元素、模型以及状态之间的关系
以灯泡为例,该模型的功能是开关和调节亮度。相关的状态分别为“开”/ “关”和0-10:
- 模型 (节点功能)
1. 开/关
状态 -> “开”或“关”
2. 亮度 (0-10)
状态 -> 0-10
蓝牙mesh支持复合状态,即由两个或多个值组成的状态。变色灯就是这样的一个例子,色调可以不受颜色饱和度或亮度的局限而改变。
“绑定状态” (Bound State) 这一术语的定义源自一种状态的变化导致另一状态变化的情况。级别状态和开/关状态通常就相互绑定。如果级别从0变为1,则“开/关”的状态也从“关”变为“开”。
每个模型都有唯一的标识符。蓝牙技术联盟采用16位的模型,而供应商采用32位(其中包含蓝牙技术联盟指定的16位公司标识符以及16位供应商指定的模型标识符)。这确保了每个模型的地址都独一无二并且能确定被寻址到。
蓝牙mesh网络可借助消息,通过客户端 - 服务器架构进行通信。服务器的功能是暴露元素的状态。最简单的状态之一是二进制开关,其中状态为“开”或“关”。简单的服务器模型是通用开/关服务器模型 (Generic On/Off Server Model) ,其中包含表示开关开启或关闭的状态。
客户端可对状态进行访问,请求、更改或使用服务器的状态。举例来说,一个简单的客户端模型就是通用开/关客户端模型(Generic On/Off Client Model)(二进制开关)。通用开/关客户端模型通过发送消息来控制通用开/关服务器模型。例如,客户端可利用这一机制开启或关闭指示灯。
这种客户端 - 服务器架构产生了三种类型的模型:
服务器模型 (Server Model)
- 由至少一个或多个状态跨越一个或多个元素的状态组成
- 定义模型能够发送/接收的消息,并根据这些消息定义元素的行为
- 实例:
- 开/关切换——可以暴露开关状态
- 传感器——可以暴露传感器的状态(可能为温度值或传感器测量的“满”、“待充”或“空”的结果)
- 功率级别——可以暴露电源状态(等级1-10)
客户端模型(Client Model)
- 定义客户端为请求、更改或使用服务器相应状态所使用的消息。
- 实例:
- 开/关切换——客户端发送打开或关闭的消息
- 电源级别——定义电源状态的消息(0-10)
控制模型 (Control Model)
- 控制模型具有多种功能,同时可能包含一个或多个:
- 客户端模型 (Server Model)
- 服务器模型 (Client Model)
- 控制逻辑(规则和行为)用于协调与其相连模型之间的交互。
- 实例:控制模型可用在支持机器周围循环的液体冷却剂水泵上。
- 应用场景——温度传感器会记录机器的温度。如果机器超过设定的温度,冷却泵则会被打开。
- 冷却泵的控制模块 (Control Module)
- 与温度传感器相连的客户端(用于接受温度值)
- 连接到开/关切换的服务器(用于打开或关闭水泵)
- 控制逻辑(规则和行为)— 负责定义如果温度传感器超过设定值,则打开水泵。
模型的定义能让您在mesh网络中对节点及其功能进行配置。模型定义以及其他模型的概念将会在后续文章中进一步详细介绍。
![a6165aa3c2558367567b4b775d7a87d0.gif](https://i-blog.csdnimg.cn/blog_migrate/616e10717f3875b5a88f14c43b3eadec.gif)
基本概念未完待续…
蓝牙mesh网络凭借行业认可、全球互通性、成熟且可信赖的生态系统来创建工业级设备网络。现在您已经初步了解蓝牙mesh背后的一些基本概念,下周同一时间,将推送有关蓝牙mesh网络基础知识的概述,包括寻址、发布/订阅、消息、列表、以及如何结合这些知识共同创建蓝牙mesh网络。下周见!