CM002X1 HID控制协议规范详解

详解CM002X1 Xear HID控制协议,包括Report ID定义、Output/Input Report格式、Feature Function表及Surround Headphone控制。

CM002X1 HID控制协议规范详解

协议概述

CM002X1除了用于Xear音频技术认证外,还支持HID控制协议,用于应用程序与固件之间的状态数据通讯。该协议定义了Report、Input Report和Feature Report三种通讯方式,使主机应用能够控制和管理Xear音频功能。

该协议使用专属的Report ID 0xED来标识特定功能状态通讯。

Report ID定义

CM002X1 HID控制协议使用专属的Report ID来标识特定功能状态通讯。该Report ID定义为0xED。当应用程序检测到HID报告中包含0xED时,表明该设备支持此协议。

HID Output Report定义

Output Report用于应用程序向固件发送控制命令,总长度为2字节:

偏移字段大小说明
0ReportID1字节0xEDReport ID标识
1FeatureID1字节数字功能ID,映射到功能表中的特定功能

HID Input Report定义

Input Report用于固件主动向应用程序通知状态变化,总长度为2字节:

偏移字段大小说明
0ReportID1字节0xEDReport ID标识
1FeatureID1字节数字功能ID,标识哪个功能状态发生了变化

当检测到设备按钮事件时,固件根据下表定义返回数据,应用程序可通过Output Report和Feature Report更新状态。

Feature Function功能表

Feature ID功能名称
0x02Xear Surround Headphone(环绕声耳机)

Feature 0x02:Xear Surround Headphone数据结构

偏移字段大小说明
0ReportID1字节0xEDReport ID
1Length1字节0x02数据长度
2FeatureID1字节0x02Feature ID
3bOnOff1字节布尔值环绕声开关状态

使用说明

当HID按钮按下时,仅bOnOff(偏移3)状态切换,其他参数由UI更新。

应用程序可通过SetFeatureReport更新状态,固件需要记住当前状态,以便下次HID按钮事件时提供正确的状态更新。

初始值示例:(0xED, 0x02, 0x02, 0x01) 表示环绕声开启。

HID Feature Report定义

Feature Report总长度为32字节,用于应用程序与固件之间的详细数据交换:

偏移字段说明
0Report ID0xED
1数据长度有效数据的长度
2Feature ID功能ID
3-31数据对应功能ID的数据结构

获取功能状态

应用程序需要获取Surround Headphone状态时:

  1. 发送SetOutputReport设置Feature ID:SetOutputReport[2] = { 0xED, 0x02 }
  2. 发送GetFeatureReport获取功能状态
  3. 设备返回:0xED, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

更新功能状态

应用程序需要更改状态时:

  1. 发送Output Report设置要写入的Feature ID
  2. 发送SetFeatureReport将数据写入设备
  3. 固件根据变更的功能数据返回不同长度的数据结构

应用层到固件状态更新流程(Surround Headphone示例)

  1. 应用程序发送Output Report设置Feature ID(0x02)
  2. 应用程序发送SetFeatureReport设置Surround Headphone为"On"
  3. 固件接收并处理SetFeatureReport
  4. 固件返回处理结果

固件到应用层状态通知流程(Surround Headphone示例)

  1. 用户按下设备上的Surround Headphone按钮
  2. 固件检测到按钮事件,更新内部状态
  3. 固件通过Interrupt Pipe发送Input Report通知应用
  4. 应用程序收到Input Report后,发送Output Report查询具体功能
  5. 应用程序发送GetFeatureReport获取最新状态
  6. 固件返回当前Surround Headphone状态(On/Off)
  7. 应用程序更新UI显示

数据流总结

通讯类型用途方向
Output Report设置Feature ID应用→固件
Input Report状态变化通知固件→应用
Feature Report (Set)写入功能数据应用→固件
Feature Report (Get)读取功能数据应用→固件

典型交互示例

场景:用户通过耳机按钮切换环绕声

步骤1 - 用户按下耳机上的环绕声切换按钮

步骤2 - 固件检测到按钮事件

固件内部状态:Surround Headphone = !当前状态

步骤3 - 固件发送Input Report通知应用

Input Report: 0xED, 0x02

步骤4 - 应用收到通知,查询状态

Output Report: 0xED, 0x02
GetFeatureReport

步骤5 - 固件返回当前状态

Feature Report: 0xED, 0x02, 0x02, 0x01  (假设开启)

步骤6 - 应用更新UI显示

此HID控制协议为CM002X1提供了灵活的状态管理能力,使Xear音频功能可以通过应用程序或设备按钮进行控制。

最后更新: