蓝牙4.0BLE模块的传输速率问题

如何提高蓝牙BLE的传输速率和稳定性 如何提高蓝牙BLE的传输速率和稳定性,应用于BLE语音传输,OTA无线空中升级等场景。 阅读详情

    新产品方案确定使用蓝牙4.0模块,就是淘宝上烂大街的BLE4.0模块,以前也用过,没去细究,但是这次需要蓝牙有足够快的传输速率,所以研究了一下这个方案。本文只讨论BLE模式下的数据包格式和传输速率问题,关于BlueTooth4.0协议见下一章。

    下文转自嵌入式企鹅圈。

    蓝牙BLE的最大特点就是低功耗,而低速率和简单的交互协议是降低功耗的重要组成部分。因此BLE一般应用于低速率的近场控制和数据交互,如智能家电、运动手环等等,小数量的控制和交互对传输速度没有要求,每秒1K字节就可以了,有时为了功耗可能会更低。但在某些场景下,可能要求BLE尽可能提高传输速率,如无线空中升级OTA、无线对讲语音传输等等。接下来,我们来分析如何提高BLE的速率来满足需求,并探讨BLE连接的稳定性。

一、BLE数据包分析

BLE包的结构是:

preamble(1 Byte)+ AccessAddress(4 Bytes)+ PDU + CRC(3 Bytes)

1)preamble = 10101010 or 01010101

2)Access Address = 0x8e89bedd6

3)连接以后的数据传输的PDU是:Header(2 Bytes)+ Payload (27 Bytes max)+MIC(4bytes),所以传输一个包的最大长度是1+4+33+3=41字节,有效数据最大是27字节。

二、自定义characteristic的最大长度

       从上面分析可见,通过WRITE或者NOTIFY characteristic发送一个包的最大长度是27字节。但是这个27字节指的是BLE底层的协议包格式。对于profile层的characteristic,其最大的长度是20字节,也即是每个包最大的长度是20字节。

       这是因为profile所用的characteristic处于GATT协议层,而GATT到ATT层需要增加一个字节的op code,两个自己的attribute handle。然后ATT到L2CAP适配层需要增加4个字节的L2CAP头。所以从GATT到底层需要封装7个字节的额外协议数据,因此GATT层最大是20字节。

       其实,按照蓝牙BLE的协议,L2CAP协议层自动对数据包进行拆包和封装,理论上是支持ATT/GATT层更大的数据包的。但一般SDK默认ATT_MTU=23,这样L2CAP的工作会变得很简单,事实上,BLE的应用场景也不需要定义太长的数据包,20个字节足够了。

三、BLE的传输速率分析

       根据蓝牙BLE协议, 物理层physical layer的传输速率是1Mbps,相当于每秒125K字节。事实上,其只是基准传输速率,协议规定BLE不能连续不断地传输数据包,否则就不能称为低功耗蓝牙了。连续传输自然会带来高功耗。所以,蓝牙的最高传输速率并不由物理层的工作频率决定的。

在实际的操作过程中,如果主机连线不断地发送数据包,要么丢包严重要么连接出现异常而断开。

在BLE里面,传输速度受其连接参数所影响。连接参数定义如下:

1)连接间隔。蓝牙基带是跳频工作的,主机和从机会商定多长时间进行跳频连接,连接上才能进行数据传输。这个连接和广播状态和连接状态的连接不是一样的意思。主机在从机广播时进行连接是应用层的主动软件行为。而跳频过程中的连接是蓝牙基带协议的规定,完全由硬件控制,对应用层透明。明显,如果这个连接间隔时间越短,那么传输的速度就增大。连接上传完数据后,蓝牙基带即进入休眠状态,保证低功耗。其是1.25毫秒一个单位。

2)连接延迟。其是为了低功耗考虑,允许从机在跳频过程中不理会主机的跳频指令,继续睡眠一段时间。而主机不能因为从机睡眠而认为其断开连接了。其是1.25毫秒一个单位。明显,这个数值越小,传输速度也高。

