蓝牙自拍杆中的HOGP协议详解与应用实例
作者:shenyang
原创声明:本文为原创内容,欢迎收藏与转载,转载请注明出处。
蓝牙自拍杆如今已成为移动拍摄用户的常见配件,背后实现与手机通信的核心协议便是 HOGP(HID over GATT Profile)。本文将从BLE(Bluetooth Low Energy)协议入手,深入讲解HOGP协议的结构、工作机制及自拍杆的实际应用示例,适合对蓝牙开发或BLE协议感兴趣的工程师与开发者学习参考。
一、什么是 HOGP?
HOGP(HID over GATT Profile)是蓝牙低功耗 BLE 协议栈中定义的一种人机接口设备(HID)协议规范,允许诸如鼠标、键盘、游戏手柄等输入设备通过 GATT(Generic Attribute Profile)与主机通信。
HOGP 是 BLE 下 HID 类设备的官方通信标准,也被广泛用于 蓝牙自拍杆 这类仅需发送简单控制命令的低功耗设备。
二、蓝牙自拍杆与HOGP的关系
蓝牙自拍杆的本质是一个 BLE HID 设备,它通过 HOGP 协议将“按钮按下”的事件发送给智能手机,从而触发相机拍照。流程如下:
- 自拍杆作为 BLE 外设(Peripheral)广播自己。
- 手机作为中央设备(Central)扫描并连接到自拍杆。
- 手机通过 GATT 发现服务,识别出设备支持 HOGP。
- 用户按下按钮,自拍杆通过 HOGP 的 Input Report 发送控制命令。
- 手机接收到命令后,触发拍照行为。
三、HOGP服务的特征值
HOGP 协议下的 HID Service 是通过一组标准特征(Characteristic)组织的。自拍杆一般实现以下关键特征:
| 特征名 | UUID | 说明 |
|---|---|---|
| HID Control Point | 0x2A4C | 控制 HID 状态,如挂起或唤醒 |
| Report Map | 0x2A4B | 描述设备支持的输入/输出报告格式(类似HID描述符) |
| Input Report | 0x2A4D | 发送按钮等输入事件(自拍按键) |
| Output Report | 0x2A4E | 主机向设备下发输出命令(如LED指示灯) |
| HID Information | 0x2A4A | 提供HID版本和类别信息 |
| Protocol Mode(可选) | 0x2A4E | 设置Boot或Report模式 |
| Battery Level(可选) | 0x2A19 | 显示设备电池电量 |
四、自拍杆输入报告数据示例
以下是一个蓝牙自拍杆通过 HOGP 的 Input Report 向手机发送拍照指令的实际数据包示例。
假设格式
- 报告 ID(1 字节):
0x01 - 按钮状态(1 字节):
0x01表示按下,0x00表示松开
数据发送示例(按下按钮)
01 01
解释:
0x01:报告 ID0x01:按钮状态,表示用户按下拍照键
数据发送示例(松开按钮)
01 00
该数据通过 BLE 通知(Notification)方式发送至手机,在手机端由操作系统映射为“拍照键”动作。
五、输出报告示例(反馈控制)
自拍杆支持从手机接收 Output Report,例如控制设备上的 LED:
假设格式
- 报告 ID:
0x02 - LED 状态:
0x01(开启)、0x00(关闭)
数据示例
02 01
表示开启LED反馈;手机应用可用于提示“拍照成功”或“设备配对成功”。
六、蓝牙SIG标准术语说明(附录)
蓝牙SIG 遵循 IEEE 风格手册 Section 13.1 的术语使用规范,定义如下:
| 术语 | 含义 |
|---|---|
shall | 表示强制要求,必须严格遵守 |
must | 不再推荐使用,仅用于不可避免的情形 |
will | 不再推荐使用,仅用于陈述事实 |
should | 表示推荐,非强制性 |
may | 表示许可,可选操作 |
can | 表示能力或可能性 |
七、总结
蓝牙自拍杆看似简单,实则背后采用的是 BLE 的 HOGP 协议,具有结构轻量、低功耗、高兼容性的优点。通过合理设计 HID Report Map 和特征值,可以实现几乎所有常见输入控制类产品功能。
如果你正在开发类似的 BLE 外设(如遥控器、手柄等),理解和掌握 HOGP 是关键一步。
如果这篇文章对你有所帮助,欢迎点赞、收藏并关注我,后续将分享更多关于BLE、RTOS、嵌入式开发的干货内容。
1887

被折叠的 条评论
为什么被折叠?



