0 引言

自2012年蓝牙4.0规范推出之后,全新的蓝牙低功耗(BLE)技术由于其极低的运行和待机功耗、低成本和跨厂商互操作性,3 ms低延迟、AES-128加密等诸多特色,可以用于计步器、心律监视器、传感器物联网等众多领域,大大扩展蓝牙技术的应用范围[1-2]

尽管BLE已经被广泛应用于物联网领域,但是仍然存在着点对点的拓扑结构的限制,以及传输距离短、组网能力差等问题。由于蓝牙4.1规范中说明,一个BLE设备既可以在一个网络中作为主设备,又可以在另一个网络中作为从设备[3]。因此,Mesh网络可以利用BLE的这一特性,就可以在不需要连接的情况下传输数据,同时也可以发起广播。在蓝牙4.1规范中还提到,v4.1是以物联网为目标对v4.0软件升级,硬件上没有任何改动,并且可以通过IPv6建立网络连接,解决了在无WiFi情况下设备上网不易的问题。

本文首先介绍了BLE Mesh网络结构的特点优势,然后综合评述了影响BLE Mesh组网发展的关键因素,并分析了现有BLE Mesh技术的不足之处,在此基础上对BLE Mesh技术的发展方向进行了展望。

1 Mesh的网络结构特点

无线Mesh网络也称为“多跳(multi-hop)”网络,它是一种与传统无线网络完全不同的新型无线网络技术[4]。传统的无线网络主要是点对点或点对多点的星型网络,所有终端节点必须与中心节点交换数据,其拓扑结构如图1。而无线Mesh网络采用对等式的网络拓扑,每个节点与其相邻节点进行通信,并有数据转发的功能,其拓扑结构如图2。无线Mesh网络的可扩展性强,如果需要向网络中新增节点,只需将新增节点安装并进行相应的配置[5-6]。无线Mesh网络的可靠性也极高,如果某个节点上行有线链路出现故障,不会影响整个网络的运行,可以有效避免单点故障。

多点对多点Mesh技术让蓝牙在组网能力上有了巨大的提升,基于BLE标准协议的Mesh网络中数据收发的过程如图3所示。

图3中的BLE逻辑链路控制和适配协议(L2CAP)主要负责节点设备两端的逻辑连接,节点的新增或减少通过BLE的L2CAP控制。扫描管理(Scan Manager)负责广播信道上的广播信息,通过发送扫描信息到BLE的广播监听者,从而传到节点进行节点的传播。同样地,广播管理者(Advertise Manager)负责发送节点的广播的信息到目的节点。

当每个Mesh的节点不在广播数据的状态,就是在接受数据的状态,即在一个广播事件中BLE设备充当Advertiser 角色,也充当着Scanner角色。当Mesh节点需要广播的时候,退出接收数据的状态,正常收发的广播的优先级要比转发数据的优先级高。

2 影响BLE Mesh技术的关键因素

2.1 路由选择算法

2.1.1 CSR Mesh的洪泛式路由算法

基于蓝牙4.0的CSR Mesh组网技术采用的是最简单最可靠的洪泛式路由算法[6]。洪泛式路由算法又称为扩散法,其基本思想是每个节点都是用广播转发收到的数据分组,其节点和节点之间的距离为50 m,通过节点的不断一级一级广播,最终到达目的节点[7]。这种广播式的洪泛路由算法对于动态的节点,进出网络频繁的场景下非常有效,但是,洪泛式的广播会导致网络中充斥着大量重复的数据,占用网络资源,使得节点严重地消耗能量,整个网络的生命周期也会受影响。

针对传统的广播式洪泛算法缺陷,需要作出改进来避免无用的重复转发,提高带宽的利用率。例如: 将路由区域限定在指定区域内,在指定区域内再选择下一节点的路由区域。这种方法可以有效降低网络中节点的无用消耗,同时也可能出现在指定区域内找不到的节点的问题,所以需要更进一步去探讨如何有效地限定区域。

2.1.2 机会路由算法

