一种低功耗蓝牙传输速率的测试方法与流程

文档序号:11254557阅读:4289来源:国知局
一种低功耗蓝牙传输速率的测试方法与流程

本发明涉及一种蓝牙传输速率的测试方法,具体地涉及一种低功耗蓝牙传输速率的测试方法。



背景技术:

随着信息技术的高速发展,低成本、高集成度、低功耗的无线传感器网络(wsn)在军事、医疗、交通、环境监测、智能家居等领域得到了广泛的应用,无线传感器网络也被认为是21世纪最重要的技术之一。无线传感网络一般只是为了测量温度、湿度、血压等简单的物理环境数据而建立的,但是研究人员已不满足无线传感网络对简单信息的监测需求,已经将大数据量多媒体信息引入到无线传感网络监测活动中来。

蓝牙技术联盟于2012年发布了蓝牙核心规格4.0版本,一般将蓝牙规范1.0,2.0和3.0下的br/edr蓝牙称为传统蓝牙,而将蓝牙4.0规范下的le蓝牙称为低功耗蓝牙(ble),随后又发布了蓝牙4.1、蓝牙4.2,其核心部分都是低功耗蓝牙。低功耗蓝牙技术重要的应用在于其数据的无线传输,在低功耗蓝牙进行大数据量数据传输时,其传输速率是重点研究的对象,在实际应用中,低功耗蓝牙芯片的传输速率是否满足系统的数据传输需求尤为重要。

在低功耗蓝牙协议规范里提出了:如果有效载荷长度为num_payload,完整的传输周期时长为com_trans_time,数据吞吐量为data_throu,则蓝牙低功耗数据吞吐量的计算公式为:

data_throu=num_payload/com_trans_time

但是该种测试方法为低功耗蓝牙的传输速率的理论值,在测试具体的低功耗蓝牙传输速率时并不适用。

在低功耗蓝牙规范中,低功耗蓝牙传输速率的理论值是最理想情况下得出的。在低功耗蓝牙协议中并没有规定一个连接事件中数据包的数目,更没有规定数据包的交互在一个连接间隔中持续进行,因而不同芯片制造商的链路层数据包的处理方式等会存在差异,也就是说不同商家的低功耗蓝牙芯片传输速率也可能不同,但都小于上述理论值。



技术实现要素:

为了解决上述技术问题,本发明的目的是提出一种低功耗蓝牙传输速率的测试方法,测得的传输速率比较准确,可以用于低功耗蓝牙技术在实现大数据量传输应用时参考实际芯片的传输速率需求。

本发明的技术方案是:

一种低功耗蓝牙传输速率的测试方法,包括以下步骤:

s01:在测试时,将控制器的缓冲区填满,在发送数据时,判断剩余缓冲区的大小,如果缓冲区未满进行持续发送,已满则等待;

s02:抓取低功耗蓝牙的数据信道的空中包,分析一个数据信道中的数据包交互的次数,确定一个连接事件中发送的数据包数目packet_num;

s03:低功耗蓝牙的传输速率为rate,通过以下公式计算:

rate=(packet_size*packet_num)/con_interval

其中,packet_size为每个数据包的大小,con_interval为连接事件的间隔。

优选的,所述剩余缓冲区的大小通过发送读控制器缓冲区的命令,根据返回的参数确定。

与现有技术相比,本发明的优点是:

此发明的测试方法测得的传输速率比较准确,可以用于低功耗蓝牙技术在实现大数据量传输应用时参考实际芯片的传输速率需求。并且该测试方法可以达到带宽利用率最大化。

附图说明

下面结合附图及实施例对本发明作进一步描述:

图1是本发明低功耗蓝牙传输速率的测试方法的流程图;

图2是本发明连接事件中主从机数据包交互状态;

图3是本发明发送状态的检测流程图;

图4是本发明数据包分析结构示意图;

图5是本发明低功耗蓝牙数据信道空中包。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

实施例:

