【android bluetooth 案例分析 01】【HiCar 详解 1】【车机侧Hicar 流程分析】

HiCar 连接完整流程概览

在 HiCar 场景中,车机和手机需要经过以下几个主要阶段完成互联:

  1. BLE 广播与发现

  2. 蓝牙连接建立(BR/EDR/L2CAP)

  3. RFCOMM 认证与服务发现

  4. Wi-Fi Direct 连接切换

  5. 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 的连接流程可以概括为以下几个步骤:

  1. BLE 广播

    • 车机侧: 广播 HiCar 服务信息(使用 LE Set Extended Advertising Data,包含 HiCar 特有的 0xFDEE UUID 及认证数据)。

    • 手机侧: 扫描到符合条件的广播,识别出车机支持 HiCar。

  2. 蓝牙连接建立(BR/EDR + L2CAP)

    • 车机侧: 接收手机连接请求,通过 L2CAP 协商双方功能与信道参数。

    • 手机侧: 发起连接,并参与功能协商。

  3. RFCOMM 认证与服务发现

    • 手机侧: 在 RFCOMM 信道上发送 SDP 请求及 HiCar 认证请求,提供设备能力与认证码。

    • 车机侧: 解析请求、完成认证比对并返回认证结果。

  4. Wi-Fi Direct 切换

    • 车机侧: 交换 Wi-Fi 连接参数,启动 Wi-Fi Direct 模块,等待手机加入。

    • 手机侧: 根据收到的参数建立 Wi-Fi 直连,切换至高带宽传输模式。

  5. HiCar 模式建立

    • 双方: 建立完整数据通道后,手机与车机正式进入 HiCar 互联状态,提供多媒体、导航、语音等服务。

Btsnoop 车机侧分析

在这里插入图片描述


最终总结

  • 车机角色: 从广播 HiCar 服务开始,通过蓝牙(BR/EDR、L2CAP、RFCOMM)与手机建立安全认证,并最终切换到 Wi-Fi Direct 高带宽传输,实现完整的 HiCar 互联体验。

  • 手机角色: 从扫描识别车机的 HiCar 广播开始,主动发起蓝牙连接、参与认证比对,最终建立 Wi-Fi Direct 连接,实现手机与车机之间的数据交互和多媒体投屏。

这种多层次的连接流程不仅保证了设备的快速发现与认证,还通过无线连接的切换提供了稳定且高带宽的数据传输,确保了 HiCar 系统在车载场景下的流畅体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值