面向BLE Audio的改进DSDV路由算法*

2023-10-10 05:21陆晗夏玮玮何光栎
移动通信 2023年10期
关键词:路由表蓝牙时延

陆晗,夏玮玮,何光栎

(东南大学移动通信国家重点实验室,江苏 南京 210096)

0 引言

蓝牙(Bluetooth)是由“ 蓝牙特别兴趣小组”(Bluetooth Special Interest Group,BSIG)宣布的一种小范围无线通信技术[1]。它是以低成本的近距离无线连接为基础,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接[2]。在蓝牙技术被提出后的十几年内,BSIG 先后发布了很多版蓝牙核心规范,在低功耗蓝牙(Bluetooth Low Energy,BLE)技术诞生之前,蓝牙就已经从1.1 版本逐步过渡到了3.0 版本。这些传统蓝牙技术存在耗电高,产品持续工作时间短、性能较差的严重缺陷,用户的实际体验不佳[3-4]。因此在蓝牙核心规范V4.0 中,增加了低功耗功能,并提出了三种蓝牙模式:经典蓝牙、低功耗蓝牙和高速蓝牙[5]。2016 年BSIG 发布了蓝牙核心规范V5.0,其针对低功耗设备有着更广的覆盖范围并增加了Mesh 组网功能[6]。2019 年BSIG 发布了蓝牙核心规范V5.1 和V5.2。在规范V5.1 中,增强了对通用属性配置文件(Generic Attribute Profile,GATT)缓存的改进,可以在服务器和客户端之间实现更快、更节能的连接[7]。

为了实现对低时延同步音频传输的支持,在规范V5.2 中,加入了增强型ATT 协议(Enhanced ATT)、LE 功率控制(LE Power Control)和LE 同步信道(LE Isochronous Channels)等功能,提出了低复杂度通信编解码器(Low Complexity Communication Codec,LC3)编解码方式,低功耗蓝牙音频(Bluetooth Low Energy,BLE Audio)正式出现[8]。与经典蓝牙相比,BLE Audio有着更快的配对速率和更高效的媒体控制,并启用定位功能来跟踪耳机。并且,BLE Audio 还改善了音频质量,降低了功耗,改进了互动操作功能,引进了新的音频设备类型。与经典蓝牙音频的“单一流”相比,BLE Audio 提出了多流音频的概念,它允许建立多个音频流,使得原设备能够独立地向左右耳机发送同步音频流[9]。通过这一功能,用户可以有更好的立体声成像体验,能够享受更无缝的语音控制服务以及更流畅地在多个音频设备之间进行切换[10]。因为BLE Audio 设计理念的优越性,在未来几年,支持BLE Audio 的设备和技术都将成为蓝牙连接的核心[11]。

自蓝牙协议提出以来,许多专家学者以及企业单位围绕蓝牙技术提出了许多路由协议方案。尽管自蓝牙核心规范V4.0 推出BLE 概念后,许多学者提出了许多针对BLE 的路由机制[12-16],但其中大部分都是针对蓝牙低功耗网格网络技术(Bluetooth Low Energy Mesh,BLE Mesh)的路由协议,针对BLE Audio 路由的研究寥寥无几。在蓝牙核心规范V4.0 中,BLE Mesh 网络通过受控式洪泛机制来进行信息传输和寻找路由并更新网络节点状态[17]。洪泛虽然模式简单且易于实现,但也会引起网络拥塞和数据冲突,尤其是在大规模的网络中极大地降低网络资源利用率。为了解决这一问题,可以采用基于目的节点序列距离矢量(Destination Sequenced Distance Vector,DSDV)路由的靶向洪泛,通过只洪泛控制报文来降低网络开销。有学者提出了一种基于无线自组网按需平面距离向量(Ad hoc on-Demand Distance Vector,AODV)路由算法来适应动态的网络需求,从而允许消息直接路由到目的地而不发生洪泛[18]。该算法使用中间跳数和RSSI 的组合作为度量来选择中继节点。通过增加路由维护和路由中断检测功能,来实现网络节点之间高效可靠的双向路径。这种路由算法通过减少大规模网络的流量、能耗和分组丢失来实现网络资源的有效利用。但由于连接请求包需要很多字段来携带控制信息且节点要发送数据包时往往要先寻路,又引入了较高的数据包传输时延。

作为移动自组织网络中表驱动式路由和按需路由这两类主流路由协议的代表算法[19-20],DSDV 路由算法和AODV 路由算法各有优劣。AODV 在寻路阶段占用的网络资源少于DSDV,其网络开销更小,带宽利用率更高。然而AODV 广播包的开销(需要携带的信息)要远大于DSDV,节点发送和处理这些寻路信息需要花费更多的时间,这里引入了更高的处理时延;而且每次需要在发送数据之前再进行寻路,而DSDV 往往在节点要发送数据时就已经有现成的路由[21],可以直接转发数据。因此在时延表现上,DSDV 要明显优于AODV。同时就路由寻找机制的复杂度而言,DSDV 的复杂度明显低于AODV,在可实现性上优于AODV 协议。

