3、物理层(PHY)与射频基础:1Mbps、2Mbps、Coded PHY(S=2, S=8)的选择策略,发射功率与链路预算
各位同学,咱们今天聊点实在的。物理层,说白了就是蓝牙通信的“地基”。你上层协议栈写得再花哨,射频端匹配没做好,或者PHY选错了,那设备就是“聋子的耳朵——摆设”。
我在做穿戴芯片项目时,就吃过这个亏。当时为了追求理论速率,一股脑上了2M PHY,结果在室内复杂环境下,连接断得让人崩溃。后来老老实实回来啃物理层,才明白这里面的门道有多深。
3.1 三种PHY模式:速率与距离的博弈
BLE 5.0之后,物理层不再是“一个萝卜一个坑”。我们有了三种选择:1Mbps、2Mbps和Coded PHY。你想想看,这就像开车,有经济模式、运动模式和越野模式。
| PHY模式 | 数据速率 | 接收灵敏度(典型) | 应用场景 |
|---|---|---|---|
| LE 1M | 1 Mbps | -96 dBm | 通用场景,兼容性最好 |
| LE 2M | 2 Mbps | -93 dBm | 高速数据传输,如OTA升级 |
| LE Coded (S=2) | 500 kbps | -100 dBm | 中等距离,抗干扰 |
| LE Coded (S=8) | 125 kbps | -106 dBm | 远距离,穿墙场景 |
核心观点:速率和灵敏度,永远是跷跷板的两头。你追求速度,就得牺牲距离和可靠性。
3.1.1 1Mbps PHY:老将出马
这是最经典的PHY模式,所有BLE设备都支持。我个人习惯把它作为“保底方案”。如果你的产品对功耗和兼容性要求极高,比如一个简单的温湿度传感器,用1M PHY准没错。它的GFSK调制方式,说白了就是抗干扰能力不错,不容易被Wi-Fi之类的信号“带跑偏”。
3.1.2 2Mbps PHY:速度与激情
2M PHY把符号率翻倍了。好处很明显,传输同样的数据包,时间缩短一半,理论上能省电。但代价呢?接收灵敏度会掉3个dB左右。我在项目中遇到过,手表做OTA升级时,用2M PHY,手机稍微离远一点,或者中间隔个人,升级就失败了。后来我加了个回退机制,检测到丢包率高了,自动切回1M。
我的经验:2M PHY适合“近距离、大数据量”的场景。比如手表和手机紧贴着传输照片,或者耳机盒给耳机快速同步固件。距离超过5米,我建议你慎重。
3.1.3 Coded PHY:远距离的救星
Coded PHY的核心思想,就是“用时间换空间”。它把每个bit重复发送多次(S=2或S=8),接收端通过冗余信息来纠错。嗯,这里要注意,S=8时,速率只有125 kbps,但灵敏度能到-106 dBm。这是什么概念?比1M PHY多了整整10个dB的链路预算。
我曾经在一个智能楼宇项目里,需要让手环和走廊尽头的网关通信。中间隔了两堵墙,1M PHY直接“失联”。换成Coded PHY S=8后,虽然数据传得慢,但至少能稳定连接了。这就是它的价值——在极限环境下,保证“通”比“快”更重要。
避坑指南:我曾经以为Coded PHY是万能的,结果发现它有个大坑——延迟。S=8时,一个数据包在空中飞的时间是1M PHY的8倍。如果你做的是实时性要求高的应用,比如音频传输,千万别用Coded PHY,否则你会听到“鬼畜”般的卡顿。
3.2 发射功率与链路预算:算好这笔账
射频工程师常说一句话:“功率不是万能的,但没有功率是万万不能的。”发射功率决定了你的信号能“喊”多远,而链路预算就是帮你算清楚这笔账的。
链路预算的公式很简单:
链路预算 (dB) = 发射功率 (dBm) + 发射天线增益 (dBi) - 路径损耗 (dB) + 接收天线增益 (dBi) + 接收灵敏度 (dBm)
说白了,就是你的信号从发射端出发,经过空间衰减,最后到达接收端时,还能不能被“听懂”。
3.2.1 发射功率的选择
BLE规范允许的发射功率范围是-20 dBm到+10 dBm。但你别傻乎乎地直接开到最大。为什么?
- 功耗问题:功率每增加3 dB,电流消耗几乎翻倍。对于纽扣电池供电的穿戴设备,这是致命的。
- 法规限制:很多国家对2.4GHz频段的发射功率有严格限制,比如欧洲的ETSI标准。
- 干扰问题:功率太大,会“吵”到周围的Wi-Fi和Zigbee设备,反过来也会影响你自己的通信质量。
我个人习惯的做法是:先根据产品需求估算出需要的链路预算,然后反推发射功率。比如,你需要10米通信距离,查表得知2.4GHz在10米处的路径损耗大约是60 dB。假设接收灵敏度是-96 dBm,天线增益都是0 dBi,那么发射功率至少需要:-96 + 60 = -36 dBm?不对,这里要加上余量。实际计算是:发射功率 = 接收灵敏度 + 路径损耗 - 发射天线增益 - 接收天线增益 + 余量。通常我会留10 dB的余量,所以发射功率 = -96 + 60 + 10 = -26 dBm。嗯,这个值很低,但实际中因为多径衰落和人体遮挡,你可能需要调到0 dBm甚至更高。
核心观点:链路预算不是算出来的,是“测”出来的。公式只能给你一个起点,最终要靠实际环境测试来校准。
3.2.2 路径损耗模型
自由空间的路径损耗公式是:
PL (dB) = 20 * log10(d) + 20 * log10(f) - 147.55
其中d是距离(米),f是频率(Hz)。对于2.4GHz,简化后大约是:PL = 40 + 20 * log10(d)。
但这是理想情况。实际中,室内环境有墙壁、家具、人体,路径损耗指数会从2变成3甚至4。你想想看,信号穿过一堵砖墙,损耗大约15-20 dB。穿一堵混凝土墙,30 dB就没了。所以,穿戴设备贴着人体时,天线效率会急剧下降,这就是为什么手表戴在手上,信号比拿在手里差很多。
3.3 PHY选择策略:实战中的决策树
好了,理论讲完了,咱们来点实际的。你在做产品时,到底该怎么选PHY?我总结了一个简单的决策树:
- 先看通信距离:如果要求超过30米,或者有穿墙需求,直接上Coded PHY S=8。别犹豫。
- 再看数据量:如果每次传输的数据包超过100字节,且距离在5米以内,用2M PHY。比如OTA升级、日志导出。
- 最后看兼容性:如果产品需要和大量老设备(BLE 4.x)通信,老老实实用1M PHY。Coded PHY是BLE 5.0才有的,老设备不认识。
你可能会问:“能不能动态切换?”当然可以。我做过一个项目,手环在连接初期用1M PHY做握手,然后根据RSSI(信号强度)自动切换到2M或Coded。但要注意,切换PHY需要重新建立连接,会有几百毫秒的断连时间。如果你的应用不能容忍这个中断,那就固定用一种PHY。
我的建议:对于大多数穿戴设备,我推荐“1M PHY为主,Coded PHY为辅”的策略。平时用1M保证兼容性和功耗,当检测到信号弱时,主动请求对端切换到Coded PHY。这样既保证了日常体验,又能在关键时刻不掉链子。
3.4 射频设计的几个“土办法”
最后,分享几个我在射频调试中积累的“土办法”,虽然不高端,但很管用:
- 天线匹配:别完全相信参考设计。PCB板材、厚度、地平面都会影响天线阻抗。我习惯在板子上预留π型匹配网络,调试时用网络分析仪扫一下,把S11调到-10 dB以下。
- 地平面:天线下方不要铺地,这是常识。但很多人会忽略天线周围的过孔。过孔太多,会形成“地栅栏”,影响天线辐射。我一般会在天线周围留出3mm的净空区。
- 电源去耦:射频PA工作时,电流会瞬间拉高。如果电源去耦不好,会导致电压跌落,发射功率上不去。我习惯在PA电源引脚附近放一个100pF和10nF的电容组合,分别滤除高频和低频噪声。
好了,关于物理层和射频基础,今天就聊这么多。记住,PHY的选择没有银弹,只有根据你的产品场景,反复权衡速率、距离和功耗。下一节,我们会深入链路层,看看数据包是怎么在空中“握手”的。