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

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

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

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

 

BLE传输质量首要受以下多少个要素影响:操作类型,Connection
Interval,每一个Connection
伊夫nt内发送的帧数、每一帧数据的尺寸。具体参见如下链接:

 

图片 1

 

图片 2

 

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

Connection Interval
加长,通讯频率下降,下落耗能,数据吞吐速度回落,数据发送等待时间更长

图片 3

上图为两台BLE建立连接后,用示波器从里边一台装备中衡量的波浪

图片 4

2、Slave
Latency

[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]:

界定能够是0~499

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

图片 5

能够看出,一共传输了约16.3万个包,没有数据丢失,两帧之间最大时间距离约为22.384ms,最大传输速度为5641Bps,平均速度约为5583ms,与理论值相大约。Connection
Interval对传输质量的震慑对比下图。

 

正文重要是由此打击流氓犯罪和抓波形的点子,验证了BluetoothBLE的传导质量和延时。实际调节和测试进度中还足以应用FTS4BT工具分析btsnoop_hci.log文件,以研商BLE建立链接、Update
Parameters和多少传输等细节。

 

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

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

其间21为数据长度、TS为时间戳、PN为包号,1和2是二个Connection
伊夫nt内的包的门类。能够看来,一般处境下,一个Connection
伊夫nt发送两帧数据,那两帧数据的日子距离在1ms之内,八个Connection
伊芙nt之间的光阴世隔约为7ms。为了直观呈现测试结果,在PC端写了二个工具以分析抓取的LOG,主要依照包号、包的种类、字节长度和岁月戳,总结丢包率和传输速度,如下图所示。

 

BLE传输延迟(Latency)首假使指设备端将数据放至蓝牙( Bluetooth® )协议栈到Android主机械收割到的大运间隔。由于通讯双方时间戳不合并,不可能依照前面通过打字与印刷时间戳的不二法门来做计算传输延迟,只可以通过硬件信号做联合。设备端将数据放至蓝牙5.0协议栈时给出3个信号,Android主机械收割到该多少时也交由贰个信号,使用示波器抓取两个信号即可获取数码通过BluetoothBLE传输的推迟,如下图所示。

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

里头1通路为装备端发送数据,2通路为Android端读取数据,双方节奏基本保持一致,确定保障了及时读取和分发设备端上报的数据。

上海体育场合slaveLatency 为0
时,master发包,slave必须回复,
若是可是来,master就会以为slave那边接受不健康

此时此刻的贰个项目对BLE传输质量有较高供给,将以上多少个因素依次确认,使用协议支持的最优值,在那之中Connection
Interval设置为7.5ms,每一帧数据长度为20字节,每种Connection
伊芙nt依照业务必要安装为2,依此总计出的论争传输速度约为5600Bps。为了测试实效,在Android端写了贰个小程序,将数据流和时间戳打字与印刷出来,如下:

slaveLatency不能够算在 supervision
Timeout的年月内,否则连接就会不符合规律断开

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

 

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

指在3个Connection 伊夫nts的发端到下三个Connection 伊芙nts 的开端的时日间隔

1、Connection
Interval

 

透过修改那两个参数,就足以设置BLE连接的传输速度和耗电

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

 

 

 

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

那正是BLE为何省电的来头

那种情状下,耗能量只有1uA

图片 6

 

 

新民主主义革命是时间轴 — 横轴,

 

装备在确立连接后的大部日子都以处于Sleeping的情事的

 

 

 

两台BLE设备建立连接后,全体的通讯事件都以由此Connection
伊夫nts中生出的

 

 

 

 

务必满足如下公式:

结余的 Sleeping 是睡觉时间

在这个Connection
伊芙nts中不要回复master的包,这样就能更进一步省电

slaveLatency 为 3 时, master
发包,slave允许有三个包不恢复生机

3、Supervision
Timeout

 

功耗量 — 中蓝纵轴

 

功耗上升,数据发送速度会增强

如有转发请表明出处

这么些参数都以能够在接连建立之后动态修改的

欢迎沟通

Connection Events

 

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

允许Slave设备在并未数量要发的场地下,跳过早晚数额的Connection 伊芙nts

 

 

 

 

 

slaveLatency
收缩或许安装为0,每一回connection Envents中就都亟需应对master的包

 

 

 

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

Connection
Parameters

尖刺的波就是Connection
伊夫nts

参数的熏陶:

那一个参数设定了一个逾期时间,即便BLE在那几个日子内并未发出通讯的话,就会自动断开

 

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