还在困惑BLE低功耗蓝牙数据传输率有多快?

这并不仅仅是一个人的问题,即使谷歌搜索会出现很多不完整的答案。每个操作系统和设备都有自己的限制,例如连接间隔和每个间隔的数据包数量。另外,您是否知道使用iOS,您可以每一个连接间隔可以发送4个数据包,而且HID设备的可以在一个连接间隔发送10个数据把,从而把速率提高2.6倍?

如果你想最终清楚你可以通过BLE与iPhone,Android设备或Mac通信多快,下面的内容讲会一一解析你的疑问。

误区

蓝牙PHY 标称数据传送率是1M/bps,即为每秒由蓝牙物理层调试过后传到空中的速率为1兆比特,这并不表示蓝牙接收端接收的数据传输率可以到1M/bps。

影响/限制BLE吞吐量的因素有很多,最大吞吐量才为1M/bps,数据收发还具有相应通信协议和蓝牙协议,例如:

- 最大数据包长度

- 数据包之间的时间延迟

- 数据包中开销字节,如数据包长度,数据完整性检查和通用数据包信息。

那么,1Mbps的50%到75%呢?那仍然是31.25到62.5 kB每秒。这仍然是非常好的。

BLE吞吐量

一个BLE连接只有两个设备,其中一个被称为Master(如主),另一个被称为Slave(如从属)。每一侧在给定的时间段内与另一侧通信,称为连接间隔(最小7.5毫秒,最小增加的增量为1.25毫秒)。两个设备之间的每个通信实例称为通信事件。

最小连接间隔

当外围设备处于接收模式时,通信事件由中央(主设备)发送分组开始。如果外设成功从中央接收到数据包,外设将在中央处于接收模式时随后发送数据包。默认情况下,即使没有任何要发送的数据包,中央和外围设备也会发送一个数据包,这通常称为空链路层的心跳包。

在每次主从心跳包结束之后,主机或者从机端如有有排队等待发送的消息,他们可以“询问”或“警告”对方,告知自己有更多的数据要发送。这将会出现一个时间间隔内交换多个数据包。连接事件将继续,直到数据包未能正确接收,发送者结束连接事件,或者在非正常情况下结束(超时)。

需要注意的是,在连接事件中,您可以交换两个以上的数据包,这将极大地提高吞吐量,但是你需要了解每个连接事件的最大数据包数量取决于BLE堆栈/芯片组,每个iOS设备连接事件最大允许四个数据包,Android设备每个连接事件最大运行六个数据包。

数据包每个时间间隔可以由以下公式计算:

一般BLE数据吞吐量公式中重要因数就是以下三个重要元素:

1.连接间隔 - 设备通话的频率。

2.每个连接间隔的数据包数量 - 当他们说话时交换了多少个数据包。

3.数据包长度 - BLE数据包中应用数据的长度。

BLE中的理论最大应用数据吞吐量可以描述为以下公式:

Throughput = Packets Per Second * Data Per Package

由此我们可以得到以下公式:

提高BLE吞吐量的可行办法:

增加BLE有效数据包长度

现在可以肯定的是,BLE数据包最多包含20个字节的BLE应用程序数据v4.0和v4.1(v4.2包含一个数据包长度扩展,但是在iOS或Android很多不支持)。请记住,实际的BLE数据包的大小较长,但自然包括许多重要用途的段,例如CRC和不同层的标题。

减小连接间隔解

对于iOS 9.2和iPhone 6以上手机,最小连接间隔为30毫秒,除非您支持通过GATT配置BLE设备作为HID方式,最小连接间隔允许降至11.25毫秒。对于Android设备,最小连接间隔为7.5毫秒。

BLE设备与iPhone 6 数据吞吐量=(1000 mSecs)* 20 *(4)/(30 mSecs)= 2,667.66 byte/s。

如果IOS设备支持HID, 吞吐量增加到=(1000 mSecs)* 20 * 4 /(11.25 mSecs)= 7,111.11 Bytes per second

提示:您可以将数据包中的应用程序数据长度增加3个字节,从而将吞吐量提高15%。在未来的博文中,我们将讨论这个。

实现更快的吞吐量

简单的答案有时候会受到其他BLE设备三个参数限制的限制,即使您的BLE设备可以支持较低的连接间隔或每个连接事件发送超过4个数据包。

例如,让我们把我们用来连接iPhone 6的外围设备连接到一个不同的客户端(硬件),每个连接事件的连接间隔为10mSecs,最多连接12个数据包(每个方向6个)。这将增加理想的最大值如下:

BLE设备与Iphone 6最大吞吐量=(1000mSecs)* 20 *(6)/(10 mSecs)= 12,000 Bytes per second。

目前由于支持蓝牙4.2大数据包的手机和BT 5的手机并不多,所以无法通过提高数据包长度的方式提升数据传送率,希望后续手机更新换代把蓝牙5作为标配,提高数据传输率指日可待。

手机笔记本电脑BLE最大吞吐量汇总

下列数据为iphone和安卓两种系统的亲测数据,供大家参考:

iPhone 6,6 +,6S,6S +:

正常连接间隔30mSecs:最大数据吞吐量 2,667字节/秒

HID模式, 连接间隔为11.25mSecs:最大数据吞吐量 7,111字节/秒

MacBook Pro - OS X(不同型号):

最大连接间隔范围(11.25 - 15mSecs):最大数据吞吐量 7,111字节/秒 - 5334字节/秒

Android的

Nexus 4:最小连接间隔7.5 mSecs - 每个连接的数据包间隔:6 - 最大数据吞吐量:16,000 Bytes / Sec

