Channel Classification(信道分类)和AFH(Adaptive Frequency Hopping,自适应跳频)是经典蓝牙(BR/EDR)和 BLE 中用于提高抗干扰能力的重要机制。
对于 ESP32-S31 这类支持 Bluetooth 的 SoC,这是保证 Wi-Fi、蓝牙、微波炉等共存环境下通信稳定性的关键技术。
1. 为什么需要 AFH?
蓝牙工作在:
2.4 GHz ISM 2402 MHz ~ 2480 MHz但这个频段还有很多设备:
- Wi-Fi
- Zigbee
- Thread
- 微波炉
- 无线鼠标
- 无线键盘
例如:
Wi-Fi Channel 1 中心频率: 2412 MHz 占用约: 20 MHz这会覆盖大量蓝牙信道。
没有 AFH 的情况
经典蓝牙采用:
FHSS Frequency Hopping Spread Spectrum每秒约:
1600 次跳频在所有信道间随机跳转。
例如:
CH1 CH50 CH12 CH70 CH23 ...如果跳到被 Wi-Fi 占据的频道:
丢包 CRC错误 重传通信质量下降。
2. Channel Classification(信道分类)
定义
蓝牙控制器对所有射频信道进行质量评估:
Good Channel Bad Channel形成一个信道地图(Channel Map)。
例如:
Channel 0 Good Channel 1 Good Channel 2 Bad Channel 3 Bad Channel 4 Good ...这就是:
Channel Classification分类依据
控制器持续监测:
RSSI
接收信号强度:
RSSI过低说明链路质量差。
PER
Packet Error Rate
错误包数量过高说明信道受干扰。
CRC Error
CRC Fail连续出现。
Retransmission Rate
重传率:
ACL重传越来越多说明某频道不好。
3. AFH(Adaptive Frequency Hopping)
中文
自适应跳频技术
基本思想
不要再跳到坏频道。
Good Channel ↓ 继续使用 Bad Channel ↓ 从跳频序列删除例子
假设经典蓝牙共有:
79个频道 0~78其中:
20~35被 Wi-Fi Channel 1 覆盖。
没有AFH
0~78全部参与跳频跳到:
25 26 27 ...就可能发生碰撞。
有AFH
建立信道图:
0~19 Good 20~35 Bad 36~78 Good之后:
跳频序列 1 55 12 70 4 43 ...永远不会选择:
20~35从而提高成功率。
4. AFH工作流程
监测信道 │ ▼ Channel Classification │ ▼ 创建Channel Map │ ▼ 标记Bad Channel │ ▼ 更新Hop Sequence │ ▼ 只在Good Channel跳频5. 经典蓝牙(BR/EDR)中的AFH
经典蓝牙共有:
79个 RF Channel ``每个宽度:
1 MHz范围:
2402~2480 MHz例如:
Wi-Fi CH1 2412 MHz占据:
2402~2422 MHz左右蓝牙会发现:
CH0~20质量下降。
之后:
AFH Map ``把这些频道屏蔽掉。
6. BLE中的AFH
BLE也支持 AFH。
但频道数量不同:
40个频道广播频道
37 38 39 ``专门用于:
- Advertising
- Scanning
- Initiating
数据信道
0~36共:
37个Data ChannelAFH主要作用于:
37个Data Channel例如:
Channel 10 Channel 11 Channel 12 `干扰严重。
Bluetooth Link Layer 更新:
Channel Map后续通信不再使用这些频道。
7. AFH与Wi-Fi共存
这是 AFH 最重要的用途。
Wi-Fi信道占用
Wi-Fi CH1
2412 MHzWi-Fi CH6
2437 MHz ``Wi-Fi CH11
2462 MHzAFH能够识别:
受Wi-Fi影响区域然后绕开。
效果:
Wi-Fi吞吐 ↑ Bluetooth吞吐 ↑ 丢包率 ↓8. AFH与ESP32
ESP32系列芯片通常运行:
Wi-Fi + Bluetooth同一颗射频。
例如:
ESP32-S31 Wi-Fi STA + BLE + Classic BT此时会使用:
PTA
Packet Traffic Arbitration
协调:
Wi-Fi ↔ Bluetooth ``同时使用:
AFH避开高干扰频道。
9. Datasheet里面的典型描述
你可能会看到:
Supports Adaptive Frequency Hopping (AFH)意思:
支持自适应跳频或者:
Channel Classification Supported `意思:
控制器能够评估各频道质量, 建立 Channel Map, 并动态更新 AFH 跳频序列。ACL/SCO/eSCO 与 AFH 的关系
Bluetooth Link │ ├── ACL │ │ │ └── AFH保护 │ ├── SCO │ │ │ └── AFH保护 │ └── eSCO │ └── AFH保护AFH工作在较低层(Baseband/Link Controller),因此:
- ACL 数据链路受益于 AFH
- SCO 语音链路受益于 AFH
- eSCO 高清语音也受益于 AFH
这样即使附近 Wi-Fi 很强,也能显著降低丢包和语音断续现象。
一句话总结
Channel Classification = 给所有蓝牙信道打分(好/坏信道)。
AFH(Adaptive Frequency Hopping)= 根据这个评分结果,动态避开坏信道,只在好信道上跳频,从而提升蓝牙在 2.4GHz 干扰环境中的可靠性和吞吐量。