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

news2025/2/24 23:46:53

目录

一、蓝牙MTU的简介

二、详细的方法说明以及测试

三、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的效果-蓝牙调试宝


一、蓝牙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个字节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/91532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Node.js计算机毕业设计高校实习管理平台系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

菁染料CY3-聚乙二醇-二苯并环辛炔 CY3-PEG-DBCO

产品名称:菁染料CY3-聚乙二醇-二苯并环辛炔 英文名称: CY3-PEG-DBCO 分子量:1k,2k,3.4k,5k,10k,20k(可按需定制) 质量控制:95% 原料分散系…

SSM校园疫情防控

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 管理员功能: 教职工管理(管理已注册的教职工) 出入管理(出入日期、人员姓…

若依缓存使用浅析

配置 这块主要涉及两个类 FastJson2JsonRedisSerializer : 继承 RedisSerializer 接口自定义使用 fastjson 进行序列化和反序列化RedisConfig:配置使用 StringRedisSerializer 来进行key的序列化与反序列,使用刚才我们 FastJson2JsonRedisSerializer 来…

通过WSL2运行GUI程序

上次我写过一篇VGPU和WSL2,这回我打算写一篇关于《通过WSL2运行GUI程序》的笔记。 起因 总所周知,KVM in Linux支持GPU passthrough(GPU直通)功能的,就是配置稍稍多了一点。最初想试试如何在Hyper-V中尝试安装VM,但是vgpu的文档…

2022-12-14 jedis

jedis 简介 编程语言与redis java语言连接redis服务 jedis SpringDataRedis Lettuce HelloWorld 客户端连接redis maven下载安装 配置maven环境变量 库的种类和彼此的关系 maven标准目录结构 核心代码部分配置文件部分测试代码部分测试配置文件 maven常用的命令 mvn…

nodejs+vue083新生报到服务管理系统

目 录 摘 要 I 目 录 III 第一章 概述 1 1.1研究背景 1 1.2 开发意义 1 1.3 研究现状 1 1.4 研究内容 2 1.5 论文结构 2 第二章 开发技术介绍 1 2.5 B/S架构 2 第三章 系统分析 1 3.1 可行性分析 1 3.1.1技术可行性 1 3.1.2操作可…

python绘制圣诞树、烟花、爱心及节日倒计时

说明: 该博客主要完成以下几个方面的功能: 1.元旦节日倒计时代码的实现 2.使用python源码“绘制圣诞树” 3.使用python绘制“跨年烟花” 4.使用python 绘制“爱心” 呈现方式:代码和截图 1.元旦倒计时代码: 输入相应的节日时间&#…

Seata - @GlobalTransactional源码解析

脑图 核心 Seata三大角色 TC :事务协调者,netty server(服务器)TM :事务管理器,netty client(客户端)RM: 资源管理器,netty client(客户端) GlobalTransactional(name "fsp-create-order" ro…

【静脉检测】手指静脉图像检测【含Matlab源码 1654期】

⛄一、简介 手指静脉识别系统的性能非常依赖于采集图像的质量,但是采集设备在成像和传输时产生的各类噪声,以及开放式使用场景下设备镜面上存在脏污、用户手指存在蜕皮情况等因素都会对图像质量造成极大的影响,增大后续特征提取的难度,最终影响整个系统的识别性能。针对目前现…

Zabbix 6.2 监控 PostgreSQL13 数据库

Zabbix 6.2 监控 PostgreSQL13 数据库 文章目录Zabbix 6.2 监控 PostgreSQL13 数据库官方模版地址1.pgsql新建监控用户2. 编辑 pg_hba.conf 文件并重启3.拷贝监控脚本到var/lib/zabbix下4.zabbix监控导入模版5.主机配置模版6.验证监控数据官方模版地址 https://git.zabbix.com…

一文带你读懂何为 macOS App 公证,以及如何自动化实现

前言 在上篇文章「macOS App 自动化分发 App Store 探索与实践」中讲解了如何通过 Shell 脚本实现 macOS App 自动化分发 App Store。相信,看过的同学都或多或少对 macOS App 构建、分发 App Store 相关的知识都具备了一定的认知。 而对于开发者来说,我…

RCE(远程代码/命令执行漏洞)原理及靶场练习

目录 PHP-RCE涉及函数 基础命令符 靶场练习 PHP-RCE涉及函数 代码注入 eval() 把字符串 code 作为PHP代码执行 assert() 检查一个断言是否为 false preg_replace() 执行一个正则表达式的搜索和替换 create_function() 创建一个匿名函数并且返回函数名创 call_user_func()/ca…

Android进程启动流程

一.Android 系统架构图 ​虽然 Android 系统非常庞大且错综复杂,但整体架构设计清晰。Android 底层内核空间以 Linux Kernel 作为基石,上层用户空间由 Native系统库、虚拟机运行环境、框架层组成,通过系统调用(Syscall)连通系统的内核空间 与…

浅谈hudi 的callback回调机制

浅谈hudi 的callback回调机制 关于hudi的write operations,hudi有4种类型,分别为upsert/insert/bulk_insert/delete[软删除/硬删除]。 了解hudi的都知道,hudi有一个核心的机制就是timeline,hudi的instantDTO包含action(动作),ts(时间),state(状态)。 action主要包括: commits…

Linux常用命令总结(建议收藏)

文章目录一、文件管理1、cat:查看文件内容案例1:输出内容行数2、chmod:是控制用户对文件的权限的命令案例1::将user文件修改成用户、组、其他用户都可以读写可执行的权限3、diff:用于比较文件的差异4、find…

ELK (一)部署ELK+Filebeat日志收集分析系统

说明:此安装流程只适用于8.0.0以下的版本 1. ElasticSearch 部署 1.1 下载ElasticSearch的wget指令: wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.4-linux-x86_64.tar.gz1.2 解压安装包到指定目录 指定解压缩到 …

【指纹识别】指纹识别【含GUI Matlab源码 586期】

⛄一、指纹识别简介 1 指纹识别的引入和原理 1.1 指纹的基本知识 指纹,由于其具有终身不变性、唯一性和方便性,已几乎成为生物特征识别的代名词。指纹是指人的手指末端正面皮肤上凸凹不平产生的纹线。纹线有规律的排列形成不同的纹型。纹线的起点、终点…

SpringBoot+Vue实现前后端分离的旅游网站

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

【Effective_Objective-C_2对象,消息,运行期1】

文章目录前言6 理解”属性“这一概念定义变量不兼容现象的出现解决不兼容现象-Property使用属性更便捷属性特质原子性读写权限内存管理语义方法名原子性和非原子性要点总结7 在对象内部尽量直接访问实例变量要点总结8 理解“对象等同性” 和 isEqual“” 判断的依据“isEuqalTo…