2. 物理层与射频基础调试
物理层,说白了就是蓝牙最底层的“无线电规则”。它决定了信号怎么发、用什么频率、数据怎么编码。我刚开始接触BLE时,总觉得物理层离应用太远,后来调试射频问题时才发现——不懂PHY,你连信号为什么连不上都搞不清楚。
核心要点:物理层定义了BLE在2.4GHz ISM频段上的工作方式,包括40个信道、GFSK调制、以及三种PHY模式(1M/2M/编码PHY)。
2.1 BLE频段与信道
BLE工作在2.4GHz ISM频段,这个频段全球免费开放。但免费也意味着拥挤——Wi-Fi、Zigbee、微波炉都挤在这里。BLE用了40个信道,每个信道2MHz宽。
这40个信道分两类:
- 3个广播信道(37/38/39):用于设备发现和连接建立
- 37个数据信道(0-36):用于连接后的数据传输
为什么这样设计?我当年也困惑过。后来调一个广播丢包问题时才明白——广播信道故意避开Wi-Fi的1/6/11信道,减少干扰。你想想看,如果广播信道和Wi-Fi撞上了,手机可能永远搜不到你的设备。
| 信道编号 | 中心频率(MHz) | 用途 | 备注 |
|---|---|---|---|
| 37 | 2402 | 广播 | 避开Wi-Fi Ch1 |
| 38 | 2426 | 广播 | 避开Wi-Fi Ch6 |
| 39 | 2480 | 广播 | 避开Wi-Fi Ch11 |
| 0-36 | 2404-2478 | 数据 | 跳频使用 |
经验之谈:调试广播性能时,我习惯先确认37/38/39三个信道的RSSI。如果某个信道底噪特别高,说明环境干扰大,可以考虑调整设备位置或增加重传次数。
2.2 调制方式:GFSK
BLE使用GFSK(高斯频移键控)调制。简单说就是:用频率变化表示0和1。
具体参数:
- 调制指数:0.45-0.55
- BT值(带宽-时间积):0.5
- 频偏:±185kHz(1M PHY)
GFSK的好处是抗干扰能力强,而且实现简单。我记得有一次客户抱怨连接距离短,排查后发现是晶振频偏超标——GFSK对频率精度其实挺敏感的,±50ppm以内才保险。
注意:GFSK不是FSK。高斯滤波器让信号更平滑,减少了带外辐射。但代价是符号间干扰——嗯,这里要注意,解调时需要均衡处理。
2.3 物理层数据包格式
BLE物理层数据包结构很简洁。我当年第一次看规范时觉得简单,后来才发现每个字段都有讲究。
| 前导码(1字节) | 访问地址(4字节) | PDU(2-257字节) | CRC(3字节) |
各字段说明:
- 前导码:10101010或01010101,用于接收端同步时钟
- 访问地址:广播用0x8E89BED6,数据信道用链路层分配的随机值
- PDU:协议数据单元,承载实际数据
- CRC:24位循环冗余校验
这里有个坑——访问地址不是随便写的。数据信道的访问地址由链路层在连接建立时协商,目的是区分不同连接。我曾经见过两个设备用相同访问地址导致数据串扰,排查了一整天。
2.4 LE 1M PHY
这是BLE最基本、最通用的PHY模式。1Mbps数据速率,所有BLE设备都必须支持。
特点:
- 符号速率:1Msym/s
- 调制方式:GFSK
- 接收灵敏度:-70dBm(典型)
- 覆盖范围:约10-100米(视环境)
我建议新手先从1M PHY入手。它兼容性最好,调试工具也最成熟。除非你有明确的功耗或速率需求,否则别轻易换其他模式。
2.5 LE 2M PHY
2M PHY是BLE 5.0引入的,数据速率翻倍到2Mbps。怎么做到的?说白了就是符号率翻倍,但调制方式不变。
关键差异:
| 参数 | 1M PHY | 2M PHY |
|---|---|---|
| 符号速率 | 1Msym/s | 2Msym/s |
| 数据速率 | 1Mbps | 2Mbps |
| 接收灵敏度 | -70dBm | -67dBm(略差) |
| 覆盖距离 | 参考值 | 约减少20% |
2M PHY的优势很明显:传输相同数据量,时间减半,功耗降低。但代价是灵敏度下降约3dB,距离会短一些。我在做音频传输项目时用过2M PHY,数据吞吐量确实上去了,但穿墙能力明显不如1M。
选型建议:如果设备靠近手机(比如智能手表),用2M PHY省电;如果设备在房间角落(比如传感器),老老实实用1M PHY。
2.6 LE 编码PHY(Coded PHY)
编码PHY也是BLE 5.0引入的,目标很明确——增加距离。它通过重复编码来换取灵敏度,说白了就是用时间换信噪比。
两种编码方式:
- S=2:每比特重复2次,速率500kbps,灵敏度提升约3dB
- S=8:每比特重复8次,速率125kbps,灵敏度提升约9dB
我记得有个智能楼宇项目,要求覆盖100米以上。1M PHY死活达不到,换成S=8编码PHY后,距离直接翻倍。当然,代价是数据速率降到125kbps——传个温湿度数据没问题,传音频就别想了。
避坑指南:我曾经在编码PHY上栽过跟头——接收端必须支持编码PHY才能解调。如果手机不支持BLE 5.0,编码PHY根本连不上。所以做产品前,先确认目标设备的PHY能力。
2.7 三种PHY对比总结
| 特性 | LE 1M | LE 2M | LE Coded S=2 | LE Coded S=8 |
|---|---|---|---|---|
| 数据速率 | 1Mbps | 2Mbps | 500kbps | 125kbps |
| 灵敏度增益 | 基准 | -3dB | +3dB | +9dB |
| 覆盖距离 | 基准 | 约80% | 约1.4倍 | 约2倍 |
| 功耗(同数据量) | 基准 | 约50% | 约2倍 | 约8倍 |
| 兼容性 | 所有BLE设备 | BLE 5.0+ | BLE 5.0+ | BLE 5.0+ |
2.8 物理层知识体系
下面这张图帮你理清物理层的整体结构:
这张图把物理层拆成了三个维度:频段信道、调制方式、数据包格式。最下面是三种PHY模式,编码PHY又分S=2和S=8。你想想看,实际开发时就是在这三个维度上做权衡——速率、距离、功耗,不可能全都要。
核心总结:物理层是BLE的基石。选1M PHY保兼容,选2M PHY提速率,选编码PHY增距离。没有银弹,只有取舍。