蓝牙Mesh网络的基本概念第1部分
由 蓝牙开发者关系团队 发布于 2017 年 8月8日
蓝牙Mesh网络系列的第3章
无论您是使用智能照明,加热/冷却和安全系统使您的家庭或办公室更加智能化,还是提高工业无线传感器网络(IWSN)的效率,Bluetooth®Mesh网络都为与您的环境交互创造了新的机会。 蓝牙Mesh网络 为创建真正的大型设备网络提供了所需的基础,使您能够使数十,数百甚至数千个无线设备能够可靠和安全地相互通信。这篇文章是 蓝牙Mesh网络系列的一部分 ,深入研究了这种创新的网络拓扑背后的基本概念。
节点(Nodes)
想象一下,由数千个设备组成的网络,每个设备都通过 蓝牙低功耗(LE) 短突发(short-burst)无线连接。蓝牙Mesh网络上的这些设备称为节点。每个节点发送和接收消息。信息可以从一个节点传递到另一个节点,使信息传播的距离比射频波通常允许的距离大。这个节点网络(图1)可能分布在制造设施,办公大楼,购物中心,商业园区(图2)等等。
下载此综合技术概述,以了解有关重要概念和术语,系统架构和安全机制的更多信息,以及蓝牙Mesh网络背后的独特消息发布和传输技术。
蓝牙Mesh节点是多样的,并且能够促成Mesh网络中的任何数量的角色。灯具,机器,安全摄像机,烟雾探测器和环境传感器仅是节点可以实现的几个角色示例。
元件(Elements)
某些节点(如传感器)使用电池供电,而其他节点(如灯具,制造机械和安全摄像机)则从主电网中汲取电力。一些节点比其他节点具有更强的处理能力。这些节点可以在Mesh网络中承担更复杂的任务,担当不同的角色并拥有以下四个节点特征中的任何一个。
- 低功耗特性(Low-Power Feature)
功率受限的节点可以使用低功耗特性来减少射频开启时间并节省功耗。低功率节点(LPN)与好友节点一起工作。
- 好友特性(Friend Feature)
没有功率限制的节点很适合作为好友节点。好友节点存储目的地为LPN的传入消息和安全更新,当LPN请求这些消息时,好友节点将存储的信息传递给LPN。
- 中继特性(Relay Feature)
中继节点接收和重传消息,从而实现更大的网络,因为消息从节点传递到节点。根据电源和计算能力的不同,节点可能会采用此功能。
- 代理特性(Proxy Feature)
代理节点允许在GATT和蓝牙Mesh节点之间传输和接收Mesh消息。具有此角色的节点需要一个可靠的电源和计算资源。
有些节点比其他节点更复杂,并由称为元素(elements)的多个独立部分组成。每个节点至少有一个元素,称为主要元素,并可能有其他元素(图3)。元素由定义节点功能和元素状况的实体组成。例如,灯泡具有一个有两个功能的元件:
节点=灯泡
一个元素=主要元素
-
节点的功能
- 开关
- 亮度
-
元素的状态/状态
- 开或关
- 0 - 10(亮度级别)
节点中的每个元素都有一个唯一的地址,称为单播地址,使每个元素都是可寻址的。我们将在 蓝牙Mesh网络系列 的后面部分解释寻址(addressing)。
模型和状态(Models and States)
无论节点是通过工厂楼层,酒店,办公楼还是商业园区联网,节点的基本功能都是由模型定义和实施的。模型位于元素内部,元素必须有一个或多个模型(图4A)。模型定义并实现节点的功能和行为,而状态则定义元素的状况(图4B)。
使用我们的灯泡示例,该模型的功能是开/关和亮度。相关的状态分别是开/关和0-10:
-
模型(节点的功能)
-
- 开关
- 状态 - >打开或关闭
-
- 亮度(0-10)
- 状态 - > 0-10
-
蓝牙Mesh支持复合状态,它是由两个或更多值组成的状态。变色灯是一个例子,因为色调可能会随色彩饱和度或亮度而变化。
术语绑定状态(bound states)被定义为当一个状态的改变引起另一个状态的改变时。常见的绑定是在级别状态(level states)和开/关状态(On/Off states)之间。如果电平从0变为1,则开/关状态也从关闭转换为开启。
每个模型都有唯一的标识符。蓝牙SIG采用的模型为16位,而供应商型号为32位(16位由蓝牙分配的公司标识符和16位由供应商分配的模型标识符)。这使得每个模型都是唯一可寻址的。
蓝牙Mesh制作的幕后故事
观看我们免费的按需网络研讨会,了解蓝牙网络如何改造楼宇自动化,无线传感器网络,资产跟踪等。
使用消息, 蓝牙Mesh网络 通过客户端 - 服务器架构进行通信。服务器的功能是暴露元素的状态。最简单的状态之一是一个二进制开关,其状态是打开或关闭。一个简单的服务器模型是通用开/关服务器模型,其中包含代表开关处于打开状态或关闭状态的状态。
客户端 访问状态请求,更改或消耗服务器的状态。简单客户机模型的一个例子是通用开/关客户机模型(二进制开关)。此通用开/关客户端模型通过发送消息来控制通用开/关服务器模型。例如,客户端使用此机制打开或关闭指示灯。
这种客户 - 服务器体系结构产生了三种类型的模型:
-
服务器模型
由跨越一个或多个元素的一个或多个状态组成。
定义模型可能发送/接收的消息,并定义给定这些消息的元素的行为。
-
例子:
开/关 - 可能暴露开关的状态
传感器 - 可能会暴露传感器的状态(可能是温度的值或传感器测量的满/填充/空)
功率级别 - 可能会暴露电源状态(级别1-10)
-
客户端模型
定义客户端用于请求,更改或使用服务器的相应状态的一组消息。
-
例子:
开关 - 客户端发送打开或关闭消息
功率级别 - 定义功率状态的消息(0-10)
-
控制模型
-
控制模型具有多种功能,可能包含以下一项或多项:
- 客户端模型
- 服务器模型
- 控制逻辑(规则和行为)协调它连接的模型之间的交互。
-
示例:我们可以使用控制模型来控制泵,使液体冷却剂在机器周围循环。
情景 - 温度传感器记录机器的温度。如果机器达到规定的温度以上,则冷却泵打开。
-
用于冷却泵的控制模块
温度传感器的客户端(接受温度值)
开关的服务器(打开或关闭泵)
控制逻辑(规则和行为) - 定义如果温度传感器超过定义的值,打开泵。
-
模型定义允许您在Mesh网络中配置节点及其功能。模型定义以及其他模型概念将在 蓝牙Mesh网络系列 的后面详细讨论。
基础知识继续
蓝牙Mesh网络使用经过验证的全局互操作性和成熟可靠的生态系统来创建工业级设备网络。现在您已经了解了蓝牙Mesh网络背后的一些基本概念,请在下周回顾一下其他概述 蓝牙Mesh网络的 基本原理,包括寻址,发布/订阅,消息,列表,以及它们如何一起工作来创建蓝牙Mesh网络。
蓝牙Mesh网络的基本概念,第2部分
由 蓝牙开发者关系团队 发布于 2017 年 8月14日
蓝牙Mesh网络系列的第4章
使用 蓝牙®Mesh网络,您可以创建大规模网络,以支持数十台,数百台或数千台设备之间安全可靠的通信。在 第1部分 蓝牙Mesh网络的基本概念,我们探索了一些 蓝牙Mesh网络 的基本概念,包括节点,单元,模型和状态。在本文中,我们将研究寻址,消息,发布,订阅和列表,并详细说明这些核心概念如何交织以构建蓝牙Mesh网络。
蓝牙Mesh体系结构
蓝牙Mesh运行在 蓝牙低功耗(LE) 堆栈上。下面的图1概述了蓝牙Mesh网络堆栈并定义了每层的功能。
正如我们在 第1部分中 讨论的那样 ,节点(如灯具,温度调节设备,制造设备和电子门)是能够在蓝牙Mesh网络内发送,接收和/或中继信息的设备。消息用于在节点之间传输数据,地址用于定义消息来自(源)和去(目的地)的位置。
地址(Addresses)
有四种类型的地址;其中三种类型用于消息传递:单播,虚拟和组地址。第四个是已知的未分配地址。地址长度为16位,并按照以下定义进行编码(图2)。
未分配的地址 - 未 配置的 元素或没有指定地址的元素具有未分配的地址。鉴于这些元素没有唯一的地址,它们可能不会用于消息传递。
单播地址 - 在配置期间,配置 器为网络上该节点的生命周期分配单播地址给节点中的每个元素。单播地址可以出现在消息的源地址字段和/或目的地址字段中。发送到单播地址的消息只能由一个元素处理。
虚拟地址 - 虚拟地址是与特定标签UUID关联的一组元素;这些地址可能会被发布或订阅。标签UUID是与可能来自一个或多个节点的多个元素相关联的128位值。
对于虚拟地址,位15和14分别设置为1和0(图2);比特13-0被设置为哈希值(提供16,384个哈希值)。 哈希值来自标签UUID。检查订阅元素的完整128位UUID效率低下,尤其是因为UUID可能跨越多个消息段。 哈希值提供了一种更有效的方式来确定哪些消息到达哪些元素。
-
组地址(****Group Address) - 组地址是蓝牙Mesh网络中的另一种组播地址。表示来自一个或多个节点的多个元素,有两种类型的组地址:
动态分配 - > 0xC000-0xFEFF
-
固定地址 - 由Bluetooth SIG分配并分为五个部分:
保留供将来使用(RFU) - > 0xFF00-0xFFFB
-
全代理 - > 0xFFFC
- 发送到启用代理功能的所有节点。
-
全好友 - > 0xFFFD
- 发送到启用了好友功能的所有节点。
-
全中继器 - > 0xFFFE
- 发送到启用了中继功能的所有节点。
-
全节点 - > 0xFFFF
- 发送到所有节点。
发送到固定节点的所有消息都由节点的主要元素处理。
下载此综合技术概述,以了解有关重要概念和术语,系统架构和安全机制的更多信息,以及蓝牙Mesh网络背后的独特消息发布和传输技术。
消息(Messages)
蓝牙Mesh网通过消息进行通信。消息可以被称为控制消息或访问消息。
控制消息 - 关于蓝牙Mesh网络操作的消息。 例子包括 心跳 和 好友 请求消息。
访问消息 - 允许客户端模型检索或设置服务器模型中状态值的值,或者它们用于由服务器报告状态值。
模型实现并定义节点的功能。元素是包含一个或多个模型的节点中可唯一寻址的实体,状态用于定义元素的状态。对于每个状态,都有一组服务器模型支持的消息。例子包括请求状态值或请求改变状态的客户机模型和发送关于状态和/或状态改变的消息的服务器模型。
消息由操作码标识并具有关联的参数。操作码标识消息的操作。例子包括:
-
Generic OnOff Get - 用于识别状态; 用于通用模型的OnOff状态。
- Generic OnOff Get没有参数。
-
Generic OnOff Set - 用于设置通用模型的OnOff状态。
- 参数:
- OnOff - 目标值(开或关)。
- TID - 交易标识符 - 消息是新消息还是重传消息。
- 转换时间(Transition Time) - 元素从一个状态转换到另一个状态需要多长时间。
- 延迟(Delay) - 消息执行延迟。
- 参数:
有两类访问消息,有确认和无确认。有确认的消息被传输到每个接收元件并由其进行确认。响应通常是状态消息。没有回应被发送到无确认的消息。蓝牙Mesh网络状态消息是无确认消息的一个例子。
消息安全(Message Security)
每个蓝牙Mesh网络消息都使用NetKeys和AppKeys来加密和认证消息。NetKeys 用于网络层通信。假设蓝牙Mesh网络没有子网,则该Mesh网络内的所有通信都使用相同的网络密钥。
AppKeys 用于应用程序数据。网络中的某些节点可能有特定的应用程序,并且在这些应用程序中可能需要有限访问的敏感数据。这些节点具有特定的 AppKey 并与特定的应用程序相关联。可能使用不同 AppKeys 的领域 包括安全(建筑物门禁,机房通道和首席执行官办公室访问),照明(制造场地,外部建筑灯光和走道)以及暖通空调系统。
中继节点(例如灯泡或墙壁开关)通常具有有效的NetKey, 并可以在网络中传递敏感信息。但是,他们无法访问 各种受限区域(如楼宇控制或HVAC系统) 的特定 AppKeys,并且无法解密应用程序数据。
消息交换(Message Exchange)
蓝牙Mesh网络使用发布/订阅模型进行消息传输。生成消息的节点叫做发布消息。有兴趣接收消息的节点订阅他们感兴趣的地址。消息可以发布到单播,组或虚拟地址。
消息可能会作为对其他消息的回复发送,或者它们可能是未经请求的消息。当模型发送回复消息时,它使用消息始发者的源地址作为目标地址。发送未经请求的消息时,它使用模型的发布地址作为目标地址。节点中的每个模型都有一个发布地址。
在接收消息时,节点内的模型的每个实例(节点中可能有多个模型)可以订阅接收来自一个或多个组或虚拟地址的消息。
订阅消息的模型使用模型的订阅列表来定义可以从中接收消息的有效地址。当模型接收到消息时,模型会检查其订阅列表。当预订列表上的地址设置为模型的单播地址或属于该节点的固定组地址时,它被认为是匹配的。图3显示了访问消息的有效源地址和目标地址。
当蓝牙Mesh实体发布各种节点的状态时,整个蓝牙Mesh网络中的系统可以订阅这些数据,而不管它与传输节点的位置远近。这允许网络一侧的设备通过低功率无线消息与设施中的其他地方的管理员通话,而不管距离如何。
了解有关Mesh的更多信息
蓝牙Mesh结合了与蓝牙技术相关的经过验证的全球互操作性和成熟可信的生态系统,以支持创建工业级设备网络。现在你已经对 蓝牙Mesh网络背后的基本概念有了基本的了解 ,您已准备好深入探究拓扑结构的复杂性。要深入了解蓝牙Mesh,请下载 蓝牙Mesh技术概述 。在后面 蓝牙 Mesh网络系列 ,我们将探索蓝牙Mesh安全,配置,代理节点等等。