【BLE】蓝牙BLE传输到底有多快?

简介: 我们在开发蓝牙产品的时候,经常会被问到,这个文件传输用蓝牙可以做吗?多长时间可以传完?蓝牙的传输速率是多大?很多人对蓝牙的传输速率可能只有一个大概的概念几KB?几十KB?下面就来看一下蓝牙的传输速率到底有多快?众所周知,对于无线连接,链路维护和数据包冗余会产生一定的传输成本,以保持蓝牙连接的健壮和高效。因此,连接的低功耗蓝牙数据吞吐量的公式为:使用这个公式,我们将在建立连接时计算从 4.0 到 5 的数据吞吐量。

  我们在开发蓝牙产品的时候,经常会被问到,这个文件传输用蓝牙可以做吗? 多长时间可以传完? 蓝牙的传输速率是多大?很多人对蓝牙的传输速率可能只有一个大概的概念几KB?几十KB? 下面就来看一下蓝牙的传输速率到底有多快?

众所周知,对于无线连接,链路维护和数据包冗余会产生一定的传输成本,以保持蓝牙连接的健壮和高效。对于蓝牙 LE 连接,从一台设备到其对等设备的一个完整传输周期是这样的:

在这里插入图片描述

  • “T”槽为传输包;它包括帧头、有效载荷和完整性检查字段,有用的数据将位于有效载荷中进行传输。
  • “R”槽是从对端设备接收数据包;当设备向对等设备发送一个数据包时,对等设备将返回一个具有最小数据包长度的数据包,以指示先前的传输成功。
  • “T_IFS”是帧间空间;它定义了两个连续数据包之间的时间间隔。无论您使用的是蓝牙 5 还是蓝牙 4.0,“T_IFS”都应为 150 µs。关于“T_IFS”的详细信息,请参阅蓝牙 5核心规范第 6 卷 B 部分第 4.1 节。

因此,连接的低功耗蓝牙数据吞吐量的公式为:

在这里插入图片描述

使用这个公式,我们将在建立连接时计算从 4.0 到 5 的数据吞吐量。

蓝牙 v4.0/4.1

蓝牙® v4.0/4.1 具有相同的低能量数据包格式和相同的调制速率,1Mb/s,这意味着发射器具有在一秒钟内传输 1 兆比特的能力。

在这里插入图片描述

上图表示4.0/4.1链路层数据包的包格式、PDU格式和报头格式。从图上图 中可以看出,长度字段的长度为 5 位(已突出显示;5 位等于二进制的 0b11111,十六进制的 0x1F,十进制的 31),它的范围为 0 到 31 个八位字节,表示长度有效载荷和 MIC(如果包括)。Payload 字段的长度应小于或等于 27 个八位字节,因为 MIC 的长度为 4 个八位位组,31 – 4 = 27。

在这里插入图片描述

上图是一个完整的周期图。从图3可以看出,一个完整周期的时间包括:

  • “R”槽

空 PDU 长度为:10 个八位字节,因为:

前言 访问地址 标题 CRC
1 4 2 3

空 PDU 的长度 = 1 + 4 + 2 + 3 = 10 个八位字节。

它将消耗 80 µs x 1Mb/s,因为:
在这里插入图片描述

  • T_IFS, 150 m
  • “T”槽

最大数据包长度为:

前言 访问地址 标题 有效载荷 麦克风 CRC
1 4 2 27 4 3

1 + 4 + 2 + 27 + 4 + 3 = 41 个八位字节

它将消耗 328 µs,因为:

在这里插入图片描述

对于 4.0/4.1 吞吐量,计算为:

在这里插入图片描述

蓝牙 v4.2

对于蓝牙v4.2,调制速率与 4.0 和 4.1 相同,仍为 1Mb/s。但数据包格式不同。区别如下图,图4。

在这里插入图片描述

从上图中可以看出,长度字段的长度为 8 位(已突出显示,8 位等于二进制的 0b11111111,十六进制的 0xFF,十进制的 255),它的范围为 0 到 255 个八位字节,表示长度有效载荷和 MIC(如果包括)。Payload 字段的长度应小于或等于 251 个八位字节,因为 MIC 的长度为 4 个八位字节,255 – 4 = 251。

在这里插入图片描述

上图是一个完整周期图,从图5可以看出,一个完整周期的时间包括:

  • “R”槽

与 v4.0/4.1 相同,80 µs。

  • T_IFS, 150 m
  • “T”槽

最大数据包长度为:

前言 访问地址 标题 有效载荷 麦克风 CRC
1 4 2 251 4 3

1 + 4 + 2 + 251 + 4 + 3 = 265 个八位字节

它将消耗 2120 µs,因为:

在这里插入图片描述

对于 4.2 吞吐量,计算为:

在这里插入图片描述

蓝牙 5

