一、蓝牙MTU的简介
BLE在连接过程中主从机会协商MTU的大小,BLE协议最大为520字节,但不是所有手机都支持512字节,大部分支持128字节。但是早期的手机和芯片端,都是默认20个字节的。基本上2020年以后的手机都可以设置为128个字节以上


二、详细的方法说明以及测试
1、由主机发起请求设置MTU,从机支持BLE协议的最大字节(推荐开发者使用这种方式)。
可以理解为,MTU的大小跟蓝牙芯片无关,当客户在开发APP的时候,可以在APP端主动设置好MTU的大小,然后同步到蓝牙芯片即可
2、因为我们目前标准的版本固件,也就是需要兼容老的手机,比如蓝牙4.2版本及以下的
==》所以手机下发数据,我们内部都是20个字节进行拆包和分包的
==》如果需要大数据量的传输,可以联系我们进行订制的修改,这个我们可以配合修改的
==》修改MTU的大小,以及连接间隔、数据交互间隔等等参数
==》当然也可以自己在手机端app去修改,就是主机可以申请修改MTU,范围是23--517。申请之后,蓝牙芯片这边就可以同步了
三、KT6368A提升ble传输速率方法
BLE传输带宽主要跟两个要素有关: 通信周期和每个通信点可传输的数据量。
1.通信周期: 安卓手机一般可支持到10ms,苹果一般可支持到15ms
2.每个通信点可传输的数据量: 就是指每包的长度以及可以传多少包
3.BLE理论带宽传输计算如下:
按15毫秒通信周期,每次基本通信能发4包(发包个数取决于主机)
若PDU长为27, 即payload长是 20 byte,那传输速度是 (1000/15)204 约= 5K byte 速度。
若PDU长为251,即payload长是 244 byte,那传输速度是 (1000/15)2444 约= 63K byte 速度。(要双方同时支持DLE和2M属性)
四、实际测试截图--改MTU和PDU的效果-蓝牙调试宝
1、第一步,在app里面设置mtu为256 。因为测试app“蓝牙调试宝”刚连接上,默认就是23
2、第二步,测试app往蓝牙芯片下发 1024个字节的数据
3、实际的效果如下,可以看到蓝牙芯片内部是分4包数据收完的。

程序的修改,这个需要我们来修改,可以配合客户去调试。但是必须要是产品开发阶段才支持的。
另外,后面我们也做了测试:
实际的结论就是,和蓝牙芯片内部的程序,里面的PDU没什么关系 。只要主机端设备申请修改了MTU
那么app往蓝牙芯片发数据,包数据的大小,就不再是20的限制了,可以是指定的MTU大小,但是为了兼容性更好,建议申请128个字节。
审核编辑:汤梓红
-
蓝牙芯片
+关注
关注
17文章
440浏览量
47727 -
BLE
+关注
关注
13文章
746浏览量
66017
发布评论请先 登录
KT6368A蓝牙芯片在广播间隙导致的电源抖动引起mcu被唤醒说明
Android14在BLE中,当MTU超过 517时,如何处理数据传输?
KT6368A 蓝牙芯片通过 FCC、BQB、KC、CE 等认证的操作指南
万年历 时钟 闹钟时间设置方案:KT6368A 蓝牙芯片同步技术详解
KT6368A蓝牙芯片出厂的mac地址是什么规则?如何设置?批量怎么办
KT6368A蓝牙芯片加开关电路设计原理以及参考电路
KT6368A蓝牙芯片用于BMS电池金属壳,RF距离怎么样,如何优化
芯知识 BLE(低功耗蓝牙模块)和SPP(传统蓝牙模块)的对比
KT6368A蓝牙芯片的uuid完整的是多少,以及app或者小程序开发的注意点

KT6368A蓝牙芯片的MTU的说明以及如何加快BLE传输速率
评论