机会路由算法的基本思想是每次数据包转发给一组节点,从这一组节点中选出最优节点,再从这一最优节点转发到下一组节点中,如此重复到目的节点接收到数据包,可以大大提高数据分组传输成功率[8]。机会路由算法的优劣取决于多个方面的因素,一是后备转发节点集,若后备转发节点过多,会导致数据重复发送的问题,若后备转发节点过少,则不利于提高数据分组的转发率[9]。二是节点组中最优节点的选择,确定最优节点的关键是能够反映节点发送能力的度量参数。度量参数主要包括空时变量、期望传输时间、期望传输次数、跳数、地理距离等。三是后备转发节点间的协调,正确接收到数据包的后备转发节点根据其优先级回复ACK应答帧,最先发送ACK的节点成为实际转发节点[10]

路由算法设计的优劣直接决定了数据转发的效率,不管是传统的洪泛式路由算法,还是机会路由算法,在节点运动剧烈的情况下,往往得不到较优的网络性能。

2.2 广播信道的局限

蓝牙工作在免许可的2.4 GHz的ISM射频频段。其物理信道分为两组:一组是广播(Advertiser)信道,一组是数据(Data)信道。在连接建立之前,设备之间是通过广播(Advertiser)信道交互数据的,当广播者发送一个广播包之后,它在同一信道上监听连接请求包或者扫描请求包,当正确接收到连接请求包之后,连接开始建立。在连接成功建立之后,数据之间的交互使用的是数据(Data)信道。

传统蓝牙中,使用32个广播信道和79个数据信道,每1 MHz一个频道;而在BLE中,只用了3个广播信道和37个数据信道,每2 MHz一个频道。广播信道的急剧减少是为了实现更低功耗,这意味着BLE扫描其他设备开启的时间远远低于传统蓝牙的开启时间。BLE技术设计的3个广播信道是为了在鲁棒性和低功耗之间取得平衡。在BLE中,如果只设1个广播信道,假设该信道被其他设备阻塞,则设备无法配对或者广播数据,整个系统将无法工作。如果信道设定的过多,该设备将需要花费大量的时间进行广播数据的传输,将与低功耗的初衷背道而驰。

BLE的3个广播信道用于Mesh网络中,则需重新考虑鲁棒性的问题。随着Mesh网络的节点不断增加,所有节点都只能共用3个广播信道,此时,出现信号冲突的概率就大大增加。

2.3 睡眠模式的关闭

BLE有三种工作模式:一是关闭模式,此时没有任何时钟在运行,芯片完全断电,没有任何设备能够进行连接。二是睡眠模式,此时仅有low_power_clk在运行,这种情况下只有达到预定的睡眠时间或者有wake_up唤醒请求,睡眠模式才能转换为正常工作的模式。三是正常工作模式,在这种模式下,可以进行广播、扫描、连接以及实时数据包的处理。主时钟hclk打开,若数据需要进行加密,加密时钟crypt_clk也会打开。

BLE设计采用睡眠模式来替代传统蓝牙的空闲状态,在睡眠模式下,主机长时间处于超低的负载循环状态,只需要在运行的时候由控制器来启动,因为主机比控制器消耗更多的能量。而且在睡眠模式下的数据发送间隔加大,由此,BLE的待机功耗大大减小。但是在BLE的Mesh网络中,一次事件中不仅是单一的广播或者单一的连接,若进入到睡眠模式之后,睡眠时间过短导致射频来不及关闭又必须打开,睡眠时间无效。如图4所示。

如图4(a)中,一次广播事件包括了在(37,38,39)3个广播信道上广播,T1为广播间隔范围为20 ms到10.24 s。广播完成后,BLE进入睡眠模式,直到下一次广播事件的来临。图4(b)中,一次事件中包括了正常的广播事件加上扫描事件。T1为广播间隔时间,广播事件的优先级最高,这个事件不能被打断。T2为扫描事件间隔,当扫描事件EVENTINT中断产生后,如果10 ms内没有新的事件需要处理,会重新开始扫描事件。T3为不可连接的广播事件间隔,当不可连接广播事件EVENTINT中断产生后,如果在一次这个广播事件间隔内没有可连接广播,并且UNCON_ADV_CNT(协议栈记录不可连接广播发送的次数)<5时重新开始这个事件。每产生一次EVENTINT中断,协议栈中的UNCON_ADV_CNT+1。

3 结论

目前,BLE Mesh技术的宣传很火热,BLE Mesh技术的出现对于WiFi和ZigBee等无线传输技术来说,将成为一大挑战。但是能够真正融入人们的日常生活还有很长的一段路要走。值得庆幸的是,在2015年2月,蓝牙技术联盟宣布成立蓝牙智能Mesh工作小组,旨在为BLE建立Mesh网络标准。虽然BLE Mesh目前还存在着许多问题,但是随着BLE Mesh技术的不断进步,相信在不久的将来,BLE Mesh能够纳入蓝牙技术联盟的标准之中,并且能够普及在智能家居和物联网的应用。

