蓝牙( Bluetooth® )BLE传输质量及延期分析

BLE传输质量主要受以下多少个要素影响:操作类型,Connection
Interval,每种Connection
伊芙nt内发送的帧数、每1帧数据的长度。具体参见如下链接:

Connection Events

https://en.wikipedia.org/wiki/Bluetooth\_low\_energy

 自身在TI官方网址的求学笔记,现整理如下

https://devzone.nordicsemi.com/question/3440/how-do-i-calculate-throughput-for-a-ble-link/

 

https://atmosphere.anaren.com/wiki/Data_rates_using_BLE

两台BLE设备创立连接后,全部的通讯事件都以透过Connection
伊芙nts中发出的

https://punchthrough.com/blog/posts/maximizing-ble-throughput-on-ios-and-android

 

近期的一个类型对BLE传输品质有较高要求,将以上多少个成分依次确认,使用协议支持的最优值,个中Connection
Interval设置为柒.伍ms,每一帧数据长度为20字节,各类Connection
伊芙nt依照作业供给安装为二,依此总括出的辩白传输速度约为5600Bps。为了测试实际效果,在Android端写了2个小程序,将数据流和时间戳打字与印刷出来,如下:

葡萄娱乐场 1

[21]:TS 238.794720 PN 20780 [1]:
[21]:TS 238.795954 PN 20780 [2]:
[21]:TS 238.802182 PN 20781 [1]:
[21]:TS 238.802373 PN 20781 [2]:
[21]:TS 238.810432 PN 20782 [1]:
[21]:TS 238.832608 PN 20782 [2]:
[21]:TS 238.832650 PN 20783 [1]:
[21]:TS 238.832728 PN 20783 [2]:
[21]:TS 238.832751 PN 20784 [1]:
[21]:TS 238.832820 PN 20784 [2]:
[21]:TS 238.832843 PN 20785 [1]:
[21]:TS 238.833862 PN 20785 [2]:
[21]:TS 238.839201 PN 20786 [1]:
[21]:TS 238.839403 PN 20786 [2]:
[21]:TS 238.848280 PN 20787 [1]:
[21]:TS 238.848894 PN 20787 [2]:
……
[21]:TS 288.128815 PN 27346 [1]:
[21]:TS 288.128977 PN 27346 [2]:
[21]:TS 288.136323 PN 27347 [1]:
[21]:TS 288.136908 PN 27347 [2]:
[21]:TS 288.159292 PN 27348 [1]:
[21]:TS 288.159569 PN 27348 [2]:
[21]:TS 288.159922 PN 27349 [1]:
[21]:TS 288.165079 PN 27349 [2]:
[21]:TS 288.167879 PN 27350 [1]:
[21]:TS 288.168157 PN 27350 [2]:
[21]:TS 288.173809 PN 27351 [1]:
[21]:TS 288.173906 PN 27351 [2]:

 

个中二一为数据长度、TS为时间戳、PN为包号,壹和贰是多少个Connection
伊芙nt内的包的种类。能够观看,一般景观下,一个Connection
伊芙nt发送两帧数据,那两帧数据的时间距离在壹ms以内,三个Connection
伊芙nt之间的时刻间隔约为七ms。为了直观展现测试结果,在PC端写了1个工具以分析抓取的LOG,主要根据包号、包的花色、字节长度和时间戳,总结丢包率和传输速度,如下图所示。

 

葡萄娱乐场 2

 

能够看看,一共传输了约1陆.三万个包,没有数据丢失,两帧之间最大时间距离约为22.38四ms,最大传输速度为5641Bps,平均速度约为558三ms,与理论值相大致。Connection
Interval对传输品质的震慑比较下图。

 

葡萄娱乐场 3

上航海用体育地方为两台BLE组建连接后,用示波器从中间一台器材中度量的波浪