本文考虑支持音频业务传输的蓝牙网络,将BLE Audio 的同步传输链路引入DSDV 路由算法,来实现任意节点的点对点音频传输。同时为了降低节点功耗,设计了一种根据节点状态自适应修改节点广播周期的机制。最后基于BLE Audio 硬件平台针对功耗和时延对提出的算法进行了验证。

1 应用场景与问题分析

考虑在单个蓝牙节点通信范围无法全部覆盖的面积很大的区域内,通过布置在该区域内的大规模蓝牙网络,能够实现任意节点的点对点同步音频传输。该场景中的点对点音频传输就是任意两个蓝牙节点分别作为音频源(音频发送端)和播放器(音频接收端),从而使得用户能够通过这两个蓝牙节点同步收听到相同的音频。如图1 所示。

图1 点对点同步音频传输示例

音频传输业务对节点间的传输时延有着极高的要求。例如在电影院里,不同国家的观众通过蓝牙耳机同步地收听不同语种的配音,这就要求从音频源到蓝牙耳机的时延要很低。同时,由于蓝牙设备的尺寸限制,其电池容量十分有限,这就要求在保证音频包在各节点间低时延传输的同时尽可能地降低节点的功耗。

因此,为了实现上述应用场景的需求,本文基于DSDV 路由算法,将音频包传输方式从节点查找路由表转发替换成在BLE Audio 的同步传输链路上传输,提出了一种面向BLE Audio 的改进DSDV 路由算法。同时为了降低节点的功耗,引入了依据节点状态自适应修改节点广播周期的机制。根据上述思路首先定义了3 种类型的广播包,并定义了每个广播包的广播内容字段。接着将面向BLE Audio 的改进DSDV 路由算法分为3 个模块来实现:节点路由表更新模块、同步链路音频包传输模块和自适应广播周期模块。

2 路由机制的实现

本节将具体介绍面向BLE Audio 的改进DSDV 路由机制的具体实现过程,将对周期性广播包的设计以及路由机制的3 个模块的设计进行阐述。该路由机制的整体结构如图2 所示。

图2 所提路由机制的整体结构框图

本文提出的面向BLE Audio 的改进DSDV 路由机制的核心在于,设计了一种自适应改变发送广播包的周期的机制,通过周期性地检测节点状态来自适应地改变发送广播包的周期,从而降低协议开销,降低节点的能耗。同时,设计了一种基于BLE Audio 同步链路的数据包转发机制,当有业务到达时,源节点先通过路由表打通一条到达目的节点的同步链路,即建立起多跳的同步传输通道,接着再通过这条同步传输通道定向发送音频数据包。这样就只需在一开始在每个节点查询一次路由表,后续的音频数据包转发就不必在查询路由,大大降低了节点的数据包处理时延。

节点路由表更新模块是为了在进行音频传输前,让各节点建立起拥有到网络中其他节点路由的路由表;同步链路音频包传输模块是为了实现低时延的点对点音频传输功能;自适应广播周期模块是为了降低节点在进行音频传输业务时的功耗。

2.1 周期性广播包

该路由机制的广播包使用BLE 协议中的扩展广播包结构,其数据结构如图3 所示。该算法将需要传输的控制信息存放在负载的广播数据(AdvData)字段。所有广播包的AdvData 字段都可以分为2 个部分:场景标识和广播内容。

图3 扩展广播包结构

对于不同的机制,节点执行的操作、节点间需要交互的信息不完全一致,该算法将广播包类型分为三类:BLE同步建链广播包、路由广播包和预建链广播包,如表1 所示。

表1 广播包类型定义

2.2 节点路由表更新模块

每个节点都需要维护一张路由表,表中的每一条路由都由4 部分组成:下一跳节点地址S0、目的节点地址S1、跳数H 和目的节点序列号N。每个节点自身地址为D。同时每个节点都有其CPU,因此所有节点都有一个工作周期Tc。为了实现路由表的更新,在每个时钟周期内,节点需要完成两件事:发送广播包与扫描处理广播包。

(1)发送广播包

这里发送的广播包为路由广播包,其目的是:向网络中的其他节点告知本地节点的信息以及向其他节点转发本地路由表在上一个Tc更新的路由信息。在表1 中定义了路由广播包的广播内容,该算法规定路由广播包需要携带自身节点地址S0、目的节点地址S1、跳数H以及目的节点序列号N这四个信息[22]。当节点发送的路由广播包是用来告知其他节点本地节点的信息时,广播内容的S0和S1赋值为本地节点地址D,H和N均赋值为0。

