HOGPHID over GATT Profile)是 Bluetooth LE 中通过 GATT 服务、特征和描述符承载 HID 设备能力和 report 数据的标准配置文件。

它可以理解为把 HID 的 report 模型搬到 BLE / GATT 上,让低功耗键盘、鼠标、遥控器、手柄等设备通过 Bluetooth LE 被主机识别为人机接口设备。

核心问题

USB HID 假设设备通过 USB 枚举、端点和类请求和主机通信。但无线低功耗设备没有 USB 端点,连接建立、发现、访问和订阅都要走 BLE 的 GAP/GATT/ATT 模型。

HOGP 解决的是“如何在 BLE 的 GATT 数据模型里表达 HID 设备、report map、input/output/feature report 和控制点”的问题。

核心对象

对象在 HOGP 中的作用工程关注点
HID DeviceBLE peripheral,暴露 HID Service低功耗、连接参数、配对安全
HID HostBLE central + GATT client手机、PC、平板、接收器
HID ServiceGATT 中的 HID 服务服务 UUID、特征集合、权限
Report Map characteristic类似 HID Report Descriptor 的描述数据主机解析 report 布局的依据
Report characteristic承载 input/output/feature reportReport Reference、CCCD、权限
HID Information characteristic描述 HID 版本和设备属性兼容性和主机识别
HID Control Point主机控制设备挂起/退出挂起等行为电源管理
Protocol ModeBoot Protocol 或 Report Protocol简化键鼠兼容 vs 完整 report
GATT Descriptor描述 report 类型、ID 或订阅配置Report Reference、CCCD

HOGP 的关键是:USB HID 里的 report descriptor、report 和控制语义,在 BLE 中被映射成 GATT service、characteristic 和 descriptor。

核心机制

1. 设备先作为 BLE peripheral 被发现和连接

典型连接流程是:

HID device advertises
  -> HID host scans and connects
  -> host performs pairing/bonding if needed
  -> host discovers HID service
  -> host reads Report Map
  -> host subscribes input Report characteristics
  -> device sends notifications for input reports

这里 GAP 负责发现、连接和安全,GATT 负责服务发现和数据访问,ATT 负责底层 attribute 读写。

2. Report Map 描述 report 结构

HOGP 中的 Report Map characteristic 承担类似 HID Report Descriptor 的作用。主机读取 Report Map 后,知道每个 report 的用途、字段布局和 Report ID。运行时 input report 通常通过 GATT notification 发送。

可以把映射关系简化为:

USB HID endpoint report
  -> HOGP Report characteristic value
 
USB HID report descriptor
  -> HOGP Report Map characteristic

这不是字节级一一复制规则,而是在说明两个传输模型中的概念对应关系。

3. Report Reference 把 GATT characteristic 和 HID report 类型关联

一个 HID Service 里可能有多个 Report characteristic。主机需要知道某个 characteristic 表示 Input、Output 还是 Feature report,以及对应哪个 Report ID。这个映射由 Report Reference descriptor 表达。

如果 Report Reference、Report ID 或 Report Map 不一致,主机会订阅错 characteristic、解析错 report,或者直接不把设备当成可用 HID 外设。

4. 低功耗和延迟由 BLE 参数共同决定

HOGP 设备的体验不仅取决于 report 格式,也取决于 BLE 连接参数:

  • connection interval 决定主机和设备多频繁交换数据。
  • slave latency / peripheral latency 影响设备省电和响应时间。
  • MTU 和 notification 大小影响 report 传输效率。
  • bonding 和 encryption 影响安全访问和重连体验。

因此一个 HOGP 键盘“能配对”不等于“低延迟好用”;连接参数、通知路径和主机平台策略都会影响实际手感。

工程用途

  • 低功耗键盘和鼠标:使用 BLE 连接 PC、手机或平板。
  • 遥控器和按键板:用标准 HID 键值或 Consumer Control 控制主机。
  • 游戏手柄和输入附件:通过 report map 描述按钮、摇杆、扳机等字段。
  • 嵌入式设备控制面板:把少量按键、旋钮或状态输入暴露成 BLE HID。
  • 移动端免专用 App 输入:让手机系统直接把外设识别为键盘或输入设备。

调试 HOGP 时,重点看广播是否包含可发现线索、是否成功配对/绑定、HID Service 是否完整、Report Map 是否可读、Report Reference 是否一致、CCCD 是否写入、notification 是否到达、连接参数是否满足延迟。

边界与常见坑

  • HOGP 不等于所有 Bluetooth HID:Bluetooth Classic 也有 HID Profile;HOGP 专指基于 BLE GATT 的 HID。
  • HOGP 不等于普通自定义 GATT 服务:它有标准 HID Service、Report Map、Report characteristic 和控制语义。
  • 能被扫描到不等于能作为 HID 使用:主机还要完成服务发现、Report Map 解析、订阅和安全检查。
  • 配对安全要认真处理:键盘类设备可能输入敏感信息,未授权连接和按键注入风险不能忽略。
  • Report Map 与 Report Reference 必须一致:不一致会导致主机解析失败或事件错乱。
  • 低功耗和低延迟相互牵制:更短连接间隔降低输入延迟,但会增加功耗。
  • 平台兼容性差异明显:Windows、macOS、Linux、Android、iOS 对 HOGP、键值、Consumer Control 和重连策略支持不完全相同。

相关术语

外部参考