关于提升BLE传输速率说明
关于提升BLE传输速率说明
版本等级:B类,性能优化
一、适用的sdk类型及版本
音箱类所有SDK版本
二、背景描述
由于SDK BLE相关配置需要兼顾较多的BLE应用场景、 芯片RAM 资源、样机功耗等的需求,默认设置的配置参数可能不能完全满足某些有高传输速率的要求的应用,现提供提升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属性)
四、修改点
(以AC695N_soundbox_sdk_release_3.1.0版本的 trans data说明)
1.改大本地发送端ATT协议MTU 的大小和应用层cbuf 的大小文件:trans_data_demo/le_trans_data.c
2.改小BLE 的通讯周期interval 的值,最小周期是7.5ms 文件:trans_data_demo/le_trans_data.c
注意:从机只是请求的是建议值,最终参数由主机决定
参考:BLE从机修改连接参数说明
BLE从机修改连接参数意义(提升BLE发包速度、降低连接后的功耗) · Issue
#I4MEA5 · 珠海杰理科技/fw-AC63_BT_SDK-Gitee.com
3.修改每次通讯最多收发数据包的个数,蓝牙底层的一级缓存(建议<=10 ,能收发多少包最终由主机决定)
文件:log_config/lib_btctrler_config.c
4.开启2M 包的支持和Data Length Extension supported(DLE)文件:log_config/lib_btctrler_config.c
注意:2M 包需主机支持蓝牙V5.0或以上版本,DLE功能需主机支持蓝牙v4.2或以上版本
参考:BLE 中 ATT层 MTU_SIZE 和空中包 PDU长度 两者的配置关系
BLE 中 ATT 层 MTU_SIZE 和空中包 PDU 长度 两者的配置关系 · Issue
#I599P4 · 珠海杰理科技/fw-AC63_BT_SDK-Gitee.com
珠海市杰理科技股份有限公司
2022年07 月21 日