蓝牙 mesh 介绍

  1. 蓝牙渊源

1.1 蓝牙定义

蓝牙:是一种工作在 2.4G 频段的无线技术标准,可实现固定设备、移动设备 
         和楼宇个人域网之间的短距离数据交换。

蓝牙主要分为 3 个部分:

  • 高速蓝牙:使用 Wi-Fi 无线协议来提升速度;
  • 低功耗蓝牙:Bluetooth Low Energy 低速率低功耗蓝牙;
  • 传统蓝牙:主要用于日常信息传输如音频等;

我们一般蓝牙主要指传统蓝牙和低功耗蓝牙,传统蓝牙简称 BT,低功耗蓝牙简称 BLE,双模蓝牙则是兼备传统蓝牙和低功耗蓝牙的功能。

蓝牙经过了长时间的发展,从最开始的蓝牙,到现在最新的蓝牙 5.2,在这些不同的蓝牙版本,增加了许多特性。

1999 年~2003 年的蓝牙1.0~蓝牙1.3 短距离无线通信早期的探索

2004 年~2007 年的蓝牙2.0~蓝牙2.1 发力传输速率的 EDR 时代

2009 年蓝牙3.0 High Speed,传输速率高达 24Mbps

2010 年 4.0 版本提出了“低功耗蓝牙”、“传统蓝牙”和“高速蓝牙”三种模式。

2013 年 4.1 版本改善与 LET 之间的干扰、优化连接方式(主从一体)、传输方式

2014 年 4.2 版本支持 IPV6 & 6LowPAN ,加强隐私保密,提升了数据传输速度

2016 年 5.0 版本 BLE 速度提升两倍(2Mbps),范围扩大至 300 米

2017 年 7月 SIG 提出 BLE Mesh

2019 年 5.1 版本发布,在蓝牙 5.0 的基础上,新增寻向 (direction finding) 功能,配合蓝牙近接 (proximity)技术,即可让设备更容易被侦测发现,同时将蓝牙定位的精准度提升到厘米级,借此应用在小型蓝牙设备中实现定位。

2020 年 5.2 版其中最引人注目的是下一代蓝牙音频 LE Audio 的颁布, LE Audio 不仅支持连接状态及广播状态下的立体声,还将通过一系列的规格调整增强蓝牙音频性能,包括缩小延迟,通过 LC3 编解码增强音质等。在通过 LE 实现短距离万物互联后,加上 LE Audio,这将使得蓝牙在物联网时代获得彻底新生和腾飞。

我们本篇主要介绍蓝牙 Mesh,蓝牙 Mesh 不属于任何一个版本的蓝牙,是另外补充的协议,只要芯片硬件与协议栈可以支持,即可支持蓝牙 Mesh,
蓝牙私有 Mesh 其实在很久之前就已经有出来,但是因为私有的关系,不能实现互联互通,并没有在市场上大规模应用,目前蓝牙成本较低,更多是应用在灯具上而已, 
且 Mesh 需要一定的时间来完成协议栈,因此蓝牙 Mesh 稳定应用个人认为还需要一段时间。

  2.蓝牙 Mesh 介绍

2.1 蓝牙 Mesh

蓝牙Mesh 网络使用、并且依赖于低功耗蓝牙。低功耗蓝牙技术是蓝牙Mesh 使用的无线通信协议栈。

2.2 Mesh 网络

Mesh 网络一般分为两种:路由 Mesh 和泛洪 Mesh。

路由 Mesh: 每个设备选定最快指定的会话路径,即路径指定一般情况下唯一。

泛洪 Mesh: 泛洪 Mesh 网络上的每台设备都能向所连接的设备集体发送信号,会话路径不唯一,但它存在两个挑战:一是众多设备互相之间进行混乱而交错的对话;二是对功率效率的拖累。

2.3 蓝牙 Mesh Modules

  • 设备和节点 (Devices and Nodes)

未加入 Mesh 网络的产品为设备,加入后变成节点,加入的过程称为“配网”。

  • 元素 (Element)

定义是在设备中可以寻址访问的实体,如灯设备有三个子灯,每个子灯可以被独立的控制。那么这个灯在 Mesh网络里就叫做 Node节点,每个子灯就叫做元素 Element。

  • 消息(Messages)

节点需要查询或控制另外节点时,需要发一个对应类型的消息;节点向另外节点报告状态改变时,也需要发出一个消息。每种消息都有对应的操作码,消息可以按照有应答 (acknowledged) 和没应答 (unacknowledged) 来分类。

  • 地址 (Addresses)