(2)扫描处理广播包

在节点发送完广播包后,就要开始接收其他节点发送的广播包并进行相应的处理。当节点扫描到一个广播包时,首先要判断广播包中的S1与本地节点地址D是否一致。若一致则丢弃广播包;若不一致则在路由表中查找是否存在S1与广播包中的S1一致的路由,若不存在则在路由表中添加新的路由,新路由的S0赋值为S0、S1赋值为S1、H 赋值为H+1、N 赋值为N+2,同时准备好下个周期要发送的路由广播包的广播内容,其S0赋值为D、S1赋值为新路由的S1、H赋值为新路由的H、N赋值为新路由的N;若存在则判断广播包中的N与路由的N 是否一致。若N<N 则丢弃广播包;若N>N 则进行上述更新路由表路由的操作并预置下个周期要发送的路由广播包;若N=N 则判断广播包中的H是否小于路由的H。若H≥H 则丢弃广播包;若H<H 则进行上述更新路由表路由的操作并预置下个周期要发送的路由广播包。以上就是节点处理广播包的具体流程。

节点路由表更新模块的流程图如图4 所示。

图4 扫描处理广播包流程图

2.3 同步链路音频包转发模块

当网络中各节点的路由表建立完成后,节点间需要进行点对点音频传输,由于音频传输业务要传输大量的连续的数据包,传统的DSDV 路由数据包转发机制在保证音频在接收方稳定播放的情况下会引入大量的时延。因此所提出算法引入了BLE Audio 的同步传输链路机制,让音频在同步传输链路上进行传输。

首先,源节点发起音频传输请求,开始周期性广播预建链广播包,表1 中定义了它的广播内容:自身节点地址、目的节点地址和下一跳节点地址。该预建链广播包采用传统DSDV 路由数据包的转发机制,逐跳查表到达目的节点。在预建链广播包的转发过程中,途径节点均会保存其上一跳节点的地址。

接着目的节点发送预建链完成应答消息逐步转发回源节点。源节点接收到应答后发送BLE 建链广播包,该广播包会使得这条路径上的所有相邻节点建立起同步传输链路。本算法采用BLE Audio 中基于单播的面向连接的同步组(Connected Isochronous Group,CIG),每个同步组由多个基于单播的面向连接的同步流(Connected Isochronous Streams,CIS)构成。同一个CIG 内的CIS具有相同的时间戳,以确保同一个小组的CIG 的数据是同步的。在一个小组内,对于每个CIS,都有一个时间表发送和接收时隙,它们称为事件和子事件。每个事件的发生间隔,称为一个ISO 间隔,时间范围规定在5 ms 至4 s(为1.25 ms 的倍数),每个事件被划分成一个或多个子事件。在子事件期间,主设备传输一次,从设备就响应一次。事件从CIS 的锚点开始,并在主设备接收到来自从设备的最后一个比特时结束[8]。CIS 的事件和子事件如图5 所示。

图5 CIS的事件和子事件

通过在同步传输链路上进行音频传输,音频包到达每个节点时不必再专门地查找路由表,从而极大地降低了音频传输时延。同步链路音频包转发模块如图6 所示。

图6 同步链路音频包转发模块

2.4 自适应调节广播周期模块

在传统的DSDV 路由协议中,节点发送广播包的周期是固定的,该算法将节点发送广播包的周期依据节点状态进行自适应修改。当节点在没有业务到达时,即没有建立点对点通信的需求时,降低广播包发送的频率,当有业务到达时,再提高广播包发送的频率,这样就能在保证路由更新和数据转发性能的前提下,通过节点空闲时降低路由广播包发送的频率来降低节点开销,并降低广播包对网络信道的占用,从而降低节点的功耗。

当节点在一个工作周期中,如果接收到了预建链定向广播包,或节点主动地发起与目的节点的通信请求时,节点就会主动修改广播发送的周期,将发送广播周期降低α倍,并在这个工作周期结束后切换成更新后的Tc/α周期发送广播包,在处理业务的这段时间内,都以该周期使用的时钟作为广播包发送的时钟。

当节点处理完业务时,即节点检测到BLE 链路断开(代表点对点音频传输结束),节点再将广播发送周期修改回空闲状态的,也就是修改回Tc,并在当前工作周期结束后生效。自适应调节广播周期模块如图7 所示。

图7 自适应调节广播周期模块

3 验证结果

