3. HFP协议概述:HFP 1.7/1.8版本特性、AG与HF角色定义、HFP支持的服务列表
3.1 HFP协议演进与版本特性
免提协议(Hands-Free Profile, HFP)是车载蓝牙电话系统的核心Profile,定义了车载设备(HF)与手机(AG)之间建立和控制语音通话的机制。HFP 1.7和1.8是目前车载集成中最主流的两个版本,两者在基础通话能力上兼容,但在音频编码、多设备管理和安全特性上存在关键差异。
| 特性维度 | HFP 1.7 | HFP 1.8 |
|---|---|---|
| 核心音频编码 | CVSD(强制)、mSBC(可选,用于宽带语音) | CVSD(强制)、mSBC(强制)、LC3(可选,用于超宽带语音) |
| 语音带宽支持 | 窄带(8kHz)和宽带(16kHz) | 窄带(8kHz)、宽带(16kHz)、超宽带(32kHz) |
| 多设备管理 | 基本多点连接,无统一协调 | 多HFP实例协调(Multi-HFP),支持AG端多路通话管理 |
| AT命令集 | 基础通话控制(AT+CHLD, AT+VTS等) | 扩展AT命令(AT+BVRA增强、AT+CMER增强、AT+IPHONEACCEV) |
| 安全增强 | 基于传统配对 | 支持SC(Secure Connections)和MITM保护 |
| 蓝牙核心规范依赖 | Bluetooth Core 4.2 / 5.0 | Bluetooth Core 5.2+(推荐) |
版本选择建议: 对于2024年后的车载项目,建议直接采用HFP 1.8。虽然LC3编码为可选特性,但mSBC强制化保证了宽带语音的互操作性,且多HFP实例协调能力对双手机连接场景至关重要。
3.2 AG与HF角色定义
HFP协议采用严格的客户端-服务器架构,定义了两种明确角色:
- AG(Audio Gateway,音频网关) — 通常为手机,负责音频输入/输出、网络注册、通话建立与释放。AG是音频数据的源端和宿端,也是AT命令的接收方。
- HF(Hands-Free,免提设备) — 通常为车载主机或蓝牙耳机,负责提供远程音频输入/输出和通话控制接口。HF是AT命令的发起方。
角色之间的控制流和音频流分离:控制命令通过RFCOMM上的AT命令交换,音频数据通过SCO/eSCO逻辑传输通道承载。
3.3 HFP支持的服务列表
HFP协议本身不直接定义“服务”,而是通过一组强制和可选的功能集来体现其服务能力。下表列出了HFP 1.8规范中定义的核心服务及其对应的AT命令和功能描述:
| 服务类别 | 服务名称 | 关联AT命令 / 机制 | HFP 1.7 | HFP 1.8 |
|---|---|---|---|---|
| 通话控制 | 呼叫等待与呼叫保持 | AT+CHLD | 强制 | 强制 |
| 多方通话(会议) | AT+CHLD=3 | 可选 | 强制 | |
| 呼叫转移 | AT+CCWA | 可选 | 可选 | |
| 音频管理 | 宽带语音(WBS) | AT+BCC / mSBC编码 | 可选 | 强制 |
| 超宽带语音(SWBS) | LC3编码 | 不支持 | 可选 | |
| 语音识别 | 语音拨号激活 | AT+BVRA | 可选 | 可选(增强) |
| 语音识别状态指示 | AT+BVRA +EVENT | 不支持 | 可选 | |
| 电话簿访问 | 电话簿同步(PBAP) | 通过PBAP Profile实现 | 外部依赖 | 外部依赖 |
| 主叫号码显示 | AT+CLIP | 强制 | 强制 | |
| 网络服务 | 信号强度与网络状态 | AT+CSQ, AT+CREG | 可选 | 强制 |
| 电池指示 | AG电池电量上报 | AT+XAPL / AT+IPHONEACCEV | 可选 | 可选(扩展) |
工程实现要点: 在车载HFP集成中,电话簿同步并非HFP原生服务,而是通过PBAP(Phone Book Access Profile)配合实现。HFP只负责通话控制,联系人数据通过PBAP的vCard对象推送机制传输。两个Profile在车载系统中通常并行运行,共享同一个RFCOMM连接管理器。
3.4 HFP服务发现与SDP记录
AG和HF在建立连接前,通过SDP(Service Discovery Protocol)交换HFP服务能力。HFP 1.8的SDP记录包含以下关键属性:
- Service Class ID List — 必须包含Hands-Free Audio Gateway(0x111F)或Hands-Free(0x111E)
- Protocol Descriptor List — L2CAP + RFCOMM通道号
- Profile Descriptor List — HFP版本号(1.7为0x0107,1.8为0x0108)
- Supported Features — 16位位掩码,标识AG或HF支持的功能集
常见集成陷阱: 部分手机(如某些Android定制ROM)在SDP响应中返回的Supported Features位掩码与实际支持的功能不一致。车载HF应在连接建立后通过AT+BRSF(Bluetooth Retrieve Supported Features)命令重新获取AG的能力集,而非仅依赖SDP结果。这是HFP协议明确要求的二次确认机制。