在蓝牙 Mesh 里面定义了三种类型的地址。单播地址,组播地址和虚拟地址。唯一性的单播地址可以识别出一个元素。组播地址是一个表示一个及以上元素的广播地址,虚拟地址可以使用 128 位的标签 Label UUID 逻辑上来表示。

  • 状态和属性 (States and Properties)

(1)在蓝牙 Mesh 中,元素的不同情况叫做状态,状态是一个特定类型的值,存在每个元素内部。除了本身的值以外,状态还有一些相关的行为(开/关灯)。

(2)属性只是表明了一个量,但这个量你可以用在很多的场合,比如一个温度值, 她并没有体现这里温度值和什么相关。

  • 发布和订阅 (Publish/Subscribe)

在蓝牙 Mesh里面发消息的动作我们叫做发布(Publish)。节点发布消息到单播 地址,组播地址或者虚拟地址。节点有兴趣接收这些数据的可以订阅这些地址。

因为存在墙壁和其他物理上的障碍物,楼宇中的设备可能无法与安装在同一楼宇远侧的设备、或临近楼宇中的设备建立直接的无线连接。而蓝牙 Mesh网络则能够将网络中的某些设备指定为“ 中继设备”,进而解决这一难题。

中继设备能够转发从其他设备接收到的消息。在转发消息时,它们能够与位于初始消息发布设备无线范围以外的设备进行通信。消息可多次被中继,每一次中继即为一“跳”,最多可进行 127 跳,足以在一片广阔的物理区域中进行消息传输。

蓝牙 Mesh 网络也采取了一系列措施,支持采用网络泛洪的方式,同时优化每台设备、甚至整体网络的能耗。

数据包包含一个 TTL 的字段,用于限制消息中继的跳数。这能够让设备将 TTL 设置为最佳值,从而避免不必要的中继操作。每台设备都包含消息缓存,以确定自身是否已经中继过该消息。如果是,则会立即丢弃该消息,从而避免上层堆栈进行不必要的处理。

2.4 节点间的 “Friendship”

另外一点,功率非常受限的设备(例如传感器)可以被指定为“低功耗节点”。低功耗节点能够与一个或多个被指定为 “friends”的设备协同工作。Friends 并非功率受限设备,它可以作为低功耗节点,存储寻址到这一低功耗节点的消息,并且只有在低功耗节点需要时才传送消息。

“Friendship” 具体如何运转?

对设备来说,通过与 “friends” 的合作, 低功耗节点能够以合理的频率使用无线电来接收消息,但重要的是,相较于始终“聆听”所有消息,它能够以更低的频率工作,同时确保发送来的罕见事件也不会被遗漏

2.5 Mesh 网络

安全性是蓝牙 Mesh网络设计的核心,并且强制使用。

每个数据包都经过加密和认证。通过合理使用序列号能够防止中继攻击。在重要流程中使用不对称加密技术可防止中间人(Man-in-the-middle)攻击。同时针对利用废弃设备的垃圾桶攻击提供保护。必要时还会刷新安全密钥。

“安全分级考量”(Separation of Concerns)是蓝牙mesh网络安全性中体现的重要原则。我们还将密切关注一个称为开通配置 “Provisioning”的安全流程,设备可通过这一流程变身为蓝牙mesh网络的一员。此外,我们还将探讨如何从网络中安全地删除设备,以及如何在有需要时刷新安全密钥。

蓝牙 Mesh 网络引入了全新的协议栈

承载层:承载层定义了如何使用底层低功耗堆栈传输 PDU

网络层:网络层定义了各种消息地址类型和网络消息格式。

底层传输层:在需要之时,底层传输层能够处理 PDU 的分段和重组。

上层传输层:负责对接入层进出的应用数据进行加密、解密和认证。

接入层:负责应用数据的格式、定义并控制上层传输层中执行的加密和解密过程,证接收到的数据是否适用于正确的网络和应用。

基础模型:基础模型层负责实现与 Mesh 网络配置和管理相关的模型。

模型:模型层与模型等的实施、以及诸如行为、消息、状态等的实施有关。



参考文档:

1.《解密蓝牙 Mesh系列》            小码哥  蓝牙技术联盟 公众号

2.《蓝牙Mesh 技术 一起学 入门篇》  dawei  知乎

日期:2021-06-10
阅读:
作者:江小流
字体:
收藏 推荐 打印 | 录入:admin | 来源:根元环保
相关新闻      
本文评论   查看全部评论 (0) [发表评论]