低功耗蓝牙的应用程序级数据吞吐量 受许多因素影响。我们可以区分两种吞吐量计算非常不同的操作:

1)确认的数据传输。在这种情况下,接收器会确认所有数据包的接收。接收器在下一个连接间隔中针对每个读/写请求发送响应。在这种情况下,连接可靠,但吞吐量低。

2)未确认的数据传输。在这种情况下,数据包可以彼此立即发送,而不必等待对方确认。这样可确保更高的吞吐量,但连接可靠性较差。

通过发送不同类型的数据包,可以在同一连接上混合已确认和未确认的操作。以下数据包类型导致确认的操作:

读取(读取请求)
写(写请求)
适应症
准备写
签名写
以下数据包类型导致未确认的操作:

写无响应(写命令)
通知
1.确认数据传输的吞吐量计算
在确认数据传输的情况下,吞吐量取决于以下参数:

连接间隔
MTU大小
属性协议操作
1.1连接间隔
连接间隔定义了发送数据的频率,它介于7.5 ms到4000 ms之间。一旦发送方发送了数据(或请求),它就必须等待接收方发送确认。因此,一次(GATT)操作需要2个连接间隔。

连接间隔越短,潜在的数据速率就越高。例如,使用7.5 ms的最小连接间隔(例如125字节有用负载/连接间隔),无线电设备可以(假设没有丢失的数据包并且没有重新传输)达到理论数据速率:

1000毫秒/(2 * 7.5毫秒)* 125字节= 8,333字节/秒= 66,666 bps

另一方面,当使用最大连接间隔为4000 ms(例如,使用22字节有用负载)时,数据速率将降低为:

1000毫秒/(2 * 4000)毫秒* 22字节= 2.75字节/秒= 22 bps

1.2 MTU大小
MTU(最大传输单位)大小表示一次GATT操作可以发送多少个字节,即在2个连接间隔内可以发送多少个字节。可以为每个连接设置MTU大小。但是,它有一个上限,随蓝牙协议栈版本的不同而不同。下表总结了每个蓝牙堆栈版本的最大MTU大小

蓝牙堆栈版本最大MTU大小对于旧版设备(BLExxx)<= 1.5.0 23对于Blue Gecko设备 1.0.x 23 2.0.x 58 2.1.x 126 2.3.x或更高版本 250

注意:MTU大小取决于两侧。如果远程设备支持较小的MTU大小,则将使用较小的MTU大小。显然,MTU大小越大,吞吐量就越高。MTU大小的两倍使吞吐量翻了一番。

1.3属性协议(ATT)操作
重要的是要知道MTU大小包括长度可变的GATT标头。这意味着有用的有效负载比MTU小。GATT标头的大小取决于操作类型,因此最大有用负载对于不同操作是不同的。下表中对此进行了总结:

ATT操作最大有用数据/ ATT操作读 MTU-1个字节写 MTU-3个字节适应症 MTU-3个字节准备写 MTU-3个字节签名写 MTU-15个字节

1.4使用ACK可以的最大骨折
在确认操作的情况下,可以通过以下参数实现最大吞吐量:

连接间隔: 7.5毫秒
MTU大小: 250个字节
使用的属性协议操作: 读取
这导致最大吞吐量为

1000毫秒/(2 * 7.5毫秒)*(250-1)字节= 16,600字节/秒= 132,800 bps

2.吞吐量计算,用于未确认的数据传输
如果发生未经确认的数据传输,则吞吐量取决于以下参数:

包大小
属性协议操作
PHY(物理层)比特率
连接间隔
2.1 包大小
蓝牙数据以数据包形式发送。可以在一个连接间隔内立即相互发送多个数据包(帧间间隔为150 us)。数据包的长度可变,但是其长度有上限。数据包的最大PDU(协议数据单元)大小取决于蓝牙堆栈版本,如下表所示:

蓝牙堆栈版本蓝牙标准PDU最大大小对于旧版设备(BLExxx)<= 1.5.0 4.0 27字节对于Blue Gecko设备 1.0.x 4.0 27字节 2.0.x 4.2 38字节 2.1.x 4.2 38字节 2.3.x 5.0 128字节 2.4.x 5.0 160字节 2.6.x或更高版本 5.0 251字节

数据包大小的两倍并不意味着吞吐量翻倍,因为较大的数据包需要花费更多的时间发送,因此在相同的时间间隔内可以发送的数据包更少。但是,数据包大小越大,开销也越小。这增加了应用程序级别的数据吞吐量。

例如,对于27字节PDU,它需要

328us + 150us + 80us + 150us = 708us

发送一个数据包。328 us是有效传输时间,150 us是IFS(帧间空间),80 us正在接收,150 us又是IFS。这意味着理论数据速率为:

27字节/ 708 us = 38,135字节/秒= 305,080 bps

如果是251字节的PDU,

2120我们+ 150我们+ 80我们+ 150我们= 2500我们

发送一个数据包。这意味着理论数据速率为:

251字节/ 2500 us = 100,400字节/秒= 803,200 bps

注意:数据包大小取决于双方。如果远程设备支持较小的数据包大小,则将使用较小的数据包大小。

有关数据包计时的更多详细信息,请参见以下文章:https :
//blog.bluetooth.com/exploring-bluetooth-5-how-fast-can-it-be

2.2 属性协议操作
重要的是要知道PDU的大小包括L2CAP头(长度为4个字节)和GATT头(长度可变)。这意味着数据包的有用有效载荷比PDU大小小一点。GATT标头的大小取决于操作类型,因此最大有用负载对于不同操作是不同的。下表中对此进行了总结:

ATT操作MAx数据包的有用数据有效载荷没有回应就写 PDU-4-3个字节通知 PDU-4-3个字节

这意味着使用251字节PDU发送通知,理论上的有效数据速率为:

(251 – 4 – 3)字节/ 2500 us = 97,600字节/秒= 780,800 bps

如果MTU大于PDU,则可以在一个GATT操作中发送多个数据包。在这种情况下,只有第一个数据包包含L2CAP报头和GATT报头,随后的数据包仅包含PDU中的数据。

2.3 PHY(物理层)比特率
蓝牙4.2指定PHY比特率精确为1 Mbps。

蓝牙5(在蓝牙SDK v2.3中引入)指定了更多PHY比特率:

2 Mbps
1 Mbps。
500 kbps(使用1:2卷积编码的1 Mbps)
125 kbps(使用1:8卷积编码的1 Mbps)
这些比特率仅定义符号时间,而不定义有效吞吐量。但是,PHY比特率越高,吞吐量就越高。双比特率意味着几乎双倍的吞吐量。由于IFS恒定,它不是精确的两倍(1 Mbps和2 Mbps IFS = 150 us)

下表总结了发送具有不同PDU大小和PHY比特率的数据包所花费的时间。时间包括发送+ IFS +接收+ IFS!

1 Mbps2 Mbps 27字节 708我们 — 38字节 796我们 548我们 128字节 1516我们 908我们 160字节 1772我们 1036我们 251字节 2500美元 1400我们

例如,如果您使用2 Mbps PHY和251字节PDU,则理论吞吐量为:

(251 – 4 – 3)字节/(1060 + 150 + 40 + 150)us = 174,285字节/秒= 1,394,280 bps

有关更多详细信息,请参见:https :
//blog.bluetooth.com/exploring-bluetooth-5-how-fast-can-it-be

2.4 连接间隔
如果不需要确认,则可以在一个连接间隔内发送任意数量的数据包。因此,连接不应直接影响吞吐量。但是,数据包必须对齐,以便第一个包在连接间隔的开始处开始。例如,如果您有7.5毫秒的连接间隔,251字节PDU,2 Mbps PHY,则可以在一个连接间隔中发送4个数据包。第5个数据包不适合,必须等待下一个连接间隔开始。

这意味着这些参数的有效吞吐量为:

4 *(251 – 4 – 3)字节/ 7500 us = 130,133字节/秒= 1,041,066 bps

为避免跳过的程序包带来的开销,您可以调整连接间隔,以使连接间隔结束时的剩余时间最少。更长的连​​接间隔通常意味着较少的开销,这是因为重新调整的频率降低了。

但是,如果连接间隔过长,请小心

等待下一个连接间隔时,可能有太多的数据包排队,您可能会用完内存,
如果由于连续的CRC错误而导致连接中断,您可能需要等待更多时间才能重新同步。因此,在可能出现CRC错误的嘈杂环境中,建议不要使用较长的连接间隔。
2.5 无需ACK即可实现的最大爆炸
如果发生未经确认的操作,则可以使用以下参数实现最大吞吐量:

连接间隔: 12.5毫秒
PDU大小: 251个字节
使用的属性协议操作: 无响应写入/通知
PHY比特率:2 Mbps
在这种情况下,8个数据包适合一个连接间隔(8 * 1400 us = 11200 us),理论吞吐量为:

8 *(251 – 4 – 3)字节/ 12,500 us = 156,160字节/秒= 1,249,280 bps

3.智能手机注意事项
连接参数和MTU大小取决于参与连接的两个设备。连接到智能手机时,设备开始协商连接间隔和MTU大小。根据智能手机和操作系统版本的不同,最小连接间隔可能远远大于7.5 ms,最大MTU大小可能小于Blue Gecko支持的MTU大小。这对吞吐量有关键影响。协商的参数由堆栈事件gecko_evt_le_connection_parameters和 gecko_evt_gatt_mtu_exchanged发出信号,因此您可以检查手机支持哪些参数。