BLE Mesh网络协议综述的更多相关文章

  1. 网络协议 19 - RPC协议综述:远在天边近在眼前

    [前五篇]系列文章传送门: 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HT ...

  2. 无线Mesh网络技术基础与应用

    无线Mesh网络主要包含三类节点,构成了Mesh的基本服务集. 1.与有线网络相连的节点(GateWay节点),其主要负责实现无线Mesh网络和有线网络的数据交换. 2.可以进行Mesh组网并拥有Ro ...

  3. nRF5 SDK for Mesh(六) BLE MESH 的 基础概念

    Basic Bluetooth Mesh concepts The Bluetooth Mesh is a profile specification developed and published ...

  4. BLE MESH 学习[1] - ESP32 篇

    BLE MESH 学习 BLE MESH 是一种蓝牙(n:m)组网的技术. 本篇先介绍 BLE MESH 到使用 ESP32 的官方示例对其进行学习讲解. 后面会进一步学习 SIG 的 BLE MES ...

  5. 转-nRF5 SDK for Mesh(六) BLE MESH 的 基础概念

    nRF5 SDK for Mesh(六) BLE MESH 的 基础概念 Basic Bluetooth Mesh concepts The Bluetooth Mesh is a profile s ...

  6. 使用arm开发板搭建无线mesh网络(二)

    上篇博文介绍了无线mesh网络和adhoc网络的区别,这篇文章将介绍无线mesh网络的骨干网节点的组建过程.首先需要介绍下骨干网节点的设计方案:每个骨干网节点都是由一块友善之臂的tiny6410 ar ...

  7. 网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议

    [前五篇]系列文章传送门: 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HTTPDNS:私人定制的 DNS 服务 网络协议 ...

  8. 蓝牙mesh网络技术的亮点

    蓝牙mesh网络技术的亮点 The highlights of Bluetooth mesh networking technology 导言 蓝牙是当今最主要的低功耗无线技术之一,对无线设备用户和开 ...

  9. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析

    Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...

随机推荐

  1. Delphi列表控件TListView定位到某一行。

    ListView1.Item[100].Focused = true; //定位到索引为100的行ListView1.Item[100].Selected = true; ListView1.Item ...

  2. MySQL数据库的常见操作(七)

    MySQL数据库的常见操作 1.创建数据库 2.创建重名的数据库以及如何查看警告信息 3.设置数据库的编码方式(默认为utf8) 4.修改和查看数据库的编码方式 5.删除数据库 6.6.删除已经删除了 ...

  3. Tomcat学习笔记【3】--- Tomcat目录结构

    本文主要讲Tomcat包的目录结构. 1 bin目录 这个目录只要是存放了一些bat文件或者sh文件.比如说我们需要启动tomcat的bat文件就在这个目录下. 2 conf 这个目录中存放的都是一些 ...

  4. indows下PHP通过ffmpeg给上传的视频截图详解

    windows下PHP通过ffmpeg给上传的视频截图详解,php_ffmpeg.dll安装下载,找了很久php_ffmpeg.dll的下载地址和应用,发现有用的资源很少,现在问题解决了,贴出来跟大家 ...

  5. spring mvc头

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. Linux下/usr/bin/python被删除的后果

    可能部分的人使用linux都有直接root登陆的习惯,这有很大的便利性,因为很多的命令不需要使用sudo请求root权限.但是使用root权限,所有的命令都会立即被执行,即使这个命令是对系统有害处的. ...

  7. systemclock sleep 睡眠

  8. log4net 初步使用

    自从知道了log4net之后,就一直使用的它,一直没有问题,最近由于项目变动,便将一部分的代码分离出来,然后咋UI项目中调用loghelper,便发现在本地测试一切正常,可是发布到服务器之后便不正常了 ...

  9. 算法(Algorithms)第4版 练习 1.3.8

    方法实现: //1.3.8 package com.qiusongde; import java.util.Iterator; import java.util.NoSuchElementExcept ...

  10. 算法(Algorithms)第4版 练习 1.3.27 1.3.28

    代码实现: //1.3.27 /** * return the value of the maximum key in the list * * @param list the linked list ...