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,再向上承载电池服务、设备信息服务、数字钥匙等自定义服务。
二、配对与绑定:从临时密钥到长期信任
配对(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 版本是否匹配。
五、案例与复盘:音乐无声的排查路径
某车型用户反馈“蓝牙已连接,电话正常,但播放音乐无声音”。按以下路径排查:
- 在车机蓝牙设置中查看已连接设备的 Profile 列表,确认 A2DP 是否处于 Connected。
- 若 A2DP 未连接,尝试在手机端“媒体音频”开关中重新勾选。
- 检查车机音频源是否切换到“蓝牙音乐”,而非停留在收音机或 USB。
- 查看 AVRCP 版本,若车机仅支持 AVRCP 1.3,部分手机可能不发送播放状态。
- 抓取 HCI 日志,确认 AVDTP 信令是否完成 OPEN 与 START。
理解双栈结构、配对绑定与 Profile 分工后,就能把“蓝牙问题”拆解为可定位的链路问题。下一阶段将进入具体连接流程与状态机分析,进一步把上述知识落到可操作的诊断步骤中。