CDC SetOperationParms
2025-07-11
0
0
1. SetOperationParms 请求用途
SetOperationParms 用于设置设备的操作模式,在简单模式、独立模式和主机中心模式之间切换。
主机通过此请求控制设备的工作方式,影响设备与主机的交互程度和控制关系。
2. USB 控制传输格式
字段 | 值/说明 |
---|---|
bmRequestType | 0x21 (00100001B) 方向:主机到设备,类型:类,接收者:接口 |
bRequest | 0x32 (SET_OPERATION_PARMS) |
wValue | 操作模式(Operation Mode,见下表) |
wIndex | 接口号 |
wLength | 0 |
Data | 无 |
3. Operation Mode Values(Table 53)
操作模式 | wValue | 描述 |
---|---|---|
Simple Mode | 0 | 通信设备以独立方式运行,不向主机发送状态信息,仅接受SetOperationMode命令。设备能够独立操作。 |
Standalone Mode | 1 | 通信设备以独立方式运行,但向主机发送完整状态信息,并接受主机的任何命令。 |
Host Centric Mode | 2 | 通信设备完全由计算机控制,没有主机控制不会执行任何通信功能。 |
4. 典型主机端请求示例
C 结构体示例:
USB_SETUP_PACKET setup = {
.bmRequestType = 0x21, // 主机到设备,类,接口
.bRequest = 0x32, // SET_OPERATION_PARMS
.wValue = 0x0002, // 0: Simple, 1: Standalone, 2: Host Centric
.wIndex = interface_number, // 通信接口号
.wLength = 0 // 无数据阶段
};
// 发送setup包,无data阶段
5. 设备端处理要点
- 检查 wValue,切换到指定的操作模式。
- 根据模式调整设备行为:
- Simple Mode:独立操作,不发送状态
- Standalone Mode:独立操作,发送状态
- Host Centric Mode:完全由主机控制
- 完成后通过状态阶段(Status Stage)ACK主机。
6. 应用场景示例
场景 | 模式 | wValue | 说明 |
---|---|---|---|
独立电话 | Simple | 0 | 设备独立拨号,不报告状态 |
监控电话 | Standalone | 1 | 设备独立拨号,报告状态 |
受控电话 | Host Centric | 2 | 主机控制拨号过程 |
7. 参考
- USB CDC PSTN 子类规范 6.3.15](https://www.usb.org/document-library/class-definitions-communication-devices-12)