支持BLE 4.2的蓝牙SOC芯片与手机app之间的数据包长度(MTU)

BLE 4.2之前的蓝牙数据包MTU为23字节,限制了大规模数据传输效率。BLE 4.2扩展MTU至247字节,提高传输效率并简化代码。在NXP的KW41 SDK中,作为peripheral的芯片在连接后需主动通过central的API请求MTU更新,以利用更大的数据包长度。
摘要由CSDN通过智能技术生成

支持BLE 4.2的蓝牙SOC芯片与手机app之间的数据包长度(MTU)

在[BLE 4.2][6]之前,BLE芯片与手机通信的蓝牙数据包长度MTU是[23][6]字节,其中还包括2字节的handle值,1字节的operation码,所以留给应用层的数据长度只有[20][6]个字节。
当SOC的蓝牙芯片(如TI的cc2640、NXP的KW41等)有大量数据需要透传时,受限于MTU,发送端只能数据分包进行流传输,而接收端需要进行组包,为了防止中间数据的丢失,在20个字节中还需要增加包ID等。带来的弊端就是代码的复杂度和传输的效率下降。

而在[BLE 4.2][6]中,MTU已经扩展到了[247][6]字节,除去3个字节,留给应用层的就是[244][6]字节可以使用,相应的传输效率大大增加,代码复杂度也相应的降低。

MTU的修改流程

为了兼容BLE4.2之前的设备,BLE 4.2中MTU的默认大小仍然是23字节,但可以在连接后进行修改。当peripheral和central建立连接之后,central设备会发送 [ATT_Exchange_MTU_Req][5] 的请求包,包含了central所支持的MTU大小;peripheral会回应 [ATT_Exchange_MTU_Rsp][6] 应答包包含peripheral所支持的MTU大小,取两者之间最小的MTU作为两者通信的MTU。

这里有个问题是,一般而言,手机作为central,soc的芯片做peripheral,因更新速度不够快,手机app基本

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值