X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
国产芯片交流
[MCU] 全志R128 BLE最高吞吐量测试正确配置测试
aleksib
2023-10-26 16:46
楼主
在R128使用前我们需要了解BLE的最高吞吐量,以方便评估相关功能的开发。 首先我们了解一下哪些因素会影响蓝牙的吞吐量: **1、蓝牙版本与PHY:** 蓝牙设备的版本和物理层(PHY)对于吞吐量有很大影响。例如,R128设备支持蓝牙5.0,而蓝牙5.0版本后支持2M PHY,使用2M PHY会获得更高的数据吞吐量。 **2、DLE(数据长度扩展):** 在蓝牙4.2版本之后,BLE(蓝牙低功耗)开始支持DLE(也称为长包),使用长包可以使单个BLE数据包传输的payload达到251字节。通常,此功能是默认启用的,这有助于提高数据吞吐量。 **3、MTU与数据发送量:** 协议规定LL data PDU的Payload最大为251字节,即一次可以传输251字节的L2CAP数据。在L2CAP Data之上还有4个字节的头部,因此L2CAP的Payload为251-4=247字节,即一次可以传输247字节的ATT data。而在ATT Data之上还有3个字节的头部,所以ATT的payload为247-3=244字节,即一次可以传输244字节的应用数据。MTU(最大传输单元)通常指的是L2CAP的Payload,即ATT data,其大小为247字节。在发送数据时,应尽量减少拆包和组包的过程,以便提高吞吐量。这意味着应用在发送数据时,应尽量每次发送不超过244字节的数据。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d912e543171e4538b3d061883fb1b0e7.png#pic_center) **4、连接间隔:**BLE技术的特点是低功耗,这主要是因为BLE的两个设备并不是传统意义上的长连接,而是间隔一段时间进行周期性交互。这个周期性的间隔称为连接间隔。连接间隔越小,单位时间内可以发送的数据包就越多。因此,为了提高吞吐量,应尽量减小连接间隔。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ecc691ed413c47f2952be9566b8cadad.png#pic_center) **5、每个连接事件的最大数据包数:** 在蓝牙连接过程中,每个连接事件内可以发送的数据包数量通常为7个。如果在一个连接事件内发送过多的数据包,可能会导致吞吐量下降。因此,应尽量保证在一个连接事件内发送不超过7个数据包。 **6、写操作:** 在蓝牙通信中,write和write_without_response、indicate和notify是常见的操作方式。write操作需要对方确认,效率相对较低;而write_without_response和notify操作则不需要对方确认,效率较高。因此,为了提高吞吐量,应优先使用write_without_response和notify操作。 **针对以上因素,我们可以制定出一套可以满足最大吞吐需求的正确配置** **1、使用2M PHY** (1)若我方作为GATTC,应该由我方发起PHY UPDATE的动作。 在较新的btmanager中已经适配(在SDK V0.9版本后才有),老版本上未有。若客户不使用btmanager,需要自行检查适配。 (2)若我放作为GATTS,一般支持蓝牙的5.0的手机设备默认有PHY UPDATE的动作。 **2、更新LL data length** 虽然默认支持长包功能,但是为了兼容4.0和4.1版本,蓝牙controller默认还是使用27字节的包发送。 需要在连接的时候主动更新LL data length为251字节。在较新的btmanager中已经适配(在SDK V0.9版本后才有)。若客户不使用btmanager,需要自行检查适配。 **3、MTU与数据发送量** L2CAP MTU 设置为247: ``` -CONFIG_BT_L2CAP_RX_MTU=65 +CONFIG_BT_L2CAP_RX_MTU=247 -CONFIG_BT_L2CAP_TX_MTU=65 +CONFIG_BT_L2CAP_TX_MTU=247 ``` 同时,应用或测试demo在发送数据时,应该每次最多发送244字节。 **4、连接间隔** 连接间隔范围是7.5ms ~ 4s。 但是并不是越小就越好 * 连接间隔越小,抗干扰能力就越差。 * 若蓝牙controller在一个连接事件中能发送7个数据包,连接间隔应该设置大于12.5ms,因为这7个包已经占用了大概9.5ms了。 * 建议连接间隔在12.5ms、13.75ms、15ms中尝试。 (1)若我方作为GATTC,可以在btmg_le_connect中指定为连接间隔即可。 (2)若我放作为GATTS,对方使用的连接间隔太大,我方可以通过协议栈主动更新,相关配置 ``` -# CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS is not set +CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS=y +CONFIG_BT_PERIPHERAL_PREF_MIN_INT=11 +CONFIG_BT_PERIPHERAL_PREF_MAX_INT=11 +CONFIG_BT_PERIPHERAL_PREF_SLAVE_LATENCY=0 +CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=42 ``` **5、增大协议栈TX和RX buff** 增大协议栈TX buff可以让数据能快速送到蓝牙controller。 ``` -CONFIG_BT_CONN_TX_MAX=3 +CONFIG_BT_CONN_TX_MAX=8 -CONFIG_BT_L2CAP_TX_BUF_COUNT=3 +CONFIG_BT_L2CAP_TX_BUF_COUNT=8 ``` 增大RX buff 可以提高接收效率: 设置为255是因为包含HCI的包头4个字节。 ``` -CONFIG_BT_RX_BUF_LEN=88 +CONFIG_BT_RX_BUF_LEN=255 -CONFIG_BT_DISCARDABLE_BUF_SIZE=88 +CONFIG_BT_DISCARDABLE_BUF_SIZE=255 ``` **6、使用write_without_response和notify发送数据**
点赞
回复评论 (1)
沙发
wangerxian
实测通信速率可以达到多少?
点赞
2023-10-26 18:47
最新活动
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
随便看看
求助:移植CE6的以太网KITL时遇到问题
基于DSP 的全数字电机控制解决方案.pdf
quartus的功能仿真和时序仿真有什么区别
EMAC 问题
不可多得汽车级的界面设计工具
【新版CH554评测DIY】音频校音器之6
UDP通信问题
家用电子保鲜器
寻人启事
【RPi PICO】播放midi音乐
如何在windows xp 下 实现一个物理网卡产生多个网络连接,每个网络连接都能正常读写?
07全国大赛结束了,大家有什么想法
Wince(evc) can 总线 通信 SPI MCP2510
用modelsim-altera仿真PLL核的倍频出现的问题
POWERPCB在印制电路板设计中的应用技术
EWAVR+4[1].10中文手册
TI嵌入式直播月:深入探究嵌入式产品在工业和汽车中的新应用 有奖直播报名中
收到申请TI的TMS320F28035PAGT评估开发板(已上传图片)
連結 FLASH
求助!TST.B #01H,&P1IN
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复