BLE传输延迟(Latency)主假使指设备端将数据放至蓝牙( Bluetooth® )协议栈到Android主机收到的时光间隔。由于通讯双方时间戳不统1,无法遵照后边通过打字与印刷时间戳的措施来做计算传输延迟,只好通过硬件信号做一道。设备端将数据放至Bluetooth协议栈时给出叁个复信号,Android主机械收割到该数量时也提交三个数字信号,使用示波器抓取多少个功率信号就能够得到数码经过蓝牙伍.0BLE传输的延期,如下图所示。

 

葡萄娱乐场 4

辛卯革命是光阴轴 — 横轴,

能够观察BLE传输延迟约为8ms左右,会上下波动。

功耗量 — 森林绿纵轴

多少传输延迟还跟Android端软件读取数据的动态平衡程度有关,Android端软件需立刻将数据从缓存中读抽出来,不然也会招致一定的延迟。评估数据读取均匀程度的章程同上,也是由此示波器抓取波形来看,如下图所示。

 

葡萄娱乐场 5

尖刺的波正是Connection
伊夫nts

里头一通道为道具端发送数据,二坦途为Android端读取数据,双方节奏基本保持壹致,确定保障了及时读取和分发设备端上报的数据。

 

正文首假如因此打流和抓波形的艺术,验证了蓝牙伍.0BLE的传导质量和延时。实际调节和测试进程中还足以应用FTS4BT工具分析btsnoop_hci.log文件,以钻探BLE创建链接、Update
Parameters和数据传输等细节。

余下的 Sleeping 是睡觉时间

 

器具在创立连接后的大部年美利坚合众国的首都以高居Sleeping的情景的

 

那种气象下,耗能量只有壹uA

 

而在Connection
伊芙nts中,最高的是1几个毫安

 

那就是BLE为何省电的因由

 

在各种Connection
伊芙nts事件中,都急需由Master发起包,再由slave回复

 

 

Connection
Parameters

 

通过改换那多个参数,就足以设置BLE连接的传输速度和功耗

 

1、Connection
Interval

指在一个Connection 伊芙nts的上马到下3个Connection 伊芙nts 的启幕
的时光间隔

 

单位是1.25ms,最小是7.5ms,最大是4.0s

 

2、Slave
Latency

允许Slave设备在未有数量要发的情况下,跳太早晚数额的Connection 伊芙nts

在那一个Connection
伊夫nts中不用回复master的包,那样就会更为省电

 

范围能够是0~499

 

3、Supervision
Timeout

其一参数设定了3个过期时间,假诺BLE在那么些日子内尚未发出通信的话,就能够自行断开

 

单位是10ms,范围是100ms ~
32s

 

总得满意如下公式:

Supervision Timeout > (1
+ slaveLatency)* (connectionInterval)

 

slaveLatency不可能算在 supervision
Timeout的时日内,否则连接就能够不正规断开

 

葡萄娱乐场 6

 

上海体育场地slaveLatency 为0
时,master发包,slave必须回复,
要是不回复,master就能够感到slave那边接受不健康

slaveLatency 为 三 时, master
签发承包合约,slave允许有1个包不回复

 

参数的影响:

 

Connection Interval 浓缩,master与slave通讯越发频繁,提升了功耗,进步多少吞吐速度,减弱数据发送时间

Connection Interval
加长,通讯频率下降,下落功耗,数据吞吐速度降低,数据发送等待时间越来越长

 

葡萄娱乐场,slaveLatency
收缩大概安装为0,每回connection Envents中就都亟待应对master的包

耗能上涨,数据发送速度会加强

slaveLatency
加长,耗能降低,数据发送速度下跌

 

那个参数都以足以在连接构建之后动态修改的

 

 

招待交换

如有转载请注解出处

今日头条博客:http://blog.sina.com.cn/u/2049150530
博客园:http://www.cnblogs.com/sky-heaven/
知乎:http://www.zhihu.com/people/zhang-bing-hua