赞
踩
蓝牙低功耗设备可以加入蓝牙MESH网络,前提是它们具有正确的蓝牙低功耗功能和一些附加软件,在智能手机的情况下,这些软件可能只是一个普通的应用程序,知道如何与蓝牙MESH网络。换句话说,任何开发人员都可以编写的应用程序。
蓝牙MESH网络使用蓝牙低功耗作为其无线电通信堆栈。它究竟如何使用它是蓝牙MESH网络堆栈最底部的承载层所关注的问题。
目前定义了两种承载层:广告承载和GATT承载。蓝牙MESH网络设备使用的默认承载是在蓝牙低功耗广播数据包中发送和接收蓝牙MESH网络数据包的广告承载。
具有低功耗蓝牙堆栈的设备允许它们同时进行广告和扫描,具有支持广告承载所需的基本的、先决条件的低功耗功能,并最终形成完整的蓝牙MESH网络堆栈。
不支持广告承载且无法升级使用的设备,必须使用GATT承载。使用 GATT 承载涉及将蓝牙MESH网络协议数据单元 (PDU) 封装在称为代理协议的协议中,我们将在本文后面详细介绍。
设备,它们是蓝牙的成员®MESH网络被称为节点。各种各样的产品类型都可以是节点:灯、灯开关、恒温器、窗锁、家用传感器等。但是,无论产品类型如何,节点都可以在其产品特定功能之外提供某些特殊的蓝牙MESH网络服务。
所述蓝牙网规格限定了设有一个节点可能拥有。具有这些特征中的一个或多个,表明该节点可以在网络中扮演相应的特殊角色。定义的特征是:
节点 | 功能 |
---|---|
中继 | 中继节点使用广告载体接收和重传蓝牙MESH网络消息。中继功能使蓝牙MESH网络消息可以在设备之间进行多次跳跃,并在两个设备的直接无线电范围之外穿越网络。 |
朋友 | 朋友节点可以存储并随后转发寻址到关联低功率节点的消息。 |
低功耗节点 (LPN) | LPN 是一个功率受限的节点,它可以通过利用朋友节点的支持在蓝牙MESH网络中有效地运行,从而显着减少使用的占空比。 |
代理 | 代理节点可以通过一个承载(广告或 GATT)接收消息,并通过另一个(广告或 GATT)重新传输它们。 |
代理节点是使非MESH蓝牙®低功耗设备成为蓝牙MESH网络一部分的关键。代理节点的根本目的是进行承载转换。它可以从广告承载转换为 GATT 承载,反之亦然。因此,不支持广告承载的设备可以通过 GATT 连接发送和接收各种类型的蓝牙MESH网络消息。
一个节点通过在 features(特征) 字段中设置代理特征位来表示它可以充当代理节点,这是所有节点都拥有的组合数据状态的一部分。
代理节点实现称为MESH代理服务的 GATT 服务,在这种情况下,称为代理服务器。Mesh Proxy Service 包含两个 GATT 特性,Mesh Proxy Data In和Mesh Proxy Data Out。代理客户端使用 GATT 写入无响应子过程将代理协议(见下文)PDU 写入MESH代理数据输入特性,并从 GATT 通知中的MESH代理数据输出特性接收代理协议 PDU。因此,这是连接的 GATT 设备通过代理节点与蓝牙MESH网络交换数据的机制。
图 3 – 代理服务器和代理客户端
蓝牙®低功耗设备使用 GAP 广告来促进其他设备的发现。蓝牙MESH网络代理节点使用完全相同的技术,在 GAP 可连接广告数据包中宣传它们的可用性、它们作为代理节点的角色以及它们的身份。
GAP 广告数据包包含各种类型的字段,称为AD 类型。这些在核心规范补充中定义。代理节点在广告数据包中包含以下字段:
广告类型 | 描述 |
---|---|
Flags | 通用发现模式。 |
16位服务uuid的完整列表、不完整的16位服务uuid列表 | 包含Mesh Proxy服务的UUID。 |
服务数据 | 包含与Mesh Proxy服务相关的数据,用于识别Proxy提供服务的网络或节点。 |
服务数据AD类型的内容需要进一步解析。
服务数据字段 | 评论 |
---|---|
识别类型 | 该字段中的值使我们能够正确解释标识参数字段的内容。0x00 : 网络 ID 类型。 0x01 : 节点身份类型。 |
识别参数 | 网络 ID 或节点身份,取决于标识类型。 |
网络 ID 是从网络密钥(NetKey – 请参阅MESH网络管理)派生的唯一公共标识符。节点标识源自代理服务器节点的单播地址和网络标识符的组合,例如启用它的子网之一的网络 ID。
如果代理服务器是多个子网的成员,它将交错包含每个子网的网络 ID 的广告数据包,一次一个广告数据包。
节点身份广告的主要用途是允许Provisioner快速直接连接回新供应的节点,从而可以完成新节点的配置。
代理客户端和代理服务器使用代理协议进行通信并相互发送代理 PDU。这些 PDU 可以被认为是各种类型的蓝牙MESH PDU 的容器。
蓝牙®MESH网络访问消息使用核心蓝牙MESH网络堆栈,因此消息包含在网络 PDU 中。网络 PDU 可以封装在代理 PDU 中。
蓝牙MESH网络配置文件规范中定义了多种信标,包括未配置的设备信标和安全网络信标。代理协议可以容纳蓝牙MESH信标。
供应过程涉及其自己的协议,供应 PDU 也可以在代理 PDU 内交换。
最后,代理客户端和代理服务器可能会交换特殊的代理配置消息,我们将在稍后介绍。这些也可以封装在代理 PDU 中。
如您所见,大多数类型的MESH数据都可以使用代理协议进行交换,因此可以由连接到代理节点的 GATT 客户端发送和接收。
代理 PDU 的大小因设备而异,PDU 的大小根据蓝牙低功耗属性协议 (ATT) 的最大传输单元 (MTU) 动态设置,这是通过 GATT 连接传输代理 PDU 的基础。此外,代理协议可以通过允许将完整的蓝牙MESH消息封装在代理 PDU 或多段消息的各个段中来容纳长蓝牙MESH消息。
需要注意的重要一点是,任何蓝牙MESH网络节点都可以实现代理协议,因此支持通过 GATT 连接进行直接交互,而不仅仅是代理节点。这在供应场景中很有用。
有关代理协议的更多信息,包括代理 PDU 的格式,请参见蓝牙MESH网络配置文件规范。
代理客户端可以通过配置代理服务器应用的过滤器来精确控制它们接收的网络流量。过滤器采用接受列表和拒绝列表的形式,它们各自指定目标地址列表。列表中的地址可以是支持的地址类型的任意组合,即单播、组或虚拟地址。目标地址未包含在接受列表过滤器中的消息将被代理服务器的代理过滤器丢弃。类似地,具有包含在拒绝列表过滤器中的目的地的消息将被丢弃。
代理配置消息在代理客户端和代理服务器之间交换,并允许配置代理过滤器。
将新设备添加到蓝牙MESH网络的配置过程通常是使用智能手机或平板电脑执行的。大多数此类设备不会实现完整的蓝牙MESH网络堆栈,它们很可能会使用代理协议与蓝牙MESH网络进行所有交互,包括配置。如前所述,供应 PDU 可以封装在代理 PDU 中,因此可以通过代理服务器节点通过 GATT 连接进行交换。在蓝牙MESH网络配置文件规范中,将供应协议与代理协议的这种使用命名为 PB-GATT 。
配置过程在我们系列的前一篇文章中描述,标题为蓝牙MESH网络管理,我们将在本系列后面的内容中深入了解相关的配置安全细节。
对于智能手机等设备,要使用代理协议通过代理节点与蓝牙®MESH网络通信,该设备必须扫描并连接到代理节点。换句话说,它必须支持 GAP Central 角色。
此外,必须首先配置智能手机。任何设备都不能在没有首先提供的情况下与蓝牙MESH网络中的节点进行交互。
通过 GATT、代理协议和蓝牙MESH网络代理节点支持市场上的低功耗蓝牙设备是一个大新闻,它为人们已经拥有的大量设备打开了蓝牙MESH网络的世界。我会说这很令人兴奋。希望你也有同样的感觉!
BLE MESH组网(一)简介
BLE MESH组网(二)友谊功能和设备管理
BLE MESH组网(三)普通BLE如何添加到网络
BLE MESH组网(四)安全概述
BLE MESH组网(五)配置BLE MESH
BLE MESH组网(六)配置BLE MESH
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。