4、蓝牙物理层与射频基础:2.4GHz ISM频段、跳频技术(AFH)、调制方式(GFSK)、发射功率与接收灵敏度
各位同学,咱们今天聊聊蓝牙的物理层。说白了,就是蓝牙信号到底是怎么在空中飞的。很多做上层应用的兄弟,一听到「射频」两个字就头大。我刚开始也是这样,觉得那是硬件工程师的事。直到有一次,我调试一个蓝牙耳机,死活连不上,最后发现是天线匹配出了问题。嗯,从那以后,我再也不敢小看物理层了。
4.1 2.4GHz ISM频段:拥挤的公共频道
蓝牙工作在2.4GHz ISM频段。ISM是啥?Industrial, Scientific, Medical,工业、科学、医疗。这个频段是免费的,全球通用,不需要申请牌照。听起来很爽对吧?但代价就是——太拥挤了。
2.4GHz频段的范围是2.4000 GHz 到 2.4835 GHz,总共83.5 MHz的带宽。蓝牙把它分成了79个信道,每个信道1 MHz。后来低功耗蓝牙(BLE)改成了40个信道,每个2 MHz,这个咱们后面再细说。
重要: 2.4GHz频段上不光有蓝牙,还有Wi-Fi、Zigbee、微波炉、无线鼠标……你想想看,这么多设备挤在一起,互相干扰是家常便饭。我在项目中遇到过,客户说蓝牙耳机在厨房里老断连,排查了半天,发现是微波炉一开,信号就崩了。
所以,做蓝牙驱动开发,心里要有个数:你的设备不是在一个干净的环境里工作的。它得学会「抢信道」。
4.2 跳频技术(AFH):躲开干扰的智慧
蓝牙怎么应对干扰?靠跳频。说白了,就是蓝牙设备在79个信道之间快速切换,每秒跳1600次。这样即使某个信道被Wi-Fi占了,蓝牙也能跳到别的信道上去。
早期的蓝牙用的是固定跳频序列,设备配对时约定好跳的顺序。但后来发现,有些信道长期被干扰(比如Wi-Fi固定占用了某几个信道),跳过去也是白跳。于是就有了AFH——自适应跳频。
我的经验: AFH是蓝牙射频里非常实用的技术。我个人习惯在驱动初始化时,先扫描一遍信道质量,把那些噪声大的信道标记为「坏信道」,然后让跳频序列跳过它们。这样能明显提升连接的稳定性。
AFH的工作流程大致是这样的:
- 蓝牙接收器持续监测每个信道的误码率(BER)
- 如果某个信道的BER超过阈值,就把它加入黑名单
- 主机(Master)把黑名单通过LMP命令告诉从机(Slave)
- 双方在后续的跳频中跳过这些信道
你想想看,这就像你开车,前面堵死了,你换个车道走。AFH就是蓝牙的「智能导航」。
注意: AFH的黑名单不能太长。蓝牙规范要求至少保留20个可用信道,否则跳频的随机性就没了,反而容易跟其他设备撞车。我曾经见过一个产品,为了躲Wi-Fi把黑名单设了50个信道,结果连接质量反而更差了。
4.3 调制方式(GFSK):把0和1变成无线电波
蓝牙怎么把数字信号变成无线电波?靠调制。蓝牙基本速率(BR)用的是GFSK——高斯频移键控。
GFSK的原理其实很简单:
- 传比特「1」时,载波频率往上偏移一个固定值
- 传比特「0」时,载波频率往下偏移一个固定值
这个偏移量叫频偏(Frequency Deviation),蓝牙规范规定最小频偏是115 kHz,最大是175 kHz。为什么要加「高斯」两个字?因为在调制前,信号先经过一个高斯滤波器,把波形变平滑。这样做的目的是减少频谱的旁瓣,降低对相邻信道的干扰。
核心参数: 蓝牙GFSK的调制指数在0.28到0.35之间。调制指数 = 频偏 / 比特率。对于1 Mbps的BR模式,频偏大约在140 kHz到175 kHz之间。这个值调得太小,接收端解调困难;调得太大,频谱展宽,容易干扰别人。
我记得有一次调试一个蓝牙模块,发现误码率偏高。用频谱仪一看,频偏只有90 kHz,明显偏小。后来调整了VCO的偏置电压,把频偏拉到150 kHz,问题就解决了。嗯,这种问题在驱动层面很难发现,得配合射频测试工具才能定位。
到了EDR(增强数据率)模式,调制方式升级成了DPSK(差分相移键控)。2 Mbps用π/4-DQPSK,3 Mbps用8DPSK。这些调制方式更高效,但对信噪比的要求也更高。所以EDR的传输距离通常比BR短一些。
4.4 发射功率与接收灵敏度:信号能传多远
蓝牙设备的发射功率,直接决定了信号能传多远。蓝牙规范把发射功率分成了三个等级:
| 功率等级 | 最大发射功率 | 典型应用 |
|---|---|---|
| Class 1 | +20 dBm (100 mW) | 工业设备、长距离传输 |
| Class 2 | +4 dBm (2.5 mW) | 手机、耳机、电脑 |
| Class 3 | 0 dBm (1 mW) | 低功耗传感器 |
大部分消费类蓝牙设备都是Class 2,发射功率在0 dBm到+4 dBm之间。你想想看,手机蓝牙的功率只有几毫瓦,比Wi-Fi小得多,所以蓝牙的传输距离通常只有10米左右。
接收灵敏度,是接收机能解调的最小信号强度。蓝牙规范要求接收灵敏度至少达到-70 dBm(误码率0.1%)。但好的蓝牙芯片能做到-90 dBm甚至-95 dBm。
避坑指南: 我曾经在一个项目中,发现蓝牙连接距离只有5米,远低于预期的10米。排查了半天,发现是PCB天线周围铺了地,把天线辐射效率拉低了。后来把天线周围的铜皮挖空,距离就恢复正常了。所以,发射功率和接收灵敏度不只是芯片的事,天线设计和PCB布局同样关键。
这里有个经验公式:发射功率 + 天线增益 - 路径损耗 + 接收灵敏度 = 链路预算。链路预算越大,传输距离越远。自由空间中的路径损耗大约是:
路径损耗 (dB) = 20 * log10(距离) + 20 * log10(频率) - 27.55
举个例子,2.4 GHz、10米距离的路径损耗大约是:
20 * log10(10) + 20 * log10(2400) - 27.55
= 20 + 67.6 - 27.55
≈ 60 dB
如果发射功率是+4 dBm,接收灵敏度是-90 dBm,链路预算就是94 dB。减去60 dB的路径损耗,还有34 dB的余量。这个余量用来应对墙壁、人体遮挡等衰减。所以,10米距离是绰绰有余的。
注意: 发射功率不是越大越好。功率大了,功耗高,而且可能违反各国法规。比如欧洲的ETSI标准限制蓝牙最大发射功率为+20 dBm,但很多国家有更严格的限制。做产品出口时,一定要查清楚目标市场的射频认证要求。
好了,物理层和射频基础就聊到这里。这些知识看起来偏硬件,但作为驱动工程师,你理解了这些,才能更好地理解上层协议为什么这么设计。下一章咱们进入链路层,看看蓝牙是怎么建立连接的。
公众号:蓝海资料掘金营,微信deep3321