2、BLE物理层功耗:1Mbps vs 2Mbps PHY功耗对比、Coded PHY(S=2, S=8)功耗分析、发射功率与功耗权衡
好,咱们今天聊聊物理层。很多工程师做低功耗蓝牙项目,上来就选1Mbps PHY,觉得稳妥。但说实话,这不一定是最省电的方案。我见过不少项目,明明可以用2Mbps PHY把功耗砍掉一大截,却因为不了解细节,白白浪费了电池。
物理层是BLE通信的最底层,它直接决定了无线信号的调制方式、数据速率和接收灵敏度。你想想看,数据在空中怎么飞,飞多快,飞多远,全看它。功耗的差异,也正是在这里体现出来的。
2.1 1Mbps vs 2Mbps PHY:谁更省电?
先看个直观的对比。1Mbps PHY是BLE 4.0/4.2的标准配置,2Mbps PHY是BLE 5.0引入的。很多人觉得速率翻倍了,功耗肯定也翻倍。其实不然。
核心逻辑: 数据量是固定的。速率高了,传输时间就短了。射频收发器开启的时间短了,平均功耗自然就降下来了。
我举个例子。假设你要传100个字节的应用数据。
- 1Mbps PHY: 算上前导码、访问地址、PDU头、CRC等开销,整个数据包在空中大概要飞 376 µs。
- 2Mbps PHY: 同样的数据量,因为速率翻倍,空中时间缩短到 212 µs。
你看,时间直接少了将近一半。射频收发器开启的时间短了,省下来的电就是实打实的。
关键结论: 在相同发射功率下,2Mbps PHY的功耗通常比1Mbps PHY低 20%~30%。这不是我瞎说的,是实测数据。
当然,2Mbps PHY也有代价。它的接收灵敏度会比1Mbps PHY差一些,大概差3~5 dBm。什么意思?就是信号弱的时候,2Mbps更容易丢包。我在一个智能门锁项目里就遇到过,门锁装在金属门后面,2Mbps死活连不上,换成1Mbps就稳了。
所以我的建议是:
- 如果通信距离近(比如10米以内),环境干扰小,优先选2Mbps PHY。省电效果很明显。
- 如果距离远,或者有墙体遮挡,老老实实用1Mbps PHY。稳定比省电更重要。
2.2 Coded PHY(S=2, S=8):用时间换距离
接下来聊Coded PHY。这是BLE 5.0的另一个大招。它的思路很简单:把每个bit重复发送多次,接收端通过多数表决来纠错。说白了,就是用时间换距离。
Coded PHY有两种编码方式:
- S=2: 每个bit重复2次。有效数据速率降到 500 kbps。
- S=8: 每个bit重复8次。有效数据速率降到 125 kbps。
速率降了,但接收灵敏度大幅提升。S=2 比 1Mbps PHY 灵敏度高约 3~4 dBm,S=8 则能高 6~8 dBm。这意味着通信距离可以翻倍甚至更多。
功耗呢? 嗯,这里要注意。Coded PHY的功耗并不低。因为传输时间变长了。同样传100个字节:
| PHY模式 | 有效速率 | 空中时间(100字节) | 相对功耗 |
|---|---|---|---|
| 1Mbps | 1 Mbps | 376 µs | 基准 |
| 2Mbps | 2 Mbps | 212 µs | 约 70% |
| Coded S=2 | 500 kbps | 752 µs | 约 200% |
| Coded S=8 | 125 kbps | 3008 µs | 约 800% |
看到没?S=8 的空中时间是1Mbps的8倍。虽然接收灵敏度高了,但射频开启时间也长了。如果你只是近距离通信,用Coded PHY反而更费电。
避坑指南: 我曾经在一个资产追踪项目中,为了追求超远距离,无脑选了S=8。结果电池撑不到一周。后来发现,设备大部分时间都在近距离通信,根本不需要那么高的灵敏度。换成1Mbps PHY后,电池续航直接翻了三倍。
什么时候用Coded PHY?
- 设备安装在角落、地下室、金属柜子里,信号衰减严重。
- 通信距离要求超过50米,甚至100米。
- 数据量极小(比如几秒钟发一个温度值),可以忍受较长的传输时间。
2.3 发射功率与功耗的权衡
最后聊聊发射功率。这是最直观的功耗调节手段。发射功率每增加3 dBm,功耗大约增加一倍。但通信距离并不会线性增加。
举个例子:
- 0 dBm(1 mW)发射功率,功耗约 10 mA(射频开启时)。
- +4 dBm(2.5 mW)发射功率,功耗约 20 mA。
- +8 dBm(6.3 mW)发射功率,功耗约 40 mA。
但通信距离呢?从0 dBm到+4 dBm,距离可能只增加30%。从+4 dBm到+8 dBm,距离可能只增加20%。
为什么? 因为信号在空间中的衰减是平方关系。你多花一倍的功耗,换来的距离增益却越来越小。
我的经验: 在大多数室内场景下,0 dBm 发射功率就足够了。除非你明确知道信号要穿两堵墙,否则别轻易加功率。我曾经优化过一个手环项目,把发射功率从+4 dBm降到0 dBm,续航从3天延长到5天,而连接成功率只下降了不到1%。
调优建议:
- 动态调整发射功率: 根据RSSI(接收信号强度)自动调节。信号好时用低功率,信号差时再提高。很多BLE芯片都支持这个功能。
- 不要盲目追求最大功率: 最大功率不仅费电,还可能干扰其他设备。而且,很多国家的法规对最大发射功率有限制(比如欧洲限制在+10 dBm以内)。
- 结合PHY模式一起考虑: 如果距离不够,先试试Coded PHY(S=2),它比单纯加功率更省电。如果还不行,再考虑加功率。
好了,物理层的功耗分析就聊到这儿。总结一句话:没有最好的PHY,只有最合适的PHY。 选型时,把通信距离、数据量、环境干扰这三个因素摆出来,再对照表格选,基本不会出错。