为了验证本文所提算法的可行性,通过C 语言编程并通过编译软件将编译后的二进制文件烧录至可实现BLE Audio 协议的硬件平台上调试,实现了上述算法的各个模块功能,并在可实现BLE Audio 协议的硬件平台上进行了算法性能测试。通过C 语言工程编辑软件编写代码,在编译软件中编译得到二进制文件,将串口数据线从电脑连接至该可实现BLE Audio 协议的硬件平台,通过烧录软件进行二进制文件的烧录。所用的硬件平台是一个承载着两个蓝牙芯片的硬件电路板,高电平连接时烧录文件、低电平连接时进行功能调试,通过在代码中对相应按键的触发函数进行定义,在测试中通过操作按键来模拟蓝牙的广播包发送、扫描功能以及音频包传输的开启和关闭。每个节点由两个蓝牙模块构成,其中一个作为发送端、另一个作为接收端,发送端用来发送广播包、接收端用来扫描处理广播包。

实验采用四节点的链式模型,如图8 所示。分别编号为节点1、节点2、节点3、节点4。每个节点的物理结构和工作性能是一致的。节点2 只能与节点1、节点3 通信,节点3 只能与节点2、节点4 通信,节点1 与节点4 不能通信。测试了4 个节点的路由建立流程,接着,以节点1为源节点,以节点4 为目的节点进行了音频传输。设定广播周期Tc=200 ms,周期修改倍数α =2,节点间同步传输链路采用CIG 链路,分别测试了使用传统DSDV 路由算法和使用本文提出的面向BLE Audio 的改进DSDV路由算法的节点电流值和端到端音频包传输时延。

图8 测试节点模型

表2 和表3 分别为不同蓝牙模块的使用不同路由算法的电流值和音频传输时延统计表。

表2 两种路由算法的节点电流 mA

表3 两种路由算法的音频传输时延 ms

从表2 可以看出,同一个节点上蓝牙接收模块的电流值要低于发送模块的电流值。根据电流与功耗的关系式P=I2Z,(P为功率,I为电流,Z为阻抗)。由于每个节点的物理结构基本一致,因此各节点(BLE Audio 硬件平台)的阻抗值几乎相同,可以得到功耗与电流是呈正相关关系。所以同一个节点上蓝牙接收模块的功耗要低于发送模块的功耗。由于节点的蓝牙发射功率等级恒定,不同节点间距离对电流值的影响不大。同时对于使用本文提出的路由算法(有自适应广播周期机制)的节点接收模块平均电流为85.50 mA,小于使用传统DSDV 路由算法(没有自适应广播周期机制)的节点接收模块平均电流86.16 mA,通过使用本文提出的路由算法,节点接收模块平均功耗降低了1.53%;对于使用本文提出的路由算法的节点发送模块平均电流为92.02 mA,小于使用传统DSDV 路由算法(没有自适应广播周期机制)的节点发送模块平均电流93.21 mA,通过使用本文提出的路由算法,节点发送模块平均功耗降低了2.54%。

根据表3 的数据进行绘图得到两种路由算法的音频传输时延折线图,如图9。结果表明随着距离逐渐变远,从音频源至各节点的音频传输时延略微增加,但对单跳传输时延影响不大。单跳音频传输的时延为音频包从音频源至两个相邻节点的平均时延之差。通过计算,当节点间距离为10 m 时,使用传统DSDV 算法的平均单跳传输时延为101.8 ms,而使用本文提出的路由算法的平均单跳音频传输时延为36.3 ms,比传统DSDV 算法的平均单跳传输时延降低了64.34%。而对使用本文提出的路由算法的情况下,当节点间距离为10 m 时,节点1 至节点2 的传输时延为37.7 ms,节点2 至节点3 的传输时延为37.3 ms,节点3 至节点4 的传输时延为33.9 ms,3 个单跳音频传输时延的方差为4.4,远小于其均值36.3,因此随着跳数的提高,从源节点至目的节点传输时延会随之线性提高。

图9 两种路由算法的音频传输时延折线图

4 结束语

在需要进行点对点音频传输的蓝牙网络中,以不损失音频播放质量为前提,为了降低节点功耗和音频传输时延,将BLE Audio 的同步传输链路引入传统的DSDV路由算法中,并加入根据节点状态自适应修改广播周期的机制,提出了一种面向BLE Audio 的改进DSDV 路由算法。实验结果表明,使用改进DSDV 路由算法不仅能够降低节点功耗,同时极大地降低了节点间单跳的音频传输时延。因此,采用本文提出的改进DSDV 路由算法能够提高蓝牙网络性能,实现低时延的点对点音频传输。

猜你喜欢
路由表蓝牙时延
基于OSPF特殊区域和LSA的教学设计与实践
基于GCC-nearest时延估计的室内声源定位
基于改进二次相关算法的TDOA时延估计
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
FRFT在水声信道时延频移联合估计中的应用
基于分段CEEMD降噪的时延估计研究
基于新路由表的双向搜索chord路由算法
BGP创始人之一Tony Li:找到更好的途径分配互联网地址