type
Post
date
Nov 19, 2025
slug
RaspberryPi-ZERO/bluetooth
summary
RaspberryPi ZERO 2W 接入蓝牙音响
status
Published
tags
树莓派
category
技术茶点
icon
password
因为 RaspberryPi Zero 2 W 上只有一个 USB 口,难免会需要用到蓝牙模块,测试下连接蓝牙语音音响,也方便后续迭代 AI 语音聊天的功能。
1.简单记录
- SSH 连接后通过命令行交互,开启设备蓝牙模式后扫描,记录MAC地址并配对
2.Wi-Fi / Bluetooth “协同存在机制(Coexistence)”
Coexistence = 在同一 2.4GHz 天线、同一个 RF 模块上,通过硬件信号与软件协议协商,避免 Wi-Fi 与 Bluetooth 同时发射造成干扰的机制。
Wi-Fi 与 Bluetooth 都占用 2.4GHz ISM 频段:
- Wi-Fi 2.4GHz:20MHz 通道宽度,持续占用
- Bluetooth:79 个 1MHz 的跳频频点(AFH)
如果没有 Coexistence:
- 蓝牙鼠标会疯狂卡顿
- 蓝牙音频破音严重
- Wi-Fi 速度骤降
- 两者互相干扰互相屏蔽
因此共存机制是手机、树莓派、笔记本无线芯片的标配核心技术。
2.1.物理信号线级 Coexistence(3-Wire/2-Wire)——硬件层面
大多数 Broadcom/Cypress 芯片使用 2-wire 或 3-wire 协同协议。
三个关键信号:
名称 | 意义 |
BT_ACTIVE | 蓝牙正在发送/接收 |
WLAN_ACTIVE | Wi-Fi 正在发送/接收 |
BT_PRIORITY | 蓝牙需要优先权 |
这些信号由蓝牙和 Wi-Fi MAC 层互相通知,可以实现:
🔸 当蓝牙需要发送(例如音频),它会拉起 BT_ACTIVE
→ Wi-Fi 停止发射,避免打断蓝牙的短包。
🔸 Wi-Fi 需要高吞吐(例如下载)时
→ 会降低 BT_PRIORITY
→ 蓝牙通过 “跳频避让” 来减少冲突。
这是最底层的硬件互斥机制。
2.2.MAC 层调度(Medium Access Control)——链路级
Wi-Fi 是基于 CSMA/CA 的随机退避机制
Bluetooth Classic 是基于 625µs 时隙的 TDMA
BLE 是基于 Advertising + Connection Interval 的时序框架
共存机制会协调:
- 调整 BT 的跳频图(AFH)
- Wi-Fi 载波侦听时间缩短
- Wi-Fi 抢占时间窗口让给蓝牙
实例:
蓝牙音频 44.1kHz,需要每 3~6 ms 向耳机发一个音频包。
如果 Wi-Fi 正在传大包(1500 bytes),一旦长时间占用,会导致蓝牙延迟超时 → 卡顿、破音。
MAC 层共存调度会:
- 分片 Wi-Fi 包(短包)
- 降低 Wi-Fi 速率(减少占用时间)
- 优先让蓝牙插入事件
2.3.协议栈层的“软协调(Soft Coexistence)”——软件层
这是在 Linux/Android/树莓派中很关键的一层。
wifi/ble 协存在 firmware 与 kernel 中的调度逻辑包括:
- 动态调整 Wi-Fi 发包间隔
- 识别蓝牙应用类型:
- 鼠标键盘 → 低延迟优先
- 耳机 → 中高带宽 + 稳定时序
- 调整蓝牙 Connection Interval
- 调整 BLE 广播频率
- 动态降低 Wi-Fi MCS 速率(比如从 MCS7 → MCS3)
- 让蓝牙音频有更高优先权(SCO/eSCO)
2.4.Adaptive Frequency Hopping (AFH) 自适应跳频
蓝牙会扫描当前 Wi-Fi 使用的信道(比如 Wi-Fi 在 channel 1 或 6)
→ 把 Wi-Fi 正在使用的频谱“划掉”,避免跳到该频点。
例如:
Wi-Fi 在 channel 1(2.412GHz)
AFH 会禁用频点 0–20 的蓝牙跳频信道。
这显著降低冲突。
2.5.PTA(Packet Traffic Arbitration)数据包仲裁器
PTA 协议决定:哪个协议优先发包
优先级示例(典型手机/树莓派配置):
- 蓝牙语音(SCO/eSCO)
- 蓝牙鼠标键盘(低延迟)
- BLE 数据包(小包)
- Wi-Fi 低速业务(ping)
- Wi-Fi 高速业务(下载、TCP 大流量)
PTA 会实时分析:
- 数据包类型
- 包大小
- 重传情况
- 信道繁忙度
然后动态决定:
→ 下一毫秒是蓝牙发,还是 Wi-Fi 发。
2.6.时间片调度(Timeslot Scheduling)
Wi-Fi 和 BT 在同一根天线上不能同时发射,只能轮流。
芯片内部会按微秒级调度:
蓝牙时隙是 625µs
Wi-Fi 时隙不固定,但可被压缩
共存机制会根据天线共享情况优化时隙分配。
- Author:沈林曦
- URL:https://blog.aibhtt.com/article/RaspberryPi-ZERO/bluetooth
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts








