4. 蓝牙核心技术

车载蓝牙并不是“连上就能用”这么简单。手机与车机之间同时存在两条技术路线:经典蓝牙(BR/EDR)负责音频与通话,低功耗蓝牙(BLE)负责发现、控制与数据交互。理解它们的协议栈分层、配对绑定机制以及各类 Profile 的职责,是排查“能连不能放歌”“能打电话但通讯录不同步”“钥匙靠近不解锁”等问题的关键。

一、双栈并行:经典蓝牙与BLE的协议栈结构

经典蓝牙与BLE共享射频层,但在链路层以上分道扬镳。经典蓝牙以“连接”为中心,强调稳定连续的音频流;BLE以“广播与属性”为中心,强调低功耗的短包交互。车机通常同时运行两套栈,通过不同的服务发现结果区分设备能力。

经典蓝牙栈自下而上为:射频(RF)、基带(Baseband)、链路管理(LMP)、L2CAP、RFCOMM、SDP,再向上承载 HFP、A2DP、AVRCP 等 Profile。BLE 栈则为:物理层、链路层(LL)、HCI、L2CAP、ATT、GATT、GAP,再向上承载电池服务、设备信息服务、数字钥匙等自定义服务。

经典蓝牙与BLE协议栈对照 经典蓝牙 BR/EDR HFP / A2DP / AVRCP / PBAP SDP 服务发现 RFCOMM 串口仿真 L2CAP 逻辑链路 LMP 链路管理 Baseband 基带 RF 射频 低功耗蓝牙 BLE GAP / 自定义服务 GATT 属性协议 ATT 属性传输 L2CAP 逻辑链路 HCI 主机控制器接口 LL 链路层 PHY 物理层 共享射频

二、配对与绑定:从临时密钥到长期信任

配对(Pairing)是双方协商出链路密钥的过程,绑定(Bonding)是把密钥持久化保存,以便下次免重复配对。经典蓝牙常用 SSP(安全简单配对),根据 IO 能力选择 Just Works、数字比较或 Passkey 方式。BLE 则使用 LE Secure Connections,密钥由 ECDH 生成,安全性更高。

车载场景中,配对信息通常保存在车机的“已配对设备列表”中。若用户删除手机侧配对而车机未删除,会出现“车机显示已连接、手机却提示未配对”的不一致状态。此时应在车机端执行“忽略此设备”并重新配对,而不是反复开关蓝牙。

绑定密钥与配对记录是两回事:清除配对记录会同时删除绑定密钥,导致下次连接必须重新配对;而仅断开连接不会删除绑定,重连时可直接加密链路。

三、GATT/ATT:BLE数据交互的核心模型

ATT(Attribute Protocol)定义了客户端与服务器之间读写属性的规则,GATT(Generic Attribute Profile)在 ATT 之上规定了服务(Service)、特征(Characteristic)和描述符(Descriptor)的层级结构。车机作为 GATT Client,手机或数字钥匙作为 GATT Server,通过 Handle 定位属性。

典型操作包括:服务发现(Discover Services)、读特征值(Read Characteristic)、写特征值(Write Characteristic)、订阅通知(Write Descriptor + Notification)。数字钥匙场景中,车机订阅手机侧的特征通知,一旦手机靠近并写入认证数据,车机即触发解锁。

GATT 层级示例:
Service UUID: 0x180F (Battery Service)
  └─ Characteristic UUID: 0x2A19 (Battery Level)
       ├─ Value: 87 (0x57)
       └─ Descriptor: 0x2902 (Client Characteristic Configuration)
            └─ 写入 0x0001 开启 Notify

四、车载Profile详解:HFP、A2DP、AVRCP与PBAP

车载最常用的四个经典蓝牙 Profile 各司其职,缺一不可。下表列出其职责与常见故障现象。

Profile 全称 车载职责 典型故障现象
HFP Hands-Free Profile 免提通话、麦克风与扬声器路由 能放歌但不能打电话、对方听不到声音
A2DP Advanced Audio Distribution Profile 立体声音乐流传输 通话正常但音乐无声、音质断续
AVRCP Audio/Video Remote Control Profile 播放/暂停/上一曲/下一曲、进度信息 方向盘按键无效、歌名不显示
PBAP Phonebook Access Profile 同步通讯录与通话记录 来电只显示号码、通讯录为空

HFP 建立的是 SCO/eSCO 链路,用于双向语音;A2DP 建立的是 ACL 链路承载的音频流,通常使用 SBC、AAC 或 aptX 编码。AVRCP 则依赖 A2DP 存在,若 A2DP 未连接,AVRCP 的播放控制也无从谈起。因此排查顺序应为:先确认 A2DP 已连接,再检查 AVRCP 版本是否匹配。

五、案例与复盘:音乐无声的排查路径

某车型用户反馈“蓝牙已连接,电话正常,但播放音乐无声音”。按以下路径排查:

  1. 在车机蓝牙设置中查看已连接设备的 Profile 列表,确认 A2DP 是否处于 Connected。
  2. 若 A2DP 未连接,尝试在手机端“媒体音频”开关中重新勾选。
  3. 检查车机音频源是否切换到“蓝牙音乐”,而非停留在收音机或 USB。
  4. 查看 AVRCP 版本,若车机仅支持 AVRCP 1.3,部分手机可能不发送播放状态。
  5. 抓取 HCI 日志,确认 AVDTP 信令是否完成 OPEN 与 START。
常见误区:把“蓝牙已连接”等同于“所有 Profile 已连接”。实际上 HFP 与 A2DP 是独立连接的两条通道,任何一条失败都会造成功能缺失。排查时应逐 Profile 确认状态,而不是只看总连接状态。

理解双栈结构、配对绑定与 Profile 分工后,就能把“蓝牙问题”拆解为可定位的链路问题。下一阶段将进入具体连接流程与状态机分析,进一步把上述知识落到可操作的诊断步骤中。