Nexus 6P:最小连接间隔7.5 mSecs - 每个连接的数据包间隔:6 - 最大数据吞吐量:16,000 Bytes / Sec

------------------------------------------------------------------------------------------------------------

无线技术联盟 (微信公众号),提供有价值的市场信息和最新的技术分析,欢迎关注交流,转载请注明出处。

蓝牙传输速率详细分析【针对蓝牙4.2]相关推荐

  1. 蓝牙传输速率详细分析【针对蓝牙4.2】

    ---------------------------------------------------------------------------------------------------- ...

  2. 一文详细了解针对蓝牙智能应用的超低功耗无线MCU芯片CC2640

    CC2640是一款针对蓝牙智能应用的无线MCU. 该器件是CC26xx系列低成本.超低功耗.2.4GHzRF器件的成员.极低的有源RF和MCU电流,低功耗模式电流消耗 提供出色的BATTERY寿命和允 ...

  3. 针对蓝牙PIN码的最新***技术细节分析

    最近,国内外多家网站纷纷刊登了一则关于针对蓝牙PIN码的最新***技术的新闻:通过强制两个正在通讯的蓝牙设备进行重新配对,并监听配对信息,***者可以在0.063秒内破解一个4位(十进制)的PIN码. ...

  4. 蓝牙智能门锁现状分析

    蓝牙智能门锁市场现状如何?蓝牙门锁市场前景怎么样?智能锁领域中,蓝牙门锁是目前非常重要的组成部分.特别是现在蓝牙5技术发布后,蓝牙门锁的热度有了进一步的提高.蓝牙应用广泛,手机.车载领域.体育跑步.宠 ...

  5. android蓝牙源码分析

    关键词:蓝牙blueZ  A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_ ...

  6. 针对蓝牙4.0 BLE通讯过程的逆向和攻击

    本文讲的是针对蓝牙4.0 BLE通讯过程的逆向和攻击,从6个月前,我就开始针对BLE设备进行学习和研究,其中接触到了一些关于BLE逆向的博客和文章,但是相关内容都没有给出很好的方案.因此通过我的这篇文 ...

  7. Nordic芯片如何达到最快的蓝牙传输速率

    简介 目前BLE已经发布到BLE5.2的标准,而蓝牙的传输速率,在BLE4.2和BLE5.0版本上分别进行了提升,这里介绍下使用Noridc芯片时,如何进行配置,以达到最快的传输速度(只讨论1主对1从 ...

  8. 转载_蓝牙技术的分析与研究

    目  录. 11 第一章 引言. 13 1.1 蓝牙技术及特征. 13 1.1.1 什么是蓝牙技术. 13 1.1.2 蓝牙技术的特征. 14 1.2 蓝牙技术协议体系结构. 15 1.3 蓝牙技术的 ...

  9. 【低功耗蓝牙】① 蓝牙广播数据格式分析

    摘要 本文章主要讲解了蓝牙的发展史,蓝牙信号,蓝牙广播数据的格式.最后使用ESP32芯片MicroPython固件给出了蓝牙广播的具体代码,是蓝牙初学者很好的参考资料. 也可以参考下我在B站的蓝牙视频 ...

  10. 蓝牙比较常分析的东西

    通信,就是我问你答,你问我答,就是这么一个过程.不用想的那么复杂 那么,通信往往出问题了,是原因呢 1.我问你不答 2.我问你答的很慢 3.我问的很慢 4.我问你答的不对 往往表现就是通信速度变慢,通 ...

最新文章

  1. 清华Thinker团队提出AI计算芯片存储优化新方法 | ISCA 2018中国唯一一作论文
  2. ●观光(17.12.02多校联测题目)
  3. CVPR-2021收集
  4. Robot Framework 教程 (3) - Resource及关键字 的使用
  5. 朴素贝叶斯算法--过滤垃圾短信
  6. 动态规划应用--最长递增子序列 LeetCode 300
  7. gateway 车辆网关
  8. 寻找黑匣子——程序行为记录与跟踪
  9. 微型计算机的软件系统分成,会计电算化辅导:微型计算机软件系统
  10. 猴子搬香蕉Java实现_猴子搬香蕉问题
  11. localhost:8080
  12. 企业员工快速增长,无线网络如何承载需求?干货!
  13. 武汉大学计算机学院周维,周维勋
  14. (修改完善)SpringBoot+Mybatis-Plus使用webSocket实现一对一聊天
  15. traceping是什么意思_trace命令是什么意思,trace怎么读是什么意思?
  16. dropout层加在哪里_Nomaomi
  17. 懒得刷牙?微型机器人自动帮你搞定,还能牙刷牙线随时变换
  18. 目录 - 《ARM嵌入式Linux系统开发从入门到精通》 - 免费试读 - book.csdn.net
  19. 例3.2 计算存款利息。有1000元,存一年。(1)活期,年利率为r1,(2)一年期定期,年利率为r2,(3)存两年半年定期,年利率为r3。
  20. Mongdb重启后dirty很高,cache打满

热门文章

  1. 985大学和二本计算机,985大学名单排名(二本)
  2. CTRL键不能使用(非硬件问题)
  3. 用笔记本改装智能家居服务器,超级DIY笔记本和台式机改装成平板电脑
  4. COSTDOWN Project's BSP(一)
  5. Sutton reinforcement learning _ Chapter 2 Multi-armed Bandits
  6. 议题曝光!百位顶级讲师、20大论坛,总有一个话题吸引你
  7. 烂笔头也需要常翻出来用用啊
  8. 分治策略找第K小元素
  9. python中print的用法_Python中print用法里面% ,%s 和 % d 代表的意思
  10. 浏览器与Node.js中的JavaScript运行环境