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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

支持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基本上不会发出 [ATT_Exchange_MTU_Req][6] 包,这就无法修改MTU。

在NXP的KW41的SDK代码里面,我看到他们的实现方式是:

  • KW41的例程中需要link的library库是同时支持central和peripheral的library。
  • KW41芯片仍作为peripheral进行初始化和工作,只不过在建立连接后,KW
NXP Kinetis KW36A和KW35A微控制器的FlexNVM功能为开发者提供了一种灵活的数据存储和管理方案,这对于需要动态调整存储资源的应用来说非常重要。FlexNVM是NXP KW3x系列的一个独特功能,它允许用户将一部分闪存用于非易失性内存(NVM)操作,这为存储频繁更改的数据提供了便利。为了实现高效的数据存储和管理,你可以利用以下步骤和方法: 参考资源链接:[NXP Kinetis KW36A/KW35A:蓝牙5.0汽车电子解决方案](https://wenku.csdn.net/doc/4fejqms7qo?spm=1055.2569.3001.10343) 1. 理解FlexNVM的架构:FlexNVM支持将闪存划分成不同区域,以实现程序代码、数据存储和EEPROM模拟等多种用途。具体到KW36A/KW35A,开发者可以将部分闪存配置为FlexRAM和FlexNVM,以达到优化存储空间的目的。 2. 利用FlexNVM API:NXP提供了FlexNVM的API支持,允许开发者通过编程来管理FlexNVM区域,包括写入、擦除和读取操作。这些API通常会封装在NXP的SDK或BSP(板级支持包)中,确保开发者可以轻松地使用这些功能。 3. 实现EEPROM模拟:利用FlexNVM可以模拟EEPROM的行为,这对于需要存储少量但频繁更新的数据(如配置信息)的应用非常有用。你可以将FlexNVM的特定区域配置为模拟EEPROM,从而实现非易失性存储需求。 4. 优化存储操作:为了提高数据存储的效率和可靠性,可以采用断电保护机制,确保在掉电情况下数据不丢失。同时,合理规划写入和擦除操作,减少对闪存寿命的损耗。 5. 阅读开发手册:为了更好地理解和运用FlexNVM,强烈推荐阅读《NXP Kinetis KW36A/KW35A:蓝牙5.0汽车电子解决方案》文档,其中包含了芯片的详细规格和使用FlexNVM的最佳实践。 通过这些步骤,你可以充分发挥FlexNVM的优势,实现数据的高效存储和管理。这不仅能够提升应用的性能,还可以增加微控制器的灵活性和适用性。建议在开发过程中,详细参考NXP提供的开发手册和技术资料,以确保你的应用能够充分利用KW36A/KW35A微控制器的潜力。 参考资源链接:[NXP Kinetis KW36A/KW35A:蓝牙5.0汽车电子解决方案](https://wenku.csdn.net/doc/4fejqms7qo?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值