要害基于包号、包的档次、字节长度和时间戳,耗能量 — 驼灰纵轴

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设置为七.5ms,每一帧数据长度为20字节,每一个Connection
伊芙nt依照作业需求设置为二,依此总计出的说理传输速度约为5600Bps。为了测试实效,在Android端写了一个小程序,将数据流和时间戳打字与印刷出来,如下:

图片 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之间的小运间隔约为7ms。为了直观展现测试结果,在PC端写了多少个工具以分析抓取的LOG,主要依据包号、包的类别、字节长度和时间戳,总括丢包率和传输速度,如下图所示。

 

图片 2

 

可以看到,一共传输了约16.叁万个包,未有数量丢失,两帧之间最大时间距离约为2二.3捌四ms,最大传输速度为5641Bps,平均速度约为55八叁ms,与理论值相差不离。Connection
Interval对传输品质的影响相比较下图。

 

图片 3

上图为两台BLE建立连接后,用示波器从中间一台设备中度量的波浪

BLE传输延迟(Latency)首如果指设备端将数据放至蓝牙5.0协议栈到Android主机械收割到的时刻距离。由于通讯双方时间戳不联合,不能够遵照前边通过打字与印刷时间戳的点子来做总括传输延迟,只可以通过硬件时限信号做联合。设备端将数据放至蓝牙( Bluetooth® )协议栈时给出一个时域信号,Android主机械收割到该数据时也交由1个时限信号,使用示波器抓取三个复信号即可取得数码通过BluetoothBLE传输的延迟,如下图所示。

 

图片 4

革命是时刻轴 — 横轴,

能够看看BLE传输延迟约为8ms左右,会上下动荡。

功耗量 — 中绿纵轴

数码传输延迟还跟Android端软件读取数据的人均程度有关,Android端软件需及时将数据从缓存中读取出来,不然也会导致一定的推迟。评估数据读取均匀程度的办法同上,也是透过示波器抓取波形来看,如下图所示。

 

图片 5

尖刺的波正是Connection
伊芙nts

中间1大路为设备端发送数据,二通道为Android端读取数据,双方节奏基本保持1致,确定保障了立刻读取和散发设备端上报的多少。

 

本文首借使透过打击流氓犯罪和抓波形的秘诀,验证了BluetoothBLE的传导品质和延时。实际调节和测试进度中还足以应用FTS4BT工具分析btsnoop_hci.log文件,以探究BLE建立链接、Update
Parameters和多少传输等细节。

剩余的 Sleeping 是睡觉时间

 

装备在确立连接后的绝超过半数时日都以地处Sleeping的情况的

 

那种气象下,耗能量唯有1uA

 

而在Connection
伊芙nts中,最高的是十八个毫安

 

那就是BLE为何省电的原委

 

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

 

 

Connection
Parameters

 

经过改动那四个参数,就足以安装BLE连接的传输速度和功耗

 

1、Connection
Interval

指在七个Connection 伊夫nts的开首到下四个Connection 伊夫nts 的开头的时日距离

 

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

 

2、Slave
Latency

允许Slave设备在平素不数量要发的意况下,跳太早晚数额的Connection 伊夫nts

在这一个Connection
Events中不用回复master的包,那样就能更为省电

 

界定能够是0~499

 

3、Supervision
Timeout

其1参数设定了1个过期时间,借使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

 

 

 

相关文章