关于BLE包长问题

一:问题出现的原因:
客人的问题是知道BLE数据包包长是如何控制的;

二:问题的具体分析;
参考BLE 联盟官方的规格书,里面关于长度有两处控制,一处是在链路层,根据如下命令来进行控制:

[1]ATT MTU 值的说明:
在这里插入图片描述
在这里插入图片描述
[2]DLE 链路层值大小的说明:

BLE连接建立之后,可以动态更改data length长度(默认为27字节),这个特性叫做Data Length Extension(DLE),DLE是通过Link layer命令:LL_LENGTH_REQ和LL_LENGTH_RSP来实现的。Data length直接跟蓝牙芯片的射频能力有关,像Nordic的nRF51822只支持BT4.1的Data length,就是因为PHY层已经做死了,无法扩展,但Nordic最新的nRF52832和nRF52840,就都支持DLE,即data length最大可到251字节。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述三:问题的总结:
链路层最大可以设置251byte,属性层可以最大设置到512byte;

四:代码的修改:
NCS 上通过下面图片中宏定义修改对应区域的大小:
在这里插入图片描述
NRF5 SDK 通过如下地方修改:

MTU:
在这里插入图片描述DLE:
在这里插入图片描述

关于此问题的相关资料如果有需要可以联系我们,加下面nordic ble qq交流群:921114908
在这里插入图片描述

### BLE 协议中的长度、发送间隔与每秒最大传输速率的关系 BLE蓝牙低功耗)协议的传输性能受到多个因素的影响,主要括连接间隔、每个连接间隔内的数据数量以及MTU大小。 #### 连接间隔对传输速率的影响 连接间隔决定了设备之间通信的时间周期。较小的连接间隔意味着更频繁的数据交换,从而提高传输速率,但这会增加功耗[^1]。具体来说,当连接间隔减小时,单位时间内能够完成更多次的数据传输尝试,进而提升整体吞吐量。 #### 数据长度(MTU)的作用 MTU指的是Maximum Transmission Unit,即每次传输的最大单元尺寸。较大的MTU允许单次传输携带更多信息,在相同条件下可显著改善有效载荷效率并减少重传次数,有助于获得更高的实际传输速度[^2]。 #### 每个连接事件内能传送的数据数目 除了上述两点外,还存在一个重要的变量——每个连接事件期间可以传递多少个完整的PDU(Packet Data Units),这同样影响着最终能达到的速度极限。理论上讲,如果能在每一个连接机会里都成功发出尽可能多的有效负载,则总的比特率自然也就上去了[^3]。 综合以上三个要素来看: - **理想情况下** 的最大理论传输速率为:\[ \text{Max Speed} = (\frac{\text{Number of Packets per Event}}{\text{Connection Interval (ms)}})\times(\text{Payload Size})\] 假设条件如下: - 使用默认最小连接间隔7.5 ms; - 支持DLE扩展后单次最多可达31个分组; - 假设MTU=247 bytes(含头部开销后的净负荷约为239bytes) 那么计算得出的理想峰值大约为\( \approx 8,000 Bps\) 或者说 \(~8 KB/s\) 左右。然而现实中由于各种原因如干扰、延迟等因素的存在,实际测得的结果往往会低于这个数值。 ```python def calculate_ble_throughput(connection_interval_ms, packets_per_event, payload_size_bytes): """ 计算给定参数下的BLE理论最大传输速率 参数: connection_interval_ms : int - 连接间隔(ms) packets_per_event : int - 每个连接事件中的数据数 payload_size_bytes : int - 每个数据体大小(byte) 返回: float - 理论上的最大传输速率(Bps) """ return ((packets_per_event / connection_interval_ms)*payload_size_bytes * 1000) # 示例调用 print(f"Theoretical Max Throughput: {calculate_ble_throughput(7.5, 31, 239):,.2f} Bps") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值