对于蓝牙5,调制速率有两个选项。第一个是1Mb/s,如蓝牙v4.0/4.1/4.2;第二个是我们接下来要讨论的,2Mb/s。从蓝牙 v4.2 到蓝牙 5 的数据包格式相同:有效载荷为 251 个八位字节。因此蓝牙5 1Mb/s 的数据吞吐量与蓝牙 4.2 相同。

但是开启2Mb/s后就不一样了。您可以在图 6 中看到这一点。

在这里插入图片描述

上图是一个完整的周期图。从上图可以看出,一个完整周期的时间包括:

  • “R”槽

空 PDU 的长度为 10 个八位字节:

前言 访问地址 标题 CRC
1 4 2 3

空 PDU 的长度 = 1 + 4 + 2 + 3 = 10 个八位字节。

它将消耗 40 µs x 2Mb/s,因为:

在这里插入图片描述

  • T_IFS, 150 m
  • “T”槽

最大数据包长度为:

前言 访问地址 标题 有效载荷 麦克风 CRC
1 4 2 251 4 3

1 + 4 + 2 + 251 + 4 + 3 = 265 个八位字节

它将消耗 1060 µs,因为:

在这里插入图片描述

对于蓝牙 5 吞吐量,计算公式为:

在这里插入图片描述

结论

对于蓝牙®低功耗理论上的吞吐量,下图说明了蓝牙低功耗规范之间的差异。您可以看到蓝牙 5 的带宽是 4.0/4.1 的约 4.6 倍和 4.2 的约 1.7 倍。更高的带宽可以转化为更高的速度,这将使低功耗蓝牙能够比以往更快地传输数据流——更高效、更少的频段占用,更适合快速数据传输。对于无线固件升级或可穿戴设备数据日志同步等应用场景,蓝牙 5 将带来出色的用户体验,而更高的速度将为未来的高数据速率流传输构建坚实的平台。
在这里插入图片描述

目录
相关文章
|
物联网 测试技术 Android开发
蓝牙BLE传输性能及延迟分析
BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数、每一帧数据的长度。具体参见如下链接: https://en.wikipedia.
4746 0
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
1428 4
|
存储 安全 算法
【BLE】 BLE配对绑定保姆级介绍
实现蓝牙通信安全,除了paring/bonding这种底层方式,用户也可以在应用层去实现相同功能,两者从功能上和安全性上没有本质区别,只不过应用层自己实现的话,需要自己选择密码算法,密钥生成,密钥交换等,如果你不是这方面的专家,你的应用就有可能会存在安全漏洞。设备跟手机绑定成功后,手机再次重连这个设备时,就会自动跳过service discovery过程,换句话说,配对的时候手机会把设备所有服务和characteristic的handle保存下来,二次重连的时候,直接用以前保存的handle值去操作设备。
5657 1
【BLE】 BLE配对绑定保姆级介绍
|
机器学习/深度学习 自然语言处理 数据可视化
UNet家族最强系列 | UNet、UNet++、TransUNet与SWin-UNet究竟哪个更强!!!
UNet家族最强系列 | UNet、UNet++、TransUNet与SWin-UNet究竟哪个更强!!!
3514 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
2939 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
|
编解码 物联网
【BLE】蓝牙5.2 新特性 - LE Audio
连接同步通道是基于蓝牙连接的,首先要先建立ble连接基于时间同步的音频传输机制,可以实现多个设备的数据同步一个master可以建立多个CIG每个CIG可以最多31个CIS每个CIS里面最多有31个subevent链路层有LL_CIS_REQ 和 LL_CIS_RSP来创建CIS无连接的单向的,无应答机制广播通道,对接收者的数量没有限制不仅可以广播数据包还可以广播控制包每个big里面最多可以包含31个bis。
3633 1
【BLE】蓝牙5.2 新特性 - LE Audio
|
物联网 API 数据库
一文带你认识蓝牙 GATT 协议
正所谓磨刀不误砍柴工,我们有必要先深入的学习一下 GATT 以及 GATT 相关的一些知识。 本文我们就来了解一下 蓝牙 GATT 到底是什么?同时了解下我们使用的 ESP32-C3 GATT示例的工程的代码结构。
9300 5
一文带你认识蓝牙 GATT 协议
|
传感器 Ubuntu Java
ESP-IDF 蓝牙开发实战 — 传感器数据上传及手机控制开发板
ESP32-C3 蓝牙部分我们学习了GATT,本文博主手把手带领大家使用 ESP32-C3的蓝牙做一个简单的小应用。
2726 0
ESP-IDF 蓝牙开发实战 — 传感器数据上传及手机控制开发板
|
存储 安全 网络安全
群晖部署容器魔方并结合内网穿透实现远程访问本地服务
群晖部署容器魔方并结合内网穿透实现远程访问本地服务
607 0
|
JavaScript API
vue element plus Button 按钮
vue element plus Button 按钮
615 0

热门文章

最新文章