如图1所示,一种低功耗蓝牙传输速率的测试方法,包括以下步骤:

s01:在测试时,将控制器的缓冲区填满,在发送数据时,判断剩余缓冲区的大小,如果缓冲区未满进行持续发送,已满则等待;

s02:抓取低功耗蓝牙的数据信道的空中包,分析一个数据信道中的数据包交互的次数,确定一个连接事件中发送的数据包数目packet_num;

s03:低功耗蓝牙的传输速率为rate,通过以下公式计算:

rate=(packet_size*packet_num)/con_interval

其中,packet_size为每个数据包的大小,con_interval为连接间隔。

低功耗蓝牙数据通信都是发生在连接事件中,在每个连接事件中,主从机双方可以进行多次数据包的交互,主机会先发送数据包,从机会在150μs之后进行回应,如果主机和从机双方都没有数据需要进行传输,会回复一个空包,以用来维持两者的连接状态,如图2所示。连接事件的间隔是由低功耗蓝牙在进行连接时由用户进行设定。

低功耗蓝牙的控制器部分有一个缓冲区,在连接事件到来时,会在缓冲区中取走相应数量的数据包发送出去。为了带宽利用率最大化,在进行测试时,要让控制器的缓冲区填满,低功耗蓝牙协议提供了一种读控制器缓冲区的命令,其返回两种参数,分别是链路层所支持的数据包的大小以及链路层剩余缓冲区的大小。在发送数据时,先判断剩余的缓冲区大小,如果缓冲区未满进行持续发送,已满则等待。如图3所示。

如果一个数据包的大小是packet_size,一个连接事件能发送数据包的数量为packet_num,每个事件发送的间隔为con_interval,低功耗蓝牙的传输速率为rate,则有下面公式:

rate=(packet_size*packet_num)/con_interval

(1)关于低功耗蓝牙的实际能传输数据包大小

以低功耗蓝牙4.0/4.1版本为例,链路层数据包的信息载荷区数据来自于上层l2cap层。l2cap数据包结构如下所示:

l2cap层数据包含有2字节的长度域,2字节的信道cid,那么剩下的信息载荷区为23字节。而l2cap层信息载荷区数据来自于上层att层,att层数据包结构如下:

att层数据包中含有1个字节的属性操作码,剩余23字节为属性参数(如果支持的最大传输单元为23字节),但是低功耗蓝牙在在使用notify(通知)、indicate(指示)、write(写)的方式发送数据时,还需要使用2字节的属性句柄,所以实际低功耗蓝牙实际能传输的数据为20字节。总体的结构如图4所示。

(2)关于一个连接事件发送数据包的数量

不同厂家的低功耗蓝牙芯片由于设计要求不同,一个连接事件所能发送的数据包数目也不同。在低功耗蓝牙中,每个连接事件发生在0~36的数据信道中,每个连接事件到来时都会切换到另一个数据通道上进行数据传输,一个连接事件持续时间中的数据交互都是在同一个通道上。那么,可以通过抓取低功耗蓝牙的空中包,分析一个数据信道中有几次数据包的交互,就可以确定一个连接事件中发送的数据包数目。如图5为一个抓包示例。

从图5可知,第一个连接事件发生在第0x0f数据通道、第二个连接事件发生在第0x18数据信道、第三个连接事件发生在第0x21数据信道。每个连接事件中,总共进行了4次数据包的交互,单向发送了2个数据包。

(3)关于连接事件的间隔

低功耗蓝牙的连接事件的间隔为一次连接事件的开始到下次连接事件的开始。连接事件的间隔在主机发起连接时由用户设定,也可以在两个低功耗蓝牙设备建立连接后,由从机发起连接参数更新请求,主机可以接收也可以拒绝。低功耗蓝牙协议规定连接间隔参数范围是0x0006—0x0c80之间,然后乘以1.25ms,所得的时间范围为7.5ms—4s之间。也就意味着,连接的时间间隔必须大于7.5ms,不能超过4s,还必须是1.25的倍数。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1