蓝牙mesh的市场地位日益扩大,成为专业照明和建筑领域内各种控制网络的首选技术,在商业空间领域越来越受到注目,有可能是因为蓝牙mesh的去中心化运作模式,简化了基础设施规划和安装工作。此外,这种技术还有多项优势,包括不一定要使用网关、标准化的安全性、可扩展性、可靠性,以及蓝牙在移动电话中的普遍性。
蓝牙mesh 1.1引入了多项功能,旨在实现新的用例集以扩展基于蓝牙mesh的系统。它还为固件更新和配置带来了新的、可靠的和标准化的特性,这对开发人员来说常常是一个挑战。这些旨在最大限度地减少熟练技术人员的工作量,从而节省大量成本。这些重大改进使得基于蓝牙mesh的系统在物联网行业获得了更大的竞争优势。
蓝牙1.1版本的两项主要功能是mesh设备固件更新(Mesh Device Firmware Update,DFU)模型和远程配置。Mesh DFU模型定义了更新过程标准化的基础特性,并且提供更多方法来提高可用性。蓝牙mesh 1.1还增加了二进制大对象(Binary Large Object,BLOB)传输模型,Mesh DFU使用它进行镜像分发。另一项期待已久的功能是远程配置,这意味着现在可以通过网络完成配置,不再需要直接的射频连接。
本文将介绍这两项关键功能,以及它们解决的各种用例。我们还将介绍新版本规范加入的安全增强和全新路由功能。最后,我们将讨论如何整合标准化蓝牙mesh配置文件从而实现广泛应用,特别是蓝牙网络照明控制系统(Networked Lighting Control,NLC)的引入。
大型网络的固件更新往往具有挑战。特别是要求维护工作负荷优化和可靠性要达到一流水平时。新推出的蓝牙mesh设备固件升级模型(蓝牙mesh DFU)为远程镜像分发和满足这些要求的更新过程管理提供了标准步骤。这项标准让开发人员能够实现完全远程的固件升级,或者由技术人员采用简便可靠的步骤进行本地升级。
让我们从节点的角色开始介绍蓝牙mesh DFU的基本概念。
图1:使用单独的启动器和分发器来设置蓝牙mesh DFU
图2:使用网关独立更新器进行蓝牙mesh DFU设置,表明它同时担任启动器和分发器角色
蓝牙mesh 设备固件更新时,启动器在检查网络上的可用镜像之后,第一步是识别网络中需要更新的设备,然后开始分发镜像。
新引入的mesh二进制大对象(BLOB)传输模型专门设计用于有效地通过mesh网络发送BLOB,并在Mesh DFU中用于将镜像从分配器传输到目标节点。。该传输模型具有组播或单播传输选项,以有效地将镜像分发到多个目标节点。首先,分发器将固件镜像分割成适当大小的块,每个块都包含多个镜像数据块。而后,分发器开始将这些数据块一个接一个地传输到启动器列出的目标节点。
在传输数据块时,分发器从目标节点收集关于可能丢失的数据块的信息,并重新发送这些数据块。BLOB传输模型还定义了步骤来确定每个目标节点所完成镜像传输的百分比,以便将这些信息提供给用户,验证方法则由供应商专门规定。分发器使用这个程序来确定每个目标节点是否成功地验证了固件镜像。在验证之后,根据所选择的策略,分发器可以立即触发安装固件镜像,或者等待来自启动器的命令。
对直至接入层的信息进行加密和验证,可以保证整个更新过程的安全性。此外,可以使用供应商专用方法来加密固件镜像。
蓝牙mesh DFU考虑了几种可能的设置。例如,使用单独的启动器和分发器来实现系统,使技术人员只需在每个楼层启动更新过程,就可以在软件自行更新时,到下一个楼层操作。还可以在互联网网关中实现独立的更新器(一个同时具有启动器和分发器角色的节点),通过从云端下载镜像来为目标节点进行远程更新。
除了这些核心功能之外,蓝牙mesh DFU还可用于其他用例,确保这些程序得到正确处理,并尽量减少技术人员的额外工作。这项规范考虑了启动器间歇性处于网络范围内的情况。它提供了在目标节点上处理更新程序中断的方法,并使系统在执行更新时保持正常运行。该规范还包括用于更新低功耗节点的机制。蓝牙mesh还提供了单独更新固件子系统(例如应用程序、堆栈)和管理依赖关系的方法。
虽然技术人员在维护过程中进行更新的成本很高,但安装时的配置过程也会影响成本。在引入蓝牙mesh 1.1之前,配置方必须在要预配到网络上的设备(预配对象)的范围内。蓝牙mesh 1.1规范通过引入远程配置解决了这个问题。
图3:远程配置
远程配置增加了一种方法,即通过网络将配置PDU中继传输到处于未配置设备的射频范围内的中继节点。这个中继节点运行远程配置服务器。配置方则运行远程配置客户端。中继节点可以扫描设备,使用配置方提供的数据将设备临时连接到网络,并中继传输接下去的配置PDU以完成配置调试过程。
这项功能也涵盖了添加应用层功能的场景。有了蓝牙mesh 1.1,可以在设备上添加新功能,无需在固件升级后重新进行配置。
从安全的角度来看,配置是非常关键的过程,这是因为这个过程让未配置的设备接入网络。因此,这个过程的安全解决方案要求确保安全可靠。蓝牙mesh 1.1引入了增强型配置验证(EPA)和基于证书配置(CBP)来改善这方面的问题。
EPA可以提供更强大的验证机制,更好地抵御中间人(MITM)攻击,并提供了从未配置设备一侧进行强制验证的功能。这项功能可以防止任何配置方实施免验证设备配置,使得恶意行为者无法使用第三方配置程序配置尚未调试的建筑物中的所有设备,也就不需要物理访问每个设备以进行恢复操作。现在,支持蓝牙mesh 1.1改进功能的未预配设备可以选择要求身份验证,并拒绝不使用身份验证机制的配置方的配置尝试。
基于证书的配置增加了标准化的可选带外(OOB)验证步骤,以使用带有X.509证书的公钥基础设施(public key Infrastructure, PKI)来验证设备证书中包含的设备UUID和公钥。
另一项新功能,私有信标,提供了更好的保护功能,防止未经授权跟踪mesh信标发送者。这项功能通过混淆信标数据和改进信标结构来增加额外的保护。比如,在一个工作场景中,其自动照明系统的运作是基于嵌入在工人佩戴的徽章中的蓝牙mesh标签,那么工人可能会担心自己的隐私,或不愿意在工作场所外携带这个徽章。如果没有私有信标保护功能,标签所传输的信标包含可用于跟踪的静态数据,恶意观察者有可能用来进行未经授权的跟踪。有了私有信标的混淆和结构改进功能,可以降低信标数据被识别和跟踪的风险。
蓝牙mesh网络1.1旨在释放全新的可能性。子网桥接和定向转发均是全新的功能,通过新的路由选择并利用网络拓扑结构进行访问控制,推动实施更大型和更复杂的mesh网络。
子网可以隔离网络中的设备组,不需要共享主网络密钥便可以实现访问控制、可用性区分和流量管理。借助子网桥接功能,用户可以通过专用的桥接节点从网络的其他区域访问子网。让我们根据这些描述,尝试想象可以从这项新功能中受益的用例。
比如,在一个酒店环境,各个房间和公共区域都部署了子网。子网可以定义为覆盖单独的房间。访问自己房间子网的客人可以控制房间里的灯光、暖气和类似的设备。子网也可以覆盖公共空间,如天井、餐厅或健身房,因此,酒店员工可以控制这些子网范围内的设备。这些子网也可用于向客人提供通知。使子网的拓扑结构与建筑物的物理布局保持一致,可以实现流量优化和网络的有效利用。通过建立子网,可以简化访问管理。若想要使用酒店的特定功能,可以通过特定子网访问授权系统控制。
在商业建筑中利用子网的先进用例中,子网桥接是重要的组成部分。有了这项功能,用户可以通过桥接节点从网络的其他部分与子网进行通信,这意味着用户不必处在子网的直接射频范围内,就可以与子网中的设备进行互动。现在,酒店的客人可以在餐厅吃晚饭时,通过mesh网络控制房间里的暖气。
蓝牙mesh网络定向转发解决了蓝牙mesh网络不断增加规模和复杂性而产生的挑战。更大型网络需要更先进的路由机制来处理增加的网络数据流量。蓝牙mesh定向转发在网络中引入了路由并使之标准化,通过限制对到达目的节点没有帮助的中继操作来减少流量,同时仍然允许多个中继操作来实现冗余。通过定期路由查找来维护路由运作,以适应网络拓扑结构的变化,例如网络中某些中继操作失败的情况。
蓝牙mesh 1.1将“Mesh Profile”更名为“Mesh Protocol”。这一变化旨在突出蓝牙mesh的真实性质,并与更普遍的蓝牙命名惯例保持一致。从现在起,Profile将用于定义常见用例的标准化配置文件。蓝牙网络化照明控制系统(NLC)配置文件是第一个引入的基于mesh拓扑结构的配置文件。
NLC配置文件为与照明系统有关的常见用例定义了配置文件。这种标准化只需要在设备间配置一组最小特征集和性能参数,从而实现了不同供应商的设备之间的互操作性。每个蓝牙NLC配置文件都有一个单独的规范文件。蓝牙NLC配置文件规范还未被采用,但草案内容是公开的。nRF Connect SDK 2.4.0演示了如何实施这些配置文件。
目前规定的蓝牙NLC配置文件完整列表:
Nordic提供各种支持蓝牙mesh的SoC组合。这些SoC具有不同的内存大小和功能,开发者能根据自己产品的要求作出最合适的选择。
nRF5340 SoC是Nordic蓝牙mesh旗舰产品。它是nRF53系列的首款SoC,也是全球首款拥有两个arm® Cortex®-M33处理器的无线连接SoC。两个灵活的处理器、最高105 °C的工作温度,以及先进的安全功能,使其成为专业照明、传感器网络和资产跟踪等蓝牙mesh应用的理想选择。
nRF5340是一款全功能SoC,除了具备蓝牙®5.2,高速SPI、QSPI、USB等优势以外,还结合了更高的性能、内存和集成度,同时实现了静态电流的最小化。它还提供各种安全功能,如可信执行、信任根和安全密钥存储。另外,nRF52系列的7个SoC中,有四个支持蓝牙mesh。
所有Nordic SoC可同时运行低功耗蓝牙和蓝牙mesh。无线协议间分时共享射频资源,自主分时调度,确保设备保持互连。凭借Nordic低功耗蓝牙栈的互操作性,开发者可以把低功耗蓝牙设备(如智能手机)桥接到蓝牙mesh网络。手机即可在新的节点中进行配置/调试并与mesh网络交互。