HiCar 连接完整流程概览
在 HiCar 场景中,车机和手机需要经过以下几个主要阶段完成互联:
-
BLE 广播与发现
-
蓝牙连接建立(BR/EDR/L2CAP)
-
RFCOMM 认证与服务发现
-
Wi-Fi Direct 连接切换
-
HiCar 模式正式建立
下面的流程图描述了车机(左侧)和手机(右侧)的交互过程:
1. BLE 广播与发现
车机侧行为
-
广播 HiCar 信息:
车机调用底层接口,利用LE Set Extended Advertising Data
指令发送包含服务数据的 BLE 广告包。
广告包中,服务数据中会包含一个 16 位的 UUID(0xFDEE
,代表华为 HiCar),以及认证相关的数据字段,如版本、设备类别、认证状态、厂商 ID、认证码等。示例数据解析:
-
UUID 16:
0xFDEE
—— 标识 HiCar 服务 -
Service Data:
010101030004930401107211e7
-
第 1 字节:HiCar 版本
-
第 2 字节:设备类别(车机)
-
第 3 字节:认证状态(是否需要认证)
-
后续字段:设备能力、厂商 ID、认证码、连接标识符等
-
-
手机侧行为
- 扫描广播:
手机端的 HiCar App启动 BLE 扫描,设置过滤条件(例如只扫描带有0xFDEE
UUID 的广播包),识别到车机的 HiCar 广告后,即可进行下一步连接请求。
2. 蓝牙连接建立(BR/EDR & L2CAP)
手机和车机都可以发起连接。
车机侧行为
-
接收连接请求:
当手机识别到车机后,会发起蓝牙连接请求(通常使用 BR/EDR 模式以获得更高的数据吞吐量)。 -
L2CAP 信道协商:
车机与手机在建立 BR/EDR 连接后,通过 L2CAP 层交换信息,协商扩展功能(如支持的特性、固定信道信息等)。
此阶段车机会发送如 “Information Request” 等数据包,确保双方在同一通信参数下进行数据传输。
手机侧行为
-
发起连接:
手机收到车机的 BLE 广告后,发起 BR/EDR 连接请求。 -
参与 L2CAP 协商:
手机响应车机发送的信息请求,返回支持的功能信息,确保双方通信能力匹配。
3. RFCOMM 认证与服务发现
车机侧行为
-
建立 RFCOMM 信道:
在 L2CAP 协商成功后,车机会进一步启动 RFCOMM 信道,这是蓝牙协议栈中的串口模拟通道,用于传输更高层的数据。 -
发送 SDP 请求:
车机通过 SDP(Service Discovery Protocol)向手机端请求 HiCar 服务信息,携带自身的认证数据和设备能力信息。 -
发起认证流程:
车机会发送特定的 HiCar 认证请求消息,包含设备认证码、能力标志等,等待手机响应。
手机侧行为
-
响应 SDP 请求:
手机接收到 SDP 请求后,解析请求中的 HiCar 参数,并对比自身保存的认证信息。 -
进行设备认证:
手机端根据车机发送的认证数据,判断是否允许连接,随后发送认证结果、密钥信息或 Token 等回馈给车机。 -
启动 HiCar 服务:
如果认证成功,手机会启动 HiCar 应用服务,准备后续数据传输。
4. Wi-Fi Direct 连接切换
车机侧行为
-
交换 Wi-Fi 连接参数:
一旦蓝牙层面的认证完成,车机会与手机交换 Wi-Fi Direct 的连接参数。这可能包括 SSID、密码或其他必要的配置数据。 -
启动 Wi-Fi 直连:
车机端启动 Wi-Fi Direct 模块,等待手机接入。Wi-Fi 直连提供更高的带宽,适用于数据量较大的多媒体传输。
手机侧行为
-
接收 Wi-Fi 参数:
手机在 RFCOMM 认证后,接收到车机发送的 Wi-Fi 直连参数。 -
建立 Wi-Fi Direct 连接:
手机利用系统 API 启动 Wi-Fi Direct 连接,按照车机提供的信息加入直连网络。 -
切换通信模式:
一旦 Wi-Fi Direct 建立,后续数据(如投屏、导航、音视频流)将主要通过 Wi-Fi 直连传输。
5. HiCar 模式正式建立
双方行为
-
数据通道激活:
蓝牙和 Wi-Fi 直连均建立后,车机与手机间形成完整的 HiCar 数据通道。 -
功能启动:
手机端的 HiCar App与车机侧的 HiCar 模块开始交换指令和数据,实现车机端的 UI 显示、音视频播放、导航互动等服务。 -
持续监控与管理:
连接建立后,双方还会定期交换状态信息,以确保连接稳定并及时处理可能出现的异常。
总结与图示说明
从车机角度看,HiCar 的连接流程可以概括为以下几个步骤:
-
BLE 广播
-
车机侧: 广播 HiCar 服务信息(使用
LE Set Extended Advertising Data
,包含 HiCar 特有的 0xFDEE UUID 及认证数据)。 -
手机侧: 扫描到符合条件的广播,识别出车机支持 HiCar。
-
-
蓝牙连接建立(BR/EDR + L2CAP)
-
车机侧: 接收手机连接请求,通过 L2CAP 协商双方功能与信道参数。
-
手机侧: 发起连接,并参与功能协商。
-
-
RFCOMM 认证与服务发现
-
手机侧: 在 RFCOMM 信道上发送 SDP 请求及 HiCar 认证请求,提供设备能力与认证码。
-
车机侧: 解析请求、完成认证比对并返回认证结果。
-
-
Wi-Fi Direct 切换
-
车机侧: 交换 Wi-Fi 连接参数,启动 Wi-Fi Direct 模块,等待手机加入。
-
手机侧: 根据收到的参数建立 Wi-Fi 直连,切换至高带宽传输模式。
-
-
HiCar 模式建立
- 双方: 建立完整数据通道后,手机与车机正式进入 HiCar 互联状态,提供多媒体、导航、语音等服务。
Btsnoop 车机侧分析
最终总结
-
车机角色: 从广播 HiCar 服务开始,通过蓝牙(BR/EDR、L2CAP、RFCOMM)与手机建立安全认证,并最终切换到 Wi-Fi Direct 高带宽传输,实现完整的 HiCar 互联体验。
-
手机角色: 从扫描识别车机的 HiCar 广播开始,主动发起蓝牙连接、参与认证比对,最终建立 Wi-Fi Direct 连接,实现手机与车机之间的数据交互和多媒体投屏。
这种多层次的连接流程不仅保证了设备的快速发现与认证,还通过无线连接的切换提供了稳定且高带宽的数据传输,确保了 HiCar 系统在车载场景下的流畅体验。