简介
HID over GATT Profile(HOGP)定义了基于低功耗(LE)蓝牙™的人机接口设备(HID)设备端与主机端所使用的流程和功能。该配置文件是对USB HID规范的适配,使HID数据能够通过低功耗蓝牙无线链路进行传输。
HOGP定义了两种运行模式:默认运行模式与混合运行模式。这两种运行模式使HOGP能够灵活适配不同HID应用场景,满足其在报告速率、端到端延迟以及数据时效性等方面的差异化需求。
角色
HOGP定义了三种角色:HID设备(HID Device)、Boot主机(Boot Host)与Report主机(Report Host)。
- Boot主机与Report主机统称为HID主机,两者互斥,同一设备在任意特定时刻只能充当其中一种角色。
- 同一设备可同时支持HID主机和HID设备两种角色。
HID设备
HID设备是指通过低功耗蓝牙与HID主机连接,并提供标准化人机接口功能的设备,例如键盘、鼠标、触控板等。
HID设备的职责:
- HID设备需作为GAP Peripheral角色,在未连接时发送可连接广播,以供HID主机发现并建立连接。
- HID设备需作为GATT Server,提供服务供HID主机访问与配置。
- HID设备需提供一个或多个HID Service实例,用于传输HID数据。
- HID设备需提供一个或多个Battery Service实例,用于上报设备电量信息。
- HID设备需提供一个Device Information Service实例,其中须包含PnP ID Characteristic。
- HID设备可提供一个Scan Parameters Service实例,接收来自HID主机的扫描参数配置,实现对自身广播行为的优化。
- 若HID设备支持HID ISO功能,则须支持Connected Isochronous Stream(CIS)- Peripheral,并提供一个HID ISO Service实例。
- HID设备可选择性地包含其他服务实例。
HID主机
HID主机是指在通信中承担扫描、连接并管理HID设备角色的控制端,它负责处理来自HID设备的HID数据。HID主机划分为Boot主机与Report主机两种角色。
HID主机的通用职责包括:
- HID主机需作为GAP Central角色,与HID设备建立连接。
- HID主机需作为GATT Client,访问并配置HID设备上的各项服务与特征。
Boot主机与Report主机
| 定义 |
使用Boot Protocol Mode的主机设备 |
使用Report Protocol Mode的主机设备 |
| 应用环境 |
操作系统尚未加载的早期阶段(预启动环境),仅能识别并处理预定义的键盘、鼠标的固定数据格式 |
操作系统完整运行阶段,可读取并解析设备的Report Map,支持多媒体按键、鼠标高级功能、手势操作等HID能力 |
| HID Parser要求 |
无需支持 |
强制支持 |
| HID数据处理 |
- 连接建立后,必须向每个HID Service的Protocol Mode Characteristic写入Boot Protocol Mode
- 通过Boot Keyboard Input Report characteristic、Boot Keyboard Output Report characteristic及Boot Mouse Input Report characteristic进行交互
- 仅需处理启动协议模式下预定义长度和格式的HID数据
|
- 连接建立后,默认为Report Protocol Mode,后续根据需求由HID主机切换
- 通过Report Characteristic进行交互,支持输入(Input)、输出(Output)及特性(Feature)报告
- 能够解析并处理任意格式的HID数据
|
| Scan Parameters Profile要求 |
不得支持Scan Client角色 |
需支持Scan Client角色,将自身扫描参数写入至HID设备,以辅助HID设备优化广播行为 |
| HID ISO要求 |
无需支持 |
- 支持Connected Isochronous Stream(CIS)- Central
- 支持HID ISO Service及其相关Characteristic的发现与读写
- 支持LE HID Operation Mode相关流程,能够在默认运行模式与混合运行模式之间协商切换
|
HID主机与HID设备在建立LE连接后,可以通过默认运行模式或混合运行模式实现HID数据的交互。

运行模式
| 要求级别 |
强制支持 |
可选支持 |
| 功能要求 |
|
- LE连接
- GATT
- HID ISO
- Report主机
- CIS - Central
- 实现HID ISO Service的Client角色
- HID设备
- CIS - Peripheral
- 实现HID ISO Service的Server角色
|
| 运行模式切换方式 |
GATT |
GATT |
| HID数据传输方式 |
GATT |
- CIS:传输要求更高报告速率、支持可冲洗传输或具备更低延迟需求的数据
- GATT:传输不要求更高报告速率、不需要可冲洗传输且对延迟要求不高的数据
|
运行模式的切换方式如下所述:
- HID主机与HID设备建立LE连接,初始运行模式为默认运行模式,HID数据仅通过GATT进行传输。
- 在默认运行模式下,可通过协商切换至混合运行模式。协商完成后,一旦CIS建立,指定的HID数据通过CIS传输,其他HID数据通过GATT传输。
- HID主机与HID设备亦可切换回默认运行模式,切换后由HID主机断开CIS。

优势
低功耗
- HOGP依托LE优势,以低功耗即可维持链路。
- HOGP基于Profile的Suspend机制,支持设备在空闲时期休眠,仅在产生实际操作时唤醒传输。
标准化的配置与互操作性保障
- HOGP将标准的USB HID技术规范适配至GATT,通过标准化的设备能力定义,提升不同产品间的跨平台互操作性。
应用场景
PC/移动终端外设
HOGP适配PC/移动终端外设场景中的人机交互需求。
典型应用包括:键盘、鼠标、演示翻页器、简单多媒体控制器等。

消费电子与智能控制
HOGP可用于各类通用控制类交互设备,此类设备的数据报文短小且通常呈非连续的触发式传输。
典型应用包括:智能电视或机顶盒遥控器、智能家居控制面板、会议系统控制器等。
