2、物理层与射频:1M/2M PHY、Coded PHY、发射功率与接收灵敏度

好,咱们进入第二讲。物理层和射频,说白了就是蓝牙最底层的「硬功夫」。你上层协议栈写得再花哨,天线匹配没做好、灵敏度不够,设备就是连不上、老断线。我这些年调试过的板子,十有八九的问题都出在这一层。

这一节,咱们把 BLE 5.0 的几种 PHY 模式、发射功率和接收灵敏度这几个核心参数彻底讲透。你理解透了,后面做多连接、做长距离、做低功耗,心里才有底。

2.1 三种 PHY 模式:1M、2M 与 Coded PHY

BLE 4.x 时代,只有一种 PHY,就是 1Mbps 的 GFSK 调制。到了 BLE 5.0,一口气增加了两种:2M PHY 和 Coded PHY。为什么这么搞?说白了就是给开发者更多选择——你要快,还是要远?

2.1.1 1M PHY:经典之选

1M PHY 就是 BLE 4.x 的老朋友。数据速率 1 Mbps,调制方式 GFSK,BT 值(带宽时间积)为 0.5。这个模式兼容性最好,几乎所有 BLE 设备都支持。

关键参数:

  • 符号速率:1 Msym/s
  • 数据速率:1 Mbps
  • 调制指数:0.45 ~ 0.55
  • 信道间隔:2 MHz

我个人习惯,在做兼容性要求高的产品时,比如要跟市面上各种老手机配对,我会优先用 1M PHY 做 baseline 测试。等基本功能稳定了,再考虑切换到其他模式。

小提示: 1M PHY 的接收机设计相对成熟,很多现成的射频前端芯片(比如 NXP 的 QN9090、Dialog 的 DA14531)在 1M 模式下都能做到 -96 dBm 甚至更低的灵敏度。如果你刚入门,先用 1M 模式调通链路,是最稳妥的路径。

2.1.2 2M PHY:速度翻倍

2M PHY 把符号速率翻了一倍,达到 2 Msym/s。数据速率也变成 2 Mbps。这意味着同样的数据量,传输时间可以缩短一半。

好处很明显:

  • 吞吐量翻倍:适合 OTA 升级、音频流、大数据传输
  • 功耗降低:传输时间短,射频开启时间短,平均电流下降
  • 信道利用率高:同样的时间片,能传更多数据

代价呢?

  • 接收灵敏度下降约 3~5 dBm:因为带宽翻倍,噪声基底抬高了
  • 距离变短:同等发射功率下,有效通信距离大约缩短 30%~40%
  • 兼容性:老设备不支持 2M PHY,需要做 fallback 机制

我记得有一次做智能门锁的 OTA 升级功能,客户要求 30 秒内完成 256KB 固件传输。用 1M PHY 怎么算都不够,切换到 2M PHY 后,实际测下来 22 秒搞定。嗯,这就是 2M 的价值。

注意: 2M PHY 虽然快,但它的 PDU 最大长度仍然是 255 字节(LL 层限制)。别指望 2M 就能传大包。真正的大吞吐量,要靠 Data Length Extension(DLE)配合,把 PDU 扩展到 251 字节。这个我们后面章节会细讲。

2.1.3 Coded PHY:远距离的秘密武器

Coded PHY 是 BLE 5.0 最让我兴奋的新特性。它通过前向纠错(FEC)和模式编码,把通信距离从几十米拉到几百米甚至上公里。

两种编码模式:

模式 编码率 数据速率 灵敏度提升 典型距离
S=2 1/2 500 kbps 约 3~4 dB 200~400 米
S=8 1/8 125 kbps 约 8~10 dB 400~1000 米

为什么 Coded PHY 能传这么远?核心在于两点:

  1. FEC 纠错: 发送端对每个 bit 进行冗余编码,接收端可以用纠错算法恢复出错的 bit。说白了,就是用带宽换可靠性。
  2. 模式编码: S=2 模式下,每个数据 bit 用 2 个符号表示;S=8 模式下,每个数据 bit 用 8 个符号表示。符号速率不变(1 Msym/s),但数据速率降下来了,抗干扰能力上去了。

我曾经在一个智能仓储项目中,需要在 500 米范围内部署温湿度传感器。用 1M PHY 根本不行,信号到 200 米就断了。换成 Coded PHY S=8 模式,发射功率 10 dBm,实测 600 米还能稳定收到数据包。嗯,那一刻我觉得 BLE 5.0 真的牛。

避坑指南: 我曾经踩过一个坑——以为 Coded PHY 能解决所有远距离问题。结果在强干扰环境下(比如工厂里有很多电机),S=8 模式虽然灵敏度高,但抗突发干扰能力反而比 1M 模式差。因为一个干扰脉冲可能打掉一整段编码符号。后来我加了重传机制和跳频策略,才把问题解决。所以,Coded PHY 不是万能的,环境评估很重要。

2.2 发射功率:不是越大越好