(上述文章阐述归伦茨科技公司所有,转载请注明出处,更多相关信息欢迎关注微信公众号:lenze_tech或微信号:lenzetech,点击http://www.lenzetech.com/)

蓝牙低功耗技术的传输速率相关推荐

  1. 蓝牙低功耗模块XY-MBT58A传输速率与功耗实测

    蓝牙低功耗模块XY-MBT58A传输速率与功耗实测 工具/原料 XY-MBT58A蓝牙模块 USB转TTL模块 电脑 串口调试助手 方法/步骤 1.按照测试流程接好线路,连接成功好,进行测试. 2.数 ...

  2. TI蓝牙低功耗技术BLE课程

    课程链接: http://training.eeworld.com.cn/TI/video/1403 TI蓝牙低功耗技术BLE课程 其他学习课程: 链接:http://training.eeworld ...

  3. 揭秘蓝牙定位技术,实现精准室内导航

    提及定位,我们首先想到的是GPS定位系统.然而,GPS主要适用于室外环境,在室内定位方面存在局限性,这主要归结于两个原因:首先,GPS信号功率极低,接收要求相当高,只有在天线对空无遮挡物的情况下才能接 ...

  4. 蓝牙低功耗音频技术--目录大纲

    复制转载请注明出处 蓝牙低功耗音频技术 近期看到SIG网站推荐的一本书<Introducing Bluetooth® LE Audio>,作者为Nick Hunn(尼克·胡恩,以前有过短距 ...

  5. 蓝牙Bluetooth技术小知识

    蓝牙Bluetooth技术以及广泛的应用于各种设备,并将继续在物联网IoT领域担任重要角色.下面搜集整理了一些关于蓝牙技术的小知识,以备参考. 蓝牙Bluetooth技术始创于1994年,其名字来源于 ...

  6. 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 :  -- 官方文档 : https://develope ...

  7. MDK5 nRF BLE(蓝牙低功耗)

    BLE(蓝牙低功耗) 1 什么是蓝牙低功耗? BLE是蓝牙低功耗的简称(Bluetooth Low Energy).BLE技术是低成本.短距离.可互操作的鲁棒性无线技术,工作在免许可的2.4GHz I ...

  8. 【Android】BLE:蓝牙低功耗基础

    一.蓝牙概述 蓝牙是一种短距离通信的无线电技术.特点: 1.分散式网络结构 2.点对点或多点通信 3.快跳频和短包技术 4.工作在2.4GHz ISM(工业,科学,医学缩写)频段 5.时分全双工传输 ...

  9. FarrowTech的无线传感器采用橙群微电子的NanoBeacon蓝牙信标技术

    2022年6月20日,加利福尼亚州尔湾市 /美新社/ – 位于丹麦的一家创业公司FarrowTech开发了一系列用于养猪场的无线传感器.该产品采用了橙群微电子公司的NanoBeacon SoC IN1 ...

最新文章

  1. eureka java_spring cloud 入门系列二:使用Eureka 进行服务治理
  2. JS中的事件冒泡——总结
  3. modbus3-关于Modicon Modbus Protocol和modscan32
  4. Oracle查询所有序列
  5. 飞鸽传书2007程序语言的面向对象最后会成自然语言吗?
  6. ORACLE监听问题
  7. http服务器使用libevent实现get和post请求实例
  8. TA进阶实例36(MMD pmx导入Unreal流程)
  9. 面试题-C++软件/客户端开发
  10. 电机精密运动控制专家电机驱动芯片TMC260
  11. 手机号码测凶吉附带手机号码归属地C#版
  12. STC11F02实现红外线遥控开关
  13. Map接口总结与HashMap源码分析
  14. win10/win7文件夹或文件查看方式怎么统一设置
  15. 凌晨3点不回家,你咋不去死
  16. Maven远程仓库配置(阿里云)
  17. 高校体育场地预约管理系统(Java Web毕业设计)
  18. 图文详解 HBase 的读写流程
  19. 第三章 SIMT 内核:指令和寄存器数据流
  20. ROS的四种通信架构(转载)

热门文章

  1. 【AI】Stable-Diffusion-WebUI使用指南
  2. springcloud(1/3)
  3. 1_华为是怎样开发硬件的
  4. 服务器部署理发店会员系统,使用理发店会员管理系统的价值是什么
  5. 第二类Stirling数(第二类斯特林数)
  6. sci期刊发表论文注意事项
  7. 美团围绕故障管理谈SRE体系建设
  8. c 语言 验证码识别算法,一个简单的文件传输验证码识别c/s实现
  9. matlab画极坐标方程图像_Matlab 基本绘图练习 包含极坐标
  10. 企业年会直播方案来啦,互动、营销、个性化……