蓝牙BLE协议规定连接参数最小是5,即7.25毫秒;而Android手机规定连接参数最小是8,即10毫秒。iOS规定是16,即20毫秒。

连接参数完全由主机决定,但从机可以发出更新参数申请,主机可以接受也可以拒绝。Android手机一部接受,而ios比较严格,拒绝的概率比较高。

一般场景,连接参数设置16,即20毫秒,一般的传输速率是50HZ* 20byte = 1000字节/每秒。如果每个连接事件传输更多的包,可以获得更高的传输速率。

四、BLE高速传输的应用场景和技术实践

       降低连接间隔,提高每个连接事件的发包数能够显著地提高速率,但是两者往往是矛盾的。因为一个连接事件的传送时间总是有限的。从实践来看,BLE的传输速率不仅跟连接参数有关,还跟CPU的处理能力有关[CC2541的51核要比DA14580的M0逊色不少]。此外还要对发送和接收流程进行优化处理,这个非常重要。需要注意的是,高速率也会带来稳定性问题,需要优化profile的数据交互场景和一些参数。

       高速率传输会带来更高的功耗,但是这个功耗应该是远比经典蓝牙的功耗低的。语音传输以往一般使用经典蓝牙芯片,功耗一般在毫安级别。便携式电子产品对功耗要求很高,对于单纯的语音对讲场景来说,BLE是可以满足需求的。语音使用8K采样率,16位量化,一秒即是16K字节/每秒。如果使用ADPCM编码压缩,可以压缩四分之一,即4K字节每秒。对于BLE来说,这个速度是完全可以达到的。如果是8bit量化,不压缩也是8K字节每秒。TI官方宣称CC2541的最大的传输速率是5.9K字节每秒。而DA14580则可以达到8K字节/每秒的速率。嵌入式企鹅圈基于目前最低功耗蓝牙单芯片DA14580已经demo通过,距离超过10米,稳定性也有保证。


BLE4.0 ATT_MTU Configurable(BLE4.0每帧传最大的数据量) 在ble4.0协议规范中用户数据最大可以传20字节,为什么? 1、LL层数据包的格式: 规定了Protocol Data Unit(PDU)长度:2~39Bytes。 PDU分两种数据包:广播通道和数据通道。 ①、广播通道的PDU数据包: 广播通道的PDU数据包:2Bytes头信息,6Bytes广播地址,31广播数据,2+6+31=39; ②、数据通道PDU数据包: ... 阅读详情

相关推荐

提高BLE传输速度的方法

BLE(Bluetooh Low Energy)蓝牙低能耗本身是为了尽可能的节省电池电量,因此采样间歇式的收发机制,每次传输的数据量非常小,对于ATT来说,典型的是20字节,虽然后续版本的数据量有所增加,但设备厂商有不同的实现方式,设备具体支持多长的数据发送,还是需要应用层做兼容适配,这无疑增加了开发的工作量。本文主要探讨的是如何提高BLE 4.0版本下的数据传输率。 通常情况下,BLE传输数据量非常小, 有时候几百毫秒、甚至几秒十几秒才会发送一次用户数据,例如实时温度监控,智能穿戴设备的心率,计步上传等,

wenshifang的专栏 5773

SYD8801 OTA说明【提高OTA速度】【手环方案OTA方法】

SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.sydtek.com/   SYD8801 OTA相关说明       S...

挖到尽头 2821

蓝牙BLE协议讲解

蓝牙技术起源于爱立信在 1994 年提出的方案,旨在解决移动电话和其他配件之间进行低功耗、低成本的无线通信连接的方法。蓝牙是一种近距离无线通信技术,运行在 2.4GHz 免费频段,目前已大量应用于各种移动终端,物联网,健康医疗,智能家居等行业。上一小节提到,蓝牙 4.0 以后的版本分为两种模式,单模蓝牙和双模蓝牙。单模蓝牙,即低功耗蓝牙模式,是蓝牙 4.0 中的重点技术,低功耗,快连接,长距离。双模蓝牙,支持低功耗蓝牙的同时还兼容经典蓝牙,经典蓝牙的特点是大数据高速率,例如音频、视频等数据传输。