发射功率,就是蓝牙芯片往外「喊话」的嗓门大小。BLE 4.x 标准规定最大发射功率为 10 dBm(10 mW)。BLE 5.0 把这个上限放宽到了 20 dBm(100 mW)。

常见发射功率等级:

功率等级 典型值 适用场景
Class 1 20 dBm (100 mW) 长距离、工业、室外
Class 1.5 10 dBm (10 mW) 中等距离、智能家居
Class 2 4 dBm (2.5 mW) 消费电子、手机
Class 3 0 dBm (1 mW) 低功耗、近距离

你可能会问:「发射功率越大越好吗?」

当然不是。功率大了,功耗也大。20 dBm 发射时,射频前端电流可能达到 30~50 mA,这对纽扣电池供电的设备是致命的。而且,功率大了,对其他设备的干扰也大,可能过不了 FCC/CE 认证。

我个人习惯的做法是:先定距离需求,再反推发射功率。比如我需要 100 米通信距离,用 1M PHY 大概需要 8 dBm 发射功率,那我就选 10 dBm 的 PA,留 2 dB 余量。而不是一上来就开 20 dBm。

经验之谈: 很多国产 BLE 芯片标称最大 10 dBm,实际测下来可能只有 7~8 dBm。我建议你在选型时,一定要看芯片的 EVM(误差矢量幅度)指标。EVM 太差,发射功率再大也没用,接收端解调不出来。一般要求 EVM < 30%,好的芯片能做到 15% 以下。

2.3 接收灵敏度:决定你能「听」多远

接收灵敏度,就是蓝牙接收机能「听」到的最小信号强度。单位是 dBm。数值越小,灵敏度越高。

典型灵敏度值:

PHY 模式 标准要求 优秀芯片
1M PHY -82 dBm -96 ~ -98 dBm
2M PHY -77 dBm -92 ~ -94 dBm
Coded PHY S=2 -87 dBm -100 ~ -102 dBm
Coded PHY S=8 -92 dBm -105 ~ -108 dBm

你想想看,-100 dBm 是什么概念?那是 0.0000000001 毫瓦。相当于从北京到上海,一根针掉在地上的声音。蓝牙接收机能做到这个水平,真的很厉害。

影响灵敏度的因素:

  • 噪声系数(NF): 接收机前端的 LNA(低噪声放大器)质量直接决定 NF。NF 每降低 1 dB,灵敏度就提升 1 dB。
  • 带宽: 带宽越宽,噪声基底越高,灵敏度越差。这就是为什么 2M PHY 灵敏度比 1M 差 3~5 dB。
  • 天线匹配: 天线阻抗不匹配,信号反射回来,灵敏度直接掉 3~6 dB。我见过太多板子,天线匹配没调好,灵敏度比芯片 datasheet 差了 10 dB。
  • 电源噪声: 电源纹波大,会耦合到射频前端,抬高噪声基底。特别是 DC-DC 供电时,一定要加 LC 滤波。
重要提醒: 芯片 datasheet 上写的灵敏度,通常是在理想测试条件下测出来的(比如用信号发生器直接注入,没有天线损耗)。实际产品中,天线匹配、PCB 走线、外壳屏蔽都会影响灵敏度。我建议你留 5~10 dB 的余量。比如芯片标 -96 dBm,你按 -88 dBm 来设计链路预算,这样量产时才有保障。

2.4 链路预算:把发射功率和灵敏度串起来

链路预算,就是把发射功率、接收灵敏度、天线增益、路径损耗全部算在一起,看看你的系统到底能传多远。

公式很简单:

链路预算 (dB) = 发射功率 (dBm) + 发射天线增益 (dBi) - 接收灵敏度 (dBm) + 接收天线增益 (dBi) - 路径损耗 (dB)

举个例子:

  • 发射功率:10 dBm
  • 发射天线增益:2 dBi
  • 接收灵敏度:-96 dBm
  • 接收天线增益:0 dBi(内置天线)
  • 路径损耗:80 dB(约 100 米自由空间损耗)

链路预算 = 10 + 2 - (-96) + 0 - 80 = 28 dB

28 dB 的余量,说明系统在 100 米距离上还有 28 dB 的「安全垫」。如果环境有遮挡、干扰,这个余量能帮你扛住。

我一般要求链路预算至少留 15~20 dB 的余量。低于 10 dB,量产时大概率会有连接不稳定的问题。

实战建议: 做多连接场景时,不同从设备的距离可能不一样。远的用 Coded PHY S=8,近的用 2M PHY。主设备需要动态切换 PHY 模式。这个切换逻辑,我建议你在链路层做,不要暴露到应用层。后面讲多连接调度时,我会详细说怎么实现。

2.5 小结

这一节的内容,说白了就是让你理解 BLE 5.0 物理层的「三把刀」:1M、2M、Coded PHY。选哪个,取决于你要快还是要远。发射功率和接收灵敏度,是决定通信距离的两个核心参数。链路预算,是帮你把理论变成现实的工具。

下一节,咱们进入链路层,看看 BLE 5.0 的广播扩展和扫描是怎么工作的。嗯,那才是多连接场景的真正战场。