CDC SetPulseTime请求
2025-07-11
0
0
1. SetPulseTime 请求用途
SetPulseTime 用于设置脉冲拨号中”make”(连接)和”break”(断开)周期的时间长度。
主机通过此请求配置脉冲时序,以适应不同国家/地区的电话标准。
2. USB 控制传输格式
字段 | 值/说明 |
---|---|
bmRequestType | 0x21 (00100001B) 方向:主机到设备,类型:类,接收者:接口 |
bRequest | 0x14 (SET_PULSE_TIME) |
wValue | 高字节:break时间(毫秒)<br>低字节:make时间(毫秒) |
wIndex | 接口号 |
wLength | 0 |
Data | 无 |
3. wValue 字段格式
wValue = (break_time_ms << 8) | make_time_ms
示例:
- wValue = 0x283C:break = 40ms,make = 60ms
- wValue = 0x1E32:break = 30ms,make = 50ms
4. 典型主机端请求示例
C 结构体示例:
USB_SETUP_PACKET setup = {
.bmRequestType = 0x21, // 主机到设备,类,接口
.bRequest = 0x14, // SET_PULSE_TIME
.wValue = 0x283C, // break: 40ms, make: 60ms
.wIndex = interface_number, // 通信接口号
.wLength = 0 // 无数据阶段
};
// 发送setup包,无data阶段
5. 设备端处理要点
- 解析 wValue:
- 高字节:break时间(毫秒)
- 低字节:make时间(毫秒)
- 保存时序参数,供后续 SendPulse 使用。
- 完成后通过状态阶段(Status Stage)ACK主机。
6. 常见时序标准
标准 | Make时间 | Break时间 | wValue |
---|---|---|---|
北美标准 | 60ms | 40ms | 0x283C |
欧洲标准 | 66ms | 34ms | 0x2242 |
日本标准 | 50ms | 50ms | 0x3232 |