3. BLE 5.0 新特性:2M PHY、LE Coded PHY、扩展广播、长包支持

BLE 5.0 发布的时候,圈内不少人挺兴奋的。说实话,4.x 时代大家最头疼的就是速率上不去、距离不够远。我当年做一款智能门锁项目,隔了一堵墙就断连,调试得我头皮发麻。5.0 这几个特性,算是把痛点挨个敲了一遍。

咱们一个一个拆开看。你理解透了,后面做吞吐测试才能知道该选哪个 PHY、要不要开扩展广播。

3.1 2M PHY:速率翻倍,代价是什么?

2M PHY 说白了就是把物理层的符号率从 1 Mbps 提到 2 Mbps。你想想看,同样的时间能传两倍的数据,吞吐自然就上去了。

但这里有个坑——灵敏度会下降。我实测过,2M PHY 的接收灵敏度比 1M 大概差 3-4 dB。什么意思?就是距离稍微远一点,或者中间隔堵墙,连接可能就不稳了。

适用场景:

  • 近距离高速数据传输(比如 OTA 升级、音频流)
  • 设备间距在 5 米以内,无遮挡
  • 对功耗敏感度较低的场景

我的习惯:做产品原型时,我会先默认开 2M PHY,然后在实际环境中跑一遍吞吐测试。如果丢包率超过 1%,再降回 1M。别一上来就保守,先试试上限在哪。

3.2 LE Coded PHY:距离翻倍,但速率降了

LE Coded PHY 是 BLE 5.0 里我最喜欢的一个特性。它通过前向纠错(FEC)把数据重复编码,接收端可以纠错,所以能传得更远。

它有两种模式:

模式 编码方式 实际数据速率 理论增益
S=2 每 bit 重复 2 次 500 kbps 约 4-6 dB
S=8 每 bit 重复 8 次 125 kbps 约 8-10 dB

我曾经在一个仓库项目里用过 S=8 模式,设备间距 80 米,中间还有货架遮挡,连接依然稳定。但代价也很明显——速率只有 125 kbps,传个几百 KB 的文件得等半天。

注意:LE Coded PHY 只在广播和连接状态下可用。而且不是所有芯片都支持,选型时一定要看 datasheet 里有没有标注 "LE Coded PHY Support"。

3.3 扩展广播:告别 31 字节的限制

4.x 时代的广播包只有 31 字节的 AD Data,想塞个设备名称、服务 UUID、厂商自定义数据,经常挤得满满当当。我记得有一次做 Beacon 项目,为了把温湿度数据塞进广播包,硬是把精度从两位小数砍成一位。

BLE 5.0 的扩展广播把单个广播包的最大长度提到了 255 字节,而且支持链式广播——你可以发多个包,接收端拼起来用。

扩展广播有三种类型:

  • 可连接扩展广播:兼容传统扫描,但数据量更大
  • 不可连接扩展广播:纯广播,不建立连接,适合 Beacon
  • 周期广播:固定间隔发广播,接收端可以同步,适合周期性数据上报

避坑指南:我曾经在扩展广播里塞了 200 字节的数据,结果发现有些老手机扫描不到。后来查了规范才知道——扩展广播使用新的 PHY(1M 或 2M),传统 4.x 扫描器根本收不到。所以如果你要兼容旧设备,还是得保留传统广播通道。

3.4 长包支持:MTU 不再是瓶颈

4.x 时代,ATT MTU 默认是 23 字节,虽然可以协商到 247 字节,但很多芯片实现得并不好。BLE 5.0 把 MTU 上限提到了 509 字节,而且 L2CAP 层的 PDU 最大可以到 251 字节。

长包的好处很明显:

  • 减少包间隔开销,提升有效吞吐
  • 降低 CPU 中断频率,省电
  • 适合大块数据传输(比如固件升级)

但要注意,长包对链路质量要求更高。如果环境干扰大,一个长包出错就要重传整个包,反而比短包更慢。

我的建议:做吞吐测试时,先测 100 字节、200 字节、400 字节三档,看哪个 MTU 下吞吐最高。不是越大越好,得看实际环境。

3.5 知识体系总览

下面这张图把 BLE 5.0 四个核心新特性的关系画清楚了。你看一眼,后面做测试就知道该调哪个参数了。

BLE 5.0 新特性知识体系 BLE 5.0 新特性 2M PHY LE Coded PHY 扩展广播 长包支持 速率 2 Mbps S=2 / S=8 255 字节/包 MTU 509 字节 吞吐测试时,根据距离和速率需求,选择合适的 PHY 和包长组合 2M PHY 适合近距离高速,LE Coded 适合远距离低速

3.6 实际测试中的选择策略

做吞吐测试前,你得先想清楚目标:

  1. 要速率? → 选 2M PHY + 大 MTU(400 字节以上)
  2. 要距离? → 选 LE Coded S=8 + 小 MTU(100 字节以内)
  3. 要兼容? → 选 1M PHY + 传统广播
  4. 要广播数据量大? → 开扩展广播,用周期广播模式

重要提醒:BLE 5.0 的这四个特性不是互斥的。你可以同时开 2M PHY 和扩展广播,也可以同时用 LE Coded 和长包。但组合越多,测试的维度就越复杂。我建议你每次只改一个变量,记录吞吐和丢包率,这样出了问题好定位。

嗯,这一章的内容就到这。你把这些概念吃透了,后面做测试就知道该测什么、怎么测了。