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逻辑传输通道承载。

HFP协议角色与通信架构 AG(音频网关) 手机 / 车载T-Box 音频源端 + 网络注册 AT命令接收方 HF(免提设备) 车载主机 / 蓝牙耳机 远程音频输入/输出 AT命令发起方 控制通道 RFCOMM / AT命令 音频通道 SCO / eSCO 角色交互要点 • AG主动发起SCO/eSCO连接请求,HF被动接受或拒绝 • HF通过AT+CLCC轮询当前通话列表,AG返回+CLCC响应 • AG负责维护通话状态机,HF通过AT命令触发状态迁移

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支持的功能集
HFP服务发现流程(SDP交互) HF(发起方) SDP客户端 AG(响应方) SDP服务器 ① SDP Service Search UUID: 0x111E / 0x111F ② SDP Service Attribute Response RFCOMM通道号 + 版本 + 特性掩码 ③ RFCOMM连接建立 使用SDP返回的通道号 Supported Features 位掩码示例(HFP 1.8 AG) Bit 0: 三方通话 | Bit 1: 呼叫等待/保持 | Bit 2: 语音识别 | Bit 3: 免提音量控制 | Bit 5: 宽带语音 Bit 6: 超宽带语音 | Bit 7: 多HFP实例 | Bit 8: 电池指示 | Bit 9: 增强呼叫控制
常见集成陷阱: 部分手机(如某些Android定制ROM)在SDP响应中返回的Supported Features位掩码与实际支持的功能不一致。车载HF应在连接建立后通过AT+BRSF(Bluetooth Retrieve Supported Features)命令重新获取AG的能力集,而非仅依赖SDP结果。这是HFP协议明确要求的二次确认机制。