[基本介绍]BLE mesh介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/suxiang198/article/details/80160984

What is BLE mesh

BLE mesh的正式版本于2017年07月发布,V1.0,目前(截止2018年5月还是这一版本)。BLE即是低功耗蓝牙,在Bluetooth core spec 4.0时提出,早前都是经典蓝牙,初始版本于2000年发布,一般叫BR/EDR(Basic Rate and Enhanced Data Rate)经典蓝牙。经典蓝牙的功耗相对较高,在经过1.0到3.0的几个版本迭代后,数据传输速率上有比较大的提升,目前的应用领域主要有蓝牙音箱、蓝牙耳机,以及早期的蓝牙鼠标和键盘等。BR/EDR是典型的“点对点”的通信方式,主要用于替换近距离的有线数据传输的应用。

在2010年SIG发布了低功耗蓝牙BLE,BLE和BR/EDR经典蓝牙的区别是相当大的,因此两者通信上是不兼容的,因此BLE出来时也催生了蓝牙的“双模”这样的说法,就是一个蓝牙设备如果是同时支持BR/EDR和BLE的,就是双模蓝牙。BLE的数据速率对于经典蓝牙而言,并没有优势,经典蓝牙的速率是更快的,但是BLE的功耗极低,BLE的提出,应当也是看到了当时的一些嵌入式设备、电脑周边设备等低功耗的需求,因此BLE目前主要用于一些电池供电的嵌入式设备,常见的有蓝牙遥控器、心率监测、蓝牙手表、手环等。应用场景如便携式手机、平板,健康领域,智能家庭领域以及穿戴领域。

BLE其实是支持星型网络拓扑的,即Central是可以连接多个Peripheral角色的设备的,当然,实际的Central能够连接的Peripheral的个数是很有限的,首先是Central的memory,每增加一条链路,其协议栈所耗费的memory就会增加不少。更为关键的是,RF的链路维持,BLE是以connection interval为基础,Master(Central)和Slave不断的同步来保持链路的,而星型拓扑,随着连接的Peripheral数量增加,其实分到每一个Peripheral的interval是非常小的,而且Master要处理好所有Peripheral链路的保持,不至于冲突,又不至于掉线。当然BLE的广播也是可以支持一对多的通信的,这个技术应当就是BLE mesh的基础了。

BLE mesh,应当就是基于上面的BLE的网络拓扑的限制,而提出的,而且可以支持“多对多”。因此BLE mesh是被设计用于大规模节点互相通信的网络支持的特性的。其应用目标场景是比如楼宇自动化、传感器网络、以及更多的IoT应用。因此BLE mesh并非新的协议栈技术,它是基于BLE技术的,只是规范了上层的网络层应用,使之支持多对多的应用场景。

下图支持从SIG官网获得,便于理解:
这里写图片描述

BLE mesh的工作方式

BLE mesh的目标是可信安全的网络,全部的互通操作性,成熟的生态,满足工业级别的应用,支持大规模节点数量的组网。BLE mesh的工作方式是”managed flood”–有管理的泛洪消息传播。泛洪的方式使消息的传播非常可靠,易于扩展,且性能满足商业与工业市场。

BLE mesh的期望是更多场景下的Beacon应用,机器人,工厂自动化,能源管理,智能城市以及更多IoT以及制造业的解决方案。

BLE mesh的可能未来

根据ABI调查预期,2021年将会有48 billion的联网设备,其中1/3将是蓝牙设备。SIG期望mesh能在商业照明和工厂应用中,能产生大的影响,并且能够成为IoT生态的一种普遍使用的技术。

当然,目前而言,mesh还只是刚刚起步。

Mesh主要需要解决的应用场景的特点是:

  • 大范围的覆盖能力
  • 拿来即可使用-很强的互操作性
  • 对大规模节点设备的监测与控制能力
  • 尽可能优化的低功耗能力
  • 射频资源的有效利用,可扩展性强
  • 与目前的智能手机、平板、PC产品兼容
  • 工业标准级别、政府级别的安全性

上面的大范围的覆盖能力,是通过mesh网络的relay(中继)功能来实现的,即在mesh网络中,消息可以被临近的节点relay出去,这样经过多跳之后,消息再到达目标节点。因此传输覆盖能力,指的是在mesh网络覆盖的范围内,通过其网络内部的节点的relay去实现,同时也可以解决点对点的BLE通信时的遇到障碍物会通信不畅的问题。
同时relay也引出了mesh网络的“Managed Flooding”,就是消息会以泛洪方式传播,只要relay节点收到消息,那么它就会将消息广播给其周围的节点。Flooding的方式是不需要有中心节点去协调的(如Zigbee就有router和coordinator),因此并不会去选择最优路径去传播,而是消息可能通过许多条路径先后到达……于是,这同时也为Flooding的网络带来了问题,消息其实传输一次并成功即可,这种方式会有太多的冗余的传输,造成能量的消耗和网络数据的阻塞。
因此“Managed Flooding”也在一定程度上,针对以上的问题进行优化。其一就是TTL值,使消息最多能传播TTL跳,其次是Heartbeat消息,此消息包含了使网络了解其拓扑,使设备能将TTL设定为一个最优的值。最后是cache消息,即设备上次relay过的同样的消息过来,会直接忽略。
尽可能优化的低功耗能力,这个是通过mesh里面的Low Power Node来实现的,Low Power Node不是单独存在,而是需要搭配Friend Node存在的,形成“Friendship”关系。即Low Power Node是可以尽量低功耗的休眠的,但Friend Node是不能长时间休眠的,它需要帮Low Power Node去cache一些信息。
与目前的智能手机、平板、PC产品兼容这一点,其实是通过BLE的GATT来实现,mesh里面实现了一种Proxy的Node,可以将GATT数据转为广播数据,这样使原来的BLE设备能够和Proxy Node建立连接,然后通过Proxy Node去和mesh网络沟通。
工业标准级别、政府级别的安全性是mesh尤为注重的,比如重放攻击是通过sequence number来防范,中间人攻击是通过在关键步骤(Provision)使用非对称加密方式来防范,垃圾桶攻击是通过密钥更新来防范。
BLE mesh目前的预期还是楼宇自动化、商用灯具、传感器网络。这些应用其实也是mesh平台,比如楼宇的mesh灯具,既可以通过mesh网络灵活控制,同时又是楼宇里面的mesh网络平台,可以以此为基础构建资产跟踪与定位应用等等。

猜你喜欢

转载自blog.csdn.net/suxiang198/article/details/80160984