孙中杰
(南京矽力微电子技术有限公司,江苏 南京 210042)
随着人们消费水平的提升,物联网相关产品也越来越被大众喜欢。蓝牙低功耗(BLE)技术作为物联网技术中的一种,以其低功耗、高安全性等优点,在物联网应用领域发挥着不可或缺的作用。2019年,蓝牙联盟官方发布了BLE Mesh规范,规范中公布了一种利用BLE节点来构建Mesh网络的方法[1-3]。BLE Mesh网络突破了传统蓝牙一对一传输的局限,创新性地提出了基于多对多的低功耗蓝牙网络拓扑。
针对BLE Mesh网络的路由转发规则,规范中仅仅提出了一种简单泛洪机制的实现方式,通过网络中每个BLE节点的多次广播来实现数据的转发[4]。这样的简单泛洪机制,降低了原有BLE设备入网的要求;但是由于其无限制的泛洪方式很容易导致数据的碰撞,从而使得整个BLE Mesh网络的通信效率变得很低[5]。
随着BLE Mesh的规范公布,研究者们也开始对BLE Mesh网络的转发机制进行优化研究。孙吉武[6]提出了一种基于BLE Mesh 网络中的机会路由协议,这种路由协议通过ACK包机制来实现路由协议的优化。与简单泛洪机制相比,其能够优化网络的堵塞概率和开销。Brandao等[7]提出了一种均衡的泛洪算法,其通过数据包交互的Trickle和Drypp方式,让网络中的高负载节点变得更加活跃,从而进一步提高了网络的吞吐量。已有研究中提出了一种多信道转发的泛洪算法[8],该算法通过将原有的3个广播信道扩展为其余的37个数据信道,利用协议支持的跳频算法极大地降低了网络泛洪中的堵塞问题。周晓明等[9]提出了一种基于改进的泛洪算法的蓝牙Mesh路由方法,该方法通过设置每个设备的有效RSSI区间,以此来实现区域泛洪的路由算法。区域泛洪能够减少网络中的堵塞,提高整个网络的通信效率。
然而,以上的路由协议优化都是使用提前配置节点、数据交互ACK等方式来优化网络中的路由协议。在实际的量产应用中,每个蓝牙节点都要提前配置信息,这是一个十分耗时的过程。本文提出一种基于速率切换的BLE Mesh网络路由转发协议。通过改变节点的转发速率,实现网络中的区域路由泛洪,能够降低BLE Mesh网络中的转发碰撞概率,节省Mesh网络中各节点的功耗,提升整个网络的传输效率。
BLE 4协议中规定了BLE设备传输速率为1 Mb/s,在广播、扫描、连接等状态下BLE设备的数据通信速率都是固定的。为适应多应用场景,在BLE 5协议中BLE设备的速率变成了1 Mb/s、2 Mb/s、500 Kb/s、125 Kb/s,即在原有的BLE_1M基础上新增BLE_2M和BLE_CODED[10]。BLE_CODED采用的数据编码方式与之前的BLE_1M也存在差异。
根据香农定理,则有:
其中:C是信道支持的最大速度或者信道容量;B是信道的带宽;SNR为信噪比。
由于BLE_CODED比原有的BLE_1M速率低,根据香农定理可以推算,BLE_CODED速率设备会比原有的BLE_1M设备具备更强的发射功率,即具备更远距离的通信性能。
传统的BLE Mesh网络路由泛洪是使用单一的BLE_1M速率进行通信,其基本的泛洪方式如图1所示。图中的节点1作为转发节点,在其收到转发消息后,开始使用BLE_1M速率转发数据;节点2和节点3在收到节点1的转发数据后,立即开始向节点4转发,这两个节点转发数据时可能会发生碰撞;节点4在收到节点2或节点3的数据后,开始转发给节点5。该转发模型中,整个路由转发泛洪过程需要所有节点参加,并且节点之间存在碰撞的风险。
图1 传统的BLE Mesh网络泛洪图
本文的优化算法以图1的泛洪为基础,每当节点使用交替的数据传输速率转发数据时,先使用BLE_1M速率转发N次,再使用BLE_CODED速率转发,如图2所示。
图2 基于速率切换节点转发时序
由于两种速率下,节点传播距离不同。其他节点接收数据时,使用简单判定算法即可实现区域泛洪,如图3所示。
图3 基于速率切换的判定算法
使用图3所示的算法后,BLE Mesh网络泛洪方式如图4所示。图中的节点1作为转发节点,在其收到转发消息后,开始使用BLE_1M速率转发数据,然后使用BLE_CODED速率再次转发;节点2和节点3在收到节点1的BLE_1M转发数据后,立即进入等待BLE_CODED速率的状态,最终因为等待超时导致不转发数据;节点4位于节点1的区域泛洪范围内,只会收到节点1的BLE_CODED速率数据,在等待超时后开始转发给节点5。本文设计的转发模型中,整个转发泛洪的过程不需要所有节点参加,避免了节点2和节点3之间的碰撞风险,降低了BLE Mesh网络中各节点的功耗,进而提升整个网络的传输效率。
图4 基于速率切换的BLE Mesh网络泛洪图
BLE Mesh网络在实际生活中有着广泛的应用,本文以智能灯的应用背景为前提,选取文献中的灯具矩形仿真模型进行仿真[11]。如图5所示,每个智能灯之间的距离为2 m。同时使用矽力微蓝牙芯片传输距离数据进行仿真,BLE_1M传输距离为10 m;BLE_CODED(S2)传输距离为16 m,并设定设备转发时延为1 ms。
图5 智能灯具矩形布局模型
图6给出了传统的泛洪方式和基于速率切换方式的泛洪算法下,随着传输时间的增加,网络中所有节点的传播个数变化对比图。图中传统的泛洪方式下随着时间推移,虽然网络中的节点传播个数越来越大,但是每个时间点的上升幅度很小;而基于速率切换方式的泛洪算法,传播效果的变化幅度较大,每个时间点的上升幅度较快。随着时间的推移,基于速率切换方式的泛洪算法能够快速达到饱和状态,即每个消息的传播速度很快,能够快速覆盖整个网络的所有节点。
图6 泛洪传播个数对比图
图7给出了传统的泛洪方式和基于速率切换方式的泛洪算法下,整个网络转发消息量的对比图。图中传统的泛洪方式随着时间的推移,网络中的转发消息量先快速增加,达到一个高峰后,又开始缓慢降低,最终完成整个网络信息的泛洪。基于速率切换方式的泛洪算法,起初网络中的转发消息量与传统泛洪算法一致,但是其峰值要远小于传统方式,而且后期的洪峰也能快速下降,以较快速度结束泛洪。
图7 泛洪网络消息量对比图
通过仿真可以发现,基于速率切换方式的泛洪算法,因选用了更低的速率,使得网络的泛洪传输范围变大。但是通过速率切换的方式,规定每个节点的区域泛洪规则,使得整个网络实现了有效率的消息转发。由于基于速率切换方式的泛洪算法能够挑选合适的网络节点进行转发,使得整个网络的转发碰撞概率降低,整个网络的通信效率得到提高。
本文在已有的BLE Mesh泛洪路由算法基础上,针对其无限制的路由转发规则进行了改进,提出了基于速率切换方式的泛洪算法,同时提出了适合的转发时序;并通过仿真验证了在相同传输功率下基于速率切换方式的泛洪算法能够更少地使用网络节点进行消息转发,更快实现消息的网络覆盖。