基于中央服务器模型的蓝牙多播技术
2015-12-23姜太平郭建亮
姜太平,郭建亮
(安徽工业大学 计算机科学与技术学院,安徽 马鞍山243002)
0 引 言
对于蓝牙[1]设备间的通信技术,国内外学者都做了大量的研究。文献 [2]引进了设备分类的概念,按照一定的分类标准把属于同一类的蓝牙设备进行组网;文献 [3]研究了基于多播协议相对坐标RCMP (relative coordinatesbased multicasting protocol)在蓝牙位置网络中的应用;文献 [4]提出了实现一个动态的蓝牙分散网的多播机制GCBT (general core-based tree)。
以上文献都是从不同的角度对蓝牙设备间的通信进行研究,但是还存在以下问题:①没有一个掌控全局的主设备,对网中的子设备依赖性太强,如果某个子设备离开,整个网就会重新组织,另外如果某个子设备的性能较差,同时扮演着主设备的角色,就会影响整个网的通信质量,同时也加速了子设备的耗电量,使得组建起来的网稳定性较差;②对于一个主设备如何支持多于7个活跃的从设备尚未提出有效解决方案。
基于以上问题,本文提出了一个基于中央服务器的通信模型,通过对中央服务器的蓝牙协议进行更改,使其可以支持多于7个活跃的蓝牙从设备;另外,为了缩短活跃度高设备间通信时间的延迟,提出了基于活跃度的平等调度算法EASA。
1 蓝牙协议分析
蓝牙是一种工作在全球统一开放的2.4GHz ISM (industrial scientific medical)频段的短距离无线通信技术[5]。为了防止受到工作在ISM 频段的其它信号的干扰,蓝牙采用跳频技术 (79跳或23跳)确保链路的稳定。蓝牙信道[6]被分为许多时隙 (slot),每个时隙长度为625μs。几个蓝牙设备共享一个信道形成微微网 (piconet),多个微微网间通过桥节点形成散射网 (scatternet);微微网[7]中主动发起请求的设备为主设备 (master),接受请求的设备为从设备(slave),主从设备采用时分双工 (TDD)策略交替发送分组,主设备在偶时隙发送分组,从设备在奇时隙发送分组。每个微微网中的一个主设备最多只能和7个活跃的设备进行通信,主设备采用轮询算法对所有的活跃设备进行调度。
1.1 蓝牙协议栈
蓝牙协议是一种技术规范,是为了更好地使用蓝牙技术而形成的共同约定;各种协议按照一定的规则进行排列形成了蓝牙协议栈,如图1所示。蓝牙协议栈中最重要的就是蓝牙核心协议了,这也是本文研究的核心。
图1 蓝牙协议栈
蓝牙核心协议包括服务发现协议、逻辑链路控制与适配协议、链路管理协议、基带协议[8]。其中服务发现协议定义了蓝牙客户端查询到可用的蓝牙服务器提供的服务类型以及服务的具体属性信息,利用搜寻到的服务可以使蓝牙设备之间建立相应的链接,所以它是所有用户模式的基础;逻辑链路控制与适配协议支持协议的复用以及数据包的分段和重组技术,并汇报服务的质量等信息,其通过流量控制和重传模式,可以对每个信道进行流量控制和重传,但是,此协议只支持可靠性好的面向无连接的数据分组传输;链路管理协议负责各个蓝牙设备间建立连接,规定了链路管理器主要包括5个部分:设备功率管理,链路质量管理,链路控制管理,数据分组管理,链路安全管理;基带协议是蓝牙协议中最重要的协议,是核心协议中最底层的协议,其规范定义了两种物理连接方式:面向连接SCO(synclironous conneetion oriented)和 无 连 接ACL (asynehxonous conneetionles)[9],前 者 主 要 用 于 像 语 音 通 话 之 类对时间要求较为严格的数据传送,后者适用于数据分组。经过以上分析可知蓝牙基带协议在蓝牙协议栈中扮演着重要的角色,所以本文从底层协议出发,对蓝牙基带协议进行了深入的研究。
1.2 蓝牙基带分组
微微网中参与通信的设备必须有个活动成员地址,类似于TCP/IP体系中的IP地址,必须在全网内保持唯一性。此地址在蓝牙基带协议的基带分组中有详细的定义,基带分组[10]是蓝牙主从设备之间进行通信时数据在空中发送的基本格式,也是数据传输的最小单元,如图2所示。
图2 基带分组格式
图2中各个域的描述如下:
(1)接入码:接入码又叫识别码,其长度为72位,用于同步、识别及标识微微网信道上交换的所有分组。其可分为3种类型:信道识别码、设备识别码、查询识别码。
(2)分组头:是一个重复的18bit模式,各个模式具有如下的子域:
AM_ADDR:活动成员地址,用于区分微微网中不同的活动成员,主从设备在进行交换时每个单元都会携带自身的AM_ADDR 的地址信息。当一个从设备断开与主设备的连接或进入休眠状态时,就会释放AM_ADDR。由于改字段被分配了3比特,所以就决定了一个主设备最多可有7个从设备 (1到7)。0地址用于保留。
Type:类型,定义了来自上层的数据类型。4 位类型码表示分组可以有16种不同的类型,对于16种类型详情可参阅文献 [11]。类型码的首要任务是要确认分组是来源于SCO 链路还是ACL 链路,同时类型码也展现了当前分组将有多少个时隙出现。
F:流控制,主要用于ACL 链接分组的流量控制,当设置为1,表示该设备不能再接收数据 (buffer已经满)。
A:确认指示,用于无编号自动请求重传。如果值为1表示接收是成功的,如果为0表示接收失败,需要重传失败的分组。
S:序列编号,用于对分组流排序。当发生分组重传时,通过对相邻分组的S编号的比较,就可以不必重传已经正确接收的分组,避免了一些不必要的浪费。
HEC:头错误校验码,用来检测18bit分组头的完整性检验。
(3)有效载荷:有效载荷包括语音和数据两部分:SCO 分组仅包含语音有效载荷,ACL 分组仅包含数据有效载荷。语音字段的长度固定位240比特,数据字段由3 部分组成:载荷头、负载体和校验码。载荷头的长度为1或2个字节,其规定了逻辑信道、逻辑信道上的流量控制及有效载荷的长度指示。
通过以上分析可知,决定蓝牙设备数目的是AM_ADDR 字段,现有的蓝牙协议把活跃设备限制在7个,由此可见,若想支持多余7个活跃设备间通信,我们需要对蓝牙协议进行更改。本文重点研究蓝牙的ACL 分组,所以本文将对蓝牙的ACL基带分组进行重新设计,在此基础上我们提出自己的一套通信方案。
2 中央服务器模型多播方案的设计
如图3所示,该模型采用的是主从模式,中间有一个全局掌控者 (主设备)充当着中央服务器的角色,在其周围有S1,S2,S3…,Sn等n个从设备;从设备之间的通信,必须经过中央服务器的转发。这样在组网过程中就摆脱了对从设备的依赖性,比如Sn离开 (现实生活中,这种情况时常发生,因为用户的移动性很大),并不会影响其它节点间的通信。
图3 通信模型
本文中,我们假设S1,S2,S3…,Sn之间的通信是短消息通信且无信道错误,即通信发送的消息分别在一个时隙内完成;另外我们还设定通信之间最大的延迟时间为1 s。在此基础上,本文从协议层对中央服务器提出了改进策略,使得其可以支持多于7个活跃的设备,从设备 (可能是手机等蓝牙设备)的蓝牙协议不做改动,使用的是标准协议,所以此方案具有可行性;另外,为了缩短了活跃度高设备间通信时间的延迟,我们提出了EASA 调度算法。
2.1 设备间通信时间的分析
蓝牙微微网中主设备在偶时隙发送分组,从设备在奇时隙发送分组,所以主设备与从设备完成一次信息交互需要两个时隙的时间。设Ti表示主设备与第i个设备Si通信时间,显然Ti=625μs*2=1.25ms。如图4所示,其中T1=T2=T3… =T2n-1=T2n=625μs。
图4 主从设备间通信
微微网中,主设备对多个活动的从设备进行调度采用的是平均顺序轮询法RR[12],即主设备基于公平公正的原则针对多个设备按照时隙进行轮询。我们不妨假设轮询的方式为:S1,S2,S3,…,Sn。
从S1发送一个分组到S2,S3,…,Sn分别响应形成的消息队列,如图5所示。
图5 消息队列
t0时刻,p1分组准备进入消息队列,t1时刻p1进入队列,到tn时刻,所有的各个节点都已经接收过分组p1,所以从消息队列中移除。从图中可以看出,从p1进入到p1出来,共经过了一个传递周期记为Tp=Ti*n =1.25ms*n。则n个分组都发送完成所经历的时间,我们表示为一个轮询的周期Rc=Tp*n=1.25ms*n2。
由于我们能接受的最大延迟时间为1s,故有如下计算公式
可知nmax=28。即在延迟为1s的情况下,最多可支持28个活跃设备间的同时通信。由于蓝牙协议最多只能支持7个活跃设备,所以,我们需要对蓝牙协议进行改进。
2.2 改进后的分组格式
在标准蓝牙协议中AM_ADDR 字段只分配了3bit,所以最多只能支持7个设备。为了增加主设备所能支持的从设备的数目,需要对此字段进行扩展。
如图6所示,具体修改步骤如下:
(1)AM_ADDR 扩展为5位,这样就保证了一个主设备最多可支持32个设备。由上文分析可知,备间进行通信时,时间的延迟也小。所以,此字段的扩展,一方面保证了设备的数量,另一方面也保证了设备间通信时间延迟短。
(2)新增一个短消息类型ShortType,占1bit。此字段的增加是为了保证与传统蓝牙的协议相兼容。对此字段,我们定义以下约定:如果此字段值为0表示当前通信模式为短消息通信模式,如果值为1表示为蓝牙的标准通信模式,同时AM_ADDR 字段的高三位设为0;默认情况下,此字段为0,即通信方式采用的是蓝牙的标准协议。经过这样约定,不仅扩展了蓝牙设备,实现了n≥7 设备间的通信,而且也保证了我们修改后的协议与蓝牙现有的标准协议相兼容。
(3)分组头由54bits扩展到了63bits。由于AM_ADDR字段多增加了2位和新增的ShortType 字段,使得的分组头多增出9bits。所以,分组头自然而然也就变成了63bits。
(4)其它字段与标准保持统一,保持不变。此处的保持不变是指字段的位数和字段的描述皆为蓝牙标准的定义,本文并未给这些字段做出新的定义。
图6 改进后的分组格式
2.3 基于活跃度的平等调度算法EASA
由上文部分分析得知。如果按照RR 调度算法,在通信的实时性上会有很大的延迟性。比如在某一段时间内,S1与Sn的通信比较频繁,从S1发送一个分组到Sn响应,最大延迟时间为一个传递周期Tp,延迟性相对较长,为了保证设备间的通信质量,我们需要对此调度算法进行改进。在此基础上提出了基于活跃度的平等调度算法EASA。活跃度的定义为:每个节点活跃的频繁度,具体体现为节点发送分组时次数的大小。
设S为调度序列的集合,初始值为:S ={S1,S2,…,Sn};表示为序列的长度;定义d(Si)为第i个节点的当前活跃度,各个节点的初始值为-∞;如果节点每发送一次消息,则此节点的活跃度的值就加1。在下一个调度周期开始前,按照d(Si)对各个节点进行降序排列,更新调度序列S。算法如下:
3 实验结果与分析
本文用java编程进行了仿真实验,图7研究了节点数目的变化与消息延迟时间之间的关系,从图中可以看出,随着节点数目的增长,节点之间的通信延迟呈现曲线式的增长;在节点数目为16以后,变化幅度越来越大。
图7 延迟时间
图8比较了RR 算法和EASA 算法的性能。RR 算法采用的调度序列为S1,S2,S3,…,Sn,n 取值为16。为了和RR 算法进行比较,实验中,令d(S1)=+∞,即S1节点的活跃度取最大值,保证其在调度序列的首部。从实验结果中可以得知,RR 调度算法不管Sn节点的活跃度多高,其收到S1发送的消息所需的时间为一个常数 (20ms),而EASA 调度算法随着节点活跃的变化而呈现曲线的走向,当其活跃度越高时,收到S1发送的消息所需的时间越短。
图8 RR 算法与EASA 算法比较
4 结束语
本文首先讨论了当前蓝牙多设备间通信存在的问题,对蓝牙基带进行了分析并介绍了其分组格式,然后本文提出了一个适合于多设备间短消息通信的方案,并把蓝牙标准只能支持7个活跃的从设备扩展到了32个,从而实现了更多个设备间的通信;同时,对RR调度算法进行改进,并在此基础上提出了基于活跃度的平等调度算法EASA,缩短了活跃度较为大的从设备间的通信延迟时间。大量的实验结果表明,本文提出的方案,不仅实现了多个设备,而且缩短了设备之间信息交互的时间延迟,保证了通信的及时性。
[1]WANG Xuanxuan.The analysis of IEEE 802.11bWi-Fi bluetooth and wireless personal area network coexistence[D].Beijing:Beijing University of Posts and Telecommunications,2013:23-25 (in Chinese). [王宣宣.IEEE 802.11bWi-Fi与无线个域网蓝牙之间的共存分析 [D].北京:北京邮电大学,2013:23-25.]
[2]ZHANG Gongwei.A scatter net for mation algorithm for solving a new emerging problem [D].Shanghai:Shanghai Jiao Tong University,2009:1-56(in Chinese).[张功伟.一种新型的分类蓝牙组网技术[D].上海:上海交通大学,2009:1-56.]
[3]Chang C Y,Shih K P,Hsu C H,et al.A location-aware multicasting protocol for bluetooth location networks [J].Information Sciences,2007,177 (15):3161-3177.
[4]Yang C H,Lee S J.Efficient multicast protocol for supporting mobile nodes in bluetooth scatter nets[J].Journal of Information Technology and Applications,2008,3 (1):1-11.
[5]Shi X,Xiaoming W.The control technology of physiological data transmission through the interface of bluetooth in android[C]//World Congress on Medical Physics and Biomedical Engineering May.Beijing:Springer Berlin Heidelberg,2013:1298-1301.
[6]Gomez C,Oller J,Paradells J.Overview and evaluation of bluetooth low energy:An emerging low-power wireless technology [J].Sensors,2012,12 (9):11734-11753.
[7]Salaberria I,Perallos A,Azpilicueta L,et al.Ubiquitous connected train based on train-to-ground and IntraWagon communications capable of providing on trip customized digital services for passengers [J]. Sensors,2014,14 (5):8003-8025.
[8]ZHOU Qiong.The study of the bluetooth protocol stack and its application in serial communication [D].Wuhan:Wuhan University of Technology,2009:12-36 (in Chinese).[周琼.蓝牙协议栈的研究及其在串口通信中的应用 [D].武汉:武汉理工大学,2009:12-36.]
[9]SUN Yansen.Research and design of point to multipoint audio and video transmission technology base on bluetooth [D].Beijing:Beijing University of Technology,2009:11-13 (in Chinese).[孙炎森.基于蓝牙标准的点到多点音视频传输技术的研究与设计 [D].北京:北京工业大学,2009:11-13.]
[10]LI Bing.Study on the performance of bluetooth ACL link based on retransmission [D].Jilin:Jilin University,2009:19-33 (in Chinese).[李冰.基于重传的蓝牙ACL链路传输性能研究 [D].吉林:吉林大学,2009:19-33.]
[11]HOU Jinfeng.Reseasrch on the co-channel interference among multiple bluetooth piconets [D].Jilin:Jilin University,2011:13-15 (in Chinese). [侯金凤.多个蓝牙微微网之间同频干扰问题的研究 [D].吉林:吉林大学,2011:13-15.]
[12]XU Jingou.Research and implementation of bluetooth 4.0 core protocol[D].Shanghai:Shanghai Jiao Tong University,2012:42-45 (in Chinese).[徐金苟.蓝牙4.0底层核心技术协议研究与实现 [D].上海:上海交通大学,2012:42-45.]