Projectsauron 的博客 5万+

蓝牙有多快?

原文:http://www.informit.com/articles/article.aspx?p=21325 也许你已经听说过了蓝牙的数据速率范围可以从每秒1兆字节到每秒几千比特。为什么会有如此大的差距呢? 在影响蓝牙数据速率的因素这个问题上,Jennifer Bray会给你一个直截了当的回答。 Packet的选择:Single-Slot还是Multi-slot 影响蓝牙数据速率

G程师专栏 4872

Android蓝牙开发 — 经典蓝牙&BLE蓝牙

一,前期基础知识储备 1)蓝牙是一种支持设备之间短距离通信的无线电技术(其他还包括红外,WIFI); 支持移动电话、笔记本电脑、无线耳机等设备之间进行信息的交换; Android支持的蓝牙协议栈:Bluz,BlueDroid,BLE; Bluz是Linux推出的,目前使用最广泛; BlueDroid是Android4.0之后推出来的,简化了Bluz的操作; BLE是最新的低功耗协议,传输效率和传输速率都是很高的; 2)蓝牙开发技术一共分为两种: 经典蓝牙,3.0版本以下的蓝牙,功耗高,传输

Chin_Style的博客 1万+

BLE的传输速率

主设备端向从设备传输数据,为了达到最大的传输速率可以采用write cmd(写命令,无需从设备回应)方式向从设备写数据;从设备向主设备发送数据,为了达到最大的传输速率可以使用Notification(通知,无需主设备回应) 本文代码以nordic平台为例进行说明 影响传输速率的主要因素 连接间隔 连接间隔传输的数据包数量 数据包大小 1 连接间隔 如果启用了CLE(不受单个连接间隔内,只能发送 4~6个数据包的限制),因此只需要选择一个合适的连接间隔即可,无须使用低功耗蓝牙5.x协议栈中的最小连接间隔(

ching的专栏 4243

BLE蓝牙协议详解

ATT是 BLE 中的底层协议,负责基本的数据传输操作。GATT是构建在 ATT 之上的高级协议,定义了如何组织和访问数据。ATT提供了基础的读写和通知功能,而GATT提供了一个结构化的框架,以便于发现和使用这些数据。通过理解 ATT 和 GATT 的关系和区别,可以更好地设计和实现 BLE 应用程序。

wjj970802的博客 8885

BLE 数据包和传输速率

根据Bluetooth 4.0 BLE部分协议: BLE中物理层physical layer的传输速率是1Mbps,除了这个外,数据传输速率与包大小、CPU处理时间相关。 包结构: 1.总体结构: preamble(1 Byte)+ Access Address(4 Bytes)+ PDU + CRC(3 Bytes) preamble = 10101010 or 0101010

shenlei314的专栏 7997

低功耗蓝牙(BLE)你入门了吗

蓝牙低功耗(Bluetooth Low Energy,或称Bluetooth LE、BLE,旧商标Bluetooth Smart),用于医疗保健、运动健身、安防、工业控制、家庭娱乐等领域。在如今的物联网时代下大放异彩,扮演者重要一环,是无线通信的主流技术之一(常见的无线通信技术有NFC、GPRS、Zigbee、WiFi等),2021 年 7 月发布了蓝牙 5.3 版本,也是截止目前的最新版本。

Qurry的博客 2万+

(一)深入理解蓝牙BLE之“蓝牙的发展历程”

强烈推荐这两篇文章: 蓝牙技术|蓝牙的发展历程 - 哔哩哔哩 蓝牙5.3来了!为何市面上无线耳机仍停留在4.0? 4.2版本:较上一个版本相比,开始支持DLE,将gatt的单包数据,从23个字节的单包传输,提升到247个字节的单包传输。 5.0版本:增加扩展广播基础能力,增加2M PHY的调制解调能力,1M的coded PHY,为BLE Audio作准备。 5.1版本:支持室内定位基础能力支持。 5.2版本: 支持BLE Audio,主要是LC3编码,与传统蓝牙耳机相比,有更好的音质,更低的..

1万+

ZynqMP双核通信避坑指南:Linux驱动+裸机固件协同开发实录

本文详细解析了Xilinx ZynqMP芯片中APU与RPU双核通信的技术实现,重点介绍了通过IPI中断实现Linux驱动与裸机固件协同开发的实战经验。内容涵盖硬件寄存器配置、Linux驱动开发、RPU裸机程序编写以及双核调试技巧,为开发者提供了一套完整的工程化解决方案,帮助规避常见开发陷阱。

weixin_29168153的博客 122

BLE传输速率以及抓包工具

BLE传输速率以及抓包工具

weixin_40543589的博客 6989

下载Python3.10的相关方法及问题解决

下载Python3.10的相关方法及问题解决 报错unable to locate package python3.10-dev以及subprocess.CalledProcessError: Command ‘(‘lsb_release‘, ‘-a‘)‘ returned non-zero exit status 1问题解决

Istil 1550

2.4g无线模块 java_一文了解几款常用的4.0/4.2/5.0BLE蓝牙2.4G无线模块

蓝牙从出现到现在,已经经历了1.0-5.0多个版本,每个版本都有不同的特性,其功能也在不断增加和改进,包括工程师关注的传速速率、传输距离和通信模式。得益于这些新的技术特性,从传统的智能家居,穿戴医疗,共享单车,胎压监测,电子烟,工业自动化控制,到beacon类的定位应用,都可以通过BLE蓝牙模块来实现。本篇SKYLAB君就为各位有蓝牙数据传输需求的物联网厂商介绍几款常用的4.0/4.2/5.0BL...

weixin_42297605的博客 2万+

RV1126B RV1126B-P 瑞芯微 高性能视觉处理器SoC 芯片

它集成了大量算法加速器,如 HDR、3A、LSC、3DNR、2DNR、锐化、去雾、鱼眼校正、伽马校正、特征点检测等。此外,还配备了一款最多8兆像素的 AI-ISP,作为对传统ISP 的补充,以提供卓越的空间去噪性能和增强的图像增强效果。除了先前的高性能多媒体区块外,RV1126B还包含丰富的音频、内存和其他外围接口,如I2C、SPI、PWM等。借助这-特性,来自相机的视频可以以高分辨率进行编码,并存储在本地内存中,同时还能将另-段较低分辨率的视频传输到云存储。

szhorsway的博客 1844

一文带你看懂SAP-HANA的基本架构与原理

创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥。

丷江南南的博客 5067

BLE 包结构及传输速率

蓝牙BLE的最大特点就是低功耗,而低速率和简单的交互协议是降低功耗的重要组成部分。因此BLE一般应用于低速率的近场控制和数据交互,如智能家电、运动手环等等,小数量的控制和交互对传输速度没有要求,每秒1K字节就可以了,有时为了功耗可能会更低。但在某些场景下,可能要求BLE尽可能提高传输速率,如无线空中升级OTA、无线对讲语音传输等等。接下来,我们来分析如何提高BLE的速率来满足需求,并探讨BLE连接...

jrunw的博客 2691

YOLO26优化:原创自研 | 自研独家创新DSAM注意力 ,基于BiLevelRoutingAttention注意力升级

提出新颖的注意力DSAM(Deformable Bi-level SpatialAttention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的Deformable Bi-level Attention+Spartial Attention

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 352

Bluetooth 最大传输速率与功耗计算

低功耗蓝牙版本包括BLE 4.0/4.1, 4.2 以及5.0/5.1/5.2,其中BLE 4.0/4.1, 4.2 只有1Mbps PHY,BLE 5 也可以选择2Mbps的PHY,但在实际使用中,BLE速率受限因素很多,可以参考 <BLE 传输速率/数据吞吐量(Data Throughput)>,本文基于Bluetooth官方博客文档,介绍BLE最高传输速率。 1.BLE 传输速率计算公式 一个完整的数据传输周期(即 connection interval): 一个...

feelinghappy的专栏 8526

「深度学习之优化算法」(五)差分进化算法

每次迭代将先进行变异操作,选择一个或多个个体的基因作为基,然后选择不同的个体的差分来构成差分基因,最后将作为基的基因与差分基因相加来得出新的个体。,大喊一声,进化吧,魔王兵i的基因改变了。交叉率CR,影响基因取自变异基因的比例,由于至少要保留一位自己的基因和变异的基因导致CR在该问题上对算法性能的影响不大(这个问题比较简单,维度较低,影响不大)。与遗传算法同为进化算法的差分进化算法,它们的操作(算子)也都非常相似的,都是交叉,变异和选择,流程也几乎一样(遗传算法先交叉后变异,差分进化算法先变异后交叉)。

quanzhan_King的博客 1501

【以太网硬件十九】SGMII到底能不能直接出光模块?

详细解释为什么SGMII可以直接出光模块及其使用限制

highman110的博客 1万+

ATK-BLE4.0蓝牙调试工具使用指南

本文介绍ATK-BLE4.0蓝牙调试模块的特性与应用,支持BLE 4.0、串口透传、主从一体模式,配合AT指令和上位机软件,可快速实现STM32等单片机的无线通信开发,适用于温湿度监控等物联网原型验证场景。

weixin_42103128的博客 1117

人形机器人构成及成本估算(附报告)

这些执行器本身由螺杆、减速器、电机、传感器、滚珠轴承和编码器等组件构成。实现线性与旋转运动互转。人形机器人的运动系统可以由电驱动、液压驱动或气动驱动组成,但由于电驱动具有更高的精度和更快的响应速度,正在成为主流设计方案。执行器:NSK、THK、Harmonic Drive、Leaderdrive、Nidec、Moons。由螺杆、减速器、电机、传感器、轴承和编码器组成(如上为Tesla Optimus执行器设计示意)。传感器:Keyence、Robosense、Sensata、ATI、TE、Sony。

具身机器人和通用AI 1754

BLE蓝牙发送速率、BLE底层蓝牙分包机制、BLE底层蓝牙重发机制、BLE中的MTU、BLE中蓝牙连接后数据通道选择

BLE蓝牙发送速率、BLE底层蓝牙分包机制、BLE底层蓝牙重发机制、BLE中的MTU、BLE中蓝牙连接后数据通道选择

浮若于心 6697

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝牙BLE协议分析【附代码实例】

目录0x01 蓝牙概述0x02 蓝牙技术分类Basic Rate(BR)/AMPLow Energy(LE)0x03 蓝牙架构0x04 蓝牙协议应用层(App Layer)L2CAP(Logical Link Control and Adaptation Protocol Layer)逻辑层(Logical Layer)物理层(Physical Layer)0x05 BLE协议栈Physical Layer(PHY)Link Layer(LL)Host Controller Interface(HCI)L2

weixin_35016347的博客 8741

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

系统性简述BLE蓝牙

这里写自定义目录标题蓝牙简介蓝牙分类蓝牙技术蓝牙协议框架BLE协议栈框架ATT协议ATT协议分层新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 蓝牙简介 蓝牙因为历史问题,分类太多太杂,这里主要讲BLE蓝牙(毕竟现在BLE

盜版摩羯 6345

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: WIFI快连协议层原理
下一篇: 蓝牙4.0BLE协议浅析
fang_chuan
博客等级 码龄12年 276粉丝 99原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值