- tags
- [蓝牙, 音频, 协议, IoT, Sentino]
- created
- 2026-05-15
- updated
- 2026-05-15
- sources
- [对话整理 2026-05-15]
定义¶
蓝牙耳机/音箱与手机之间的"听音乐 + 打电话 + 按键控制"全流程,跑在经典蓝牙 (BR/EDR) 协议族上,不在 BLE 上。核心由几个 Profile 协作完成,每个 Profile 解决一类问题,Profiles 之上由 SDP 服务发现声明、之下由 L2CAP / RFCOMM / AVDTP / AVCTP 等传输承载。
与 ble-classic-vs-le 的差异是本页的入口区分:BLE 是低功耗广播路径,跑不动 A2DP/HFP,所有蓝牙音频走的都是经典蓝牙这一侧(直到 LE Audio 出现,见末段)。
协议栈分层¶
应用层:A2DP / HFP / AVRCP / HSP / BAP(profiles)
中间层:AVDTP / AVCTP / RFCOMM / SDP(transports)
底层: L2CAP → ACL/SCO → 蓝牙基带
关键 Profiles¶
| Profile | 用途 | 方向 | 编解码 |
|---|---|---|---|
| A2DP (Advanced Audio Distribution) | 高质量单向音乐流 | 手机 → 耳机 | SBC(必选)/ AAC / aptX / aptX HD / LDAC / LHDC |
| HFP (Hands-Free Profile) | 通话双向音频 + 拨号控制 | 双向 | CVSD(窄带 8kHz)/ mSBC(宽带 16kHz)/ LC3-SWB(超宽带) |
| HSP (Headset) | HFP 老前身,功能子集 | 双向 | CVSD |
| AVRCP (Audio/Video Remote Control) | 播放/暂停/上下首/音量/曲目元数据 | 耳机 → 手机 | — |
| PBAP (Phone Book Access) | 通讯录同步(车机来电显示名字) | 手机 → 车机 | — |
两个核心传输模式¶
- A2DP 用 ACL 链路:异步、可重传、带宽高(~700 kbps),听音乐用
- HFP/HSP 用 SCO/eSCO 链路:同步、低延迟、不重传、带宽低(64 kbps CVSD / 128 kbps mSBC),打电话用
→ 典型现象:接上 AirPods 打电话时音质明显变差——切到了 HFP 的窄带/宽带 SCO 链路;挂掉电话才回到 A2DP。Windows 上很明显,叫 "Hands-Free vs Stereo" 两个独立设备节点。
控制信令¶
- AVRCP 跑在 AVCTP 之上,负责"按耳机上的暂停键能让 Spotify 停下来"。1.3 之后支持元数据(歌名/专辑/封面),1.6 支持 browsing。
- HFP AT 命令(跑在 RFCOMM 上):
AT+CHUP挂断、AT+VGS调音量、+CIEV上报来电——本质是把耳机当成早年的 modem。
配对 & 连接生命周期¶
- Inquiry(扫描)→ Page(建链)→ SDP 查询对端支持哪些 profile
- Pairing:SSP(Secure Simple Pairing,2.1+),Just Works / Numeric Comparison / Passkey
- Bonding:保存 Link Key,下次直接用
- 多 profile 并行:A2DP + AVRCP + HFP 同时开 L2CAP channel
LE Audio(新一代,正在替换)¶
蓝牙 5.2 引入,跑在 BLE 而不是经典蓝牙上:
- BAP (Basic Audio Profile) 替代 A2DP/HFP
- LC3 codec 替代 SBC,同码率音质更好、低码率仍可用
- Auracast 广播音频(公共场所多人收听同一路)
- 多设备同步:左右耳独立连手机(Apple AirPods 自家方案 + LE Audio 标准化)
- 单一链路同时跑音乐和通话,不再 A2DP/HFP 切换
苹果 H2 芯片、三星 Buds3、Pixel Buds Pro 2 都已支持,但生态过渡仍在进行——"BLE 不能跑高质量音频"是被 LE Audio 推翻的旧规则,但 Classic + 双协议栈仍是当前事实标准。
与 Sentino 的关系¶
Sentino 设备走的是 BLE 配网 + WiFi + WebRTC 音频,不走经典蓝牙音频通道。原因三条:
- 经典蓝牙音频只能 P2P(手机/耳机之间),不能直接上云走 LLM
- BLE 功耗低、配网快(详见 ble-provisioning)
- 实时双向音频要走 WebRTC/RTC 才能接 Agent(详见 agora-rtc-voice)
→ 设计含义:本页是"为什么 Sentino 没用蓝牙做音频通路"的反面参照。如果未来要做"蓝牙耳机直连 Sentino Agent"形态(脱离手机 App),需要在设备侧实现 A2DP source + HFP AG,工程量远超 BLE 配网,且仍需上行 RTC 才能到云端 LLM——双协议栈,不划算。
相关概念¶
- ble-classic-vs-le — 经典蓝牙 vs BLE 入口区分;本页是经典蓝牙侧的音频协议详解
- ble-provisioning — Sentino 走的 BLE 配网路径(与本页对位的另一条蓝牙用途)
- agora-rtc-voice — Sentino 实时音频实际走的 RTC 通路
- sentino-iot — 设备形态决策上下文