Skip to content

Wi-Fi 与蓝牙共存干扰优化

干扰机理

Wi-Fi 2.4GHz 和蓝牙工作在相同的 ISM 频段(2.4-2.4835GHz),存在天然的频谱竞争。

频谱重叠分析

Wi-Fi 2.4GHz 信道(20MHz 带宽):
  信道 1:2412MHz(2402-2422MHz)
  信道 6:2437MHz(2427-2447MHz)
  信道 11:2462MHz(2452-2472MHz)

蓝牙频道(1MHz 间隔,79个频道):
  2402MHz ~ 2480MHz
  
重叠情况:
  Wi-Fi 信道 1 与 BT 频道 0-22 重叠
  Wi-Fi 信道 6 与 BT 频道 25-47 重叠
  Wi-Fi 信道 11 与 BT 频道 57-79 重叠
  
  → Wi-Fi 和 BT 同时工作时必然产生干扰

干扰影响

Wi-Fi 对 BT 的影响:
  BT 数据包丢失率增加
  BT 音频出现卡顿、杂音
  BLE 连接不稳定
  
BT 对 Wi-Fi 的影响:
  Wi-Fi 吞吐量下降(最多 50%)
  Wi-Fi 时延增加
  Wi-Fi 连接不稳定

硬件共存方案

天线隔离

天线设计要求:
  Wi-Fi 天线与 BT 天线物理隔离
  隔离度要求:≥ 20dB
  
  实现方法:
  1. 天线间距:≥ λ/4(2.4GHz 约 31mm)
  2. 天线方向:正交放置(水平 vs 垂直)
  3. 金属隔板:在两天线之间加金属屏蔽
  4. 共用天线:通过开关切换(牺牲同时工作能力)

硬件共存信号(COEX)

MT7921 硬件共存机制:
  内部 COEX 仲裁器协调 Wi-Fi 和 BT 的信道使用
  
  信号类型:
  BT_PRIORITY:BT 请求高优先级
  WLAN_ACTIVE:Wi-Fi 正在发送
  BT_ACTIVE:BT 正在发送
  
  仲裁规则:
  1. BT 语音(SCO/eSCO):最高优先级(不能中断)
  2. BT A2DP:高优先级
  3. Wi-Fi 数据:中优先级
  4. BLE 广播:低优先级

软件优化策略

Wi-Fi 信道选择

python
def select_wifi_channel_avoid_bt():
    """
    选择与蓝牙干扰最小的 Wi-Fi 信道
    
    策略:
    - 如果 BT 活跃,优先使用 5GHz(无干扰)
    - 如果必须用 2.4GHz,选择信道 1 或 11
      (信道 6 与 BT 跳频重叠最多)
    """
    import subprocess
    
    # 检查 BT 是否活跃
    bt_active = check_bt_active()
    
    if bt_active:
        # 切换到 5GHz
        subprocess.run(["iw", "dev", "wlan0", "set", "freq", "5180"])
        print("BT 活跃,切换到 5GHz 信道 36")
    else:
        # 使用 2.4GHz 信道 1
        subprocess.run(["iw", "dev", "wlan0", "set", "freq", "2412"])
        print("使用 2.4GHz 信道 1")

def check_bt_active():
    """检查蓝牙是否有活跃连接"""
    result = subprocess.run(
        ["hcitool", "con"],
        capture_output=True, text=True
    )
    return "ACL" in result.stdout or "SCO" in result.stdout

BT 自适应跳频(AFH)

AFH(Adaptive Frequency Hopping):
  BT 检测到某些频道被 Wi-Fi 占用
  自动避开这些频道进行跳频
  
  效果:
  - 减少 BT 与 Wi-Fi 的碰撞
  - BT 音频质量改善
  
  配置(Linux):
  hciconfig hci0 afh  # 查看 AFH 状态
  
  注意:AFH 需要 BT 主设备支持,
  大多数现代 BT 芯片默认启用

实测性能数据

共存场景测试结果

场景Wi-Fi 吞吐量BT 音频质量
仅 Wi-Fi300 MbpsN/A
仅 BT A2DPN/A优秀
Wi-Fi + BT A2DP(无共存)150 Mbps(-50%)偶有卡顿
Wi-Fi + BT A2DP(硬件共存)220 Mbps(-27%)良好
Wi-Fi 5GHz + BT 2.4GHz300 Mbps(无损)优秀

结论:使用 5GHz Wi-Fi 是解决共存干扰的最佳方案。

褚成志的笔记