网状网络是面向智能家居和智能工业应用的低功耗无线技术的一项关键要求,因为它克服了范围限制、简化了可扩展性并增强了稳健性。不过,设法使用低功耗蓝牙技术的设计人员之前一直因缺乏网状网络支持而遇到挫折,这种情况直到最近才有所改观。
由于低功耗蓝牙缺乏该项支持,设计人员不得不为智能家居应用选择 Zigbee 和 Thread 等其他技术,若非如此,低功耗蓝牙可能完全适合该项应用,并且受到广泛支持。(参见 Digi-Key 文章“低功耗无线技术之比较”。)
蓝牙 SIG 现在通过引入补充规范蓝牙网格网络 1.0 来弥补此弱点。该规范不需要额外的硬件,可以在所有低功耗蓝牙芯片(v4.0、4.1、4.2 和 5)上运行。一些供应商已通过在自己的固件中实施该规范和采用相关开发工具,来支持蓝牙网状网络 1.0。
不过,在开始采用新规范的网状网络设计之前,设计人员应该熟悉蓝牙 SIG 的网状网络实施与替代技术的不同之处。例如,需要权衡简易性、功耗和灵活性,因为这些差异会影响设计的选择和工艺。
本文采用该规范,并为设计人员解释了蓝牙网状网络的架构。文中说明了蓝牙网状网络的操作特性,以及该架构如何支持智能家居和智能照明等应用。最后介绍了一些合适的蓝牙网状网络设计工具以及辅助的硬件和软件解决方案。
网状网络的优点
低功耗蓝牙最初设计为通过将无线技术扩展到具有适中电池容量的外围设备来补充“传统”蓝牙。外围设备的示例包括运动传感器(例如心率带)和无线控制玩具。每个外围设备通过独立通道与中央监控设备(例如智能手机)通信,从而构成星形网络拓扑。
低功耗蓝牙能够迅速扩展到其他领域,包括照明控制等智能家居应用,部分归因于它与智能手机的互操作性。在这些类型的应用中,星形网络的缺点很快暴露无遗。
例如,低功耗蓝牙解决方案只能同时处理有限数量的连接(通常为 8 个)。使用单个命令无法控制大于该灯泡数量的照明装置,因而造成延迟。其次,在大间房屋中,远距离位置的灯泡可能超出中央控制器的范围。
在网状网络中,消息是通过在连接多个节点的双向通道中跳跃,从网络中的一个点中转到任何其他点,而没有采用与单独外围设备通信的中央设备。通过这种方式,网状网络带来明显的优势,因为它允许同时控制数十个连接的设备,克服了范围限制,并内置了冗余。(图 1.)
图 1:网状网络拓扑。消息通过在连接多个节点的双向通道中跳跃,从网络中的一个点中转到任何其他点。(图片来源:Silicon Labs)
蓝牙网状网络堆栈
自引入低功耗蓝牙作为蓝牙核心规范 4.0 版的一部分以来,低功耗蓝牙已经过 4.1、4.2 和 5 版多次修订。蓝牙 5 引入了范围、吞吐量、广播和共存性方面的改善。(参见 Digi-Key 文章“兼容蓝牙 4.1、4.2 和 5 的低功耗蓝牙 SoC 和工具可应对 IoT 挑战”。)
作为最新引入的生产版本,我们可能设想蓝牙网状网络 1.0 仅构成蓝牙 5 的升级,但事实并非如此。任何旧式(4.0、4.1、4.5、5)低功耗蓝牙芯片都可以通过升级固件进行修改,来运行蓝牙网状网络,从而让现场安装装置能够利用新技术。
这种向后兼容性的关键在于,蓝牙网状网络不是低功耗蓝牙堆栈的一个组成部分,而是一个包含七层的独立新实体(图 2)。
图 2:蓝牙网状网络包含补充低功耗蓝牙协议的七层堆栈。(图片来源:蓝牙 SIG)
当蓝牙网状网络节点收到消息时,会通过承载层将消息从底层低功耗蓝牙堆栈向上传递到网络层。网络层应用各种检查来决定是将消息传递到传输层还是将其丢弃。
请注意,蓝牙网状网络规范定义了一个全新的主机层,该主机层与低功耗蓝牙主机层共享某些概念但与之不兼容。这与 Zigbee 和 Thread 等竞争技术有些不同,后者从一开始就设计为包括网状网络功能(图 3)。
图 3:蓝牙低功耗协议(深蓝色)内的蓝牙网状网络堆栈(浅蓝色)排列。蓝牙网状网络规范定义了一个全新的主机层,该主机层与低功耗蓝牙主机层共享某些概念但与之不兼容。(图片来源: Nordic Semiconductor)
蓝牙网状网络节点
蓝牙网状网络使用四种类型的网络节点:
中继节点在网络中接收和转发数据包。中继节点的缺点是它们必须始终保持警醒状态,这会显著增加功耗。这对于智能照明等市电供电应用来说不是缺点,但对于融入网络的开关等非市电供电节点来说则是一个问题。
低功耗节点 (LPN) 具有低功耗蓝牙的标准节能特性(即:长时间保持休眠状态),因此可以通过电池或能量收集长时间运行。每个 LPN 连接到市电供电的 Friend 节点,该节点将保持唤醒状态并缓存定向至 LPN 的任何消息。当 LPN 进入接收模式(根据预定时间表)时,它会接受缓存的消息,按照指示操作,然后返回节能休眠模式。
代理节点允许不包括蓝牙网状网络堆栈的设备连接到蓝牙网状网络。例如,如果消费者希望使用传统智能手机来控制智能照明网络,这会非常有用。通过节点和设备的通用属性配置文件 (GATT) 接口可实现交互(图 4)。
图 4:蓝牙网状网络使用四种节点类型。在此图像中,除了最左边的灯泡外,所有灯泡和开关都是市电供电的中继节点。(图片来源:Ericsson)
温度传感器是电池供电的 LPN,并且周期性地从最左边灯泡形成的市电供电 Friendship 节点接收消息。智能手机通过使用低功耗蓝牙堆栈的 GATT 接口而不是蓝牙网状网络堆栈形成代理节点。
在新节点参与网状网络例程操作之前,必须由调配者进行调配。调配者是一个可访问网络中所有节点的受信设备。为新节点分配一个地址,以及网络和设备密钥。完成调配后,使用设备密钥建立安全通道以配置新节点。蓝牙网状网络可支持多达 32,000 个节点。
蓝牙网状网络架构
蓝牙网状网络使用“泛洪”技术在网络中发送消息。每个数据包都会广播到网络中的每个节点,直至到达目标。消息可定向至单个节点、一组节点或所有节点。
使用定义网络元素(例如,单个房间中的灯)的组地址来定向节点组。此外,该规范还定义了四个固定的组地址:All-proxies、All-friends、All-relay 和 All-nodes,专门用于定向相应的节点类型。(请注意,由于 LPN 依赖于 Friend 节点,因此无法指定专门的地址。)
泛洪式网状网络结构和组寻址的选择,决定了蓝牙网状网络是否适合智能家居应用。例如,泛洪式网状网络允许通过智能灯网络快速传播来自开关的“开启”命令,其中每个节点都会收到该命令并执行相应的操作。目标组中的灯几乎瞬间亮起。例如,该网络中的最小延迟远低于星形网络的延迟,后者需要中央设备向每个连接的灯发送单独的命令。
在典型操作中,低功耗蓝牙的广告通道用于通告是否存在蓝牙设备,并扫描其他希望通信的设备。一旦设备完成配对,通信就会进入 37 个全带宽通道之一,从而加快吞吐量。
相比之下,蓝牙网状网络在节点完成链接后不会进入全带宽通道,而是继续使用广告通道来传输信息,从而保持了简单的操作并降低了延迟。
此安排的缺点是降低了网络带宽并存在拥堵的风险,因为只有三个吞吐量受限的频率可以处理所有流量。有两种机制有助于解决拥堵问题。第一个是“生存时间”(TTL) 计数器,它定义特定数据包可以中继的次数(典型值为三步)。第二个是数据包缓存,它捕获已在网状网络中完成全流通的数据包,这些数据包在被捕获时假定无需进一步传输。
开发人员还可以使用可选的带宽保留中继功能,通过它,节点可以接收但不能传递数据包。代价是损失一定的灵活性。
蓝牙网状网络:模型而不是配置文件
蓝牙网状网络遵循蓝牙技术的架构,使用 GATT 配置文件允许多个用例共享公共信息结构。但在蓝牙网状网络堆栈中,这些配置文件被称为模型。
一个模型代表一种特定的行为或服务,并且定义了一组状态和响应这些状态的消息。标准模型涵盖了典型的使用场景,如设备配置、传感器读数和灯控制。供应商还可以创建自定义模型。
节点中的模型按元素排列;每个元素充当网状网络中具有唯一地址的虚拟实体。每个传入消息由元素中的一个模型进行处理(图 5)。
图 5:每个网络节点(网状网络设备)包含按元素分组的模型。每个元素都有一个唯一地址,元素中的模型用于处理传入的消息。(图片来源:Nordic Semiconductor)
模型通过“发布和订阅”系统相互通信。发布功能会发送消息,节点则配置为订阅发送到特定地址的消息以进行处理。
在图 6 中,最左侧的灯开关(开关 1)发布消息到厨房组地址。节点灯 1、灯 2 和灯 3 订阅了此厨房地址,因此接收、处理和响应发布到此地址的消息(例如“开”和“关”命令)。请注意,灯 3 还订阅了餐厅地址,因此可以从开关 2 和开关 1 进行操作。
图 6:模型通过发布和订阅系统相互通信。模型可以订阅多个发布者。(图片来源:蓝牙 SIG)
(请注意,模型是一个复杂的主题。建议读者阅读参考文献 1,了解本文中概述的详细信息。)
使用蓝牙网状网络进行设计
一些低功耗蓝牙供应商已经推出了符合标准的蓝牙网状网络堆栈。由于蓝牙网状网络是对成熟的低功耗蓝牙协议的补充,因此开发人员无需使用新的技术来替换成熟且经过验证的低功耗蓝牙堆栈,便可利用蓝牙网状网格。而且,蓝牙网状网络固件将该技术的所有功能引入了新设计或现有设计,因而开发人员无需编写大量新代码。
例如,Nordic Semiconductor 最近将 nRF5 SDK for Mesh 添加到其开发套件系列中。该软件开发套件包括精选的驱动程序、库和范例,设计为在多个集成开发环境 (IDE) 和编译器(包括 Cmake 和 SEGGER Embedded Studio)上运行。
编译后的代码在基于该公司的 nRF52832 芯片的 nRF52 DK 开发套件上运行。
Nordic 的说明文档详细介绍了如何开发网状网络,其中包含了有关如何编译蓝牙网状网络堆栈、如何调配网状网络、如何构建网络以及如何创建新模型的明确说明。
在下面的图 7 中,使用 nRF5 SDK for Mesh 调配和配置新设备(灯泡)。在此插图中,灯泡向调配者发出信号,表示正在寻找要加入的网络。调配者验证灯泡的信标并邀请它加入网络。如果验证成功,则为设备提供必要的密钥和地址,以便加入网络并准备配置。下一步,为灯泡提供“家庭自动化”应用密钥。设置“OnOff 服务器”(用于控制灯泡)的发布状态,最后添加“灯组”订阅。
图 7:使用 Nordic Semiconductor 的 nRF5 SDK for Mesh 调配和配置灯泡。(图片来源:Nordic Semiconductor)
Silicon Labs 还提供与其 EFR32 Blue Gecko 蓝牙入门套件搭配使用的蓝牙网状网络。该公司建议购买三个或四个套件来构建原型网状网络。该套件基于该公司的 EFR32MG1 低功耗蓝牙 SoC。除硬件外,开发人员还需要蓝牙 SDK 和蓝牙网状网络 SDK,这些 SDK 均可从公司网站下载。
需要 Simplicity Studio IDE 来建立和运行 Silicon Labs 的蓝牙网状网络技术。开发工具包括预编译的演示、应用说明和示例。可使用 Android 应用程序从智能手机应用程序调配、配置和控制蓝牙网状网络节点。
STMicroelectronics 采用与 Nordic Semiconductor 和 Silicon Labs 类似的方法,使用 SDK 来基于该公司的 BlueNRG-2 低功耗蓝牙 SoC 开发网络设备。
总结
蓝牙网状网络为低功耗蓝牙引入网状网络功能,因而无需为智能家居应用使用专有网状网络固件。
该技术会牺牲一定的简易性,略微提高功耗和某些灵活性。其关键的优势在于,该技术与所有低功耗蓝牙芯片而不仅是最新的蓝牙 5 产品兼容。
低功耗蓝牙芯片供应商已开始推出蓝牙网状网络软件开发套件,以补充其成熟的硬件和协议固件产品。
本文的第 2 部分将详细介绍如何使用现成的硬件、固件和开发套件,将蓝牙网状网络集成到低功耗蓝牙中。
参考
“蓝牙网状网络/开发人员简介”,蓝牙 SIG,2017 年 8 月。
评论
查看更多